private string GenerateFirstHeaderRegistry(ScotiabankAdditionalInformation additionalInformation) { StringBuilder paymentBankFormat = new StringBuilder(); paymentBankFormat.AppendFormat("{0}{1}{2}{3}" , TypeRegistryFirstHeader , additionalInformation.CustomerNumber.PadLeft(5, '0') , additionalInformation.FileNumberOfDay.PadLeft(2, '0') , "".PadRight(27, '0') ); string firstHeader = paymentBankFormat.ToString(); return(firstHeader.PadRight(MaxLengthLine, ' ')); }
private string GenerateSecondHeaderRegistry(ScotiabankAdditionalInformation additionalInformation) { StringBuilder paymentBankFormat = new StringBuilder(); paymentBankFormat.AppendFormat("{0}{1}{2}{3}{4}" , TypeRegistrySecondHeader , "000000" , additionalInformation.ChargeAccount.PadLeft(11, '0') , additionalInformation.CompanyReference.PadLeft(10, '0') , "000" ); string secondHeader = paymentBankFormat.ToString(); return(secondHeader.PadRight(MaxLengthLine, ' ')); }
private string GenerateDetailPaymentEmployees(List <Overdraft> overdrafts, ScotiabankAdditionalInformation additionalInformation) { StringBuilder paymentBankFormat = new StringBuilder(); detailCount = 0; string paymentDate = string.Format("{0:yyyyMMdd}", additionalInformation.PaymentDate); foreach (Overdraft payment in overdrafts) { detailCount++; decimal amountPayment = overdraftManager.GetNetAmount(payment); paymentBankFormat.AppendFormat("{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}{11}{12}{13}{14}{15}{16}{17}{18}{19}{20}{21}{22}{23}" , TypeRegistryDetail , AccountPaymentMethod , "00" , amountPayment.ToString("#.00").Replace(".", string.Empty).PadLeft(15, '0') , paymentDate , "01" , detailCount.ToString().PadRight(20, ' ') , "".PadRight(13, ' ') , FormatEmployeeName(payment.Employee.Name, payment.Employee.FirstLastName, payment.Employee.SecondLastName) , detailCount.ToString().PadLeft(16, '0') , "".PadLeft(10, '0') , GetNoNullString(payment.Employee.BankAccount).PadLeft(20, '0') , "00000" , "".PadRight(40, ' ') , FormatBankAccountType(GetNoNullString(payment.Employee.BankAccount)) , " " , "00000" , "044" , "044" , "001" , "NOMINA".PadRight(50, ' ') , "".PadRight(60, ' ') , "".PadRight(25, '0') , "".PadRight(22, ' ') ); paymentBankFormat.Append(Environment.NewLine); } return(paymentBankFormat.ToString()); }
public void Should_Create_Layout_No_Second_Last_Name() { //Arrange string expected = "EEHA9957601000000000000000000000000000 " + Environment.NewLine + "EEHB000000032003348041234567899000 " + Environment.NewLine + "EEDA040000000000009232020200704011 ESCUDERO JULIA 000000000000000100000000000000000000320077000000000 1 00000044044001NOMINA 0000000000000000000000000 " + Environment.NewLine + "EETB000000100000000000092320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 " + Environment.NewLine + "EETA000000100000000000092320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 " + Environment.NewLine; ScotiabankPaymentLayoutManager scotiabankLayout = new ScotiabankPaymentLayoutManager(); ScotiabankAdditionalInformation additionalInformation = new ScotiabankAdditionalInformation { CustomerNumber = "99576", ChargeAccount = "3200334804", FileNumberOfDay = "1", CompanyReference = "1234567899", PaymentDate = new DateTime(2020, 7, 4), }; List <Overdraft> overdrafts = new List <Overdraft>(); List <OverdraftDetail> overdraftDetails = new List <OverdraftDetail>(); OverdraftDetail detail; ConceptPayment concept; concept = new ConceptPayment { Name = "Sueldo", ConceptType = ConceptType.SalaryPayment, }; detail = new OverdraftDetail { ConceptPayment = concept, Amount = 923.2m, Value = 15, }; overdraftDetails.Add(detail); concept = new ConceptPayment { Name = "IMSS", ConceptType = ConceptType.DeductionPayment, }; detail = new OverdraftDetail { ConceptPayment = concept, Amount = 0m, Value = 0, }; overdraftDetails.Add(detail); Employee employee = new Employee(); Overdraft overdraft = new Overdraft(); employee.RFC = "POSL920306LD2"; employee.BankAccount = "03200770000"; employee.FirstLastName = "ESCUDERO"; employee.SecondLastName = ""; employee.Name = "JULIA"; employee.Code = "002"; overdraft.Employee = employee; overdraft.OverdraftDetails = overdraftDetails; overdrafts.Add(overdraft); //Act string actual = scotiabankLayout.GenerateLayout(overdrafts, additionalInformation); //Assert Assert.Equal(expected, actual); }
public void Should_Create_Layout_Multiple_Overdraft() { //Arrange string expected = "EEHA9957601000000000000000000000000000 " + Environment.NewLine + "EEHB000000032003348041234567899000 " + Environment.NewLine + "EEDA040000000000009232020200704011 ESCUDERO IGNACIO JULIA 000000000000000100000000000000000000320077000000000 1 00000044044001NOMINA 0000000000000000000000000 " + Environment.NewLine + "EEDA040000000000011622020200704012 PEREZ DAVILA JANCARLOS 000000000000000200000000000000000000320065119200000 1 00000044044001NOMINA 0000000000000000000000000 " + Environment.NewLine + "EEDA040000000000009230020200704013 CASTAÑEDA CERVANTES ROXANA GUADALUPE 000000000000000300000000000000000000320064914700000 1 00000044044001NOMINA 0000000000000000000000000 " + Environment.NewLine + "EETB000000300000000000300840000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 " + Environment.NewLine + "EETA000000300000000000300840000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 " + Environment.NewLine; ScotiabankPaymentLayoutManager scotiabankLayout = new ScotiabankPaymentLayoutManager(); ScotiabankAdditionalInformation additionalInformation = new ScotiabankAdditionalInformation { CustomerNumber = "99576", ChargeAccount = "3200334804", FileNumberOfDay = "1", CompanyReference = "1234567899", PaymentDate = new DateTime(2020, 7, 4), }; List <Overdraft> overdrafts = new List <Overdraft>(); List <OverdraftDetail> overdraftDetails = new List <OverdraftDetail>(); OverdraftDetail detail; ConceptPayment concept; //Employee 1 concept = new ConceptPayment { Name = "Sueldo", ConceptType = ConceptType.SalaryPayment, }; detail = new OverdraftDetail { ConceptPayment = concept, Amount = 923.2m, Value = 15, }; overdraftDetails.Add(detail); concept = new ConceptPayment { Name = "IMSS", ConceptType = ConceptType.DeductionPayment, }; detail = new OverdraftDetail { ConceptPayment = concept, Amount = 0m, Value = 0, }; overdraftDetails.Add(detail); Employee employee = new Employee(); Overdraft overdraft = new Overdraft(); employee.RFC = "POSL920306LD2"; employee.BankAccount = "03200770000"; employee.FirstLastName = "ESCUDERO"; employee.SecondLastName = "IGNACIO"; employee.Name = "JULIA"; employee.Code = "002"; overdraft.Employee = employee; overdraft.OverdraftDetails = overdraftDetails; overdrafts.Add(overdraft); //Employee 2 overdraftDetails = new List <OverdraftDetail>(); concept = new ConceptPayment { Name = "Sueldo", ConceptType = ConceptType.SalaryPayment, }; detail = new OverdraftDetail { ConceptPayment = concept, Amount = 1200.0m, Value = 7, }; overdraftDetails.Add(detail); concept = new ConceptPayment { Name = "Bono", ConceptType = ConceptType.SalaryPayment, }; detail = new OverdraftDetail { ConceptPayment = concept, Amount = 120m, Value = 0, }; overdraftDetails.Add(detail); concept = new ConceptPayment { Name = "IMSS", ConceptType = ConceptType.DeductionPayment, }; detail = new OverdraftDetail { ConceptPayment = concept, Amount = 45.0m, Value = 0, }; overdraftDetails.Add(detail); concept = new ConceptPayment { Name = "ISR", ConceptType = ConceptType.DeductionPayment, }; detail = new OverdraftDetail { ConceptPayment = concept, Amount = 112.8m, Value = 0, }; overdraftDetails.Add(detail); employee = new Employee(); overdraft = new Overdraft(); employee.RFC = "REHE730714HG8"; employee.BankAccount = "03200651192"; employee.FirstLastName = "PEREZ"; employee.SecondLastName = "DAVILA"; employee.Name = "JANCARLOS"; employee.Code = "004"; overdraft.Employee = employee; overdraft.OverdraftDetails = overdraftDetails; overdrafts.Add(overdraft); //Employee 3 overdraftDetails = new List <OverdraftDetail>(); concept = new ConceptPayment { Name = "Sueldo", ConceptType = ConceptType.SalaryPayment, }; detail = new OverdraftDetail { ConceptPayment = concept, Amount = 1150.0m, Value = 7, }; overdraftDetails.Add(detail); concept = new ConceptPayment { Name = "Todas deducciones", ConceptType = ConceptType.DeductionPayment, }; detail = new OverdraftDetail { ConceptPayment = concept, Amount = 227.0m, Value = 0, }; overdraftDetails.Add(detail); employee = new Employee(); overdraft = new Overdraft(); employee.RFC = "BACF6710253V5"; employee.BankAccount = "03200649147"; employee.FirstLastName = "CASTAÑEDA"; employee.SecondLastName = "CERVANTES"; employee.Name = "ROXANA GUADALUPE"; employee.Code = "00000007"; overdraft.Employee = employee; overdraft.OverdraftDetails = overdraftDetails; overdrafts.Add(overdraft); //Act string actual = scotiabankLayout.GenerateLayout(overdrafts, additionalInformation); //Assert Assert.Equal(expected, actual); }