Beispiel #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="user"></param>
        /// <param name="context"></param>
        /// <param name="exportRequest"></param>
        /// <param name="invoiceNumber"></param>
        /// <param name="contractdictionary"></param>
        /// <returns></returns>
        public InvoiceModel GetExportableInvoice(UserProfile user,
                                                 UserSelectedContext context,
                                                 ExportRequestModel exportRequest,
                                                 string invoiceNumber)
        {
            if (exportRequest.Fields != null)
            {
                _exportLogic.SaveUserExportSettings(user.UserId,
                                                    Core.Models.Configuration.EF.ExportType.InvoiceDetail,
                                                    KeithLink.Svc.Core.Enumerations.List.ListType.Custom,
                                                    exportRequest.Fields,
                                                    exportRequest.SelectedType);
            }

            var kpayInvoiceHeader = _invoiceRepo.GetInvoiceHeader(DivisionHelper.GetDivisionFromBranchId(context.BranchId), context.CustomerId, invoiceNumber);
            var customer          = _customerRepository.GetCustomerByCustomerNumber(context.CustomerId, context.BranchId);

            if (kpayInvoiceHeader == null) //Invoice not found
            {
                return(null);
            }

            //Convert to invoice model
            var invoiceModel = kpayInvoiceHeader.ToInvoiceModel(customer);

            if (invoiceModel.DueDate < DateTime.Now)
            {
                invoiceModel.Status            = InvoiceStatus.PastDue;
                invoiceModel.StatusDescription = EnumUtils <InvoiceStatus> .GetDescription(InvoiceStatus.PastDue);
            }

            return(invoiceModel);
        }
 public IActionResult GetDivisionsList()
 {
     try
     {
         var divisionsList = DivisionHelper.GetList();
         if (divisionsList.Count() > 0)
         {
             dynamic expdoObj = new ExpandoObject();
             expdoObj.divisionsList = divisionsList;
             return(Ok(new APIResponse {
                 status = APIStatus.PASS.ToString(), response = expdoObj
             }));
         }
         else
         {
             return(Ok(new APIResponse {
                 status = APIStatus.FAIL.ToString(), response = "No Data Found."
             }));
         }
     }
     catch (Exception ex)
     {
         return(Ok(new APIResponse()
         {
             status = APIStatus.FAIL.ToString(), response = ex.Message
         }));
     }
 }
        public void GetAllDivision()
        {
            bool actual   = DivisionHelper.GetAll().Count > 0;
            bool expected = true;

            Assert.AreEqual(expected, actual);
        }
Beispiel #4
0
        public HttpResponseMessage SaveDivision([FromBody] Division Dep)
        {
            bool SuccessfullSaved = DivisionHelper.Save(Dep);

            if (!SuccessfullSaved)
            {
                throw new HttpResponseException(HttpStatusCode.InternalServerError);
            }

            return(Request.CreateResponse(HttpStatusCode.Created));
        }
Beispiel #5
0
        public HttpResponseMessage GetAllDivisiones()
        {
            List <Division> list       = DivisionHelper.GetAll();
            bool            TheresData = list.Count > 0;

            if (!TheresData)
            {
                throw new HttpResponseException(HttpStatusCode.NoContent);
            }

            return(Request.CreateResponse(HttpStatusCode.OK, list));
        }
Beispiel #6
0
        private Message GetEmailMessageForMultipleAccountSummaryNotification
            (List <PaymentTransactionModel> payments, List <UserSelectedContext> customers)
        {
            StringBuilder orderDetails = new StringBuilder();

            int      confirmationId = 0, customerNumber = 0;
            string   payer         = null;
            decimal  grandSum      = 0;
            DateTime submittedDate = DateTime.MinValue;

            foreach (var customer in customers.OrderBy(ctx => ctx.CustomerId))
            { // the start of each customer
                ++customerNumber;

                Svc.Core.Models.Profile.Customer cust =
                    _customerRepo.GetCustomerByCustomerNumber(customer.CustomerId, customer.BranchId);

                int     paymentNumber = 0;
                decimal paymentSum    = 0;
                Core.Models.OnlinePayments.Customer.EF.CustomerBank bankUsed = null;

                foreach (var payment in payments.Where(p => p.CustomerNumber == customer.CustomerId &&
                                                       p.BranchId == customer.BranchId)
                         .OrderBy(p => p.AccountNumber))
                {
                    paymentNumber++;

                    Core.Models.OnlinePayments.Customer.EF.CustomerBank bank = _bankRepo.GetBankAccount
                                                                                   (DivisionHelper.GetDivisionFromBranchId(customer.BranchId),
                                                                                   customer.CustomerId, payment.AccountNumber);
                    bankUsed = BuildPaymentSummaryBankUsed(orderDetails, paymentSum, bankUsed, bank);

                    paymentSum = paymentSum + payment.PaymentAmount;
                    grandSum   = grandSum + payment.PaymentAmount;

                    confirmationId = payment.ConfirmationId;
                    payer          = payment.UserName;
                    submittedDate  = payment.PaymentDate.Value;

                    BuildPaymentSummaryPaymentDetails(orderDetails, customer, cust, paymentNumber, payment);
                }
                BuildPaymentSummaryFooter(orderDetails, cust, paymentSum, bankUsed);
            }
            ApplyGrandPaymentSummaryTemplate(orderDetails, grandSum, submittedDate);

            return(AssembleMessageForPayerSummary(orderDetails, confirmationId, payer));
        }
        public IActionResult RegisterDivision([FromBody] Divisions division)
        {
            if (division == null)
            {
                return(Ok(new APIResponse()
                {
                    status = APIStatus.PASS.ToString(), response = "object can not be null"
                }));
            }

            try
            {
                if (DivisionHelper.GetList(division.Code).Count() > 0)
                {
                    return(Ok(new APIResponse()
                    {
                        status = APIStatus.PASS.ToString(), response = $"Division Code {nameof(division.Code)} is already exists ,Please Use Different Code "
                    }));
                }

                var         result = DivisionHelper.Register(division);
                APIResponse apiResponse;
                if (result != null)
                {
                    apiResponse = new APIResponse()
                    {
                        status = APIStatus.PASS.ToString(), response = result
                    };
                }
                else
                {
                    apiResponse = new APIResponse()
                    {
                        status = APIStatus.FAIL.ToString(), response = "Registration Failed."
                    };
                }

                return(Ok(apiResponse));
            }
            catch (Exception ex)
            {
                return(Ok(new APIResponse()
                {
                    status = APIStatus.FAIL.ToString(), response = ex.Message
                }));
            }
        }
Beispiel #8
0
        private Message GetEmailMessageForNotification(List <PaymentTransactionModel> payments, Core.Models.Profile.Customer customer)
        {
            MessageTemplateModel template       = _messageTemplateLogic.ReadForKey(Constants.MESSAGE_TEMPLATE_PAYMENTCONFIRMATION);
            MessageTemplateModel detailTemplate = _messageTemplateLogic.ReadForKey(Constants.MESSAGE_TEMPLATE_PAYMENTDETAIL);

            StringBuilder orderDetails = new StringBuilder();

            foreach (var payment in payments)
            {
                var invoice      = _invoiceRepo.GetInvoiceHeader(DivisionHelper.GetDivisionFromBranchId(customer.CustomerBranch), customer.CustomerNumber, payment.InvoiceNumber);
                var invoiceTyped = KeithLink.Svc.Core.Extensions.InvoiceExtensions.DetermineType(invoice.InvoiceType);
                orderDetails.Append(detailTemplate.Body.Inject(new
                {
                    InvoiceType   = invoiceTyped,
                    InvoiceNumber = payment.InvoiceNumber,
                    InvoiceDate   = invoice.InvoiceDate,
                    DueDate       = invoice.DueDate,
                    ScheduledDate = payment.PaymentDate,
                    PaymentAmount = payment.PaymentAmount
                }));
            }


            var bank           = _bankRepo.GetBankAccount(DivisionHelper.GetDivisionFromBranchId(customer.CustomerBranch), customer.CustomerNumber, payments[0].AccountNumber);
            var confirmationId = payments[0].ConfirmationId;

            Message message = new Message();

            message.BodyIsHtml     = template.IsBodyHtml;
            message.MessageSubject = template.Subject.Inject(customer);
            StringBuilder header = _messageTemplateLogic.BuildHeader("Thank you for your payment", customer);

            message.MessageBody = template.Body.Inject(new
            {
                NotifHeader        = header.ToString(),
                ConfirmationId     = confirmationId,
                BankAccount        = string.Format("{0} - {1}", GetBankAccountNumber(bank), GetBankName(bank)),
                PaymentDetailLines = orderDetails.ToString(),
                TotalPayments      = payments.Sum(p => p.PaymentAmount)
            });
            message.CustomerNumber   = customer.CustomerNumber;
            message.CustomerName     = customer.CustomerName;
            message.BranchId         = customer.CustomerBranch;
            message.NotificationType = NotificationType.PaymentConfirmation;
            return(message);
        }
        public IActionResult DeleteDivisionByID(string code)
        {
            try
            {
                if (code == null)
                {
                    return(Ok(new APIResponse()
                    {
                        status = APIStatus.FAIL.ToString(), response = "code can not be null"
                    }));
                }

                var         rs = DivisionHelper.Delete(code);
                APIResponse apiResponse;
                if (rs != null)
                {
                    apiResponse = new APIResponse()
                    {
                        status = APIStatus.PASS.ToString(), response = rs
                    };
                }
                else
                {
                    apiResponse = new APIResponse()
                    {
                        status = APIStatus.FAIL.ToString(), response = "Deletion Failed."
                    };
                }
                return(Ok(apiResponse));
            }
            catch (Exception ex)
            {
                return(Ok(new APIResponse()
                {
                    status = APIStatus.FAIL.ToString(), response = ex.Message
                }));
            }
        }
Beispiel #10
0
        public IActionResult UpdateDivision([FromBody] Divisions division)
        {
            if (division == null)
            {
                return(Ok(new APIResponse {
                    status = APIStatus.FAIL.ToString(), response = $"{nameof(division)} cannot be null"
                }));
            }

            try
            {
                var         rs = DivisionHelper.Update(division);
                APIResponse apiResponse;
                if (rs != null)
                {
                    apiResponse = new APIResponse()
                    {
                        status = APIStatus.PASS.ToString(), response = rs
                    };
                }
                else
                {
                    apiResponse = new APIResponse()
                    {
                        status = APIStatus.FAIL.ToString(), response = "Updation Failed."
                    };
                }
                return(Ok(apiResponse));
            }
            catch (Exception ex)
            {
                return(Ok(new APIResponse()
                {
                    status = APIStatus.FAIL.ToString(), response = ex.Message
                }));
            }
        }
Beispiel #11
0
 private void GetPaymentInvoiceInformation(UserSelectedContext customer, PaymentTransactionModel payment, out Core.Models.OnlinePayments.Invoice.EF.Invoice invoice, out Core.Enumerations.InvoiceType invoiceTyped)
 {
     invoice = _invoiceRepo.GetInvoiceHeader(DivisionHelper.GetDivisionFromBranchId
                                                 (customer.BranchId), customer.CustomerId, payment.InvoiceNumber);
     invoiceTyped = KeithLink.Svc.Core.Extensions.InvoiceExtensions.DetermineType(invoice.InvoiceType);
 }