Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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();
                }
            }
        }