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