private function GeraCr() {

	$ModelCr = new ModellancaCrBd();

	$ValorParcela = Array();
	$VencimentoParcela = Array();
	$String = new CString();

	$TipoFechamento = $this->getTipoFechamento();

	//Dia de Vencimento 
	$DataVencimento = $this->DiaVencimentoTabela($this->getCodConfiguracaoFechamento());

	array_push($VencimentoParcela, $DataVencimento);

	//Método que efetua o lançamento de  contas a receber, recebe o parâmetro referente ao valro das parcelas como array 
	array_push($ValorParcela, 'R$ ' . str_replace('.', ",", $this->getValor()));

	if ($ModelCr->GravarLancamento('NULL', $this->getIdFechamento(), 'NULL', 'NULL', 'NULL', $this->getObservacao(), $this->getCodEmp(), $this->getCodGrupoGerarLancamentoCr(), $VencimentoParcela, $_SESSION['id_usuario'], $this->getCodContaCC(), $this->getCodSubCategoriaGerarLancamentoCr(), $this->getCodFilial(), 1, $ValorParcela, $String, $this->getCodFechamentoSigmo(), 1, 'NULL', false, 'NULL', $this->getTransacao(), true)) {
	    //Popula o array com os lançamentos gerados
	    $this->PopulaArrayCrGerado($_POST["CodCrTransacao"][0], $_POST["CodCrTransacao"]);
	    return true;
	} else {
	    $this->setMsg("Não foi possível criar o lançamento de contas a receber referente ao fechamento " . $this->getCodFechamentoSigmo() . " " . $TipoFechamento . " (ID =" . $this->getIdFechamento() . ") \n" . $ModelCr->getMotivoErro());
	    return false;
	}
    }
Ejemplo n.º 2
0
    public function ImportaVencimentoFatura() {

	$sql = "SELECT * FROM VENCIMENTO_FATURA  WHERE  RECEBIDO = 'N'";

	if ($result = parent::execute_query($sql)) {


	    $CR = new ModellancaCrBd();
	    $Data = new Data();
	    $String = new CString();

	    while ($linha = parent::criaObjetoConsulta($result)){


		$linha->VENCIMENTO_FATURA_ID;
		$linha->BANCO_ID;
		$linha->OBSERVACAO;
		$linha->EMPRESA_ID;
		$linha->FORMA_PAGAMENTO;
		$linha->DATA_VENCIMENTO;
		$linha->VALOR_FINAL;



		//Associa a forma de pagamento aos códigos do pagamento
		switch ($linha->FORMA_PAGAMENTO){
		    case "BOLETO":
			$Cod = 1;
			break;
		    case "CARTAO_CREDITO":
			$Cod = 2;
			break;
		    case "CARTAO_DEBITO":
			$Cod = 3;
			break;

		    case "DINHEIRO":
			$Cod = 4;
			break;
		}


		$linha->UCIDUSER = 1;


		if (!$linha->BANCO_ID) {
		    $linha->BANCO_ID = 1;
		}

		$linha->CENTRO_CUSTO_ID = 'NULL';

		$linha->UCIDUSER = 1;

		$linha->GRUPO_ID = 194;


		//Verifica a quantidade de parcelas do lançamento
		$sqlVerificaQtdParcelas = "SELECT COUNT(VENCIMENTO_FATURA_ID) AS TOTAL FROM  VENCIMENTO_FATURA WHERE VENCIMENTO_FATURA_ID =" . $linha->VENCIMENTO_FATURA_ID;
		$resultParcelas = parent::execute_query($sqlVerificaQtdParcelas);
		$linhaParcela = parent::criaObjetoConsulta($resultParcelas);
		$Total = $linhaParcela->TOTAL;

		if ($Total >= 1) {
		    $TotParcelas = $Total;
		    $ValorParcela = Array();
		    $VencimentoParcela = Array();
		    $Pais = Array();

		    $resultFilhos = parent::execute_query("SELECT * FROM VENCIMENTO_FATURA VF WHERE VF.ORIGEM_VENCIMENTO_FATURA_ID =" . $linha->VENCIMENTO_FATURA_ID);
		    while ($linhaFilhos = parent::criaObjetoConsulta($resultFilhos)){
			$Parcela = parent::RecuperaCampo("VALOR_FINAL", "VENCIMENTO_FATURA", "VENCIMENTO_FATURA_ID", ($linhaFilhos->VENCIMENTO_FATURA_ID));
			$DataVencimento = parent::RecuperaCampo("DATA_VENCIMENTO", "VENCIMENTO_FATURA", "VENCIMENTO_FATURA_ID", ($linhaFilhos->VENCIMENTO_FATURA_ID));
			array_push($ValorParcela, 'R$ ' . str_replace('.', ",", $Parcela));
			array_push($VencimentoParcela, $Data->convertDataBrasileira($DataVencimento));
			array_push($Pais, $linhaFilhos->VENCIMENTO_FATURA_ID);
		    }


		    if (!$CR->GravarLancamento(0, $linha->CENTRO_CUSTO_ID, 0, $linha->OBSERVACAO, $linha->EMPRESA_ID, $linha->GRUPO_ID, $VencimentoParcela, $linha->UCIDUSER, $linha->BANCO_ID, 134, 5, $TotParcelas, $ValorParcela, $String, 0, $Cod, $Pais, NULL, 0)) {
			break;
			return false;
		    }
		}
	    }
	}
    }
    public function Gravar() {

	//Variável iniciada como false, pois de maneira geral as transações serão comitadas
	//porém, em algumas situações específicas, o lançamento será comitado em outro momento
	$ExecutaTransacao = true;
	$retornaTrans = false;

	$Datas = new Data();
	$String = new CString();

	if ($_POST["NameForm"] == "FormFechamentoDiario") {
	    //Caso seja fechamento diário, verifica se o valor recebido através do form
	    //condiz com a soma dos valores do caixa, de acordo com a forma de pagamento
	    $ValorDia = (new ModelPendencias())->VerificaTotalDiaFormaPagamento($Datas->convertDataSql($_POST["diaf"]), $_POST["formap"], base64_decode($_POST["caixaId"]));
	    if ($ValorDia != $String->limpa_moeda($_POST["valor"])) {
		$this->setMotivoErro("Não foi possível garantir a integridade dos valores, refaça a operação");
		echo json_encode(array('A' => 0, 'B' => $GravaLancamento->getMotivoErro()));
		exit();
	    }
	    $ExecutaTransacao = false;
	    $retornaTrans = true;
	}

	//Caso seja lançamento agrupado, verifica os critério do método que fará a validação da rotina
	if ($_POST["NameForm"] == "FormAgrupamento") {
	    $ExecutaTransacao = false;
	    $retornaTrans = true;
	}

	//Verifica se o lançamento é parcelado
	if (isset($_POST['check_parcelas'])) {
	    $NumParcelas = count($_POST['vencimentoParcela']);
	    $ArrayValorParcelas = $_POST["Valorparcela"];
	    $Parcelamento = true;
	} else {
	    $NumParcelas = 1;
	    $ArrayValorParcelas = null;
	    $Parcelamento = False;
	}

	if ($NumParcelas > 1) {
	    $totalParcelas = 0;
	    //Verifica se a soma das parcelas condiz com o total do lançamento
	    for ($i = 0; $i < count($_POST["Valorparcela"]); $i++){
		$totalParcelas += $String->limpa_moeda($_POST['Valorparcela'][$i]);
		if (trim(($_POST['vencimentoParcela'][$i] == "")) || trim(($_POST['Valorparcela'][$i] == "Valorparcela"))) {
		    echo json_encode(array('A' => 0, 'B' => "Preencha o valor de dada de vencimento de todas as parcelas \n "));
		    exit();
		}
	    }
	    if (trim($totalParcelas) != trim($String->limpa_moeda($_POST['valor']))) {
		echo json_encode(array('A' => 0, 'B' => "Soma das parcelas diverge do valor total do lançamento"));
		exit();
	    }
	}


	$cliente = isset($_POST['cliente']) ? $_POST['cliente'] : 'NULL';
	$descricao = isset($_POST['descricao']) ? $String->convertem(strip_tags($_POST['descricao']), 1) : '';
	$centroReceita = ($_POST['centro_receita'] != "") ? $_POST['centro_receita'] : 'NULL';
	$conta = isset($_POST['conta']) ? $_POST['conta'] : '';
	$categoria = ($_POST['categoria'] != "") ? $_POST['categoria'] : 'NULL';
	$filial = $_POST["filial"];
	$vencimento = (!$Parcelamento) ? array($_POST['vencimento']) : $_POST['vencimentoParcela'];
	$ArrayValorParcelas = ($ArrayValorParcelas == null) ? array($_POST['valor']) : $ArrayValorParcelas;
	$CodFechamento = isset($_POST['codFechamento']) ? $String->descriptografa($_POST['codFechamento']) : 'NULL';
	$PkFechamento = isset($_POST['pkFechamento']) ? $String->descriptografa($_POST['pkFechamento']) : 'NULL';
	$FormaPagamento = ($_POST['forma_pagamento'] != "") ? $_POST['forma_pagamento'] : 'NULL';
	$NumeroNF = isset($_POST['numero_nf']) ? $_POST['numero_nf'] : '';
	$NumCheque = !empty($_POST['num_cheque']) ? $_POST['num_cheque'] : 'NULL';
	$CentroCusto = isset($_POST['centro_custo']) ? $_POST['centro_custo'] : 'NULL';
	$CodServico = !empty($_POST['servico']) ? trim($_POST['servico']) : 'NULL';
	$CodOrigemResiduo = isset($_POST['cod_origem_residuo']) ? $String->descriptografa($_POST['cod_origem_residuo']) : 'NULL';
	$GravaLancamento = new ModellancaCrBd();


	$a = $_POST["NameForm"];

	//Verifica se o usuário possui acesso limitado ao módulo recepção
	if ($_SESSION["modulo_recepcao"] != "S")
	    $Redir = "VlancaCr.php";
	else
	    $Redir = "VlancaCrRecepcao.php";

	if ($GravaLancamento->GravarLancamento($CodOrigemResiduo, $PkFechamento, $CodServico, $CentroCusto, $NumeroNF, $descricao, $cliente, $centroReceita, $vencimento, $_SESSION["id_usuario"], $conta, $categoria, $filial, $NumParcelas, $ArrayValorParcelas, $String, $CodFechamento, $FormaPagamento, 'null', $ExecutaTransacao, $NumCheque, false, $retornaTrans)) {
	    //Caso esteja efetuando o fechamento diário
	    if (trim($_POST["NameForm"]) == "FormFechamentoDiario")
		if ((new ModelPendencias ())->RegistraFechamento($_POST["formap"], $Datas->convertDataSql($_POST["diaf"]), $_POST["CodCrTransacao"], base64_decode($_POST["caixaId"]))) {
		    $Redir = "VFechamentoDiario.php";
		    echo json_encode(array('A' => 1, 'B' => $Redir));
		    exit();
		}
	    //Quando se tratar de lançamento agrupado
	    if ($_POST["NameForm"] == "FormAgrupamento") {
		if (unserialize($_SESSION['ArrayAgrup'])->GravaAgrupamento($_POST["CodCrTransacao"], $cliente, $String->limpa_moeda($_POST['valor']))) {
		    unset($_SESSION['ArrayAgrup']);
		    echo json_encode(array('A' => 1, 'B' => $Redir));
		    exit();
		} else {
		    echo json_encode(array('A' => 0, 'B' => $GravaLancamento->getMotivoErro()));
		}
	    }
	    echo json_encode(array('A' => 1, 'B' => $Redir));
	    exit();
	} else {
	    echo json_encode(array('A' => 0, 'B' => $GravaLancamento->getMotivoErro()));
	    exit();
	}
    }