예제 #1
0
        public List <Overdraft> ListAllOverdrafts()
        {
            List <Overdraft> allOverdrafts = new List <Overdraft>();

            connection.Open();

            try
            {
                string       query   = $"SELECT * FROM `overdrafts` ;";
                MySqlCommand command = new MySqlCommand(query, connection);

                MySqlDataReader reader = command.ExecuteReader();

                while (reader.Read())
                {
                    int      accountHolderId = reader.GetInt32(1);
                    double   amount          = reader.GetDouble(2);
                    DateTime dateOfApproval  = reader.GetDateTime(3);
                    int      overdraftStatus = reader.GetInt32(4);
                    double   amountLeft      = reader.GetDouble(5);

                    Overdraft overdraft = new Overdraft(accountHolderId, amount, dateOfApproval, overdraftStatus, amountLeft);


                    allOverdrafts.Add(overdraft);
                }
                connection.Close();
                return(allOverdrafts);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return(allOverdrafts);
            }
        }
예제 #2
0
        public bool Create(Overdraft overdraft)
        {
            connection.Open();

            try
            {
                string query = "INSERT INTO overdrafts(accountHolderId, amount, overdraftStatus, amountLeft) VALUES('" + overdraft.AccountHolderId + "', '" + overdraft.Amount + "', '" + overdraft.Status + "', '" + overdraft.AmountLeft + "')";

                MySqlCommand command = new MySqlCommand(query, connection);

                int count = command.ExecuteNonQuery();

                if (count > 0)
                {
                    connection.Close();
                    return(true);
                }

                else
                {
                    connection.Close();
                    return(false);
                }
            }

            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                connection.Close();
            }
            connection.Close();

            return(false);
        }
예제 #3
0
        /// <summary>
        ///     Returns true if BalanceViewModel instances are equal
        /// </summary>
        /// <param name="input">Instance of BalanceViewModel to be compared</param>
        /// <returns>Boolean</returns>
        public bool Equals(BalanceViewModel input)
        {
            if (input == null)
            {
                return(false);
            }

            return
                ((
                     Amount == input.Amount ||
                     Amount != null &&
                     Amount.Equals(input.Amount)
                     ) &&
                 (
                     Type == input.Type ||
                     Type != null &&
                     Type.Equals(input.Type)
                 ) &&
                 (
                     Overdraft == input.Overdraft ||
                     Overdraft != null &&
                     Overdraft.Equals(input.Overdraft)
                 ) &&
                 (
                     DateTime == input.DateTime ||
                     DateTime != null &&
                     DateTime.Equals(input.DateTime)
                 ));
        }
예제 #4
0
        public bool Update(Overdraft overdraft)
        {
            connection.Open();
            try
            {
                string query = $"Update `overdrafts` set `overdrafts`.`overdraftStatus` = '{overdraft.Status}', `overdrafts`.`amountLeft` = '{overdraft.AmountLeft}' WHERE  `overdrafts`.`accountHolderId` = '{overdraft.AccountHolderId}' and `overdrafts`.`overdraftStatus` = 1";

                MySqlCommand command = new MySqlCommand(query, connection);

                int count = command.ExecuteNonQuery();

                if (count > 0)
                {
                    connection.Close();
                    return(true);
                }

                else
                {
                    connection.Close();
                    return(false);
                }
            }
            catch (Exception e)
            {
                connection.Close();
                Console.WriteLine(e.Message);
                return(false);
            }
        }
        private async Task fireAndForgetAsync(PayrollStampingParams payrollStampingParams,
                                              Overdraft overdraftToStamp,
                                              List <PayrollCompanyConfiguration> payrollConfigurations,
                                              BlobStorageUtil blobStorageUtil,
                                              ISendMailProvider sendMailProvider,
                                              Guid UUID, string XML)
        {
            try
            {
                //7. Save XML to BlobStorage
                await blobStorageUtil.UploadDocumentAsync($"{UUID}.xml", XML);

                ////8. Transforma el XML a HTML y PDF
                var resultTransformation = await xmlTransformationAsync(payrollStampingParams, overdraftToStamp,
                                                                        XML);

                ////Save PDF to BlobStorage
                await blobStorageUtil.UploadDocumentAsync($"{UUID}.pdf",
                                                          resultTransformation.PreviewTransformResultDetails.FirstOrDefault().TransformPDFResult);

                ////9. Send email with the payroll to Employee
                await sendMailAsync(overdraftToStamp, UUID, XML,
                                    resultTransformation.PreviewTransformResultDetails.FirstOrDefault().TransformPDFResult, sendMailProvider,
                                    payrollConfigurations);
            }
            catch (Exception ex)
            {
                Trace.TraceError($"No fue posible transformar / enviar el comprobante al colaborador. {ex.Message}");
            }
        }
예제 #6
0
        public List <OverdraftDetail> GetOtherPayments(Overdraft overdraft)
        {
            //Marcado como SATCode OP
            var lstDetailsTemp = new List <OverdraftDetail>(overdraft.OverdraftDetails.DeepClone());

            //copy conceptPayment
            lstDetailsTemp.ForEach(p =>
            {
                var conceptPayment = overdraft.OverdraftDetails.FirstOrDefault(w => w.ID == p.ID).ConceptPayment;
                p.ConceptPayment   = conceptPayment;
            });

            return(lstDetailsTemp.Where(p =>
                                        (p.ConceptPayment.SATGroupCode.Contains("OP") &&
                                         p.ConceptPayment.ConceptType == ConceptType.DeductionPayment) ||
                                        (p.ConceptPayment.Code == 99 &&
                                         p.ConceptPayment.ConceptType == ConceptType.DeductionPayment)
                                        ).Select(p =>
            {
                if (p.Amount < 0)
                {
                    p.Amount = p.Amount * -1;
                }
                return p;
            }).ToList());
        }
예제 #7
0
 public CustomerAccount(string accountNumber, string accountName, Currencies accountCurrency, AccountRestrictions restrictions = null) : base(accountNumber, accountName, accountCurrency)
 {
     Overdraft = new Overdraft();
     if (restrictions == null)
     {
         Restrictions = new AccountRestrictions();
     }
 }
예제 #8
0
        public decimal GetNetAmount(Overdraft overdraft)
        {
            var salariesOverdraftDetails   = overdraft.OverdraftDetails.Where(p => (p.ConceptPayment.ConceptType == ConceptType.SalaryPayment) && !p.ConceptPayment.Kind);
            var deductionsOverdraftDetails = overdraft.OverdraftDetails.Where(p => (p.ConceptPayment.ConceptType == ConceptType.DeductionPayment) && !p.ConceptPayment.Kind);

            decimal salariesTotal   = salariesOverdraftDetails.Sum(p => p.Amount);
            decimal deductionsTotal = deductionsOverdraftDetails.Sum(p => p.Amount);

            return(salariesTotal - deductionsTotal);
        }
        public void GetOverdraft(int accountHolderId, double amount, double amountLeft)
        {
            Overdraft newOverdraft = new Overdraft {
                AccountHolderId = accountHolderId,
                Amount          = amount,
                Status          = 1,
                AmountLeft      = amountLeft
            };

            _overdraftRepository.GetOverdraft(newOverdraft);
        }
        private async Task sendMailAsync(Overdraft overdraftToStamp, Guid UUID, string XML, byte[] PDF, ISendMailProvider sendMailProvider,
                                         List <PayrollCompanyConfiguration> payrollCompanyConfigurations)
        {
            if (!String.IsNullOrEmpty(overdraftToStamp.HistoricEmployee.Email))
            {
                var message = new StringBuilder();
                message.Append($"Estimado(a) {overdraftToStamp.HistoricEmployee.FullName},");
                message.AppendLine();
                message.AppendLine("Por parte de tu empresa en la que estas colaborando te mandamos los datos de tu recibo de nómina.");
                message.AppendLine($"Periodo: <strong>{overdraftToStamp.HistoricEmployee.PeriodTypeDescription} {overdraftToStamp.PeriodDetail.InitialDate.ToShortDateString()} al {overdraftToStamp.PeriodDetail.FinalDate.ToShortDateString()}.</strong>");
                message.AppendLine($"RFC Emisor: <strong>{payrollCompanyConfigurations.FirstOrDefault().RFC}</strong>");
                message.AppendLine($"Razón Social: <strong>{payrollCompanyConfigurations.FirstOrDefault().SocialReason}</strong>");
                message.AppendLine($"UUID: <strong>{UUID}</strong>");

                var sendindParams = new SendMailParams()
                {
                    HTMLContent       = message.ToString(),
                    SendMailAddresses = new List <SendMailAddress>()
                    {
                        new SendMailAddress()
                        {
                            Email = overdraftToStamp.HistoricEmployee.Email,
                            Name  = overdraftToStamp.HistoricEmployee.FullName
                        }
                    },
                    PlainContentText    = message.ToString(),
                    SendMailAttachments = new List <SendMailAttachment>()
                    {
                        new SendMailAttachment()
                        {
                            Attachment     = Encoding.UTF8.GetBytes(XML),
                            Filename       = $"{UUID}.xml",
                            TypeAttachment = TypeAttachment.XML
                        },
                    },
                    Subject = "Cotorria - Envío de recibo de nómina",
                };

                if (PDF != null)
                {
                    sendindParams.SendMailAttachments.Add(new SendMailAttachment()
                    {
                        Attachment     = PDF,
                        Filename       = $"{UUID}.pdf",
                        TypeAttachment = TypeAttachment.PDF
                    });
                }

                await sendMailProvider.SendMailAsync(sendindParams);
            }
        }
        private async Task <Overdraft> Calculate(Overdraft actualOverdraft, Guid identityWorkID, Guid instanceID, Guid user)
        {
            var mgr    = new OverdraftCalculationManager();
            var result = await mgr.CalculateAsync(new CalculateOverdraftParams()
            {
                IdentityWorkID    = identityWorkID,
                InstanceID        = instanceID,
                DeleteAccumulates = false,
                OverdraftID       = actualOverdraft.ID,
                ResetCalculation  = false,
                UserID            = user
            });

            return((result as CalculateOverdraftResult).OverdraftResult);
        }
예제 #12
0
        private List <Overdraft> GetOverDraft()
        {
            List <Overdraft> overs    = new List <Overdraft>();
            Overdraft        oversISR = OverdraftManagerUT.GenerateObject(Guid.NewGuid(), Guid.NewGuid()).FirstOrDefault();
            int code = 55;

            oversISR.OverdraftDetails.ForEach(detail =>
            {
                detail.ConceptPayment.Code = code++;
            });
            overs.Add(oversISR);

            overs.AddRange(OverdraftManagerUT.GenerateObject(Guid.NewGuid(), Guid.NewGuid()));

            return(overs);
        }
예제 #13
0
        public void PayOverDraft(int accountHolderId, double amount)
        {
            List <Overdraft> allOverdrafts   = OverdraftRepository.FindOverdrafts(accountHolderId);
            Overdraft        activeoverdraft = FindActiveOverdraft(allOverdrafts);

            activeoverdraft.AmountLeft -= amount;

            if (activeoverdraft.AmountLeft <= 0)
            {
                activeoverdraft.AmountLeft = 0;
            }
            if (activeoverdraft.AmountLeft == 0)
            {
                activeoverdraft.Status = 0;
            }

            OverdraftRepository.Update(activeoverdraft);
        }
예제 #14
0
        public async Task <(string, DateTime)> GetZipCode(Overdraft overdraft, PayrollCompanyConfiguration payrollCompanyConfiguration)
        {
            var zipCode = String.Empty;

            if (!String.IsNullOrEmpty(overdraft.HistoricEmployee.EmployerRegistrationZipCode))
            {
                zipCode = overdraft.HistoricEmployee.EmployerRegistrationZipCode;
            }
            else if (!String.IsNullOrEmpty(payrollCompanyConfiguration.Address?.ZipCode))
            {
                zipCode = payrollCompanyConfiguration.Address?.ZipCode;
            }
            else
            {
                zipCode = "44600";
            }

            return(zipCode, await getDateByZipCode(zipCode));
        }
        public void PayOverdraft(int accountHolderId, double amount)
        {
            Overdraft activeoverdraft = _overdraftRepository.FindActiveOverdraftById(accountHolderId);

            if (activeoverdraft != null)
            {
                activeoverdraft.AmountLeft -= amount;

                if (activeoverdraft.AmountLeft <= 0)
                {
                    activeoverdraft.AmountLeft = 0;
                }
                if (activeoverdraft.AmountLeft == 0)
                {
                    activeoverdraft.Status = 0;
                }

                _overdraftRepository.UpdateOverdraft(activeoverdraft);
            }
        }
예제 #16
0
        static void Main(string[] args)
        {
            Account a1 = new Fixed("NISHI", "1", 10000, 2020, 5);
            Account a2 = new Savings("SAkIB", "2", 50000, 10);
            Account a3 = new SpecialSavings("NIDHI", "3", 20000, 5);
            Account a4 = new Overdraft("AKASH", "4", 150000, 20000);


            a1.Withdraw(500);
            a2.Withdraw(500);
            a3.Withdraw(500);
            a4.Withdraw(500);



            a1.Withdraw(5000);
            a2.Withdraw(40000);
            a3.Withdraw(6000);
            a4.Withdraw(10000);
        }
예제 #17
0
파일: Program.cs 프로젝트: SSK98/OOP2_LAB
        static void Main(string[] args)
        {
            SavingAccount s = new SavingAccount("Sadman", "101", 1000);

            s.Withdraw(800);
            FixedAccount f = new FixedAccount("Sadman", "102", 1000, 2022);

            f.Withdraw(200);
            SpecialSavings ss = new SpecialSavings("Sadman", "104", 1000, 2);

            ss.Withdraw(900);
            ss.Withdraw(200);
            ss.Withdraw(200);
            ss.Withdraw(200); // should exceed monthly limit
            Overdraft od = new Overdraft("Sadman", "101", 1000, 500);

            od.Withdraw(1200);
            od.Withdraw(100);
            od.Withdraw(300); // should exceed OVerhead limit
        }
예제 #18
0
 /// <summary>
 ///     Gets the hash code
 /// </summary>
 /// <returns>Hash code</returns>
 public override int GetHashCode()
 {
     unchecked // Overflow is fine, just wrap
     {
         var hashCode = 41;
         if (Amount != null)
         {
             hashCode = hashCode * 59 + Amount.GetHashCode();
         }
         if (Type != null)
         {
             hashCode = hashCode * 59 + Type.GetHashCode();
         }
         if (Overdraft != null)
         {
             hashCode = hashCode * 59 + Overdraft.GetHashCode();
         }
         if (DateTime != null)
         {
             hashCode = hashCode * 59 + DateTime.GetHashCode();
         }
         return(hashCode);
     }
 }
예제 #19
0
        public List <Overdraft> FindOverdrafts(int holderId)
        {
            List <Overdraft> allOverdrafts = new List <Overdraft>();

            connection.Open();

            try
            {
                string       query   = $"SELECT * FROM `overdrafts` where  `overdrafts`.`accountHolderId` = '{holderId}';";
                MySqlCommand command = new MySqlCommand(query, connection);

                MySqlDataReader reader = command.ExecuteReader();


                while (reader.Read())
                {
                    int      accountHolderId = reader.GetInt32(1);
                    double   overdraftAmount = reader.GetDouble(2);
                    DateTime overdraftDate   = reader.GetDateTime(3);
                    int      overdraftStatus = reader.GetInt32(4);
                    double   amountLeft      = reader.GetDouble(5);

                    Overdraft aoverdraft = new Overdraft(accountHolderId, overdraftAmount, overdraftDate, overdraftStatus, amountLeft);

                    allOverdrafts.Add(aoverdraft);
                }
                connection.Close();
                return(allOverdrafts);
            }
            catch (Exception ex)
            {
                connection.Close();
                Console.WriteLine(ex.Message);
                return(allOverdrafts);
            }
        }
 public Overdraft GetOverdraft(Overdraft overdraft)
 {
     context.Overdrafts.Add(overdraft);
     context.SaveChanges();
     return(overdraft);
 }
예제 #21
0
        public void Should_Create_Layout_Multiple_Overdrafts()
        {
            //Arrange
            string expected = "000000001REHE730714HG8   998899775533          000000000296020Ernesto Renteria Huerta                 001001"
                              + Environment.NewLine
                              + "000000002BACF6710256R4   997788556633          000000000748960Fermin Ballesteros Cruz                 001001"
                              + Environment.NewLine;

            BBVAPaymentLayoutManager bbvaLayout       = new BBVAPaymentLayoutManager();
            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         = 3200.0m,
                Value          = 15,
            };

            overdraftDetails.Add(detail);

            concept = new ConceptPayment
            {
                Name        = "IMSS",
                ConceptType = ConceptType.DeductionPayment,
            };

            detail = new OverdraftDetail
            {
                ConceptPayment = concept,
                Amount         = 239.8m,
                Value          = 0,
            };

            overdraftDetails.Add(detail);

            //Employee 1
            Employee  employee  = new Employee();
            Overdraft overdraft = new Overdraft();

            employee.RFC               = "REHE730714HG8";
            employee.BankAccount       = "8899775533";
            employee.FirstLastName     = "Renteria";
            employee.SecondLastName    = "Huerta";
            employee.Name              = "Ernesto";
            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         = 7399.9m,
                Value          = 15,
            };

            overdraftDetails.Add(detail);

            concept = new ConceptPayment
            {
                Name        = "Bono",
                ConceptType = ConceptType.SalaryPayment,
            };

            detail = new OverdraftDetail
            {
                ConceptPayment = concept,
                Amount         = 650m,
                Value          = 0,
            };

            overdraftDetails.Add(detail);


            concept = new ConceptPayment
            {
                Name        = "IMSS",
                ConceptType = ConceptType.DeductionPayment,
            };

            detail = new OverdraftDetail
            {
                ConceptPayment = concept,
                Amount         = 239.8m,
                Value          = 0,
            };

            overdraftDetails.Add(detail);

            concept = new ConceptPayment
            {
                Name        = "ISR",
                ConceptType = ConceptType.DeductionPayment,
            };

            detail = new OverdraftDetail
            {
                ConceptPayment = concept,
                Amount         = 320.5m,
                Value          = 0,
            };

            overdraftDetails.Add(detail);

            employee                   = new Employee();
            overdraft                  = new Overdraft();
            employee.RFC               = "BACF6710256R4";
            employee.BankAccount       = "7788556633";
            employee.FirstLastName     = "Ballesteros";
            employee.SecondLastName    = "Cruz";
            employee.Name              = "Fermin";
            overdraft.Employee         = employee;
            overdraft.OverdraftDetails = overdraftDetails;

            overdrafts.Add(overdraft);

            //Act
            string actual = bbvaLayout.GenerateLayout(overdrafts, null);

            //Assert
            Assert.Equal(expected, actual);
        }
        public void Should_Create_Layout_No_Second_Last_Name()
        {
            //Arrange
            string expected = "10227865814512007200001Version1300                         DEPOSITOS POR NOMINA05                                        B00"
                              + Environment.NewLine
                              + "2100100000000000009232001030100000000000896523174                  "
                              + Environment.NewLine
                              + "3000100000000000009232003055500000000002255669988002                                     Gonzalez  Jose Luis                                                                                                    1 03010000"
                              + Environment.NewLine
                              + "4001000001000000000000092320000001000000000000092320"
                              + Environment.NewLine;

            BanamexPaymentLayoutManager banamexbankLayout = new BanamexPaymentLayoutManager();

            BanamexAdditionalInformation additionalInformation = new BanamexAdditionalInformation
            {
                CustomerNumber     = "22786581451",
                ChargeAccount      = "896523174",
                FileNumberOfDay    = "1",
                PaymentDate        = new DateTime(2020, 7, 20),
                BranchOfficeNumber = "301",
                StateID            = "1",
                CityID             = "301",
                CompanyName        = "Version1300"
            };

            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       = "2255669988";
            employee.BankBranchNumber  = "555";
            employee.FirstLastName     = "Gonzalez";
            employee.SecondLastName    = null;
            employee.Name              = "Jose Luis";
            employee.Code              = "002";
            overdraft.Employee         = employee;
            overdraft.OverdraftDetails = overdraftDetails;

            overdrafts.Add(overdraft);


            //Act
            string actual = banamexbankLayout.GenerateLayout(overdrafts, additionalInformation);

            //Assert
            Assert.Equal(expected, actual);
        }
        public void Should_Create_Layout_Multiple_Overdraft()
        {
            //Arrange
            string expected = "10227865814512007200001Version1300                         DEPOSITOS POR NOMINA05                                        B00"
                              + Environment.NewLine
                              + "2100100000000000119386001030100000000000896523174                  "
                              + Environment.NewLine
                              + "3000100000000000051662003055500000000002255669988002                                     Gonzalez Garcia Jose Luis                                                                                              1 03010000"
                              + Environment.NewLine
                              + "3000100000000000048042003033300000000000000007789006                                     Martinez Ruiz Juan Jose                                                                                                1 03010000"
                              + Environment.NewLine
                              + "3000100000000000019682003075400000000000071235489007                                     Funco Salon Demian                                                                                                     1 03010000"
                              + Environment.NewLine
                              + "4001000003000000000001193860000001000000000001193860"
                              + Environment.NewLine;

            BanamexPaymentLayoutManager scotiabankLayout = new BanamexPaymentLayoutManager();

            BanamexAdditionalInformation additionalInformation = new BanamexAdditionalInformation
            {
                CustomerNumber     = "22786581451",
                ChargeAccount      = "896523174",
                FileNumberOfDay    = "1",
                PaymentDate        = new DateTime(2020, 7, 20),
                BranchOfficeNumber = "301",
                StateID            = "1",
                CityID             = "301",
                CompanyName        = "Version1300"
            };

            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         = 6000.0m,
                Value          = 15,
            };

            overdraftDetails.Add(detail);

            concept = new ConceptPayment
            {
                Name        = "ISR",
                ConceptType = ConceptType.DeductionPayment,
            };

            detail = new OverdraftDetail
            {
                ConceptPayment = concept,
                Amount         = 833.8m,
                Value          = 0,
            };

            overdraftDetails.Add(detail);

            Employee  employee  = new Employee();
            Overdraft overdraft = new Overdraft();

            employee.RFC               = "POSL920306LD2";
            employee.BankAccount       = "2255669988";
            employee.FirstLastName     = "Gonzalez";
            employee.SecondLastName    = "Garcia";
            employee.Name              = "Jose Luis";
            employee.Code              = "002";
            employee.BankBranchNumber  = "555";
            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         = 5423.45m,
                Value          = 15,
            };

            overdraftDetails.Add(detail);

            concept = new ConceptPayment
            {
                Name        = "Bono",
                ConceptType = ConceptType.SalaryPayment,
            };

            detail = new OverdraftDetail
            {
                ConceptPayment = concept,
                Amount         = 100m,
                Value          = 0,
            };

            overdraftDetails.Add(detail);


            concept = new ConceptPayment
            {
                Name        = "IMSS",
                ConceptType = ConceptType.DeductionPayment,
            };

            detail = new OverdraftDetail
            {
                ConceptPayment = concept,
                Amount         = 134.94m,
                Value          = 0,
            };

            overdraftDetails.Add(detail);

            concept = new ConceptPayment
            {
                Name        = "ISR",
                ConceptType = ConceptType.DeductionPayment,
            };

            detail = new OverdraftDetail
            {
                ConceptPayment = concept,
                Amount         = 584.31m,
                Value          = 0,
            };

            overdraftDetails.Add(detail);

            employee                   = new Employee();
            overdraft                  = new Overdraft();
            employee.RFC               = "REHE730714HG8";
            employee.BankAccount       = "7789";
            employee.FirstLastName     = "Martinez";
            employee.SecondLastName    = "Ruiz";
            employee.Name              = "Juan Jose";
            employee.Code              = "006";
            employee.BankBranchNumber  = "333";
            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         = 1950m,
                Value          = 15,
            };

            overdraftDetails.Add(detail);


            concept = new ConceptPayment
            {
                Name        = "IMSS",
                ConceptType = ConceptType.DeductionPayment,
            };

            detail = new OverdraftDetail
            {
                ConceptPayment = concept,
                Amount         = 45.07m,
                Value          = 0,
            };

            overdraftDetails.Add(detail);

            concept = new ConceptPayment
            {
                Name        = "Subsidio",
                ConceptType = ConceptType.DeductionPayment,
            };

            detail = new OverdraftDetail
            {
                ConceptPayment = concept,
                Amount         = -63.27m,
                Value          = 0,
            };

            overdraftDetails.Add(detail);

            employee                   = new Employee();
            overdraft                  = new Overdraft();
            employee.RFC               = "BACF6710253V5";
            employee.BankAccount       = "71235489";
            employee.FirstLastName     = "Funco";
            employee.SecondLastName    = "Salon";
            employee.Name              = "Demian";
            employee.Code              = "007";
            employee.BankBranchNumber  = "754";
            overdraft.Employee         = employee;
            overdraft.OverdraftDetails = overdraftDetails;

            overdrafts.Add(overdraft);


            //Act
            string actual = scotiabankLayout.GenerateLayout(overdrafts, additionalInformation);

            //Assert
            Assert.Equal(expected, actual);
        }
예제 #24
0
        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);
        }
예제 #25
0
        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);
        }
 private async Task SaveOverdraft(Overdraft settlementOverdraft, Guid identityWorkID)
 {
     var manager = new MiddlewareManager <Overdraft>(new BaseRecordManager <Overdraft>(), new OverdraftValidator());
     await manager.CreateAsync(new List <Overdraft>() { settlementOverdraft }, identityWorkID);
 }
 public Overdraft UpdateOverdraft(Overdraft overdraft)
 {
     context.Overdrafts.Update(overdraft);
     context.SaveChanges();
     return(overdraft);
 }
예제 #28
0
        public void Should_Create_Layout_Single_Overdraft_Long_Employee_Name()
        {
            //Arrange
            string expected = "000000001REHE730714HG8   998899775533          000000000296020Jose de Jesus de Dios Bendito Rodriguez 001001"
                              + Environment.NewLine;

            BBVAPaymentLayoutManager bbvaLayout       = new BBVAPaymentLayoutManager();
            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         = 3200.0m,
                Value          = 15,
            };

            overdraftDetails.Add(detail);

            concept = new ConceptPayment
            {
                Name        = "IMSS",
                ConceptType = ConceptType.DeductionPayment,
            };

            detail = new OverdraftDetail
            {
                ConceptPayment = concept,
                Amount         = 239.8m,
                Value          = 0,
            };

            overdraftDetails.Add(detail);

            Employee  employee  = new Employee();
            Overdraft overdraft = new Overdraft();

            employee.RFC               = "REHE730714HG8";
            employee.BankAccount       = "8899775533";
            employee.FirstLastName     = "Rodriguez";
            employee.SecondLastName    = "Garcia";
            employee.Name              = "Jose de Jesus de Dios Bendito";
            overdraft.Employee         = employee;
            overdraft.OverdraftDetails = overdraftDetails;

            overdrafts.Add(overdraft);

            //Act
            string actual = bbvaLayout.GenerateLayout(overdrafts, null);

            //Assert
            Assert.Equal(expected, actual);
        }
        public void Should_Create_Layout_No_Employee_Bank_Account()
        {
            //Arrange
            string expected = "20200704998855667Regresivas1241                              #"
                              + Environment.NewLine
                              + "Rodriguez Sanchez Ivan    007000000000000000001968200000000007"
                              + Environment.NewLine;

            BanortePaymentLayoutManager banorteLayout = new BanortePaymentLayoutManager();

            BanorteAdditionalInformation additionalInformation = new BanorteAdditionalInformation
            {
                SystemID      = "007",
                ChargeAccount = "998855667",
                PaymentDate   = new DateTime(2020, 7, 4),
                CompanyName   = "Regresivas1241",
            };

            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         = 1968.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       = null;
            employee.FirstLastName     = "Rodriguez";
            employee.SecondLastName    = "Sanchez";
            employee.Name              = "Ivan";
            employee.Code              = "7";
            overdraft.Employee         = employee;
            overdraft.OverdraftDetails = overdraftDetails;

            overdrafts.Add(overdraft);


            //Act
            string actual = banorteLayout.GenerateLayout(overdrafts, additionalInformation);

            //Assert
            Assert.Equal(expected, actual);
        }
예제 #30
0
        public void GetOverdraft(int accountHolderId, double amount, double amountLeft)
        {
            Overdraft newOverdraft = new Overdraft(accountHolderId, amount, amountLeft);

            OverdraftRepository.Create(newOverdraft);
        }