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; } }
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; } }