private function FaturaLancamento() { $CData = New Data(); $ModelCr = new ModellancaCrBd(); $data = date("Y-m-d H:i:s"); $codCr2 = $ModelCr->UltimoFilho($this->getCodLancamentoParaFaturar(), $this->getTransacao()); $DataVencimento = $CData->convertDataSql($this->DiaVencimentoTabela()); //Imposto $Imposto = $this->CalculaValorImposto(); if (!$ModelCr->FaturaLancamento($codCr2, "0.00", "0.00", "0.00", $this->getValor(), "0", $data, $DataVencimento, "", "", $_SESSION["id_usuario"], "0.00", "0.00", "0.00", $Imposto, null, $this->getTransacao(), false)) { $this->setMsg($ModelCr->getMotivoErro() . "\n\nNão foi possível faturar o lançamento de " . $this->getTipoFechamento() . " referente ao fechamento " . $this->getCodFechamentoSigmo() . " ID: " . $this->getIdFechamento() . "\n\n" . $ModelCr->getMotivoErro()); $this->setStatusOperacao(true); $erroGravar = true; } return true; }
public function FaturaLancamento() { $data = date("Y-m-d H:i:s"); $Datas = new Data(); $String = new CString(); //Verifica se a data de vencimento da fatura é anterior ao dia atual $CodCr2 = isset($_POST['cod_cr2']) ? $_POST['cod_cr2'] : ''; $vlrFaturado = isset($_POST['valor_faturado']) ? (float) $String->limpa_moeda($_POST['valor_faturado']) : ''; $vencimento = isset($_POST['vencimento']) ? $Datas->convertDataSql($_POST['vencimento']) : ''; $multaFatura = isset($_POST['multa_boleto']) ? (float) $String->limpa_moeda($_POST['multa_boleto']) : (float) '0.00'; $moraFatura = isset($_POST['mora_boleto']) ? (float) $String->limpa_moeda($_POST['mora_boleto']) : (float) '0.00'; $intru1 = isset($_POST['instru_1']) ? $_POST['instru_1'] : ''; $imposto = isset($_POST['imposto']) ? (float) $String->limpa_moeda($_POST['imposto']) : (float) '0.00'; $vlrDesconto = !empty($_POST['desconto_fatura']) ? (float) $String->limpa_moeda($_POST['desconto_fatura']) : (float) '0.00'; $intru2 = ""; $numBoleto = "0"; $descricaoBoleto = $intru1 = isset($_POST['descricao_boleto']) ? $String->convertem($_POST['descricao_boleto'], 1) : ''; $NumeroNF = !empty($_POST['numero_nf']) ? $_POST['numero_nf'] : ''; //Verifica se a data de vencimento da fatura é anterior ao dia atual /* if (strtotime($vencimento) < strtotime(date('Y-m-d'))) { echo "A data de vencimento deve ser igual ou superior a data atual"; exit(); } */ if ($vlrFaturado <= 0) { echo "Não é possível faturar valores negativos"; exit(); } $faturaLancamento = new ModellancaCrBd(); $codCr1 = $faturaLancamento->RecuperaCampo("F_LANCA_CR_ID", "F_LANCA_CR2", "F_LANCA_CR2_ID", $CodCr2); $ValorReferencial = (float) $faturaLancamento->ValorReferenciaEncargos($codCr1); //Validação dos dados em segunda camada, refaço o cálculo de multa e mora if (($multaFatura) > 0 OR ( $moraFatura > 0)) { $CodCC = $faturaLancamento->RecuperaCampo("BANCO_ID", "F_LANCA_CR", "F_LANCA_CR_ID", $codCr1); $VlrMora = (float) $faturaLancamento->RecuperaCampo("VALOR_JURO", "BANCO", "BANCO_ID", $CodCC); $VlrMulta = (float) $faturaLancamento->RecuperaCampo("VALOR_MULTA", "BANCO", "BANCO_ID", $CodCC); } if ($moraFatura > 0) { $DataReferencia = $faturaLancamento->DataReferenciaCalculoEncargos($codCr1); $diasAtraso = $Datas->DiasEntreDatas($vencimento, $DataReferencia); $moraFatura = (float) number_format($diasAtraso * (($VlrMora * $ValorReferencial / 100) / 30), 2, '.', ''); } if ($multaFatura > 0) { $multaFatura = (float) number_format(($VlrMulta * $ValorReferencial / 100), 2, '.', ''); } $Calculo = (float) trim((($ValorReferencial - $imposto - $vlrDesconto) + ($multaFatura + $moraFatura))); if ($vlrFaturado != $Calculo) { echo "Falha na verificação de integridade de valores, atualize a página e tente novamente"; exit(); } $RealizaFaturamento = $faturaLancamento->FaturaLancamento($CodCr2, $vlrDesconto, $multaFatura, $moraFatura, $vlrFaturado, $numBoleto, $data, $vencimento, $intru1, $intru2, $_SESSION["id_usuario"], $descricaoBoleto, $multaFatura, $moraFatura, $imposto, $NumeroNF); if ($RealizaFaturamento) { echo 1; } else { echo $faturaLancamento->getMotivoErro(); } exit(); }