private function GeraAgrupamento($SomenteCr, $SomenteEx, $SomenteCO) { //Gera o filtro referente aos lançamentos que serão agrupados $this->MontaFiltroAgrupamento($SomenteCr, $SomenteEx, $SomenteCO); $ObjAgrupamento = new CArupamento(); if ($this->getCodEmpresaDoGrupoEnvioBoleto()) $this->setCodEmp($this->getCodEmpresaDoGrupoEnvioBoleto()); if ($ObjAgrupamento->VerificaListaLancamentos(TRUE, TRUE, $this->getTransacao())) { if (unserialize($_SESSION['ArrayAgrup'])->GravaAgrupamento($this->getArrayInfoCrCodTransCRParcelamento(), $this->getCodEmp(), $this->getValor(), false, $this->getTransacao())) { unset($_SESSION['ArrayAgrup']); return true; } else { $this->setStatusOperacao(true); $this->Msg($ObjAgrupamento->getMotivoErro()); return false; } } else { $this->setMsg($ObjAgrupamento->getMotivoErro() . "\n\n Erro ao gerar agrupamento referente ao fechamento " . $this->getCodFechamentoSigmo() . "\nEmp:" . $this->getCodEmp() . " ID:" . $this->getIdFechamento()); $this->setStatusOperacao(true); return false; } $this->setMsg($ObjAgrupamento->getMotivoErro()); }
public function VerificaListaLancamentos($GravaObj = true, $where = false, $TransacaoFiltro = false) { //Recupera o filtro atual do usuário $CFiltro = new CFiltro(); $String = new CString(); if (!isset($_SESSION["pesquisa"]) || (isset($_POST["pesquisa"]))) { $_SESSION["pesquisa"] = isset($_POST['pesquisa']) ? $_POST['pesquisa'] : ""; } if (!isset($_SESSION["pesquisa"]) || (isset($_POST["pesquisa"]))) { $_SESSION["pesquisa"] = isset($_POST['pesquisa']) ? $String->convertem(trim($_POST['pesquisa']), 1) : ""; } if (!isset($_SESSION["pesquisa_especifica"]) || (isset($_POST["pesquisa_especifica"]))) { $_SESSION["pesquisa_especifica"] = isset($_POST['pesquisa_especifica']) ? $_POST['pesquisa_especifica'] : ""; } if (!$where) { $Where = "AND (RAZAO_SOCIAL LIKE '%" . $_SESSION["pesquisa"] . "%' " . "OR NOME_FANTASIA LIKE '%" . $_SESSION["pesquisa"] . "%' " . "OR NOME_CONTA LIKE '%" . $_SESSION["pesquisa"] . "%' " . "OR SUBCATEGORIA LIKE '%" . $_SESSION["pesquisa"] . "%' " . "OR GRUPO.GRUPO LIKE '%" . $_SESSION["pesquisa"] . "%' " . "OR SERVICO.NOME LIKE '%" . $_SESSION["pesquisa"] . "%' " . "OR NUMERO_NF LIKE '%" . $_SESSION["pesquisa"] . "%') "; if (is_numeric($_SESSION["pesquisa"])) $Where = "AND (F_LANCA_CR2_ID = " . $_SESSION["pesquisa"] . " " . "OR COD_PARCELAMENTO_PAI = " . $_SESSION["pesquisa"] . " " . "OR NUMERO_NF = '" . $_SESSION["pesquisa"] . "' " . "OR NUMERO_FATURA_SIGMO = '" . $_SESSION["pesquisa"] . "' " . "OR NUM_CHEQUE = " . $_SESSION["pesquisa"] . ") "; //Caso tenha sido realizado pesquisa específica if (!empty($_SESSION["pesquisa_especifica"])) { if ($_SESSION["pesquisa_especifica"] != "NUMERO_NF") { if (!is_numeric($_SESSION["pesquisa"])) return parent::setMsg("Pesquisa requer valor numérico"); else $Where = "AND " . $_SESSION["pesquisa_especifica"] . " = " . $_SESSION["pesquisa"]; } else { if (empty($_SESSION["pesquisa"])) return parent::setMsg("Informe o número da nota fiscal a ser pesquisada"); else $Where = "AND " . $_SESSION["pesquisa_especifica"] . " = '" . $_SESSION["pesquisa"] . "'"; } } }else { $Where = " "; } //Recupera o filtro do usuário $Cfiltro = (new CFiltro())->RecuperaFIltro($_SESSION["id_usuario"], "FILTRO_CR", $TransacaoFiltro); $Cfiltro->getSqlFiltro(); //Verifica se o usuário tem permissão de criar filtros de contas a receber if ($Cfiltro->getSqlFiltro() != '') { $listaCr = (new ModellancaCrBd())->getTodos($Where, str_replace('"', "'", $Cfiltro->getSqlFiltro()), false, $TransacaoFiltro); } else { $this->setMotivoErro("Usuário não possui filtro associado a essa funcionalidade"); return false; } //Verifica se o filtro selecionado retorna mais de uma linha if (count($listaCr) <= 1) { $this->setMotivoErro("Selecione mais de um lançamento para proseguir com o agrupamento"); return false; } //Verifica se algum lançamento encontra-se baixado o faturado foreach ($listaCr as $contas){ if ($contas->getCod_status() == 2 OR $contas->getCod_status() == 3) { $this->setMotivoErro("Todos os lançamentos a serem agrupados devem constar com status ABERTO"); return false; } //Verifica se o lançamento a ser agrupado já é um agrupamento if ($contas->getCodAgrupamento() > 0) { $this->setMotivoErro("Atenção! \n\nNão é possível agrupar lançamentos que já estão agrupados\n\nFiltre somente os lançamentos não agrupados"); return false; } } if ($GravaObj) //Verifica se todas as empresas pertecem ao mesmo grupo if ($this->VerificaEmpersasAgrupamento($listaCr)) { if ($GravaObj) { $ObjAgrupamentoIns = new CArupamento(); $ObjAgrupamentoIns->setListaLancamentos($listaCr); if (!isset($_SESSION['ArrayAgrup'])) { $_SESSION['ArrayAgrup'] = serialize($ObjAgrupamentoIns); } else { $this->setMotivoErro("Outro agrupamento está sendo realizado\n\n Finalize o agrupamento atual, ou cancele-o\n\n (Verifique as outras abas do browser)"); return false; } } return true; } }
public function Agrupar() { $ObjAgrupamento = new CArupamento(); if ($ObjAgrupamento->VerificaListaLancamentos()) { echo 1; exit(); } else { echo $ObjAgrupamento->getMotivoErro(); exit(); } }