none
Validação de CPF e CNPJ no CRM 2011

    Question

  • Pessoal, boa tarde.

    Consegui alguns códigos em JavaScript na net, mas nenhum deles executou corretamente no CRM 2011. Na verdade, foi até pior que a encomenda: quando ativei a função e fiz a chamada, a outra função que eu tinha colocado para máscara parou de funcionar.

    Além disso, peguei os códigos que tinha do CRM 4.0, passei no conversor e nada! No 2011 não deu nem sinal de vida!!!!

    Alguém tem esses códigos de validação (CPF e CNPJ) já funcionando no CRM 2011?

    Aproveitando, se tiverem outros códigos já atualizados com a ferramenta, não vou recusar. Hehehe...

    Grato.


    João Luiz
    Wednesday, May 11, 2011 8:19 PM

Answers

  • João, tudo bem?

    De uma olhada neste link http://thetaoofcrm.com/2011/05/19/crm-field-masking-with-jquery/ ele mostra como voce colocar máscaras nos campos do CRM.

    No OnLoad voce seta a mascara e no OnSave voce joga o valor para o campo do CRM, senao ele nao salva.

     Rotina global

    function MaskField(field, format)
    {
      $("#"+field).mask(format, {completed:function(){UnmaskField(field);}});
    }
    
    function UnmaskField(field)
    {
      if(Xrm.Page.getAttribute(field).getValue() != $("#"+field).val()) Xrm.Page.getAttribute(field).setValue($("#"+field).val());
    }
    
    function ValidaCnpj(field){ 
      var vCNPJ = Xrm.Page.getAttribute(field).getValue();
      if (vCNPJ != null && vCNPJ != "")
      {
        vCNPJ = Xrm.Page.getAttribute(field).getValue().replace(/[.]/g,"").replace(/[/]/g,"").replace(/[-]/g,"");
        var mControle = ""; var aTabCNPJ = new Array(5,4,3,2,9,8,7,6,5,4,3,2);
        for (i = 1 ; i <= 2 ; i++){
          mSoma = 0;
          for (j = 0 ; j < vCNPJ.length - 2 ; j++) mSoma = mSoma + (vCNPJ.substring(j,j+1) * aTabCNPJ[j]);
          if (i == 2 ) mSoma = mSoma + ( 2 * mDigito );
          mDigito = ( mSoma * 10 ) % 11; if (mDigito == 10 ) mDigito = 0; mControle1 = mControle; mControle = mDigito;
          aTabCNPJ = new Array(6,5,4,3,2,9,8,7,6,5,4,3);
       }
       return (((mControle1 * 10) + mControle) == vCNPJ.substring(12, 14));   
      }
      return true;
    }
    
    function ValidaCpf(field){ 
      var vCPF = Xrm.Page.getAttribute(field).getValue();
      if (vCPF != null && vCPF != "") 
      { 
        vCPF = Xrm.Page.getAttribute(field).getValue().replace(/[.]/g,"").replace(/[/]/g,"").replace(/[-]/g,"");
        var mControle = ""; var mContIni = 2; mContFim = 10; mDigito = 0;
        for (j = 1 ; j <= 2 ; j++){ 
          mSoma = 0; 
          for (i = mContIni ; i <= mContFim ; i++) mSoma = mSoma + (vCPF.substring((i-j-1),(i-j)) * (mContFim + 1 + j - i)); 
          if (j == 2 ) mSoma = mSoma + ( 2 * mDigito ); 
          mDigito = ( mSoma * 10 ) % 11; 
          if (mDigito == 10) mDigito = 0; 
          mControle1 = mControle; 
          mControle = mDigito; 
          mContIni = 3; 
          mContFim = 11; 
        }  
        return (((mControle1 * 10) + mControle) == vCPF.substring(9, 11));   
      }
      return true;
    }
    

     Rotina no seu formulario onde tem o campo cpf e cnpj

    function MaskFields()
    {
      MaskField("mgc_cpf", "999.999.999-99");
      MaskField("mgc_cnpj", "99.999.999/9999-99");
    }
    
    function FormOnSave(){ 
      UnmaskField("mgc_cpf"); UnmaskField("mgc_cnpj");
      if (!ValidaCnpj("mgc_cnpj")) {  
        event.returnValue = false; alert("O valor do campo CNPJ é inválido."); Xrm.Page.getControl("mgc_cnpj").setFocus(true); return false; 
      }
      if (!ValidaCpf("mgc_cpf")) {  
        event.returnValue = false; alert("O valor do campo CPF é inválido."); Xrm.Page.getControl("mgc_cpf").setFocus(true); return false; 
      }
    }


    Rodrigo Hentz
    Monday, January 30, 2012 6:22 PM
    Owner
  • João,

    Segue um exemplo de como fazer a validação.

    http://ricardoalves.me/2012/02/14/validacao-de-cpf-e-cnpj/

    Abs,


    Ricardo Alves | www.ricardoalves.me

    • Marked as answer by RicardoAlves Tuesday, February 14, 2012 3:55 AM
    Tuesday, February 14, 2012 3:55 AM

All replies

  • Olá joão , já conseguiu resolver o problema acima ?

     

    começei uma implantação semana passada passei por isto
    pois a ultima implantação havia cido no CRM 4.0 e consegui resolver com a ajuda do THIAGO PIRES , BRUNO SOARES E DANIEL MESQUITA

    Monday, December 05, 2011 2:32 PM
  • João, tudo bem?

    De uma olhada neste link http://thetaoofcrm.com/2011/05/19/crm-field-masking-with-jquery/ ele mostra como voce colocar máscaras nos campos do CRM.

    No OnLoad voce seta a mascara e no OnSave voce joga o valor para o campo do CRM, senao ele nao salva.

     Rotina global

    function MaskField(field, format)
    {
      $("#"+field).mask(format, {completed:function(){UnmaskField(field);}});
    }
    
    function UnmaskField(field)
    {
      if(Xrm.Page.getAttribute(field).getValue() != $("#"+field).val()) Xrm.Page.getAttribute(field).setValue($("#"+field).val());
    }
    
    function ValidaCnpj(field){ 
      var vCNPJ = Xrm.Page.getAttribute(field).getValue();
      if (vCNPJ != null && vCNPJ != "")
      {
        vCNPJ = Xrm.Page.getAttribute(field).getValue().replace(/[.]/g,"").replace(/[/]/g,"").replace(/[-]/g,"");
        var mControle = ""; var aTabCNPJ = new Array(5,4,3,2,9,8,7,6,5,4,3,2);
        for (i = 1 ; i <= 2 ; i++){
          mSoma = 0;
          for (j = 0 ; j < vCNPJ.length - 2 ; j++) mSoma = mSoma + (vCNPJ.substring(j,j+1) * aTabCNPJ[j]);
          if (i == 2 ) mSoma = mSoma + ( 2 * mDigito );
          mDigito = ( mSoma * 10 ) % 11; if (mDigito == 10 ) mDigito = 0; mControle1 = mControle; mControle = mDigito;
          aTabCNPJ = new Array(6,5,4,3,2,9,8,7,6,5,4,3);
       }
       return (((mControle1 * 10) + mControle) == vCNPJ.substring(12, 14));   
      }
      return true;
    }
    
    function ValidaCpf(field){ 
      var vCPF = Xrm.Page.getAttribute(field).getValue();
      if (vCPF != null && vCPF != "") 
      { 
        vCPF = Xrm.Page.getAttribute(field).getValue().replace(/[.]/g,"").replace(/[/]/g,"").replace(/[-]/g,"");
        var mControle = ""; var mContIni = 2; mContFim = 10; mDigito = 0;
        for (j = 1 ; j <= 2 ; j++){ 
          mSoma = 0; 
          for (i = mContIni ; i <= mContFim ; i++) mSoma = mSoma + (vCPF.substring((i-j-1),(i-j)) * (mContFim + 1 + j - i)); 
          if (j == 2 ) mSoma = mSoma + ( 2 * mDigito ); 
          mDigito = ( mSoma * 10 ) % 11; 
          if (mDigito == 10) mDigito = 0; 
          mControle1 = mControle; 
          mControle = mDigito; 
          mContIni = 3; 
          mContFim = 11; 
        }  
        return (((mControle1 * 10) + mControle) == vCPF.substring(9, 11));   
      }
      return true;
    }
    

     Rotina no seu formulario onde tem o campo cpf e cnpj

    function MaskFields()
    {
      MaskField("mgc_cpf", "999.999.999-99");
      MaskField("mgc_cnpj", "99.999.999/9999-99");
    }
    
    function FormOnSave(){ 
      UnmaskField("mgc_cpf"); UnmaskField("mgc_cnpj");
      if (!ValidaCnpj("mgc_cnpj")) {  
        event.returnValue = false; alert("O valor do campo CNPJ é inválido."); Xrm.Page.getControl("mgc_cnpj").setFocus(true); return false; 
      }
      if (!ValidaCpf("mgc_cpf")) {  
        event.returnValue = false; alert("O valor do campo CPF é inválido."); Xrm.Page.getControl("mgc_cpf").setFocus(true); return false; 
      }
    }


    Rodrigo Hentz
    Monday, January 30, 2012 6:22 PM
    Owner
  • João,

    Segue um exemplo de como fazer a validação.

    http://ricardoalves.me/2012/02/14/validacao-de-cpf-e-cnpj/

    Abs,


    Ricardo Alves | www.ricardoalves.me

    • Marked as answer by RicardoAlves Tuesday, February 14, 2012 3:55 AM
    Tuesday, February 14, 2012 3:55 AM