Ejemplo n.º 1
0
        /// <summary>
        /// Converts to order invoice.
        /// </summary>
        /// <param name="addOrderInvoiceModel">The model.</param>
        /// <returns></returns>
        public static OrderInvoice BindOrderInvoice(AddOrderInvoiceModel addOrderInvoiceModel, List <string> invoiceIds, decimal discountAmount = 0, decimal percentage = 0)
        {
            OrderInvoice orderInvoiceModel = new OrderInvoice();

            if (addOrderInvoiceModel != null)
            {
                orderInvoiceModel.OrderFK         = DBHelper.ParseInt64(addOrderInvoiceModel.OrderId);
                orderInvoiceModel.CreatedOn       = DateTime.Now;
                orderInvoiceModel.CreatedBy       = DBHelper.ParseInt64(addOrderInvoiceModel.CreatedBy);
                orderInvoiceModel.UniqueInvoiceId = CheckInvoiceId(invoiceIds);
                orderInvoiceModel.InvoiceDate     = DateTime.Now;
                orderInvoiceModel.UserFK          = DBHelper.ParseInt64(addOrderInvoiceModel.UserId);
                orderInvoiceModel.SubTotalAmount  = GetSubTotalAmount(addOrderInvoiceModel.productDetail);
                orderInvoiceModel.TotalGSTAmount  = (orderInvoiceModel.SubTotalAmount * DBHelper.ParseDecimal(addOrderInvoiceModel.VatCharges)) / 100;
                orderInvoiceModel.DiscountAmount  = 0;
                decimal total = orderInvoiceModel.SubTotalAmount + orderInvoiceModel.TotalGSTAmount + DBHelper.ParseDecimal(addOrderInvoiceModel.ShippingCharges);
                if (discountAmount > 0)
                {
                    orderInvoiceModel.DiscountAmount = discountAmount;
                }
                else if (percentage > 0)
                {
                    orderInvoiceModel.DiscountAmount = total * percentage / 100;
                }
                orderInvoiceModel.PayableAmount      = total - orderInvoiceModel.DiscountAmount;
                orderInvoiceModel.ShippingCharges    = DBHelper.ParseDecimal(addOrderInvoiceModel.ShippingCharges);
                orderInvoiceModel.IsInvoiceGenerated = true;
                orderInvoiceModel.OrderStatusFK      = (long)OrderStatusEnum.ReadyforPayment;
                orderInvoiceModel.TrackingNumber     = addOrderInvoiceModel.TrackingNumber;
            }
            return(orderInvoiceModel);
        }
Ejemplo n.º 2
0
 public IActionResult AddOrderInvoice(AddOrderInvoiceModel orderInvoiceModel)
 {
     try
     {
         if (ModelState.IsValid)
         {
             decimal discountAmount = 0;
             decimal percentage     = 0;
             long    invoiceCount   = iOrderInvoice.GetInvoiceCountByOrderId(DBHelper.ParseInt64(orderInvoiceModel.OrderId));
             if (invoiceCount <= 0)
             {
                 var orderModel = iOrder.GetOrderModelByOrderId(DBHelper.ParseInt64(orderInvoiceModel.OrderId));
                 if (orderModel != null && orderModel.PromocodeFK.HasValue)
                 {
                     var promoCodeModel = iPromoCode.GetPromocodeDetail(DBHelper.ParseInt64(orderModel.PromocodeFK));
                     if (promoCodeModel != null)
                     {
                         discountAmount = promoCodeModel.Amount;
                         percentage     = promoCodeModel.Percentage;
                     }
                 }
             }
             var          uniqueInvoiceIds = iOrderInvoice.GetAllUniqueInvoiceIds();
             OrderInvoice orderInvModel    = OrderInvoiceHelper.BindOrderInvoice(orderInvoiceModel, uniqueInvoiceIds, discountAmount, percentage);
             List <OrderInvoiceDetail> invoiceDetailsList = OrderInvoiceHelper.BindOrderInvoiceDetailModel(orderInvoiceModel.productDetail);
             long orderInvoiceId = iOrderInvoice.AddOrderInvoice(orderInvModel, invoiceDetailsList, orderInvoiceModel.productDetail);
             if (orderInvoiceId > 0)
             {
                 if (orderInvModel.OrderStatusFK == OrderStatusEnum.ReadyforPayment.GetHashCode())
                 {
                     SendPaymentRelatedEmail(DBHelper.ParseInt32(orderInvoiceId));
                 }
                 return(Ok(ResponseHelper.Success(MessageConstants.OrderInvoiceGenerated)));
             }
             else
             {
                 return(Ok(ResponseHelper.Error(MessageConstants.OrderInvoiceNotGenerated)));
             }
         }
         else
         {
             return(Ok(ResponseHelper.Error(MessageConstants.CompulsoryData)));
         }
     }
     catch (Exception ex)
     {
         LogHelper.ExceptionLog(ex.Message + "  :::::  " + ex.StackTrace);
         return(Ok(ResponseHelper.Error(ex.Message)));
     }
 }