public function FaturaLancamento($codCr2, $vlrDesconto = 0.00, $vlrMulta, $vlrMora, $valorFaturado, $numBoleto, $dataFaturamento, $dataVencimento, $instrucao1, $instrucao2, $id_usuario, $descricaoBoleto, $multaFatura, $moraFatura, $imposto, $NumeroNF = null, $Transacao = false, $commit = true) { $codCr2Novo = parent::incrementaGenerator("GEN_F_LANCA_CR2_ID"); //Recupera o código do lançamento pai $codCr1 = parent::RecuperaCampo("F_LANCA_CR_ID", "F_LANCA_CR2", "F_LANCA_CR2_ID", $codCr2, $Transacao); //Recupera o código da parcela $NumParcela = parent::RecuperaCampo("NUM_PARCELA", "F_LANCA_CR2", "F_LANCA_CR2_ID", $codCr2, $Transacao); //Imposto $codEmpresa = parent::RecuperaCampo("EMPRESA_ID", "F_LANCA_CR", "F_LANCA_CR_ID", $codCr1, $Transacao); $CodTabelaImposto = parent::RecuperaCampo("CONFIG_IMPOSTO_ID", "EMPRESA", "EMPRESA_ID", $codEmpresa, $Transacao); //Recupera o código do parcelamento $CodParcelamento = parent::RecuperaCampo("COD_PARCELAMENTO_PAI", "F_LANCA_CR2", "F_LANCA_CR2_ID", $codCr2, $Transacao); //Verifica se o lançamento não foi faturado anteriormente if (parent::RecuperaCampo("F_STATUS_FINANCEIRO_ID", "F_LANCA_CR", "F_LANCA_CR_ID", $codCr1, $Transacao) != 1) { return $this->setMotivoErro("Lançamento já encontra-se faturado"); } $sqlcr = "INSERT INTO F_LANCA_CR2 ( F_LANCA_CR2_ID, F_LANCA_CR_ID, VLR_IMPOSTO_FATURA, VLR_DESCONTO_FATURA, VLR_MULTA, VLR_MORA, VALOR, NUM_BOLETO, DATA_FATURAMENTO, DATA_VENCIMENTO, ACAO_FATURAR, INSTRUCAO_1, INSTRUCAO_2, ID_USU_FATURA, DESCRICAO_BOLETO, NUM_PARCELA, COD_PARCELAMENTO_PAI ) VALUES ( $codCr2Novo, $codCr1, '$imposto', '$vlrDesconto', '$multaFatura', '$moraFatura', '$valorFaturado', $numBoleto, '$dataFaturamento', '$dataVencimento', 'S', '$instrucao1', '$instrucao2', $id_usuario, '$descricaoBoleto', $NumParcela, $CodParcelamento );"; //Se recebeu alguma transação como parâmetro, executa com a transação recebida if (!$Transacao) $trans = parent::criaTransacao(); else $trans = $Transacao; if (parent::execute_query_trans($trans, $sqlcr)) { $sqlcr2 = "UPDATE F_LANCA_CR SET F_STATUS_FINANCEIRO_ID = 2, NUMERO_NF = '$NumeroNF' WHERE F_LANCA_CR_ID = $codCr1"; if (parent::execute_query_trans($trans, $sqlcr2)) { //Atualiza os lançamentos contidos no agrupamento if ($this->AtualizaLancamentosAgrupados($trans, $codCr1, 2)) { //Atualiza os impostos contidos na fatura $GravaImposto = true; if ($CodTabelaImposto) { $ModalConfigImposto = new ModelConfigImposto($CodTabelaImposto); $dados = array("Imposto" => $ModalConfigImposto, "CR2" => $codCr2Novo, "TRANS" => $trans, "CODTABELAIMPOSTO" => $CodTabelaImposto); $ModalImposto = new ModelImposto($dados); $GravaImposto = $ModalImposto->getStatusOperacao(); } if ($GravaImposto) { if ($commit) { parent::gravaTrasacao($trans); } return true; } else { parent::rollbackTransacao($trans); return $this->setMotivoErro($ModalImposto->getMsg()); } } else { parent::rollbackTransacao($trans); return $this->setMotivoErro("Erro ao atualizar lançamentos contidos no agrupamento"); } } else { parent::rollbackTransacao($trans); return $this->setMotivoErro("Falha ao atualizar registro, tente novamente"); exit(); } } else { return false; } }
/** * @return string */ Public function ImpressaoComprovanteFaturamento() { $Dados = new ModellancaCrBd(); $StatusLancamento = $Dados->RecuperaCampo("F_STATUS_FINANCEIRO_ID", "F_LANCA_CR", "F_LANCA_CR_ID", $this->getCodLancamento()); /* if ($StatusLancamento != 2) { $this->setMotivoErro("Lançamento não encontra-se faturado"); return false; } */ $ManipulaBanco = new ManipulaBanco(); $AssinaturaImagem = "../../include/img/" . $ManipulaBanco->RecuperaCampo("ASSINATURA_RECIBO_IMAGEM", "PARAMETRO", 1, 1); $AssinaturaNome = $ManipulaBanco->RecuperaCampo("ASSINATURA_RECIBO_NOME", "PARAMETRO", 1, 1); $Dados = $InformacoesImpressao = $Dados->DadosLancamento($this->getCodLancamento(), false, false, 2)[0]; $Mora = (float) $Dados->getVlrMora(); $Multa = (float) $Dados->getVlrMulta(); $VlrImposto = (float) $Dados->getVlrImposto(); $ValorFatura = (float) $Dados->getValor(); $ValorDesconto = (float) $Dados->getVlrDescontoFatura(); $Encargos = number_format(($Mora + $Multa), 2); $modelImposto = new ModelImposto(); $DadosImposto = $modelImposto->DadosImpostoFromCR($Dados->getConta_receber_id()); $ISS = 0.00; $INSS = 0.00; $PIS = 0.00; $COFINS = 0.00; $CSLL = 0.00; $IRPJ = 0.00; $totalImposto = 0.00; $PISS = 0.00; $PINSS = 0.00; $PPIS = 0.00; $PCOFINS = 0.00; $PCSLL = 0.00; $PIRPJ = 0.00; $ValorDesconto = (float) !empty($ValorDesconto) ? $ValorDesconto : 0.00; $DadosImposto = $DadosImposto[0]; //Calculo Imposto $Dados->getValor(); $ValorAnterior = (float) (($ValorFatura + ($VlrImposto + $ValorDesconto) - ($Mora + $Multa))); $Outros = 0.00; $ISS = number_format(($DadosImposto['ISS'] * $ValorAnterior / 100), 2); $INSS = number_format(($DadosImposto['INSS'] * $ValorAnterior / 100), 2); $PIS = number_format(($DadosImposto['PIS'] * $ValorAnterior / 100), 2); $COFINS = number_format(($DadosImposto['COFINS'] * $ValorAnterior / 100), 2); $CSLL = number_format(($DadosImposto['CSLL'] * $ValorAnterior / 100), 2); $IRPJ = number_format(($DadosImposto['IRPJ'] * $ValorAnterior / 100), 2); $totalImposto = number_format(($ISS + $INSS + $PIS + $COFINS + $CSLL + $IRPJ), 2); $PISS = $DadosImposto['ISS']; $PINSS = $DadosImposto['INSS']; $PPIS = $DadosImposto['PIS']; $PCOFINS = $DadosImposto['COFINS']; $PCSLL = $DadosImposto['CSLL']; $PIRPJ = $DadosImposto['IRPJ']; if ($totalImposto == 0) { $totalImposto = number_format($Dados->getVlrImposto(), 2); $Outros = $Dados->getVlrImposto(); } $Outros = number_format($Outros, 2); $VlrLiquido = (float) ($ValorAnterior - $totalImposto - $ValorDesconto + ($Mora + $Multa)); $StrDescricao = "<br><br><br><b>RECEBI DE </b>" . $Dados->getRazao_social_cli() . " </b><br><br>" . "<b>A IMPORTÂNCIA DE </b> " . parent::escreverValorMoeda($Dados->getValor()) . "</b><br><br>" . "<b>REFERENTE A </b>" . $Dados->getCentroReceita() . "<br><br><br>" . ""; $impostos = " <tr > <td width='33%' style='font-size: 08pt'>ISS</td> <td width='33%' align='center' style='font-size: 08pt'>" . $PISS . "%</td> <td width='33%' align='right' style='font-size: 08pt'>" . $ISS . "</td> </tr> <tr> <td width='33%' style='font-size: 08pt'>INSS</td> <td width='33%' style='font-size: 08pt' align='center'>" . $PINSS . "%</td> <td width='33%' style='font-size: 08pt' align='right'>$INSS</td> </tr> <tr> <td width='33%' style='font-size: 08pt'>PIS</td> <td width='33%' style='font-size: 08pt'align='center'>" . $PPIS . "%</td> <td width='33%' style='font-size: 08pt' align='right'>$PIS</td> </tr> <tr> <td width='33%' style='font-size: 08pt'>COFINS</td> <td width='33%' align='center' style='font-size: 08pt'>" . $PCOFINS . "%</td> <td width='33%' align='right' style='font-size: 08pt'>$COFINS</td> </tr> <tr> <td width='33%' style='font-size: 08pt'>CSLL</td> <td width='33%' style='font-size: 08pt' align='center' >" . $PCSLL . "%</td> <td width='33%' style='font-size: 08pt' align='right'>$CSLL</td> </tr> <tr> <td width='33%' style='font-size: 08pt'>IRPJ</td> <td width='33%' align='center' style='font-size: 08pt'>" . $PIRPJ . "%</td> <td width='33%' align='right' style='font-size: 08pt'>$IRPJ</td> </tr> <tr> <td width='33%' style='font-size: 08pt'>Outros</td> <td width='33%' align='center' style='font-size: 08pt'>-</td> <td width='33%' align='right' style='font-size: 08pt'>$Outros</td> </tr>"; $HtmlPrimeiraVia = ' <head> <meta charset="utf-8"> <title>COMPROVANTE DE FATURAMENTO</title> <style> td{ font-size: 9pt; }; </style> </head> <body> <table cellspacing="0" cellpadding="0" width="657" border=1 style="border-collapse: collapse; font-size:9pt"> <tr> <td align=center> <img src="' . $this->getLogoClinica() . '" width="200" height="80"> </td> <td colspan=2> <div align="center"> <span style="font-size:9pt;" align="center" > ' . $this->getCabecalho() . ' </span> </div> </td> <tr> <tr> <td align="center" bgcolor="#B7B6B6" colspan=3 style="font-size:9pt;">COMPROVANTE DE FATURAMENTO - 1º VIA - VALOR(R$) ' . number_format($Dados->getValor(), 2) . '</td> <tr> </tr> <tr> <td colspan=3 align="left" style="font-size:9pt"> <div style="float: left; width: 30%;margin-bottom: 10px;margin-top: 10px"> <table width="10%" style="border-style: ridge;border-color: #080808;border-width: 1px"> <tbody> <tr> <td colspan="2" bgcolor="#B7B6B6"><b>Valor Bruto</b></td> <td colspan="1" bgcolor="#B7B6B6">R$' . number_format($ValorAnterior, 2) . '</td> </tr> <tr> <td><b>Imposto</b></td> <td><b>%</b></td> <td align="right"><b>Valor</b></td> </tr> ' . $impostos . ' <tr> <td colspan="2" bgcolor="#ffb6c1">Impostos</td> <td colspan="1" align="right" bgcolor="#ffb6c1">R$ ' . number_format($totalImposto, 2) . '</td> </tr> <tr> <td colspan="2" bgcolor="#f5f5dc"><b>Decontos</b></td> <td colspan="1" align="right" bgcolor="#f5f5dc">R$ ' . number_format($ValorDesconto, 2) . '</td> </tr> <tr> <td colspan="2" bgcolor="#F08080"><b>Encargos</b></td> <td colspan="1" align="right" bgcolor="#F08080">R$ ' . $Encargos . '</td> </tr> <tr> <td colspan="2" bgcolor="#7fffd4"><b>Vlr líquido </b></td> <td colspan="1" bgcolor="#7fffd4" align="right">R$' . number_format($VlrLiquido, 2) . '</td> </tr> </tbody> </table> </div> <div style="float: right; width: 70%;"> ' . $StrDescricao . ' </div> </td> </tr> <tr style="height:27.25pt" > <td colspan=1 align=center> <strong><span style="font-size:08pt; ">CIDADE</span></strong> <p style="margin-bottom:0pt; line-height:normal;"> <span style="font-size:08pt">' . $this->getCidadeClinica() . ' / ' . $this->getUfClinica() . '-' . date('d/m/Y') . '</span> </p> </td> <td colspan=2 align=center> <img src="' . $AssinaturaImagem . '" width="140" height="40"> <hr align="center" width="350" style="line-height:1"> <p style="line-height:0" align="center"> ' . $AssinaturaNome . '</p> </td> </tr> </table> <div align=center style="font-size:09pt";> </div> </body>'; $HtmlSegundaVia = ' <head> <meta charset="utf-8"> <title>COMPROVANTE DE FATURAMENTO</title> </head> <body> <table cellspacing="0" cellpadding="0" width="657" border=1 style="border-collapse: collapse; font-size:10pt"> <tr> <td align=center> <img src="' . $this->getLogoClinica() . '" width="200" height="80"> </td> <td colspan=2> <div align="center"> <span style="font-size:9pt;" align="center" > ' . $this->getCabecalho() . ' </span> </div> </td> <tr> <tr> <td align="center" bgcolor="#B7B6B6" colspan=3 style="font-size:9pt;">COMPROVANTE DE FATURAMENTO - 2º VIA VALOR(R$) ' . number_format($Dados->getValor(), 2) . '</td> <tr> </tr> <tr> <td colspan=2 align="left" style="font-size:9pt"> <div style="float: left; width: 30%;margin-bottom: 10px;margin-top: 10px"> <table width="10%" style="border-style: ridge;border-color: #080808;border-width: 1px"> <tbody> <tr> <td colspan="2" bgcolor="#B7B6B6"><b>Valor Bruto</b></td> <td colspan="1" bgcolor="#B7B6B6">R$' . number_format($ValorAnterior, 2) . '</td> </tr> <tr> <td><b>Imposto</b></td> <td><b>%</b></td> <td align="right"><b>Valor</b></td> </tr> ' . $impostos . ' <tr> <td colspan="2" bgcolor="#ffb6c1">Impostos</td> <td colspan="1" align="right" bgcolor="#ffb6c1">R$ ' . number_format($totalImposto, 2) . '</td> </tr> <tr> <td colspan="2" bgcolor="#f5f5dc"><b>Decontos</b></td> <td colspan="1" align="right" bgcolor="#f5f5dc">R$ ' . number_format($ValorDesconto, 2) . '</td> </tr> <tr> <td colspan="2" bgcolor="#F08080"><b>Encargos</b></td> <td colspan="1" align="right" bgcolor="#F08080">R$ ' . $Encargos . '</td> </tr> <tr> <td colspan="2" bgcolor="#7fffd4"><b>Vlr líquido </b></td> <td colspan="1" bgcolor="#7fffd4" align="right">R$' . number_format($VlrLiquido, 2) . '</td> </tr> </tbody> </table> </div> <div style="float: right; width: 70%;"> ' . $StrDescricao . ' </div> </td> </tr> <tr style="height:27.25pt" > <td colspan=1 align=center> <strong><span style="font-size:08pt; ">CIDADE</span></strong> <p style="margin-bottom:0pt; line-height:normal;"> <span style="font-size:08pt">' . $this->getCidadeClinica() . ' / ' . $this->getUfClinica() . '-' . date('d/m/Y') . '</span> </p> </td> <td colspan=2 align=center> <img src="' . $AssinaturaImagem . '" width="140" height="40"> <hr align="center" width="350" style="line-height:1"> <p style="line-height:0" align="center"> ' . $AssinaturaNome . '</p> </td> </tr> </table> <div align=center style="font-size:09pt";> </div> </body>'; $Html = $HtmlPrimeiraVia . "<br>--------------------------------------------------------------------------------------------------------------------------<br>" . $HtmlSegundaVia; $this->setHtmlRecibo($Html); return $Html; }