예제 #1
0
 public function salvar(Patrimonio $obj)
 {
     $dataAquisicao = "(NULL)";
     $dataExpiraGarantia = "(NULL)";
     if ($obj->getDataAquisicao() != "") {
         $dataAquisicao = "'" . $obj->getDataAquisicao() . "'";
     }
     if ($obj->getDataExpiracaoGarantia() != "") {
         $dataExpiraGarantia = "'" . $obj->getDataExpiracaoGarantia() . "'";
     }
     $strSQL = "INSERT INTO PAT_PTM_PATRIMONIOS ( ";
     $strSQL .= "TIP_ID,\t";
     $strSQL .= "FRA_ID,\t";
     $strSQL .= "USU_Cadastro_ID,\t";
     $strSQL .= "IPT_ID, ";
     $strSQL .= "UNI_Localizacao_ID, ";
     $strSQL .= "PTM_NumeroTombamento, ";
     $strSQL .= "PTM_DataAquisicao, ";
     $strSQL .= "PTM_DataHoraCadastro, ";
     $strSQL .= "PTM_DataExpiracaoGarantia, ";
     $strSQL .= "PTM_Observacao, ";
     $strSQL .= "PTM_Condicao, ";
     $strSQL .= "PTM_ValorEstimado, ";
     $strSQL .= "PTM_Descricao, ";
     $strSQL .= "PTM_Quantidade, ";
     $strSQL .= "PTM_Foto, ";
     $strSQL .= "PTM_Fabricante, ";
     $strSQL .= "FOR_ID, ";
     $strSQL .= "PTM_NumeroDocumento ";
     $strSQL .= ") ";
     $strSQL .= "VALUES(";
     $strSQL .= $obj->getTipoPatrimonio()->getId() . ", ";
     $strSQL .= $obj->getFormaAquisicao()->getId() . ", ";
     $strSQL .= $obj->getUsuarioCadastro()->getId() . ", ";
     $strSQL .= $obj->getItemPatrimonio()->getId() . ", ";
     $strSQL .= $obj->getCongregacao()->getId() . ", ";
     $strSQL .= "'" . $obj->getNumeroTombamento() . "', ";
     $strSQL .= " " . $dataAquisicao . ", ";
     $strSQL .= "'" . date("Y-m-d H:m:s") . "', ";
     $strSQL .= " " . $dataExpiraGarantia . ", ";
     $strSQL .= "'" . $obj->getObservacao() . "', ";
     $strSQL .= "'" . $obj->getCondicao() . "', ";
     $strSQL .= "" . $obj->getValorEstimado() . ", ";
     $strSQL .= "'" . $obj->getDescricao() . "', ";
     $strSQL .= "" . $obj->getQuantidade() . ", ";
     $strSQL .= "'" . $obj->getFoto() . "', ";
     $strSQL .= "'" . $obj->getFabricante() . "', ";
     $strSQL .= " " . $obj->getFornecedor()->getId() . ", ";
     $strSQL .= "'" . $obj->getNumeroDocumento() . "' ";
     $strSQL .= ") ";
     if (Db::getInstance()->executar($strSQL)) {
         $intID = Db::getInstance()->getLastId();
         // id do patrimonio criado
         // serve para gerar o número de tombamento
         // este número deve possuir sequência
         // pelo Tipo de Patromônio e Item do Patrimônio
         // o número do tombamento deverá respeitar o layout abaixo
         // TIP_ID(3 num).IPT_ID(4 num).PTM_Numero(4 num).DIGITO VERIFICADOR
         // Ex.: 007.0001.0008.X
         $strSQL = "SELECT MAX(PTM_Numero) AS PTM_Numero FROM PAT_PTM_PATRIMONIOS ";
         $strSQL .= "WHERE TIP_ID = " . $obj->getTipoPatrimonio()->getId() . " ";
         $strSQL .= "AND IPT_ID = " . $obj->getItemPatrimonio()->getId();
         $arrStrDados = Db::getInstance()->select($strSQL);
         $intUltimoNumero = 1;
         if (count($arrStrDados) > 0) {
             if ($arrStrDados[0]["PTM_Numero"] != "") {
                 $intUltimoNumero = intval($arrStrDados[0]["PTM_Numero"]) + 1;
             }
         }
         // gera o número como string para identificar o dígito verificador
         // depois que montar o número, o mesmo é convertido para geração do dígito
         $strNumero = $obj->getTipoPatrimonio()->getId() . $obj->getItemPatrimonio()->getId() . $intUltimoNumero;
         $strDigito = NumeroHelper::getInstance()->modulo11($strNumero);
         // monta o número do tombamento
         $strNumeroTombamento = NumeroHelper::getInstance()->completarComZero($obj->getTipoPatrimonio()->getId(), 3);
         $strNumeroTombamento .= NumeroHelper::getInstance()->completarComZero($obj->getItemPatrimonio()->getId(), 4);
         $strNumeroTombamento .= NumeroHelper::getInstance()->completarComZero($intUltimoNumero, 4);
         $strNumeroTombamento .= $strDigito;
         $strSQL = "UPDATE PAT_PTM_PATRIMONIOS SET ";
         $strSQL .= "PTM_Numero = " . $intUltimoNumero . ", ";
         $strSQL .= "PTM_NumeroTombamento = '" . $strNumeroTombamento . "' ";
         $strSQL .= "WHERE PTM_ID = " . $intID;
         Db::getInstance()->executar($strSQL);
     }
     return true;
 }