public static function getInstance() { if (self::$objInstance == null) { self::$objInstance = new RepoFuncionario(); } return self::$objInstance; }
public function salvar($arrStrDados) { $obj = $this->factory(DadosHelper::getInstance()->prepararDadosComAcentuacao($arrStrDados)); if (isset($arrStrDados["PES_CPF"])) { $obj->setCPF(StringHelper::getInstance()->removerCaracteresParaBanco($arrStrDados["PES_CPF"])); } // verifica se já existe uma matrícula para // o membro, se existir o sistema não gera // só irá gerar se não existir if (trim($obj->getMatricula()) == "") { $dataAtual = Date("Y-m-d H:m:s"); $strAno = substr($dataAtual, 0, 4); $intMes = (int) substr($dataAtual, 5, 2); if ($intMes <= 06) { $strSimestre = "1"; } else { $strSimestre = "2"; } // gera a hora em milissegundos $m = explode(' ', microtime()); list($totalSeconds, $extraMilliseconds) = array($m[1], (int) round($m[0] * 1000, 3)); $datHora = date("H:i:s", $totalSeconds) . ":{$extraMilliseconds}"; //retira a pontuação da hora $strHoraSemPontuacao = str_replace(":", "", $datHora); // concatena pra gerar a matricula $strMatricula = $strAno . "." . $strSimestre . "." . $strHoraSemPontuacao; $obj->setMatricula($strMatricula); } if (isset($arrStrDados["PES_DataNascimento"])) { $obj->setDataNascimento(DataHelper::getInstance()->converterDataUsuarioParaDataBanco($arrStrDados["PES_DataNascimento"])); } if (isset($arrStrDados["PES_DataFalecimento"])) { $obj->setDataFalecimento(DataHelper::getInstance()->converterDataUsuarioParaDataBanco($arrStrDados["PES_DataFalecimento"])); } if (isset($arrStrDados["FUN_DataAdmissao"])) { $obj->setDataAdmissao(DataHelper::getInstance()->converterDataUsuarioParaDataBanco($arrStrDados["FUN_DataAdmissao"])); } if (isset($arrStrDados["FUN_DataSaida"])) { $obj->setDataSaida(DataHelper::getInstance()->converterDataUsuarioParaDataBanco($arrStrDados["FUN_DataSaida"])); } $obj->setSalario(0); if (isset($arrStrDados["FUN_Salario"])) { $obj->setSalario(NumeroHelper::getInstance()->formatarNumeroParaBanco($arrStrDados["FUN_Salario"])); } $foto = ""; //conserva a foto pra não passar pra maiuscula if (isset($arrStrDados["PES_ArquivoFoto"])) { $foto = $arrStrDados["PES_ArquivoFoto"]; } $obj->setFoto($foto); if ($obj->getId() == "") { // se vier PES_Membro_ID utilizar ele no id de membro e setar o id de funcionario if ($obj->getMembroFuncionario() != null) { $obj->setIdFuncionario($obj->getMembroFuncionario()->getId()); //passa o id e salva o funcionario if (RepoFuncionario::getInstance()->salvar($obj) == false) { return false; } else { return true; } } else { //se não vier PES_Membro_ID então salva a pessoa e o funcionario $idNovaPessoa = RepoPessoa::getInstance()->salvar($obj); if ($idNovaPessoa > 0) { $obj->setIdFuncionario($idNovaPessoa); if (RepoFuncionario::getInstance()->salvar($obj)) { if (isset($arrStrDados["PES_TelefoneResidencial"])) { if ($arrStrDados["PES_TelefoneResidencial"] != "") { $foneRes["PES_ID"] = $idNovaPessoa; $foneRes["TEL_Numero"] = $arrStrDados["PES_TelefoneResidencial"]; NegPessoaTelefone::getInstance()->salvar($foneRes); } } if (isset($arrStrDados["PES_TelefoneCelular"])) { if ($arrStrDados["PES_TelefoneCelular"] != "") { $foneCel["PES_ID"] = $idNovaPessoa; $foneCel["TEL_Numero"] = $arrStrDados["PES_TelefoneCelular"]; NegPessoaTelefone::getInstance()->salvar($foneCel); } } if (isset($arrStrDados["PES_EmailPrimario"])) { if ($arrStrDados["PES_EmailPrimario"] != "") { $emailPrim["PES_ID"] = $idNovaPessoa; $emailPrim["EMA_Email"] = $arrStrDados["PES_EmailPrimario"]; NegPessoaEmail::getInstance()->salvar($emailPrim); } } if (isset($arrStrDados["PES_EmailSecundario"])) { if ($arrStrDados["PES_EmailSecundario"] != "") { $emailSec["PES_ID"] = $idNovaPessoa; $emailSec["EMA_Email"] = $arrStrDados["PES_EmailSecundario"]; NegPessoaEmail::getInstance()->salvar($emailSec); } } return true; } else { return false; } } else { return false; } } } else { // editar if ($obj->getMembroFuncionario() != null) { //edita se for um funcionario membro $obj->setIdFuncionario($obj->getMembroFuncionario()->getId()); //passa o id e salva o funcionario if (RepoFuncionario::getInstance()->alterar($obj) == false) { return false; } else { return true; } } else { //edita se funcionario deixar ou não de ser membro //verifica se é um funcionario com pessoa ou um funcionario que era um membro $arrStrFiltros["PES_ID"] = $obj->getId(); $arrOBJ = $this->consultar($arrStrFiltros); //se vier objeto MembroFuncionario então tem que cadastrar uma nova pessoa se não altera o que ja tiver if ($arrOBJ["objects"][0]->getMembroFuncionario() != null) { //cadastra nova pessoa $idNovaPessoa = RepoPessoa::getInstance()->salvar($obj); if ($idNovaPessoa > 0) { $obj->setIdFuncionario($idNovaPessoa); if (RepoFuncionario::getInstance()->alterar($obj) == false) { return false; } else { //exclui os Telefones $arrDadosExcluirFone["PES_ID"] = $obj->getId(); NegPessoaTelefone::getInstance()->excluir($arrDadosExcluirFone); //salva os que estão vindo novamente if (isset($arrStrDados["PES_TelefoneResidencial"])) { if ($arrStrDados["PES_TelefoneResidencial"] != "") { $foneRes["PES_ID"] = $obj->getId(); $foneRes["TEL_Numero"] = $arrStrDados["PES_TelefoneResidencial"]; NegPessoaTelefone::getInstance()->salvar($foneRes); } } if (isset($arrStrDados["PES_TelefoneCelular"])) { if ($arrStrDados["PES_TelefoneCelular"] != "") { $foneCel["PES_ID"] = $obj->getId(); $foneCel["TEL_Numero"] = $arrStrDados["PES_TelefoneCelular"]; NegPessoaTelefone::getInstance()->salvar($foneCel); } } // //exclui os Emails $arrDadosExcluirEmails["PES_ID"] = $obj->getId(); NegPessoaEmail::getInstance()->excluir($arrDadosExcluirEmails); //salva os que estão vindo novamente if (isset($arrStrDados["PES_EmailPrimario"])) { if ($arrStrDados["PES_EmailPrimario"] != "") { $emailPrim["PES_ID"] = $obj->getId(); $emailPrim["EMA_Email"] = $arrStrDados["PES_EmailPrimario"]; NegPessoaEmail::getInstance()->salvar($emailPrim); } } if (isset($arrStrDados["PES_EmailSecundario"])) { if ($arrStrDados["PES_EmailSecundario"] != "") { $emailSec["PES_ID"] = $obj->getId(); $emailSec["EMA_Email"] = $arrStrDados["PES_EmailSecundario"]; NegPessoaEmail::getInstance()->salvar($emailSec); } } // return true; } } else { return false; } } else { //altera if (RepoPessoa::getInstance()->alterar($obj)) { $obj->setIdFuncionario($obj->getId()); if (RepoFuncionario::getInstance()->alterar($obj) == false) { return false; } else { //exclui os Telefones $arrDadosExcluirFone["PES_ID"] = $obj->getId(); NegPessoaTelefone::getInstance()->excluir($arrDadosExcluirFone); //salva os que estão vindo novamente if ($arrStrDados["PES_TelefoneResidencial"] != "") { $foneRes["PES_ID"] = $obj->getId(); $foneRes["TEL_Numero"] = $arrStrDados["PES_TelefoneResidencial"]; NegPessoaTelefone::getInstance()->salvar($foneRes); } if ($arrStrDados["PES_TelefoneCelular"] != "") { $foneCel["PES_ID"] = $obj->getId(); $foneCel["TEL_Numero"] = $arrStrDados["PES_TelefoneCelular"]; NegPessoaTelefone::getInstance()->salvar($foneCel); } // //exclui os Emails $arrDadosExcluirEmails["PES_ID"] = $obj->getId(); NegPessoaEmail::getInstance()->excluir($arrDadosExcluirEmails); //salva os que estão vindo novamente if ($arrStrDados["PES_EmailPrimario"] != "") { $emailPrim["PES_ID"] = $obj->getId(); $emailPrim["EMA_Email"] = $arrStrDados["PES_EmailPrimario"]; NegPessoaEmail::getInstance()->salvar($emailPrim); } if ($arrStrDados["PES_EmailSecundario"] != "") { $emailSec["PES_ID"] = $obj->getId(); $emailSec["EMA_Email"] = $arrStrDados["PES_EmailSecundario"]; NegPessoaEmail::getInstance()->salvar($emailSec); } // return true; } } else { return true; } } } } }