public TList_Zeramento_X_Lote Select(Utils.TpBusca[] vBusca, Int32 vTop, string vNM_Campo) { TList_Zeramento_X_Lote lista = new TList_Zeramento_X_Lote(); System.Data.SqlClient.SqlDataReader reader = null; bool podeFecharBco = false; if (Banco_Dados == null) { podeFecharBco = this.CriarBanco_Dados(false); } try { reader = this.ExecutarBusca(this.SqlCodeBusca(vBusca, Convert.ToInt16(vTop), vNM_Campo)); while (reader.Read()) { TRegistro_Zeramento_X_Lote reg = new TRegistro_Zeramento_X_Lote(); if (!reader.IsDBNull(reader.GetOrdinal("cd_empresa"))) { reg.Cd_empresa = reader.GetString(reader.GetOrdinal("cd_empresa")); } if (!reader.IsDBNull(reader.GetOrdinal("id_zeramento"))) { reg.Id_zeramento = reader.GetDecimal(reader.GetOrdinal("id_zeramento")); } if (!reader.IsDBNull(reader.GetOrdinal("id_lotectb"))) { reg.Id_loteCTB = reader.GetDecimal(reader.GetOrdinal("id_lotectb")); } lista.Add(reg); } } finally { reader.Close(); reader.Dispose(); if (podeFecharBco) { this.deletarBanco_Dados(); } } return(lista); }
public static void Zeramento(CamadaDados.Contabil.Cadastro.TRegistro_Cad_CTB_ParamZeramento rParam, DateTime?Dt_ini, DateTime?Dt_fin, string Complemento, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_Zeramento qtb_zeramento = new TCD_Zeramento(); try { if (banco == null) { st_transacao = qtb_zeramento.CriarBanco_Dados(true); } else { qtb_zeramento.Banco_Dados = banco; } //Gerar Balanco no Periodo List <TRegistro_BalancoSintetico> Balanco = TCN_LanContabil.GerarBalanco(rParam.Cd_empresa, string.Empty, string.Empty, Dt_ini, Dt_fin, true, false, string.Empty, false, false); //Lista Lancamento Contabeis Gerados TList_Zeramento_X_Lote lLoteZeramento = new TList_Zeramento_X_Lote(); //Zerar Receitas Balanco.Where(p => p.Tp_conta.Trim().ToUpper().Equals("A") && p.Classificacao.Trim().StartsWith(rParam.Cd_classifreceitas.Trim())).ToList().ForEach(p => { //Gravar Lote string id_loteCTB = TCN_LoteCTB.Gravar(new TRegistro_LoteCTB() { Tp_integracao = "ZR" }, qtb_zeramento.Banco_Dados); //Gravar Lancamentos Contabeis TCN_LanContabil.GravarContabil( new List <TRegistro_LanctosCTB>() { new TRegistro_LanctosCTB() { Cd_empresa = rParam.Cd_empresa, Data = Dt_fin, Ds_compl_historico = "Zeramento", Nr_docto = "ZR", Id_lotectbstr = id_loteCTB, Valor = Math.Abs(p.Vl_atual), Cd_conta_ctb = p.Vl_atual > decimal.Zero ? p.Cd_contaCTB : rParam.Cd_contaresultado } }, new List <TRegistro_LanctosCTB>() { new TRegistro_LanctosCTB() { Cd_empresa = rParam.Cd_empresa, Data = Dt_fin, Ds_compl_historico = "Zeramento", Nr_docto = "ZR", Id_lotectbstr = id_loteCTB, Valor = Math.Abs(p.Vl_atual), Cd_conta_ctb = p.Vl_atual > decimal.Zero ? rParam.Cd_contaresultado : p.Cd_contaCTB } }, false, qtb_zeramento.Banco_Dados); lLoteZeramento.Add(new TRegistro_Zeramento_X_Lote() { Cd_empresa = rParam.Cd_empresa, Id_loteCTBstr = id_loteCTB }); }); //Zerar Despesas Balanco.Where(p => p.Tp_conta.Trim().ToUpper().Equals("A") && p.Classificacao.Trim().StartsWith(rParam.Cd_classifdespesas.Trim())).ToList().ForEach(p => { //Gravar Lote string id_loteCTB = TCN_LoteCTB.Gravar(new TRegistro_LoteCTB() { Tp_integracao = "ZR" }, qtb_zeramento.Banco_Dados); //Gravar Lancamentos Contabeis TCN_LanContabil.GravarContabil( new List <TRegistro_LanctosCTB>() { new TRegistro_LanctosCTB() { Cd_empresa = rParam.Cd_empresa, Data = Dt_fin, Ds_compl_historico = "Zeramento", Nr_docto = "ZR", Id_lotectbstr = id_loteCTB, Valor = Math.Abs(p.Vl_atual), Cd_conta_ctb = p.Vl_atual > decimal.Zero ? rParam.Cd_contaresultado : p.Cd_contaCTB } }, new List <TRegistro_LanctosCTB>() { new TRegistro_LanctosCTB() { Cd_empresa = rParam.Cd_empresa, Data = Dt_fin, Ds_compl_historico = "Zeramento", Nr_docto = "ZR", Id_lotectbstr = id_loteCTB, Valor = Math.Abs(p.Vl_atual), Cd_conta_ctb = p.Vl_atual > decimal.Zero ? p.Cd_contaCTB : rParam.Cd_contaresultado } }, false, qtb_zeramento.Banco_Dados); lLoteZeramento.Add(new TRegistro_Zeramento_X_Lote() { Cd_empresa = rParam.Cd_empresa, Id_loteCTBstr = id_loteCTB }); }); //Zerar Custos Balanco.Where(p => p.Tp_conta.Trim().ToUpper().Equals("A") && p.Classificacao.Trim().StartsWith(rParam.Cd_classifcusto.Trim())).ToList().ForEach(p => { //Gravar Lote string id_loteCTB = TCN_LoteCTB.Gravar(new TRegistro_LoteCTB() { Tp_integracao = "ZR" }, qtb_zeramento.Banco_Dados); //Gravar Lancamentos Contabeis TCN_LanContabil.GravarContabil( new List <TRegistro_LanctosCTB>() { new TRegistro_LanctosCTB() { Cd_empresa = rParam.Cd_empresa, Data = Dt_fin, Ds_compl_historico = "Zeramento", Nr_docto = "ZR", Id_lotectbstr = id_loteCTB, Valor = Math.Abs(p.Vl_atual), Cd_conta_ctb = p.Vl_atual > decimal.Zero ? rParam.Cd_contaresultado : p.Cd_contaCTB } }, new List <TRegistro_LanctosCTB>() { new TRegistro_LanctosCTB() { Cd_empresa = rParam.Cd_empresa, Data = Dt_fin, Ds_compl_historico = "Zeramento", Nr_docto = "ZR", Id_lotectbstr = id_loteCTB, Valor = Math.Abs(p.Vl_atual), Cd_conta_ctb = p.Vl_atual > decimal.Zero ? p.Cd_contaCTB : rParam.Cd_contaresultado } }, false, qtb_zeramento.Banco_Dados); lLoteZeramento.Add(new TRegistro_Zeramento_X_Lote() { Cd_empresa = rParam.Cd_empresa, Id_loteCTBstr = id_loteCTB }); }); decimal resultado = Balanco.Find(p => p.Classificacao.Trim().Equals(rParam.Cd_classifreceitas.Trim())).Vl_atual - Balanco.Find(p => p.Classificacao.Trim().Equals(rParam.Cd_classifdespesas.Trim())).Vl_atual - Balanco.Find(p => p.Classificacao.Trim().Equals(rParam.Cd_classifcusto.Trim())).Vl_atual; if (resultado > decimal.Zero && rParam.Cd_cResultadoL.HasValue) { //Gravar Lote string id_loteCTB = TCN_LoteCTB.Gravar(new TRegistro_LoteCTB() { Tp_integracao = "ZR" }, qtb_zeramento.Banco_Dados); //Gravar Lancamentos Contabeis TCN_LanContabil.GravarContabil( new List <TRegistro_LanctosCTB>() { new TRegistro_LanctosCTB() { Cd_empresa = rParam.Cd_empresa, Data = Dt_fin, Ds_compl_historico = "Zeramento", Nr_docto = "ZR", Id_lotectbstr = id_loteCTB, Valor = resultado, Cd_conta_ctb = rParam.Cd_contaresultado } }, new List <TRegistro_LanctosCTB>() { new TRegistro_LanctosCTB() { Cd_empresa = rParam.Cd_empresa, Data = Dt_fin, Ds_compl_historico = "Zeramento", Nr_docto = "ZR", Id_lotectbstr = id_loteCTB, Valor = resultado, Cd_conta_ctb = rParam.Cd_cResultadoL } }, false, qtb_zeramento.Banco_Dados); lLoteZeramento.Add(new TRegistro_Zeramento_X_Lote() { Cd_empresa = rParam.Cd_empresa, Id_loteCTBstr = id_loteCTB }); } else if (resultado < decimal.Zero && rParam.Cd_cResultadoP.HasValue) { //Gravar Lote string id_loteCTB = TCN_LoteCTB.Gravar(new TRegistro_LoteCTB() { Tp_integracao = "ZR" }, qtb_zeramento.Banco_Dados); //Gravar Lancamentos Contabeis TCN_LanContabil.GravarContabil( new List <TRegistro_LanctosCTB>() { new TRegistro_LanctosCTB() { Cd_empresa = rParam.Cd_empresa, Data = Dt_fin, Ds_compl_historico = "Zeramento", Nr_docto = "ZR", Id_lotectbstr = id_loteCTB, Valor = Math.Abs(resultado), Cd_conta_ctb = rParam.Cd_cResultadoP } }, new List <TRegistro_LanctosCTB>() { new TRegistro_LanctosCTB() { Cd_empresa = rParam.Cd_empresa, Data = Dt_fin, Ds_compl_historico = "Zeramento", Nr_docto = "ZR", Id_lotectbstr = id_loteCTB, Valor = Math.Abs(resultado), Cd_conta_ctb = rParam.Cd_contaresultado } }, false, qtb_zeramento.Banco_Dados); lLoteZeramento.Add(new TRegistro_Zeramento_X_Lote() { Cd_empresa = rParam.Cd_empresa, Id_loteCTBstr = id_loteCTB }); } //Gravar Registro Zeramento string id_zeramento = Gravar(new TRegistro_Zeramento() { Cd_empresa = rParam.Cd_empresa, Dt_zeramento = Dt_fin, Complemento = Complemento }, qtb_zeramento.Banco_Dados); lLoteZeramento.ForEach(p => { p.Id_zeramentostr = id_zeramento; TCN_Zeramento_X_Lote.Gravar(p, qtb_zeramento.Banco_Dados); }); if (st_transacao) { qtb_zeramento.Banco_Dados.Commit_Tran(); } } catch (Exception ex) { if (st_transacao) { qtb_zeramento.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro processar zeramento: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_zeramento.deletarBanco_Dados(); } } }