private void BB_Banco_Click(object sender, EventArgs e) { string vParam = string.Empty; if (tp_titulo.SelectedValue == null ? false : tp_titulo.SelectedValue.ToString().Trim().ToUpper().Equals("P")) { vParam = "|exists|(select 1 from tb_fin_contager x " + " where x.cd_banco = a.cd_banco " + (string.IsNullOrEmpty(CD_Conta.Text) ? ")" : " and x.cd_contager = '" + CD_Conta.Text.Trim() + "')"); } UtilPesquisa.BTN_BUSCA("DS_BANCO|Descrição|150;CD_BANCO|Código|80" , new Componentes.EditDefault[] { cd_banco, ds_banco }, new CamadaDados.Financeiro.Cadastros.TCD_CadBanco(), vParam); if ((tp_titulo.SelectedValue == null ? false : tp_titulo.SelectedValue.ToString().Trim().ToUpper().Equals("P")) && string.IsNullOrEmpty(CD_Conta.Text)) { object obj = new CamadaDados.Financeiro.Cadastros.TCD_CadContaGer().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from TB_FIN_Contager_X_Empresa x " + "where a.cd_contager = x.cd_contager " + "and x.cd_empresa = '" + CD_Empresa.Text + "')" }, new TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from TB_DIV_Usuario_X_Contager x " + "where a.cd_contager = x.cd_contager " + "and x.login = '******')" }, new TpBusca() { vNM_Campo = "a.cd_banco", vOperador = "=", vVL_Busca = "'" + cd_banco.Text.Trim() + "'" }, new TpBusca() { vNM_Campo = "isnull(a.st_contacompensacao, 'N')", vOperador = "=", vVL_Busca = "'S'" } }, "a.cd_contager"); if (obj != null) { CD_Conta.Text = obj.ToString(); } } }
private void TFLan_FechamentoCaixa_Load(object sender, EventArgs e) { Utils.ShapeGrid.RestoreShape(this, dataGridDefault1); if (!string.IsNullOrEmpty(Utils.Parametros.pubCultura)) { Idioma.TIdioma.AjustaCultura(this); } this.Icon = ResourcesUtils.TecnoAliance_ICO; bsFechamentoCaixa.AddNew(); if (bsFechamentoCaixa.Current != null) { (bsFechamentoCaixa.Current as TRegistro_LanFechamentoCaixa).Cd_contager = pCd_contager; //Buscar Descricao Conta object obj = new CamadaDados.Financeiro.Cadastros.TCD_CadContaGer().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_contager", vOperador = "=", vVL_Busca = "'" + pCd_contager.Trim() + "'" } }, "a.ds_contager"); (bsFechamentoCaixa.Current as TRegistro_LanFechamentoCaixa).Ds_contager = obj != null?obj.ToString() : string.Empty; (bsFechamentoCaixa.Current as TRegistro_LanFechamentoCaixa).Dt_fechamento = DateTime.Now; //Buscar dados do ultimo fechamento caixa da conta gerencial TList_LanFechamentoCaixa lFechamentoCaixa = CamadaNegocio.Financeiro.Caixa.TCN_LanFechamentoCaixa.Buscar(decimal.Zero, string.Empty, string.Empty, string.Empty, pCd_contager.Trim(), 1, string.Empty, "dt_fechamento desc", null); if (lFechamentoCaixa.Count > 0) { (bsFechamentoCaixa.Current as TRegistro_LanFechamentoCaixa).Dt_ultimofechamento = lFechamentoCaixa[0].Dt_fechamento; (bsFechamentoCaixa.Current as TRegistro_LanFechamentoCaixa).Vl_anterior = lFechamentoCaixa[0].Vl_atual; } bsFechamentoCaixa.ResetCurrentItem(); } afterBusca(); }
private void GerarNumeroCheque() { object obj = new CamadaDados.Financeiro.Cadastros.TCD_CadContaGer().BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_contager", vOperador = "=", vVL_Busca = "'" + CD_Conta.Text.Trim() + "'" } }, "a.nr_cheque_seq"); if (obj != null) { nr_cheque.Text = (Convert.ToDecimal(obj.ToString()) + 1).ToString(); } }
private void GerarNumeroCheque() { if (BS_Titulo.Current != null) { if ((BS_Titulo.Current as TRegistro_LanTitulo).Tp_titulo.Trim().ToUpper().Equals("P") && (!string.IsNullOrEmpty((BS_Titulo.Current as TRegistro_LanTitulo).Cd_contager.Trim()))) { if (!this.Nr_chequeLista.HasValue) { object obj = new CamadaDados.Financeiro.Cadastros.TCD_CadContaGer().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_contager", vOperador = "=", vVL_Busca = "'" + (BS_Titulo.Current as TRegistro_LanTitulo).Cd_contager.Trim() + "'" } }, "a.nr_cheque_seq"); if (obj != null) { try { nr_cheque.Text = (Convert.ToDecimal(obj.ToString()) + 1 + pIndexCheque).ToString(); } catch { } } } else { nr_cheque.Text = (Nr_chequeLista.Value + 1).ToString(); } } } }
private void bbBuscar_Click(object sender, EventArgs e) { if (bsDespesas.Current != null) { if (panelDados2.validarCampoObrigatorio()) { if (tp_pagamento.SelectedIndex.Equals(0) && string.IsNullOrWhiteSpace(cd_fornecedor.Text)) { MessageBox.Show("Obrigatório informar fornecedor para tipo de pagamento selecionado.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); cd_fornecedor.Focus(); return; } else if (tp_pagamento.SelectedIndex.Equals(1) && string.IsNullOrWhiteSpace(cd_funcionario.Text)) { MessageBox.Show("Obrigatório informar funcionário para tipo de pagamento selecionado.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); cd_funcionario.Focus(); return; } (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).Cd_empresa = vCd_Empresa; (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).Id_orcamentostr = vId_Orcamento; (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).Nr_versaostr = vNr_Versao; //Buscar config abast CamadaDados.Empreendimento.Cadastro.TList_CadCFGEmpreendimento lCfg = CamadaNegocio.Empreendimento.Cadastro.TCN_CadCFGEmpreendimento.Busca((bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).Cd_empresa, string.Empty, null); if (lCfg.Count > 0) { if (string.IsNullOrEmpty(lCfg[0].tp_dup)) { MessageBox.Show("Não existe Tp.duplicata na CFG.empreendimento cadastrada!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } } else { MessageBox.Show("Não existe CFG.empreendimento cadastrado para a empresa informada!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } //Despesa de funcionário com abatimento de adiantamento if (tp_pagamento.SelectedIndex.Equals(1)) { //Buscar conf. adiantamento CamadaDados.Financeiro.Cadastros.TList_ConfigAdto lCnfAdto = CamadaNegocio.Financeiro.Cadastros.TCN_CadConfigAdto.Buscar(vCd_Empresa, string.Empty, string.Empty, string.Empty, string.Empty, 0, string.Empty, null); if (lCnfAdto.Count.Equals(0)) { MessageBox.Show("Não existe CFG.adiantamento cadastrado para a empresa informada!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } CamadaDados.Financeiro.Duplicata.TRegistro_LanDuplicata rDup = new CamadaDados.Financeiro.Duplicata.TRegistro_LanDuplicata(); rDup.Cd_empresa = vCd_Empresa; rDup.Cd_clifor = cd_funcionario.Text; object lEndClifor = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar(new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = "'" + rDup.Cd_clifor.Trim() + "'" } }, "a.cd_endereco"); if (!lEndClifor.Equals(null)) { rDup.Cd_endereco = lEndClifor.ToString().Trim(); } rDup.Tp_docto = 2; //Duplicata rDup.Tp_duplicata = "01"; rDup.Tp_mov = lCnfAdto[0].Tp_mov_ADTO_C; rDup.Cd_historico = rDup.Cd_historico_Dup = vCd_Historico = lCnfAdto[0].Cd_historico_ADTO_C; rDup.Cd_portador = lCnfAdto[0].CD_Portador; rDup.Dt_emissao = (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).Dt_execucao; rDup.Vl_documento = (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).vl_executado; rDup.Nr_docto = (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).Nr_docto; DataTable rCond = new CamadaDados.Financeiro.Cadastros.TCD_CadCondPgto().Buscar(null, 1); rDup.Cd_condpgto = rCond.Rows[0].ItemArray[0].ToString(); rDup.Cd_moeda = rCond.Rows[0].ItemArray[5].ToString(); rDup.Cd_juro = rCond.Rows[0].ItemArray[9].ToString(); rDup.Qt_parcelas = 0; DataTable cd_contager = new CamadaDados.Financeiro.Cadastros.TCD_CadContaGer().Buscar(null, 1); if (cd_contager != null) { rDup.Cd_contager = cd_contager.Rows[0].ItemArray[0].ToString(); } rDup.Parcelas.Add(new CamadaDados.Financeiro.Duplicata.TRegistro_LanParcela() { Vl_parcela = rDup.Vl_documento, Dt_vencto = rDup.Dt_emissao, Cd_parcela = 1 }); rDup.lCred.AddRange(CamadaNegocio.Financeiro.Adiantamento.TCN_LanAdiantamento.Buscar(string.Empty, rDup.Cd_empresa, rDup.Cd_clifor, string.Empty, "'C'", string.Empty, decimal.Zero, string.Empty, string.Empty, decimal.Zero, decimal.Zero, false, false, true, string.Empty, false, false, string.Empty, string.Empty, 0, string.Empty, null)); if (rDup.lCred.Count.Equals(0)) { MessageBox.Show("Funcionário não possui adiantamento quitado para efetuar o débito de saldo.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } //Validar saldo a devolver do funcionário rDup.lCred.ForEach(p => { if (rDup.Vl_documento <= p.Vl_total_devolver) { rDup.cVl_adiantamento = rDup.Vl_documento; } }); if (rDup.cVl_adiantamento.Equals(0)) { MessageBox.Show("Crédito do funcionário é menor do que o valor da despesa."); return; } (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).rDuplicata = rDup; } else { //Procedimento para despesa da empresa using (Financeiro.TFLanDuplicata fDup = new Financeiro.TFLanDuplicata()) { fDup.vCd_empresa = vCd_Empresa; fDup.vNm_empresa = vNm_empresa; fDup.vCd_clifor = tp_pagamento.SelectedIndex.Equals(1) ? cd_funcionario.Text : cd_fornecedor.Text; fDup.vNm_clifor = tp_pagamento.SelectedIndex.Equals(1) ? nm_funcionario.Text : nm_fornecedor.Text; //Buscar endereco CamadaDados.Financeiro.Cadastros.TList_CadEndereco lEnd = CamadaNegocio.Financeiro.Cadastros.TCN_CadEndereco.Buscar(fDup.vCd_clifor, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, 1, null); if (lEnd.Count > 0) { fDup.vCd_endereco = lEnd[0].Cd_endereco; fDup.vDs_endereco = lEnd[0].Ds_endereco; } if (lCfg.Count > 0) { if (string.IsNullOrEmpty(lCfg[0].tp_dup)) { MessageBox.Show("Não existe Tp.duplicata na CFG.empreendimento cadastrada!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } fDup.vTp_docto = lCfg[0].tp_docto; fDup.vDs_tpdocto = lCfg[0].ds_docto; fDup.vTp_duplicata = string.Empty; fDup.vDs_tpduplicata = string.Empty; fDup.vTp_mov = "P"; fDup.vDt_emissao = (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).Dt_execucaostr; fDup.vVl_documento = (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).vl_executado; fDup.vNr_docto = (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).Nr_docto; fDup.St_bloquearccusto = true; if (fDup.ShowDialog() == DialogResult.OK) { if (fDup.dsDuplicata.Count > 0) { (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).rDuplicata = fDup.dsDuplicata.Current as CamadaDados.Financeiro.Duplicata.TRegistro_LanDuplicata; } vCd_Historico = fDup.vCd_historico; } } else { MessageBox.Show("Não existe configuração frota para lançar duplicata!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } } } if (CamadaNegocio.ConfigGer.TCN_CadParamGer.BuscaVL_Bool("CRESULTADO_EMPRESA", vCd_Empresa, null).Trim().ToUpper().Equals("S")) { //Verificar se historico possui centro resultado cadastrado object obj = new CamadaDados.Financeiro.Cadastros.TCD_CadHistorico().BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_historico", vOperador = "=", vVL_Busca = "'" + vCd_Historico.Trim() + "'" } }, "a.cd_centroresult"); if (obj == null ? false : !string.IsNullOrEmpty(obj.ToString())) { (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).lCCusto.Add( new CamadaDados.Financeiro.CCustoLan.TRegistro_LanCCustoLancto() { Cd_empresa = vCd_Empresa, Cd_centroresult = obj.ToString(), Vl_lancto = (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).vl_executado, Dt_lancto = (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).Dt_execucao, Tp_registro = "A" }); } else { using (Financeiro.TFRateioCResultado fRateio = new Financeiro.TFRateioCResultado()) { fRateio.vVl_Documento = (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).vl_executado; fRateio.Tp_mov = "P"; fRateio.Dt_movimento = (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).Dt_execucao; if (fRateio.ShowDialog() == DialogResult.OK) { (bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas).lCCusto = fRateio.lCResultado; } else { return; } } } } try { CamadaNegocio.Empreendimento.TCN_ExecDespesas.Gravar(bsDespesas.Current as CamadaDados.Empreendimento.TRegistro_ExecDespesas, null); MessageBox.Show("Despesa gravada com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); this.DialogResult = DialogResult.OK; } catch (Exception ex) { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } }
private void dt_fechamento_Leave(object sender, EventArgs e) { if ((dt_fechamento.Text.Trim().Equals(string.Empty)) || (dt_fechamento.Text.Trim().Equals("/ /"))) { return; } DateTime dt; try { dt = Convert.ToDateTime(dt_fechamento.Text); if (dt > DateTime.Now) { MessageBox.Show("Data de fechamento não pode ser maior que data atual.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); dt_fechamento.Focus(); return; } if ((bsFechamentoCaixa.Current as TRegistro_LanFechamentoCaixa).Dt_ultimofechamento != null) { if (dt <= (bsFechamentoCaixa.Current as TRegistro_LanFechamentoCaixa).Dt_ultimofechamento.Value) { MessageBox.Show("Data de fechamento não pode ser menor ou igual a data do ultimo fechamento.\r\n" + "Data Ultimo Fechamento: " + (bsFechamentoCaixa.Current as TRegistro_LanFechamentoCaixa).Dt_ultimofechamento.Value.ToString("dd/MM/yyyy"), "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); dt_fechamento.Focus(); return; } } } catch { MessageBox.Show("Data de fechamento invalida.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //Buscar valor atual da conta (bsFechamentoCaixa.Current as TRegistro_LanFechamentoCaixa).Vl_atual = TCN_LanCaixa.BuscarSaldoCaixaData(CD_ContaGer.Text, dt_fechamento.Data, null); object obj = new CamadaDados.Financeiro.Titulo.TCD_LanTitulo().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "isnull(a.status_compensado, 'N')", vOperador = "=", vVL_Busca = "'N'" }, new TpBusca() { vNM_Campo = "a.tp_titulo", vOperador = "=", vVL_Busca = "'R'" }, new TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_fin_titulo_x_caixa x " + "inner join tb_fin_caixa y " + "on x.cd_contager = y.cd_contager " + "and x.cd_lanctocaixa = y.cd_lanctocaixa " + "where x.cd_empresa = a.cd_empresa " + "and x.cd_banco = a.cd_banco " + "and x.nr_lanctocheque = a.nr_lanctocheque " + "and y.cd_contager = '" + CD_ContaGer.Text.Trim() + "' " + "and isnull(y.st_estorno, 'N') <> 'S' " + "and CONVERT(datetime, FLOOR(CONVERT(decimal(30,10), y.DT_Lancto))) <= '" + dt_fechamento.Data.ToString("yyyyMMdd") + "')" } }, "isnull(sum(a.vl_titulo), 0)"); (bsFechamentoCaixa.Current as TRegistro_LanFechamentoCaixa).Vl_ch_rec_compensar = obj != null?decimal.Parse(obj.ToString()) : decimal.Zero; obj = new CamadaDados.Financeiro.Titulo.TCD_LanTitulo().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "isnull(a.status_compensado, 'N')", vOperador = "=", vVL_Busca = "'N'" }, new TpBusca() { vNM_Campo = "a.tp_titulo", vOperador = "=", vVL_Busca = "'R'" }, new TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_fin_titulo_x_caixa x " + "inner join tb_fin_caixa y " + "on x.cd_contager = y.cd_contager " + "and x.cd_lanctocaixa = y.cd_lanctocaixa " + "inner join tb_fin_contager z " + "on y.cd_contager = c.cd_contager_compensacao " + "where x.cd_empresa = a.cd_empresa " + "and x.cd_banco = a.cd_banco " + "and x.nr_lanctocheque = a.nr_lanctocheque " + "and z.cd_contager = '" + CD_ContaGer.Text.Trim() + "' " + "and isnull(y.st_estorno, 'N') <> 'S' " + "and CONVERT(datetime, FLOOR(CONVERT(decimal(30,10), y.DT_Lancto))) <= '" + dt_fechamento.Data.ToString("yyyyMMdd") + "')" } }, "isnull(sum(a.vl_titulo), 0)"); (bsFechamentoCaixa.Current as TRegistro_LanFechamentoCaixa).Vl_ch_emit_compensar = obj != null?decimal.Parse(obj.ToString()) : decimal.Zero; //Verificar se a conta e de compensacao object obj_conta = new CamadaDados.Financeiro.Cadastros.TCD_CadContaGer().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_contager", vOperador = "=", vVL_Busca = "'" + CD_ContaGer.Text.Trim() + "'" }, new TpBusca() { vNM_Campo = "isnull(a.st_contacompensacao, 'N')", vOperador = "=", vVL_Busca = "'S'" } }, "1"); (bsFechamentoCaixa.Current as TRegistro_LanFechamentoCaixa).Vl_saldofuturo = (bsFechamentoCaixa.Current as TRegistro_LanFechamentoCaixa).Vl_atual - (obj_conta == null ? (bsFechamentoCaixa.Current as TRegistro_LanFechamentoCaixa).Vl_ch_emit_compensar : (bsFechamentoCaixa.Current as TRegistro_LanFechamentoCaixa).Vl_ch_emit_compensar * -1); bsFechamentoCaixa.ResetCurrentItem(); }
public static void ProcessarLoteCH(TRegistro_LoteCH val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_LoteCH qtb_lote = new TCD_LoteCH(); try { if (banco == null) { st_transacao = qtb_lote.CriarBanco_Dados(true); } else { qtb_lote.Banco_Dados = banco; } //Buscar config para descontar cheque CamadaDados.Financeiro.Cadastros.TList_CFGCheque lCfg = CamadaNegocio.Financeiro.Cadastros.TCN_CFGCheque.Buscar(val.Cd_empresa, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, 1, string.Empty, qtb_lote.Banco_Dados); if (lCfg.Count < 1) { throw new Exception("Não existe configuração para processar desconto de cheques."); } if (lCfg[0].Cd_historico_desconto.Trim().Equals(string.Empty)) { throw new Exception("Não existe configuração de historico de desconto para processar cheques."); } if (lCfg[0].Cd_historico_taxa.Trim().Equals(string.Empty)) { throw new Exception("Não existe configuração de historico de taxa para processar cheques."); } if (lCfg[0].Cd_historico_creddesconto.Trim().Equals(string.Empty)) { throw new Exception("Não existe configuração de historico de credito de desconto para processar cheques."); } //Total cheque descontar decimal tot_ch_descontar = val.lCheques.Where(p => p.St_conciliar).Sum(p => p.Vl_titulo); //Total taxa decimal tot_taxa = decimal.Zero; int cont = 0; //Buscar conta de compensacao do cheque object obj = new CamadaDados.Financeiro.Cadastros.TCD_CadContaGer().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_contager_compensacao", vOperador = "=", vVL_Busca = "'" + val.lCheques[0].Cd_contager.Trim() + "'" } }, "a.cd_contager"); if (obj == null) { throw new Exception("Não existe conta de compensação configurada para a conta gerencial " + val.lCheques[0].Cd_contager.Trim()); } if (obj.ToString().Trim().Equals(string.Empty)) { throw new Exception("Não existe conta de compensação configurada para a conta gerencial " + val.lCheques[0].Cd_contager.Trim()); } val.lCheques.ForEach(p => { if (p.St_conciliar) { //Compensar cheque descontado p.Dt_compensacao = val.Dt_processamento; p.Cd_contager_destino = obj.ToString(); CamadaNegocio.Financeiro.Titulo.TCN_LanTitulo.CompensarCheques( new TList_RegLanTitulo() { p }, qtb_lote.Banco_Dados); decimal taxa = Math.Round((val.Vl_taxa * (p.Vl_titulo / tot_ch_descontar * 100) / 100), 2); if (cont.Equals(val.lCheques.Count - 1)) { taxa += (val.Vl_taxa - (tot_taxa + taxa)); } //Gravar lancamento de caixa devolvendo credito adiantado pelo banco string ret_caixa = CamadaNegocio.Financeiro.Caixa.TCN_LanCaixa.GravaLanCaixa( new CamadaDados.Financeiro.Caixa.TRegistro_LanCaixa() { Cd_ContaGer = obj.ToString(), Cd_Empresa = p.Cd_empresa, Cd_Historico = lCfg[0].Cd_historico_desconto, Cd_LanctoCaixa = 0, ComplHistorico = "DEVOLUCAO CREDITO DESCONTO CHEQUE " + p.Nr_cheque.Trim(), Dt_lancto = val.Dt_processamento, NM_Clifor = p.Nomeclifor, Nr_Docto = p.Nr_cheque, Vl_PAGAR = Math.Round(p.Vl_titulo - taxa, 2), Vl_RECEBER = decimal.Zero }, qtb_lote.Banco_Dados); //Gravar Cheque X Caixa CamadaNegocio.Financeiro.Titulo.TCN_TituloXCaixa.GravarTituloCaixa( new TRegistro_LanTituloXCaixa() { Cd_banco = p.Cd_banco, Cd_contager = obj.ToString(), Cd_empresa = p.Cd_empresa, Cd_lanctocaixa = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(ret_caixa, "@P_CD_LANCTOCAIXA")), Nr_lanctocheque = p.Nr_lanctocheque }, qtb_lote.Banco_Dados); //Gravar Lote X Caixa CamadaNegocio.Financeiro.Titulo.TCN_LoteCH_X_Caixa.GravarLoteCH_X_Caixa( new TRegistro_LoteCH_X_Caixa() { Cd_banco = p.Cd_banco, Cd_contager = obj.ToString(), Cd_empresa = p.Cd_empresa, Cd_lanctocaixa = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(ret_caixa, "@P_CD_LANCTOCAIXA")), Nr_lanctocheque = p.Nr_lanctocheque }, qtb_lote.Banco_Dados); //Gravar lancamento de caixa debitando taxa cobrada pelo banco string ret_taxa = CamadaNegocio.Financeiro.Caixa.TCN_LanCaixa.GravaLanCaixa( new CamadaDados.Financeiro.Caixa.TRegistro_LanCaixa() { Cd_ContaGer = obj.ToString(), Cd_Empresa = p.Cd_empresa, Cd_Historico = lCfg[0].Cd_historico_taxa, Cd_LanctoCaixa = 0, ComplHistorico = "TAXA DESCONTO CHEQUE " + p.Nr_cheque.Trim(), Dt_lancto = val.Dt_processamento, NM_Clifor = p.Nomeclifor, Nr_Docto = p.Nr_cheque, Vl_PAGAR = taxa, Vl_RECEBER = decimal.Zero }, qtb_lote.Banco_Dados); //Gravar cheque X Caixa CamadaNegocio.Financeiro.Titulo.TCN_TituloXCaixa.GravarTituloCaixa( new TRegistro_LanTituloXCaixa() { Cd_banco = p.Cd_banco, Cd_contager = obj.ToString(), Cd_empresa = p.Cd_empresa, Cd_lanctocaixa = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(ret_taxa, "@P_CD_LANCTOCAIXA")), Nr_lanctocheque = p.Nr_lanctocheque }, qtb_lote.Banco_Dados); //Gravar Lote X Caixa CamadaNegocio.Financeiro.Titulo.TCN_LoteCH_X_Caixa.GravarLoteCH_X_Caixa( new TRegistro_LoteCH_X_Caixa() { Cd_banco = p.Cd_banco, Cd_contager = obj.ToString(), Cd_empresa = p.Cd_empresa, Cd_lanctocaixa = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(ret_taxa, "@P_CD_LANCTOCAIXA")), Nr_lanctocheque = p.Nr_lanctocheque }, qtb_lote.Banco_Dados); //Totalizar taxas tot_taxa += taxa; } else { //Os cheques que nao forem descontados, //transferir de volta para a conta de origem CamadaDados.Financeiro.Titulo.TList_TransfTitulo lTransf = CamadaNegocio.Financeiro.Titulo.TCN_TransfTitulo.Buscar(p.Cd_empresa, string.Empty, p.Cd_contager, decimal.Zero, decimal.Zero, decimal.Zero, p.Cd_banco, 1, string.Empty, qtb_lote.Banco_Dados); if (lTransf.Count < 1) { throw new Exception("Registro transferencia nao encontrado."); } //Realizar a transferencia dos cheques entre contas p.Cd_contager_destino = lTransf[0].Cd_conta_orig; p.Dt_compensacao = val.Dt_processamento; //Setar status do cheque para enviado p.Status_compensado = "N"; //A Compensar TCN_LanTitulo.TransferirTitulo(p, qtb_lote.Banco_Dados); //Gravar somente o cheque sem mecher no lancamento de caixa p.St_lancarcaixa = false; TCN_LanTitulo.GravarTitulo(p, qtb_lote.Banco_Dados); //Deletar amarracao do cheque com o lote TCN_LoteCH_X_Titulo.DeletarLoteCh_X_Titulo( new TRegistro_LoteCH_X_Titulo() { Cd_banco = p.Cd_banco, Cd_empresa = p.Cd_empresa, Id_lote = val.Id_lote, Nr_lanctocheque = p.Nr_lanctocheque }, qtb_lote.Banco_Dados); } cont++; }); //Gravar lancamento de caixa creditando o valor adiantado pelo banco string ret_cred = CamadaNegocio.Financeiro.Caixa.TCN_LanCaixa.GravaLanCaixa( new CamadaDados.Financeiro.Caixa.TRegistro_LanCaixa() { Cd_ContaGer = obj.ToString(), Cd_Empresa = val.Cd_empresa, Cd_Historico = lCfg[0].Cd_historico_creddesconto, Cd_LanctoCaixa = 0, ComplHistorico = "CREDITO DESCONTO CHEQUE DO LOTE" + val.Id_lote.ToString(), Dt_lancto = val.Dt_processamento, NM_Clifor = string.Empty, Nr_Docto = val.Id_lote.ToString(), Vl_PAGAR = decimal.Zero, Vl_RECEBER = val.Vl_credito }, qtb_lote.Banco_Dados); //Gravar lote val.St_registro = "P";//Processado val.Cd_contager = string.Empty; val.Cd_lanctocaixa = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(ret_cred, "@P_CD_LANCTOCAIXA")); qtb_lote.GravarLoteCH(val); if (st_transacao) { qtb_lote.Banco_Dados.Commit_Tran(); } } catch (Exception ex) { if (st_transacao) { qtb_lote.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro processar lote: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_lote.deletarBanco_Dados(); } } }