コード例 #1
0
ファイル: OrderDomainService.cs プロジェクト: radtek/crm
        public void Deal(OrderContract contract)
        {
            var orderDetailFacade = new T_InoutDetailFacade();
            var orderFacade       = new T_InoutFacade();

            var inoutDetails = new List <T_Inout_DetailEntity>();

            foreach (var detail in contract.DetailList)
            {
                var tmp = ConvertToT_InoutDetial(contract.OrderId, detail);
                inoutDetails.Add(tmp);
            }

            switch (contract.Operation)
            {
            case OptEnum.Create:
                var tInout = ConvertToT_Inout(contract);

                orderFacade.Create(tInout);
                foreach (var entity in inoutDetails)
                {
                    orderDetailFacade.Create(entity);
                }
                break;

            case OptEnum.Update:
                var tinout = orderFacade.GetOrderByOrderId(contract.OrderId);

                if (contract.Status == EnumOrderStatus.Done)
                {
                }

                tinout.total_amount   = tinout.total_amount + inoutDetails[0].enter_amount;
                tinout.actual_amount  = tinout.total_amount * (tinout.discount_rate / 100);
                tinout.modify_time    = contract.ModifyTime;
                tinout.modify_user_id = contract.ModifyUserId;

                orderFacade.Update(tinout);
                foreach (var entity in inoutDetails)
                {
                    orderDetailFacade.Create(entity);
                }
                break;

            case OptEnum.Delete:

                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
コード例 #2
0
ファイル: OrderDomainService.cs プロジェクト: radtek/crm
        public void Deal(EventContract msg)
        {
            var     bus = MqBusMgr.GetInstance();
            OptEnum operation;

            Enum.TryParse(msg.Operation.ToString(), out operation);
            var orderContract = new OrderContract()
            {
                Operation = operation,
                OrderId   = msg.Id
            };

            if (msg.Operation != Zmind.EventBus.Contract.OptEnum.Delete)
            {
                var orderFacade = new T_InoutFacade();
                var result      = orderFacade.GetOrderByOrderId(msg.Id);
                if (result == null)
                {
                    return;
                }

                var orderStatus = (EnumOrderStatus)Enum.Parse(typeof(EnumOrderStatus), result.Field7);
                if (orderStatus != EnumOrderStatus.PendingPay)
                {
                    //return;
                }
                orderContract.OrderNo            = result.order_no;
                orderContract.OrderType          = GetEnumOrderType(result.order_type_id);
                orderContract.OrderReason        = GetEnumOrderReason(result.order_reason_id);
                orderContract.OrderDate          = result.order_date ?? String.Empty;
                orderContract.RequestDate        = result.reserveDay ?? String.Empty;
                orderContract.RequestDateQuantum = result.reserveQuantum ?? String.Empty;
                orderContract.CompleteDate       = result.complete_date ?? String.Empty;
                orderContract.CreateUnit         = result.unit_id ?? String.Empty;
                orderContract.TotalAmount        = result.total_amount;
                orderContract.DiscountRate       = result.discount_rate;
                orderContract.ActualAmount       = result.actual_amount;
                orderContract.ReceivePoints      = result.receive_points;
                orderContract.PayPoints          = result.pay_points;
                orderContract.Remark             = result.remark ?? String.Empty;
                orderContract.Status             = orderStatus;
                orderContract.TotalQty           = result.total_qty;
                orderContract.TotalRetail        = result.total_retail;
                orderContract.KeepTheChange      = result.keep_the_change;
                orderContract.WipingZero         = result.wiping_zero;
                orderContract.VipNo         = result.vip_no ?? String.Empty;
                orderContract.CreateTime    = result.create_time ?? String.Empty;
                orderContract.CreateUserId  = result.create_user_id ?? String.Empty;
                orderContract.ApproveTime   = result.approve_time ?? String.Empty;
                orderContract.ApproveUserId = result.approve_user_id ?? String.Empty;
                orderContract.SendUserId    = result.send_user_id ?? String.Empty;
                orderContract.SendTime      = result.send_time ?? String.Empty;
                orderContract.AccpectUserId = result.accpect_user_id ?? String.Empty;
                orderContract.AccpectTime   = result.accpect_time ?? String.Empty;
                orderContract.ModifyUserId  = result.modify_user_id ?? String.Empty;
                orderContract.ModifyTime    = result.modify_time ?? String.Empty;
                orderContract.DataFrom      =
                    (EnumOrderDataFrom)Enum.Parse(typeof(EnumOrderDataFrom), result.data_from_id ?? _dataFrom);
                orderContract.SalesUnt          = result.sales_unit_id ?? String.Empty;
                orderContract.PurchaseUnit      = result.purchase_unit_id ?? String.Empty;
                orderContract.SalesWarehouse    = result.sales_warehouse_id ?? String.Empty;
                orderContract.PurchaseWarehouse = result.purchase_warehouse_id ?? String.Empty;
                orderContract.IsPay             = (EnumIsPay)int.Parse(result.Field1);
                orderContract.TrackingNumber    = result.Field2 ?? String.Empty;
                orderContract.BalancePayment    = result.Field3 ?? String.Empty;
                orderContract.Address           = result.Field4 ?? String.Empty;
                orderContract.Phone             = result.Field6 ?? String.Empty;
                orderContract.Delivery          = (EnumDelivery)int.Parse(result.Field8);
                orderContract.DeliveryDateTime  = result.Field9 ?? String.Empty;
                orderContract.UserName          = result.Field14 ?? String.Empty;
                orderContract.CashBack          = result.ReturnCash;
                orderContract.DetailList        = new List <OrderDetail>();

                #region 明细数据

                var orderDetailFacade = new T_InoutDetailFacade();
                var itemFacade        = new T_ItemFacade();

                var         resultList = orderDetailFacade.GetOrderDetailListByOrderId(msg.Id);
                OrderDetail tmpDetail;

                foreach (var detialEntity in resultList)
                {
                    var item = itemFacade.GetItemBySkuId(detialEntity.sku_id);

                    tmpDetail = new OrderDetail();
                    tmpDetail.OrderDetailId  = detialEntity.order_detail_id;
                    tmpDetail.SKUID          = detialEntity.sku_id;
                    tmpDetail.UnitId         = orderContract.CreateUnit;
                    tmpDetail.OrderQty       = detialEntity.order_qty;
                    tmpDetail.EnterQty       = detialEntity.enter_qty;
                    tmpDetail.EnterPrice     = detialEntity.enter_price;
                    tmpDetail.EnterAmount    = detialEntity.enter_amount;
                    tmpDetail.StdPrice       = detialEntity.std_price;
                    tmpDetail.RetailPrice    = detialEntity.retail_price;
                    tmpDetail.RetailAmount   = detialEntity.retail_amount;
                    tmpDetail.PlanPrice      = detialEntity.plan_price;
                    tmpDetail.ReceiverPoints = detialEntity.receive_points;
                    tmpDetail.PayPoints      = detialEntity.pay_points;
                    tmpDetail.Remark         = detialEntity.remark;
                    tmpDetail.PosOrderCode   = detialEntity.pos_order_code;
                    tmpDetail.DisplayIndex   = detialEntity.display_index;
                    tmpDetail.CreateTime     = detialEntity.create_time;
                    tmpDetail.CreateUserId   = detialEntity.create_user_id;
                    tmpDetail.ModifyTime     = detialEntity.modify_time;
                    tmpDetail.ModifyUser     = detialEntity.modify_user_id;
                    tmpDetail.ReturnCash     = detialEntity.ReturnCash;

                    if (item.ifservice == 1)
                    {
                        tmpDetail.SKUID = ConfigMgr.VirtualGoodsSkuId;
                    }

                    orderContract.DetailList.Add(tmpDetail);
                }
                #endregion
            }
            var json = new JavaScriptSerializer().Serialize(orderContract);//测试用,抓对象的json格式
            bus.Publish <IZmindToXgx>(orderContract);
        }