Ejemplo n.º 1
0
 private function validar($atributo, $valor)
 {
     switch ($atributo) {
         case 'REG':
             if ($this->REG === 'D500') {
                 throw new \InvalidArgumentException("O campo '{$atributo}' tem que ter o valor 'D500'");
             }
             break;
         case 'IND_OPER':
             if ($valor !== 0 && $valor !== 1) {
                 throw new \InvalidArgumentException("O campo '{$atributo}' só pode ter valores 0 ou 1");
             }
             break;
         case 'IND_EMIT':
             if ($valor !== 0 && $valor !== 1) {
                 throw new \InvalidArgumentException("O campo '{$atributo}' só pode ter valores 0 ou 1");
             }
             break;
         case 'COD_PART':
             if (strlen($valor) > 60) {
                 throw new \InvalidArgumentException("O campo '{$atributo}' não pode ter mais que 60 carácter");
             }
             break;
         case 'COD_MOD':
             if (!T411::isCodigo($valor)) {
                 throw new \InvalidArgumentException("O campo '{$atributo}' está com um valor invalido");
             }
             break;
         case 'COD_SIT':
             if (!T412::isCodigo($valor)) {
                 throw new \InvalidArgumentException("O campo '{$atributo}' está com um valor invalido");
             }
             break;
         case 'SER':
             if (strlen($valor) > 4) {
                 throw new \InvalidArgumentException("O campo '{$atributo}' não pode ter mais que 4 carácter");
             }
             break;
         case 'SUB':
             if (strlen($valor) > 4) {
                 throw new \InvalidArgumentException("O campo '{$atributo}' não pode ter mais que 4 carácter");
             }
             break;
         case 'NUM_DOC':
             if ($valor < 0) {
                 throw new \InvalidArgumentException("'NUM_DOC' o valor informado no campo deve ser maior que '0'");
             }
             if (strlen($valor) > 9) {
                 throw new \InvalidArgumentException("O campo '{$atributo}' não pode ter mais que 9 carácter");
             }
             break;
         case 'DT_DOC':
         case 'DT_A_P':
             if (strlen($valor) > 8) {
                 throw new \InvalidArgumentException("O campo '{$atributo}' não pode ter mais que 8 carácter");
             }
             break;
         case 'VL_DOC':
             if (!is_numeric($valor)) {
                 throw new \InvalidArgumentException("O campo '{$atributo}' precisa ser um número");
             }
             $v = explode(".", $valor);
             if (isset($v[1]) && strlen($v[1]) > 2) {
                 throw new \InvalidArgumentException("O campo '{$atributo}' não pode ter um decimal maior que 2");
             }
             break;
         case 'VL_DESC':
             if (!empty($valor)) {
                 if (!is_numeric($valor)) {
                     throw new \InvalidArgumentException("O campo '{$atributo}' precisa ser um número");
                 }
                 $v = explode(".", $valor);
                 if (isset($v[1]) && strlen($v[1]) > 2) {
                     throw new \InvalidArgumentException("O campo '{$atributo}' não pode ter um decimal maior que 2");
                 }
             }
             break;
         case 'VL_SERV':
         case 'VL_SERV_NT':
         case 'VL_TERC':
         case 'VL_DA':
         case 'VL_BC_ICMS':
         case 'VL_ICMS':
         case 'VL_PIS':
         case 'VL_COFINS':
             if (!is_numeric($valor)) {
                 throw new \InvalidArgumentException("O campo '{$atributo}' precisa ser um número");
             }
             $v = explode(".", $valor);
             if (isset($v[1]) && strlen($v[1]) > 2) {
                 throw new \InvalidArgumentException("O campo '{$atributo}' não pode ter um decimal maior que 2");
             }
             break;
         case 'COD_INF':
             if (strlen($valor) > 6) {
                 throw new \InvalidArgumentException("O campo '{$atributo}' não pode ter mais que 6 carácter");
             }
             break;
         case 'TP_ASSINANTE':
             if ($valor !== 1 && $valor !== 2 && $valor !== 3 && $valor !== 4 && $valor !== 5 && $valor !== 6) {
                 throw new \InvalidArgumentException("O campo '{$atributo}' só pode ter valores 1,2,3,4,5 ou 6");
             }
             break;
     }
 }
Ejemplo n.º 2
0
 private function validar($atributo, $valor)
 {
     switch ($atributo) {
         case 'REG':
             if ($this->REG === 'C100') {
                 throw new \InvalidArgumentException("O campo '{$atributo}' tem que ter o valor 'C100'");
             }
             break;
         case 'IND_OPER':
             if ($valor !== 0 && $valor !== 1) {
                 throw new \InvalidArgumentException("O campo '{$atributo}' só pode ter valores 0 ou 1");
             }
             break;
         case 'IND_EMIT':
             if (!empty($valor)) {
                 if ($valor !== 0 && $valor !== 1) {
                     throw new \InvalidArgumentException("O campo '{$atributo}' só pode ter valores 0 ou 1");
                 }
             }
             break;
         case 'COD_MOD':
             if (!T411::isCodigo($valor)) {
                 throw new \InvalidArgumentException("O campo '{$atributo}' está com um valor invalido");
             }
             break;
         case 'COD_SIT':
             if (!T412::isCodigo($valor)) {
                 throw new \InvalidArgumentException("O campo '{$atributo}' está com um valor invalido");
             }
             break;
         case 'SER':
             if (strlen($valor) > 3) {
                 throw new \InvalidArgumentException("O campo '{$atributo}' não pode ter mais que 3 carácter");
             }
             break;
         case 'NUM_DOC':
             if (strlen($valor) > 9) {
                 throw new \InvalidArgumentException("O campo '{$atributo}' não pode ter mais que 9 carácter");
             }
             break;
         case 'CHV_NFE':
             if (strlen($valor) > 44) {
                 throw new \InvalidArgumentException("O campo '{$atributo}' não pode ter mais que 44 carácter");
             }
             break;
         case 'DT_DOC':
         case 'DT_E_S':
             if (strlen($valor) > 8) {
                 throw new \InvalidArgumentException("O campo '{$atributo}' não pode ter mais que 8 carácter");
             }
             break;
         case 'VL_DOC':
             if (!is_numeric($valor) && !empty($valor)) {
                 throw new \InvalidArgumentException("O campo '{$atributo}' precisa ser um número");
             }
             $v = explode(".", $valor);
             if (isset($v[1]) && strlen($v[1]) > 2) {
                 throw new \InvalidArgumentException("O campo '{$atributo}' não pode ter um decimal maior que 2");
             }
             break;
         case 'IND_PGTO':
             if (!empty($valor)) {
                 if ($valor !== 0 && $valor !== 1 && $valor !== 2) {
                     throw new \InvalidArgumentException("O campo '{$atributo}' só pode ter valores 0,1 ou 2");
                 }
             }
             break;
         case 'VL_DESC':
         case 'VL_ABAT_NT':
         case 'VL_MERC':
             if (!is_numeric($valor) && !empty($valor)) {
                 throw new \InvalidArgumentException("O campo '{$atributo}' precisa ser um número");
             }
             $v = explode(".", $valor);
             if (isset($v[1]) && strlen($v[1]) > 2) {
                 throw new \InvalidArgumentException("O campo '{$atributo}' não pode ter um decimal maior que 2");
             }
             break;
         case 'IND_FRT':
             if (!empty($valor)) {
                 if ($valor !== 0 && $valor !== 1 && $valor !== 2 && $valor !== 9) {
                     throw new \InvalidArgumentException("O campo '{$atributo}' só pode ter valores 0,1,2 ou 9");
                 }
             }
             break;
         case 'VL_FRT':
         case 'VL_SEG':
         case 'VL_OUT_DA':
         case 'VL_BC_ICMS':
         case 'VL_ICMS':
         case 'VL_BC_ICMS_ST':
         case 'VL_ICMS_ST':
         case 'VL_IPI':
         case 'VL_PIS':
         case 'VL_COFINS':
         case 'VL_PIS_ST':
         case 'VL_COFINS_ST':
             if (!is_numeric($valor) && !empty($valor)) {
                 throw new \InvalidArgumentException("O campo '{$atributo}' precisa ser um número");
             }
             $v = explode(".", $valor);
             if (isset($v[1]) && strlen($v[1]) > 2) {
                 throw new \InvalidArgumentException("O campo '{$atributo}' não pode ter um decimal maior que 2");
             }
             break;
     }
 }