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