コード例 #1
0
        public ActionResult GetSettleData()
        {
            SettleQueryFilter filter = BuildQueryFilterEntity <SettleQueryFilter>();

            filter.MerchantSysNo = UserAuthHelper.GetCurrentUser().SellerSysNo;
            var result = SettleService.SettleQuery(filter);

            return(AjaxGridJson(result));
        }
コード例 #2
0
        public ActionResult ViewCommissionItemDetail()
        {
            int sysno = 0;

            if (Request["sysno"] == null)
            {
                sysno = SettleService.GetNotSettleedSysNo(UserAuthHelper.GetCurrentUser().SellerSysNo);
            }
            else
            {
                sysno = int.Parse(Request["sysno"]);
            }

            decimal rentFee = 0;

            if (Request["RentFee"] != null)
            {
                rentFee = decimal.Parse(Request["RentFee"]);
            }

            List <CommissionItemInfo> commissionItems = null;

            commissionItems = SettleService.GetCommissionItem(sysno, UserAuthHelper.GetCurrentUser().SellerSysNo);

            //SAC:销售提成;SOC:订单提成;DEF:配送费用;
            List <CommissionItemInfo> commissionItems_SAC = new List <CommissionItemInfo>();
            List <CommissionItemInfo> commissionItems_SOC = new List <CommissionItemInfo>();
            List <CommissionItemInfo> commissionItems_DEF = new List <CommissionItemInfo>();



            foreach (CommissionItemInfo item in commissionItems)
            {
                switch (item.CommissionType)
                {
                case CommissionType.SAC:
                    #region 销售规则
                    if (!string.IsNullOrEmpty(item.SalesRuleXml) && item.SalesRuleEntity != null)
                    {
                        item.SalesRuleStr = string.Format("保底金额:{0}<br/>", item.SalesRuleEntity.MinCommissionAmt.ToString("f2"));

                        for (int i = 0; i < item.SalesRuleEntity.Rules.Count; i++)
                        {
                            string startAmt   = item.SalesRuleEntity.Rules[i].StartAmt.ToString("f2");
                            string endAmt     = item.SalesRuleEntity.Rules[i].EndAmt.ToString("f2");
                            string percentage = (item.SalesRuleEntity.Rules[i].Percentage).ToString("f2") + "%";
                            if (item.SalesRuleEntity.Rules[i].StartAmt == 0.0m && item.SalesRuleEntity.Rules[i].EndAmt == 0.0m)
                            {
                                item.SalesRuleStr += string.Format("按销售总额的 {0} 收取佣金<br/>", percentage);
                                break;
                            }
                            else if (item.SalesRuleEntity.Rules[i].StartAmt == 0.0m)
                            {
                                item.SalesRuleStr += string.Format("不超过 {0}元的部分,按销售总额的 {1} 收取佣金<br/>", endAmt, percentage);
                            }
                            else if (item.SalesRuleEntity.Rules[i].EndAmt == 0.0m)
                            {
                                item.SalesRuleStr += string.Format("超过 {0}元的部分,按销售总额的 {1} 收取佣金<br/>", startAmt, percentage);
                            }
                            else
                            {
                                item.SalesRuleStr += string.Format("超过 {0}元 至 {1}元的部分,按销售总额的 {2} 收取佣金<br/>", startAmt, endAmt, percentage);
                            }
                        }
                    }
                    #endregion
                    commissionItems_SAC.Add(item);
                    break;

                case CommissionType.SOC:
                    item.SalesRuleStr = item.SalesRuleSOC.ToString("f2");
                    commissionItems_SOC.Add(item);
                    break;

                case CommissionType.DEF:
                    item.SalesRuleStr = item.SalesRuleDEF.ToString("f2");
                    commissionItems_DEF.Add(item);
                    break;
                }
            }

            decimal SACSum = commissionItems_SAC.Sum(x => x.SalesCommissionFee);
            decimal SOCSum = commissionItems_SOC.Sum(x => x.OrderCommissionFee);
            decimal DEFSum = commissionItems_DEF.Sum(x => x.DeliveryFee);
            decimal SumAll = SACSum + SOCSum;// +DEFSum + rentFee;

            ViewBag.SAC = commissionItems_SAC;
            ViewBag.SOC = commissionItems_SOC;
            ViewBag.DEF = commissionItems_DEF;
            ViewBag.StatisticalInformation = string.Format("佣金信息汇总:销售提成 {0}元,订单提成 {1}元 总计:{2}元", SACSum.ToString("f2"), SOCSum.ToString("f2"), SumAll.ToString("f2"));
            ViewBag.CommissionMasterInfo   = SettleService.GetCommissionMasterInfoBySysNo(sysno, UserAuthHelper.GetCurrentUser().SellerSysNo);
            ViewBag.VendorName             = string.Format("{0} ({1})", UserAuthHelper.GetCurrentUser().SellerName, UserAuthHelper.GetCurrentUser().SellerSysNo);

            return(View());
        }
コード例 #3
0
        public ActionResult ViewCommissionLogDetail()
        {
            string type = string.Empty;

            if (Request["type"] != null)
            {
                type = Request["type"].ToString();
            }
            List <int> sysnoList = new List <int>();

            if (Request["Data"] != null && Request["Data"].ToString() != "")
            {
                foreach (var item in Request["Data"].ToString().Split(','))
                {
                    sysnoList.Add(int.Parse(item));
                }
            }

            string brandCategory = string.Empty;

            if (Request["brandCategory"] != null)
            {
                brandCategory = Request["brandCategory"].ToString();
            }


            List <CommissionItemLogDetailInfo> data = SettleService.QueryCommissionLogDetail(UserAuthHelper.GetCurrentUser().SellerSysNo, type, sysnoList);

            if (string.IsNullOrEmpty(type) ||
                data == null)
            {
                return(View());
            }

            int soCount = (from x in data
                           where x.ReferenceType.Trim().ToUpper() == OrdersType.SO
                           group x by x.ReferenceSysNo into g
                           select g).Count();
            int rmaCount = (from x in data
                            where x.ReferenceType.Trim().ToUpper() == OrdersType.RMA
                            group x by x.ReferenceSysNo into g
                            select g).Count();

            FillDataSource(data);
            switch ((CommissionType)Enum.Parse(typeof(CommissionType), type.ToUpper()))
            {
            case CommissionType.SAC:
            {
                ViewBag.SACData = data;
                var     totalAmtSO             = data.FindAll(x => { return(x.ReferenceType.Trim().ToUpper() == OrdersType.SO); }).Sum(x => { return(x.Qty * x.Price); });
                var     totalAmtRMA            = data.FindAll(x => { return(x.ReferenceType.Trim().ToUpper() == OrdersType.RMA); }).Sum(x => { return(x.Qty * x.Price); });
                decimal totalPromotionDiscount = data.Where(x => x.PromotionDiscount.HasValue).Sum(x => x.PromotionDiscount.Value * x.Qty);
                totalPromotionDiscount         = Math.Round(totalPromotionDiscount, 2);
                ViewBag.StatisticalInformation = string.Format("代理品类:{0},销售金额总计:{1}元", brandCategory, (totalAmtSO + totalAmtRMA + totalPromotionDiscount).ToString("f2"));
                break;
            }

            case CommissionType.SOC:
            {
                ViewBag.SOCData = data;
                ViewBag.StatisticalInformation = string.Format("代理品类:{0},销售订单数:{1};退货单数:{2}", brandCategory, soCount, rmaCount);
                break;
            }

            case CommissionType.DEF:
            {
                ViewBag.DEFData = data;
                ViewBag.StatisticalInformation = string.Format("代理品类:{0},销售订单数:{1};", brandCategory, soCount);
                break;
            }

            default:
                break;
            }

            return(View());
        }
コード例 #4
0
        public void SetConfirm(Transaction transaction)
        {
            using (TransactionAccessClient _tran = new TransactionAccessClient(EndpointName.TransactionAccess))
            {
                SettleService _settle = new SettleService();
                WeeklySummaryCollection _weekco = new WeeklySummaryCollection();
                //From Entity
                WeeklySummary _weekFrom = new WeeklySummary();
                _weekFrom.ExchangeRate = transaction.ExchangeRate;
                _weekFrom.Period = transaction.Period;
                _weekFrom.Entity = transaction.FromEntity;
                _weekFrom.BaseTransaction = -(transaction.Amount);
                _weekFrom.BaseCurrency = transaction.FromCurrency;
                //To Entity
                WeeklySummary _weekTo = new WeeklySummary();
                _weekTo.ExchangeRate = transaction.ExchangeRate;
                _weekTo.Period = transaction.Period;
                _weekTo.Entity = transaction.ToEntity;
                _weekTo.BaseTransaction = transaction.To_Amount;
                _weekTo.BaseCurrency = transaction.ToCurrency;
                _weekco.Add(_weekFrom);
                _weekco.Add(_weekTo);

                _settle.TransactionConfirm(_weekco);

                _tran.SetConfirm(transaction.ID, transaction.Updater.UserID, transaction.Period.ID);
            }
        }