Exemple #1
0
        public void GerarRemessa(blCobranca ACobranca, string Path_remessa)  //{Gerar arquivo remessa para enviar ao banco}
        {
            StringBuilder Remessa = new StringBuilder();

            switch (ACobranca.LayoutArquivo)
            {
            case TLayoutArquivo.laCNAB240:
                throw new Exception("Layout CNAB240 não suportado pelo Aliance.NET.");

            case TLayoutArquivo.laCNAB400:
            {
                GerarRemessaCNAB400(ACobranca, Remessa);
                break;
            }
            }
            //Salvar arquivo de remessa na pasta configurada
            if (!System.IO.Directory.Exists(Path_remessa))
            {
                throw new Exception("Path salvar arquivo remessa invalido.");
            }
            if (Path_remessa.Substring(Path_remessa.Length - 1, 1) != System.IO.Path.DirectorySeparatorChar.ToString())
            {
                Path_remessa += System.IO.Path.DirectorySeparatorChar.ToString();
            }
            object obj = new TCD_LoteRemessa().BuscarEscalar(
                new TpBusca[]
            {
                new TpBusca()
                {
                    vNM_Campo = "a.cd_empresa",
                    vOperador = "=",
                    vVL_Busca = "'" + ACobranca.Titulos[0].Cd_empresa.Trim() + "'"
                },
                new TpBusca()
                {
                    vNM_Campo = "a.cd_contager",
                    vOperador = "=",
                    vVL_Busca = "'" + ACobranca.Titulos[0].Cd_contager.Trim() + "'"
                },
                new TpBusca()
                {
                    vNM_Campo = "convert(datetime, floor(convert(decimal(30,10), a.dt_lote)))",
                    vOperador = "=",
                    vVL_Busca = "'" + ACobranca.DataArquivo.ToString("yyyyMMdd") + "'"
                },
                new TpBusca()
                {
                    vNM_Campo = "isnull(a.st_registro, 'A')",
                    vOperador = "=",
                    vVL_Busca = "'P'"
                }
            }, "count(*)");

            using (System.IO.StreamWriter sw = new System.IO.StreamWriter(Path_remessa +
                                                                          "CB" + //Cobranca Bradesco
                                                                          ACobranca.DataArquivo.Day.FormatStringEsquerda(2, '0') +
                                                                          ACobranca.DataArquivo.Month.FormatStringEsquerda(2, '0') +
                                                                          (obj == null ? "01" : decimal.Parse(obj.ToString() + 1).FormatStringEsquerda(2, '0')) +
                                                                          ".REM"))
            {
                sw.Write(Remessa.ToString());
                sw.Flush();
                sw.Close();
            }
        }
Exemple #2
0
        public void GerarRemessa(blCobranca ACobranca, string Path_remessa)  //{Gerar arquivo remessa para enviar ao banco}
        {
            StringBuilder Remessa = new StringBuilder();

            switch (ACobranca.LayoutArquivo)
            {
            case TLayoutArquivo.laCNAB240:
                throw new Exception("Layout CNAB240 não suportado pelo Aliance.NET.");

            case TLayoutArquivo.laCNAB400:
            {
                GerarRemessaCNAB400(ACobranca, Remessa);
                break;
            }
            }
            //Salvar arquivo de remessa na pasta configurada
            if (!System.IO.Directory.Exists(Path_remessa))
            {
                throw new Exception("Path salvar arquivo remessa invalido.");
            }
            if (Path_remessa.Substring(Path_remessa.Length - 1, 1) != System.IO.Path.DirectorySeparatorChar.ToString())
            {
                Path_remessa += System.IO.Path.DirectorySeparatorChar.ToString();
            }
            string            extensao = ".CRM";
            TList_LoteRemessa lLote    = new TCD_LoteRemessa().Select(
                new TpBusca[]
            {
                new TpBusca()
                {
                    vNM_Campo = "b.cd_empresa",
                    vOperador = "=",
                    vVL_Busca = "'" + ACobranca.Titulos[0].Cd_empresa.Trim() + "'"
                },
                new TpBusca()
                {
                    vNM_Campo = "b.cd_contager",
                    vOperador = "=",
                    vVL_Busca = "'" + ACobranca.Titulos[0].Cd_contager.Trim() + "'"
                },
                new TpBusca()
                {
                    vNM_Campo = "convert(datetime, floor(convert(decimal(30,10), a.dt_lote)))",
                    vOperador = "=",
                    vVL_Busca = "'" + ACobranca.DataArquivo.ToString("yyyyMMdd") + "'"
                },
                new TpBusca()
                {
                    vNM_Campo = "isnull(a.nr_arqremessa, 0)",
                    vOperador = "<>",
                    vVL_Busca = "0"
                }
            }, 0, string.Empty);

            if (lLote.Count > 0)
            {
                if (lLote.Exists(p => p.Nr_arqRemessa.Equals(ACobranca.SequencialArq)))
                {
                    if (lLote.OrderBy(p => p.Nr_arqRemessa).ToList().FindIndex(p => p.Nr_arqRemessa.Equals(ACobranca.SequencialArq)) > 0)
                    {
                        extensao = ".RM" + (lLote.OrderBy(p => p.Nr_arqRemessa).ToList().FindIndex(p => p.Nr_arqRemessa.Equals(ACobranca.SequencialArq)) + 1).ToString();
                    }
                }
                else
                {
                    extensao = ".RM" + (lLote.Count + 1).ToString();
                }
            }
            using (StreamWriter sw = new StreamWriter(Path_remessa +
                                                      ACobranca.Titulos[0].Cedente.CodigoCedente.FormatStringEsquerda(5, '0') +
                                                      this.CodigoMes(ACobranca.DataArquivo.Month) +
                                                      ACobranca.DataArquivo.Day.FormatStringEsquerda(2, '0') +
                                                      extensao))
            {
                sw.Write(Remessa.ToString());
                sw.Flush();
                sw.Close();
            }
        }