Example #1
0
        public static VendorPayoutModel ToModel(this VendorPayout Payout, IOrderService _orderService)
        {
            var model = new VendorPayoutModel()
            {
                CommissionPercentage = Payout.CommissionPercentage,
                Id               = Payout.Id,
                OrderId          = Payout.OrderId,
                PayoutDate       = Payout.PayoutDate,
                PayoutStatus     = Payout.PayoutStatus,
                Remarks          = Payout.Remarks,
                VendorId         = Payout.VendorId,
                VendorOrderTotal = Payout.VendorOrderTotal,
                ShippingCharge   = Payout.ShippingCharge,
                PayoutStatusName = Payout.PayoutStatus.ToString(),
            };

            if (Payout.PayoutStatus == PayoutStatus.Cancelled)
            {
                model.CommissionAmount = 0;
                model.PayoutAmount     = 0;
                model.VendorOrderTotal = 0;
            }
            else if (_orderService != null)
            {
                var order = _orderService.GetOrderById(Payout.OrderId);
                model.OrderDate = order.CreatedOnUtc;

/*
 *             var vendorItemTotalExShipping = Payout.VendorOrderTotal - model.ShippingCharge;
 *             var vendorItemTotalOriginal = (vendorItemTotalExShipping * 100) / (100 + Payout.CommissionPercentage);
 *             decimal commission = vendorItemTotalExShipping - vendorItemTotalOriginal;
 *             model.CommissionAmount = commission;
 *             model.PayoutAmount = vendorItemTotalOriginal;*/

                model.PayoutAmount     = GetPayoutAmount(Payout.VendorOrderTotal, Payout.CommissionPercentage);
                model.CommissionAmount = model.VendorOrderTotal - model.PayoutAmount;
            }

            return(model);
        }
        public ActionResult UpdatePayout(VendorPayoutModel model)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageVendors))
            {
                return(Content("Access denied"));
            }


            var payout = _extendedVendorService.GetVendorPayout(model.Id);

            if (payout != null)
            {
                payout.CommissionPercentage = model.CommissionPercentage;
                payout.PayoutDate           = model.PayoutDate;
                payout.PayoutStatus         = model.PayoutStatus;
                payout.Remarks          = model.Remarks;
                payout.VendorOrderTotal = model.VendorOrderTotal;
                payout.ShippingCharge   = model.ShippingCharge;
                _extendedVendorService.SaveVendorPayout(payout);
            }
            return(new NullJsonResult());
        }