Exemplo n.º 1
0
        //Lançamento Contabil
        private static void GerarRegistroI200(TRegistro_Empresa rEmpresa,
                                              DateTime?Dt_ini,
                                              DateTime?Dt_fin,
                                              StringBuilder SpedContabil,
                                              ThreadEspera tEspera)
        {
            if (tEspera != null)
            {
                tEspera.Msg("Gerando registro I200...");
            }
            decimal cont = decimal.Zero;

            CamadaDados.Contabil.TList_LanContabil lLanctos =
                new CamadaDados.Contabil.TCD_LanctosCTB().Select(
                    new TpBusca[]
            {
                new TpBusca()
                {
                    vNM_Campo = "a.cd_empresa",
                    vOperador = "=",
                    vVL_Busca = "'" + rEmpresa.Cd_empresa.Trim() + "'"
                },
                new TpBusca()
                {
                    vNM_Campo = "convert(datetime, floor(convert(decimal(30,10), a.data)))",
                    vOperador = ">=",
                    vVL_Busca = "'" + Dt_ini.Value.ToString("yyyyMMdd") + "'"
                },
                new TpBusca()
                {
                    vNM_Campo = "convert(datetime, floor(convert(decimal(30,10), a.data)))",
                    vOperador = "<=",
                    vVL_Busca = "'" + Dt_fin.Value.ToString("yyyyMMdd") + "'"
                }
            }, 0, string.Empty, string.Empty);
            lLanctos.Where(p => p.D_c.Trim().ToUpper().Equals("D")).OrderBy(p => p.Data).ToList().ForEach(p =>
            {
                string regI200 = "|I200|";
                //Numero Lote
                regI200 += p.ID_LoteCTB.Value.ToString() + "|";
                //Data Lançamento
                regI200 += p.Data.Value.ToString("ddMMyyyy") + "|";
                //Valor Lançamento
                regI200 += p.Valor.ToString("N2").Replace(System.Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencyGroupSeparator, string.Empty).Replace('.', ',') + "|";
                //Tipo Lançamento N-Normal E-Encerramento
                regI200 += p.Tp_integracao.Trim().ToUpper().Equals("ZR") ? "E|" : "N|";

                SpedContabil.AppendLine(regI200);
                Qtd_linhaI++;
                cont++;

                //Registro Filho I250
                GerarRegistroI250(lLanctos.FindAll(v => v.ID_LoteCTB == p.ID_LoteCTB), SpedContabil, tEspera);
            });
            if (cont > decimal.Zero)
            {
                RegArq.Adiciona(new TRegistro_RegArquivo()
                {
                    Registro = "I200", Qtd_linha = cont
                });
            }
        }