예제 #1
0
        public static StringBuilder Shipping(Empresa EmpresaCedente, List <Cliente> ClientesSacados, Bank CodigoBancario, Int32 Sequencial)
        {
            String        File;
            StringBuilder Result;

            String[] FilePart;
            Int32    TotalRegCount = 0;

            try {
                EmpresaCedente.Verificar();
                Result = new StringBuilder();
                var Itau   = new WriteShipping.Itau();
                var CNB240 = new RemessaCNAB240(EmpresaCedente, Sequencial);

                switch (CodigoBancario)
                {
                case Bank.Itau: {
                    //Init Header File
                    File = Itau.WriteHeaderFile(CNB240);
                    foreach (Cliente FoundClient in ClientesSacados)
                    {
                        FoundClient.Verificar();
                        CNB240 = new RemessaCNAB240(EmpresaCedente, FoundClient, Sequencial);
                        //CNB240.Registros = new Registro();
                        CNB240.Registros.SequencialLote++;
                        //Init Header Allotment
                        File += "|" + Itau.WriteHeaderAllotment(CNB240);
                        foreach (Cobranca Cobranca in FoundClient.CobrancaAgendada)
                        {
                            Cobranca.Verificar();
                            CNB240.Registros.SequencialDetalhe++;
                            TotalRegCount++;
                            CNB240.ClienteSacado.ValorAgendado = Cobranca.Valor;
                            CNB240.ClienteSacado.DataCobranca  = Cobranca.Data.ToShortDateString();
                            CNB240.ClienteSacado.ValorMoeda    = (Cobranca.Valor * Cobranca.PctIOF);
                            CNB240.ClienteSacado.NDocto        = Cobranca.NDocto;

                            //Details
                            File += "|" + Itau.WriteDetailsAllotment(CNB240);
                        }
                        //Close Header Allotment
                        File += "|" + Itau.WriteTrailerAllotment(CNB240);
                    }
                    CNB240.Registros.TotalQtdLotes = ClientesSacados.Count;
                    CNB240.Registros.TotalQtdRegs  = 2 + (2 * ClientesSacados.Count) + TotalRegCount;

                    //Close Header File
                    File    += "|" + Itau.WriteTrailerFile(CNB240);
                    FilePart = File.Split('|');
                    foreach (String FoundFile in FilePart)
                    {
                        Result.AppendLine(FoundFile);
                    }
                    break;
                }

                case Bank.Bradesco: {
                    throw new Exception("O banco ainda não foi implementado!");
                    break;
                }

                case Bank.Brasil: {
                    throw new Exception("O banco ainda não foi implementado!");
                    break;
                }

                case Bank.Caixa: {
                    throw new Exception("O banco ainda não foi implementado!");
                    break;
                }

                case Bank.Santander: {
                    throw new Exception("O banco ainda não foi implementado!");
                    break;
                }

                default: {
                    throw new Exception("O banco não foi encontrado!");
                    break;
                }
                }
            } catch {
                throw;
            }
            return(Result);
        }