public function GravaAgrupamento($TransacaoCodigoTipoOp, $Cliente, $ValorTotal, $commit = true, $TransacaoFiltro = false) {
	//Parametro $TransacaoCodigoTipoOp = Array
	//0 -> Código do Lançamento
	//1 -> $Transacao



	if (!$TransacaoFiltro) {
	    $this->VerificaListaLancamentos(FALSE);
	} else {
	    $this->VerificaListaLancamentos(FALSE, FALSE, $TransacaoFiltro);
	}


	$this->VerificaCriteriosAgrupamento($ValorTotal);


	$Transacao = $TransacaoCodigoTipoOp[1];
	$CodParcelamento = $TransacaoCodigoTipoOp[3];

	$CodAgrupamento = parent::incrementaGenerator("GEN_F_AGRUPAMENTO_CR_ID");


	$sqlInsert = "INSERT INTO F_AGRUPAMENTO_CR (F_AGRUPAMENTO_CR_ID, EMPRESA_ID, VLR_TOTAL) VALUES ($CodAgrupamento, $Cliente, '$ValorTotal')";

	if (parent::execute_query_trans($Transacao, $sqlInsert)) {

	    //Atualiza o lançamento agrupado, referenciado-o ao agrupamento gerado

	    $SqlAtualizaLancamentoGerado = "UPDATE F_LANCA_CR SET F_REF_LANCAMENTO_AGRUPADO = $CodAgrupamento WHERE COD_PARCELAMENTO = $CodParcelamento";

	    if (!parent::execute_query_trans($Transacao, $SqlAtualizaLancamentoGerado)) {
		return false;
		exit();
	    }

	    $ArrayRegistros = unserialize($_SESSION['ArrayAgrup']);
	    $ArrayRegistros = $ArrayRegistros->getListaLancamentos();
	    foreach ($ArrayRegistros as $contas){
		$sqlUpdate = "UPDATE F_LANCA_CR SET F_AGRUPAMENTO_CR_ID = $CodAgrupamento WHERE F_LANCA_CR_ID = " . $contas->getConta_receber_id();
		if (!parent::execute_query_trans($Transacao, $sqlUpdate)) {
		    parent::rollbackTransacao($Transacao);
		    break;
		    return false;
		}
	    }
	    if ($commit) {
		parent::gravaTrasacao($Transacao);
	    }
	    return true;
	} else {
	    json_encode(array('A' => 0, 'B' => 'Falha ao relizar a opereção, tente novamente!'));
	    exit();
	    parent::rollbackTransacao($Transacao);
	    $this->setMotivoErro("Não foi possível registrar o agrupamento!");
	    return FALSE;
	}
    }
    public function Alterarlancamento($CentroCusto, $NumeroNF, $id_cr, $nome_conta, $cliente, $cod_centro_receita, $data, $valor, $data_vencimento, $cod_usuario_alteracao, $conta, $filial, $categoria, $FormaPagamento, $NumCheque) {


//Recupera o código da parcela
	$NumParcela = parent::RecuperaCampo("NUM_PARCELA", "F_LANCA_CR2", "F_LANCA_CR_ID", $id_cr);

//Recupera o código do parcelamento
	$CodParcelamento = parent::RecuperaCampo("COD_PARCELAMENTO_PAI", "F_LANCA_CR2", "F_LANCA_CR_ID", $id_cr);

	$sqlCr1 = "UPDATE F_LANCA_CR
			SET NOME_CONTA = '$nome_conta',
			EMPRESA_ID = $cliente,
			GRUPO_CAIXA = $cod_centro_receita,
			BANCO_ID = $conta,  
			SUBCATEGORIA_ID = $categoria,
			COD_FILIAL_ID = $filial,
			F_FORMA_PAGAMENTO_ID = $FormaPagamento,
			NUMERO_NF = '$NumeroNF',
			CENTRO_CUSTO_ID = $CentroCusto,
			NUM_CHEQUE = $NumCheque    
			WHERE (F_LANCA_CR_ID = $id_cr)";



	$cod_cr2 = parent::incrementaGenerator("GEN_F_LANCA_CR2_ID");

	$sql_Cr2 = "INSERT INTO F_LANCA_CR2 (
						F_LANCA_CR2_ID,
						F_LANCA_CR_ID,
						VALOR, 
						DATA_VENCIMENTO, 
						DATA_ALTERACAO, 
						ACAO_EDITAR, 
						ID_USUARIO_ALTERACAO,
						NUM_PARCELA,
						COD_PARCELAMENTO_PAI
					    ) 
				    VALUES  (  
					       $cod_cr2, 
					       $id_cr,  
					       $valor, 
					       '$data_vencimento',
					       '$data',	   
					       'S', 
					        $cod_usuario_alteracao,
						$NumParcela,
						$CodParcelamento    
					    )";

	$trans = parent::criaTransacao();

	if (parent::execute_query_trans($trans, $sqlCr1)) {
	    if (parent::execute_query_trans($trans, $sql_Cr2)) {
		parent::gravaTrasacao($trans);
		return TRUE;
	    } else {
		return FALSE;
	    }
	} else {
	    return FALSE;
	}
    }
    Public function AtualizaDadosRemessa($transacaoAtiva, $codigoSequencial, $CodConta, $NomeArquivo) {

	$data_atual = date("Y-m-d H:i:s");
	$id_usuario = $_SESSION["id_usuario"];
	//Insere os dados da remessa gerada
	$SequencialRemessa = parent::incrementaGenerator("GEN_F_GERACAO_REMESSA_ID");

	$sql_atualiza_dados_remessa = "
		INSERT INTO F_GERACAO_REMESSA 
		(
			F_GERACAO_REMESSA_ID,
			DATA_GERACAO,
			NOME_ARQUIVO, 
			CODIGO_REMESSA, 
			CHAVE_USER
		)
		VALUES 
		(
		 $SequencialRemessa,
		'$data_atual', "
		. "'$NomeArquivo', "
		. "'$codigoSequencial', "
		. "$id_usuario
		)";
	if (parent::execute_query_trans($transacaoAtiva, $sql_atualiza_dados_remessa)) {
	    if (parent::gravaTrasacao($transacaoAtiva)) {
		return TRUE;
	    } else {
		parent::rollbackTransacao($transacaoAtiva);
		return FALSE;
	    }
	}
    }
Exemplo n.º 4
0
    public function EfetuaSaqueDeposito($dataUsu, $DataOperacao, $Valor, $TipoOp, $idUsuario, $conta, $descricao, $Centro_receita, $Categoria, $Trasacao = false) {

	$CodOperacao = parent::incrementaGenerator("GEN_F_DEPOSITO_SAQUE_ID");

	//Verifica se está realizado saque ou depósito
	if ($TipoOp == "+") {
	    $Operacao = "C";
	    $NomeOperacao = "DEPOSITO";
	} else {
	    $Operacao = "D";
	    $NomeOperacao = "SAQUE";
	}

	$sql = "INSERT INTO F_DEPOSITO_SAQUE 
		(  
		   F_DEPOSITO_SAQUE_ID, 
		   DATA_USUARIO, 
		   DATA_OPERACAO, 
		   VALOR, 
		   TIPO_OPERACAO, 
		   CHAVE_USER,
		   OBSERVACAO,
		   BANCO_ID,
		   GRUPO_CAIXA_ID,
		   SUBCATEGORIA_ID
		) 
		   VALUES 
	       (
		   $CodOperacao, 
		   '$dataUsu', 
		   '$DataOperacao', 
		   '$Valor',
		   '$Operacao', 
		   $idUsuario,
		   '$descricao',
		   $conta,
		   $Centro_receita,
		   $Categoria    	
	       )";
	$trans = parent::criaTransacao();
	if (parent::execute_query_trans($trans, $sql)) {

	    if ($this->AtualizaSaldoConta($Valor, $TipoOp, $conta, $trans, "$NomeOperacao", $CodOperacao)) {
		if ($Trasacao) {
		    return $_POST["CodIdTransacao"] = array($CodOperacao, $trans, "DEPOSITO");
		} else {
		    parent::gravaTrasacao($trans);
		    return true;
		}
	    } else {
		if (!$Trasacao)
		    parent::rollbackTransacao($trans);
		return false;
	    }
	}
    }
    public function RegistraFechamento($FormaPagamento, $Dia, $TransacaoCodigoTipoOp, $CodCaixa = null) {
	//Parametro $TransacaoCodigoTipoOp = Array
	//0 -> Código do Lançamento
	//1 -> $Transacao
	//2 -> Tipo Operação (CR = CONTAS A RECEBER, DEPOSITO = DEPOSITO)

	$Cod = parent::incrementaGenerator("GEN_F_CONSOLIDACAO_DIA_ID");

	$CampoInsert = $TransacaoCodigoTipoOp[2] == "CR" ? "F_LANCA_CR_ID" : "F_DEPOSITO_SAQUE_ID";

	//Caso seja forma de pagamento cheque, atualiza somente o registro referente ao lançamento no caixa

	$StringCheque = $CodCaixa == 0 ? "" : "AND CAIXA.CAIXA_ID = $CodCaixa";

	$SqlInsert = "INSERT INTO F_CONSOLIDACAO_DIA (F_CONSOLIDACAO_DIA_ID, DIA_MOVIMENTACAO, $CampoInsert) "
		. "VALUES ($Cod, '$Dia', $TransacaoCodigoTipoOp[0])";

	if (parent::execute_query_trans($TransacaoCodigoTipoOp[1], $SqlInsert)) {
	    $Update = "UPDATE CAIXA SET F_CONSOLIDACAO_DIA_ID = $Cod WHERE FORMA_PAGAMENTO = '$FormaPagamento' AND (CAST(DATA AS DATE) = '$Dia') $StringCheque";
	    if (parent::execute_query_trans($TransacaoCodigoTipoOp[1], $Update)) {
		parent::gravaTrasacao($TransacaoCodigoTipoOp[1]);
		return true;
	    } else {
		parent::rollbackTransacao($TransacaoCodigoTipoOp[1]);
		return FALSE;
	    }
	} else {
	    parent::rollbackTransacao($TransacaoCodigoTipoOp[1]);
	    return false;
	}
    }
    public function AlteraLancamento($NumeroNF, $idCp, $valor, $vencimento, $codFor, $Resumo, $data, $id_usuario, $id_cc, $filial, $categoria, $centroDespesa, $FormaPagamento, $NumCheque) {

	$idCp2 = parent::incrementaGenerator("GEN_F_LANCA_CP2_ID");

//Recupera o código da parcela
	$NumParcela = parent::RecuperaCampo("NUM_PARCELA", "F_LANCA_CP2", "F_LANCA_CP", $idCp);

//Recupera o código do parcelamento
	$CodParcelamento = parent::RecuperaCampo("COD_PARCELAMENTO_PAI", "F_LANCA_CP2", "F_LANCA_CP", $idCp);

	$sql1 = "UPDATE F_LANCA_CP F SET 
		FORNECEDOR_ID = $codFor, 
		RESUMO = '$Resumo',
		BANCO_ID = $id_cc,
		SUBCATEGORIA_ID = $categoria,
		COD_FILIAL_ID = $filial,
		GRUPO_CAIXA = $centroDespesa,
		F_FORMA_PAGAMENTO_ID = $FormaPagamento,
		NUMERO_NF = '$NumeroNF',
		NUM_CHEQUE = $NumCheque    
		WHERE F_LANCA_CP_ID = $idCp";

	$sql2 = "INSERT INTO F_LANCA_CP2 
		    (
			F_LANCA_CP2_ID, 
			F_LANCA_CP, 
			VALOR, 
			DATA_VENCIMENTO,
			DATA_ALTERACAO,
			ACAO_EDITAR,
			USUARIO_EDICAO,
			NUM_PARCELA,
			COD_PARCELAMENTO_PAI
		    ) 
		    VALUES
		    (
			$idCp2, 
			$idCp, 
			'$valor', 
			'$vencimento',
			'$data',
			'S',
			$id_usuario,
			$NumParcela,
			$CodParcelamento    
		    );";

	$trans = parent::criaTransacao();

	if (parent::execute_query_trans($trans, $sql1)) {
	    if (parent::execute_query_trans($trans, $sql2)) {
		parent::gravaTrasacao($trans);
		return TRUE;
	    } else {
		parent::rollbackTransacao($trans);
		return FALSE;
	    }
	}
    }
    private function insert() {

	$CodCr2Anterior = parent::RecuperaCampo("F_LANCA_CR2_ID", "F_REL_F_LANCA_CR2_F_IMPOSTO", "F_LANCA_CR2_ID", $this->CR2);

	if (!$CodCr2Anterior) {

	    $codImpostoNovo = parent::incrementaGenerator("GEN_F_IMPOSTO_ID");
	    $sql = "
            INSERT INTO F_IMPOSTO
            (
                F_IMPOSTO_ID ,
                ISS,
                INSS,
                PIS ,
                COFINS,
                CSLL,
                IRPJ,
                RENTENCAO_FONTE
            )
            VALUES
            (
                $codImpostoNovo,
                " . $this->ISS . ",
                " . $this->PIS . ",
                " . $this->INSS . ",
                " . $this->COFINS . ",
                " . $this->CSll . ",
                " . $this->IRPJ . ",
                '$this->RENTENCAO_FONTE'

            )
        ";


	    if (parent::execute_query_trans($this->Trans, $sql)) {

		$sqlREL = "INSERT INTO  "
			. "F_REL_F_LANCA_CR2_F_IMPOSTO "
			. "("
			. "F_LANCA_CR2_ID,"
			. "F_IMPOSTO_ID,"
			. "CONFIG_IMPOSTO_ID"
			. ") "
			. "VALUES"
			. "("
			. "$this->CR2, "
			. "$codImpostoNovo,"
			. "$this->CodTabelaImposto" .
			")";
		if (parent::execute_query_trans($this->Trans, $sqlREL)) {
		    $this->setStatusOperacao(true);
		    return true;
		} else {
		    $this->setMsg("Não foi possível gravar o relacionamento de impostos");
		    $this->setStatusOperacao(false);
		    return false;
		}
	    } else {
		$this->setMsg("Erro a gravar imposto");
		$this->setStatusOperacao(false);
		return false;
	    }
	}
	return true;
    }