Exemple #1
0
        public void Update(DomainCustomerCredit domainCredit)
        {
            var credit = Mapper.Map <CustomerCredit>(domainCredit);

            Uow.CustomerCreditRepository.Update(credit);
            Uow.SaveChanges();
        }
Exemple #2
0
        public void Add(int creditRequestId)
        {
            var creditRequest = Uow.CreditRequestRepository.Get(creditRequestId);
            var dateNow       = GlobalValues.BankDateTime;
            var credit        = new DomainCustomerCredit()
            {
                CreditId       = creditRequest.CreditId,
                CreditSum      = creditRequest.Sum,
                Currency       = creditRequest.Currency,
                CustomerId     = creditRequest.CustomerId,
                StartDate      = dateNow.Date,
                EndDate        = dateNow.Date.AddMonths(creditRequest.MonthCount),
                ContractNumber = GenerateContractNumber(),
                Bill           = new DomainBill()
                {
                    Number     = GenerateBillNumber(),
                    CustomerId = creditRequest.CustomerId,
                    Sum        = creditRequest.Sum
                },
                CreditRequestId = creditRequestId
            };
            var bankBill = Uow.BillRepository.GetByNumber(ConfigurationManager.AppSettings.Get("BankBillNumber"));

            if (bankBill.Sum - creditRequest.Sum < 0)
            {
                throw BankClientException.ThrowNotHaveMoney();
            }
            bankBill.Sum -= creditRequest.Sum;

            var paymentPlan = new CalculationCreditService().CalculatePaymentPlan(credit.CreditSum,
                                                                                  creditRequest.Credit.PercentRate, creditRequest.MonthCount, credit.StartDate).ToList();

            credit.CreditPaymentPlanItems = paymentPlan;

            Uow.CustomerCreditRepository.Add(Mapper.Map <CustomerCredit>(credit));
            Uow.SaveChanges();

            credit.Customer = Mapper.Map <DomainCustomer>(Uow.CustomerRepository.Get(credit.CustomerId));
            credit.Credit   = Mapper.Map <DomainCredit>(Uow.CreditRepository.Get(credit.CreditId));
            new CreditDocService().FillConcreteContract(credit);
        }
Exemple #3
0
        public void FillConcreteContract(DomainCustomerCredit customerCredit)
        {
            if (!File.Exists(_templateDocPath))
            {
                Directory.CreateDirectory(Path.GetDirectoryName(_templateDocPath));
                GenerateCreditContractTemplate();
            }

            var byteArray = File.ReadAllBytes(_templateDocPath);
            //            using (var fs = new FileStream(string.Format("{0}{1}.docx", CreditContractsDocPath, customerCredit.ContractNumber),FileMode.Create))
            {
                using (var stream = new MemoryStream())
                {
                    stream.Write(byteArray, 0, byteArray.Length);
                    using (var wordDoc = WordprocessingDocument.Open(stream, true))
                    {
                        var body = wordDoc.MainDocumentPart.Document.Body;
                        var runs = body.Descendants <Run>().ToList();
                        var i    = 0;

                        //contract number
                        FindAndReplace(ref i, runs, ContractNumberPlace, " " + customerCredit.ContractNumber);

                        //day & month
                        FindAndReplace(ref i, runs, DaymonthPlace, customerCredit.StartDate.ToString("dd MM"));

                        //year
                        FindAndReplace(ref i, runs, YearPlace, " " + customerCredit.StartDate.ToString("yyyy"));

                        //customerPlace
                        FindAndReplace(ref i, runs, CustomerPlace,
                                       string.Format("{0} {1}{2}", customerCredit.Customer.Lastname,
                                                     customerCredit.Customer.Firstname,
                                                     customerCredit.Customer.Patronymic != null
                                    ? " " + customerCredit.Customer.Patronymic
                                    : ""), UnderlineValues.None);

                        //credit name
                        FindAndReplace(ref i, runs, CreditPlace, customerCredit.Credit.Name);

                        //sum
                        FindAndReplace(ref i, runs, CreditSumPlace, customerCredit.CreditSum.ToString());

                        //since
                        FindAndReplace(ref i, runs, SincePlace, customerCredit.StartDate.ToString("dd.MM.yyyy"));

                        //end date
                        FindAndReplace(ref i, runs, UntilPlace, customerCredit.EndDate.ToString("dd.MM.yyyy"));

                        //percent rate
                        FindAndReplace(ref i, runs, PercentRatePlace, customerCredit.Credit.PercentRate.ToString());

                        //payment day
                        FindAndReplace(ref i, runs, PaymentDayPlace, customerCredit.StartDate.ToString("dd"));

                        wordDoc.MainDocumentPart.Document.Save();
                        //                        wordDoc.MainDocumentPart.Document.Save(fs);
                        File.WriteAllBytes(
                            string.Format("{0}{1}.docx", _creditContractsDocPath, customerCredit.ContractNumber),
                            stream.ToArray());
                    }
                }
            }
        }