コード例 #1
0
        private OrderPackage ShipItems(Order order, string trackingNumber, string serviceProvider, string serviceCode,
                                       bool dontShip, string shippingMethodId = null)
        {
            var p = new OrderPackage
            {
                ShipDateUtc                 = DateTime.UtcNow,
                TrackingNumber              = trackingNumber,
                ShippingProviderId          = serviceProvider,
                ShippingProviderServiceCode = serviceCode,
                OrderId          = order.bvin,
                ShippingMethodId = string.IsNullOrEmpty(shippingMethodId) == false ? shippingMethodId : string.Empty
            };

            foreach (GridViewRow gvr in ItemsGridView.Rows)
            {
                if (gvr.RowType == DataControlRowType.DataRow)
                {
                    var lineItemId = (long)ItemsGridView.DataKeys[gvr.RowIndex].Value;
                    var lineItem   = order.GetLineItem(lineItemId);
                    if (lineItem == null || lineItem.IsNonShipping)
                    {
                        continue;
                    }

                    var qty       = 0;
                    var QtyToShip = (TextBox)gvr.FindControl("QtyToShip");
                    if (QtyToShip != null)
                    {
                        if (!int.TryParse(QtyToShip.Text, out qty))
                        {
                            qty = 0;
                        }
                    }

                    // Prevent shipping more than ordered if order is not recurring
                    if (!order.IsRecurring && qty > lineItem.Quantity - lineItem.QuantityShipped)
                    {
                        qty = lineItem.Quantity - lineItem.QuantityShipped;
                    }

                    if (qty > 0)
                    {
                        p.Items.Add(new OrderPackageItem(lineItem.ProductId, lineItem.Id, qty));
                        p.Weight += lineItem.ProductShippingWeight * qty;
                    }
                }
            }
            p.WeightUnits = WebAppSettings.ApplicationWeightUnits;

            if (p.Items.Count > 0)
            {
                order.Packages.Add(p);
                if (!dontShip)
                {
                    HccApp.OrdersShipPackage(p, order);
                }
                HccApp.OrderServices.Orders.Update(order);
            }
            return(p);
        }
コード例 #2
0
ファイル: HotcakesApplication.cs プロジェクト: wncoder/core
        public bool OrdersShipPackage(OrderPackage package, Order order)
        {
            if (order == null)
            {
                throw new NullReferenceException("order");
            }

            if (package == null)
            {
                throw new NullReferenceException("package");
            }

            package.HasShipped = true;
            OrdersShipItems(package, order);

            var c = new OrderTaskContext(CurrentRequestContext);

            c.Order  = order;
            c.UserId = CurrentCustomerId;
            if (!Workflow.RunByName(c, WorkflowNames.PackageShipped))
            {
                EventLog.LogEvent("PackageShippedWorkflow", "Package Shipped Workflow Failed", EventLogSeverity.Debug);
                foreach (var item in c.Errors)
                {
                    EventLog.LogEvent("PackageShippedWorkflow", item.Description, EventLogSeverity.Debug);
                }
            }
            return(true);
        }
コード例 #3
0
ファイル: HotcakesApplication.cs プロジェクト: wncoder/core
        private void OrdersShipItems(OrderPackage package, Order order)
        {
            if (package.Items.Count == 0)
            {
                return;
            }

            foreach (var pi in package.Items)
            {
                var li = order.GetLineItem(pi.LineItemId);
                if (li == null || li.IsNonShipping)
                {
                    continue;
                }

                // Prevent shipping more than ordered if order is not recurring
                if (!order.IsRecurring && pi.Quantity > li.Quantity - li.QuantityShipped)
                {
                    pi.Quantity = li.Quantity - li.QuantityShipped;
                }

                if (pi.Quantity <= 0)
                {
                    pi.Quantity = 0;
                }
                else
                {
                    CatalogServices.InventoryLineItemShipQuantity(li, pi.Quantity);
                }
            }
        }
コード例 #4
0
ファイル: OrdersController.cs プロジェクト: crazyants/core-1
        private OrderPackage ShipItems(Commerce.Orders.Order o, string trackingNumber, string serviceProvider,
                                       string serviceCode)
        {
            var p = new OrderPackage
            {
                ShipDateUtc                 = DateTime.UtcNow,
                TrackingNumber              = trackingNumber,
                ShippingProviderId          = serviceProvider,
                ShippingProviderServiceCode = serviceCode
            };

            foreach (var li in o.Items)
            {
                if (li != null)
                {
                    var qty = li.Quantity;
                    p.Items.Add(new OrderPackageItem(li.ProductId, li.Id, qty));
                    p.Weight += li.ProductShippingWeight * qty;
                }
            }

            p.WeightUnits = WebAppSettings.ApplicationWeightUnits;
            o.Packages.Add(p);

            HccApp.OrdersShipPackage(p, o);
            o.EvaluateCurrentShippingStatus();
            HccApp.OrderServices.Orders.Update(o);

            return(p);
        }
コード例 #5
0
        //protected void lstShippingProvider_SelectedIndexChanged(object sender, System.EventArgs e)
        //{
        //    LoadServiceCodes();
        //}

        //private void LoadServiceCodes()
        //{
        //    this.lstServiceCode.Items.Clear();

        //    IShippingService p = MerchantTribe.Commerce.Shipping.AvailableServices.FindById(this.lstShippingProvider.SelectedValue);
        //    if (p != null) {
        //        foreach (IServiceCode li in p.ListAllServiceCodes())
        //        {
        //            this.lstServiceCode.Items.Add(new System.Web.UI.WebControls.ListItem(li.DisplayName, li.Code));
        //        }
        //    }

        //    if (this.lstServiceCode.Items.Count > 0) {
        //        this.lstServiceCode.Visible = true;
        //    }
        //    else {
        //        this.lstServiceCode.Visible = false;
        //    }

        //    this.lstShippingProvider.UpdateAfterCallBack = true;
        //    this.lstServiceCode.UpdateAfterCallBack = true;
        //}

        protected void PackagesGridView_RowCommand(object sender, System.Web.UI.WebControls.GridViewCommandEventArgs e)
        {
            if (e.CommandName == "TrackingNumberUpdate")
            {
                if (e.CommandSource is System.Web.UI.Control)
                {
                    Order o = MTApp.OrderServices.Orders.FindForCurrentStore(Request.QueryString["id"]);

                    GridViewRow row = (GridViewRow)((System.Web.UI.Control)e.CommandSource).NamingContainer;
                    TextBox     trackingNumberTextBox = (TextBox)row.FindControl("TrackingNumberTextBox");
                    if (trackingNumberTextBox != null)
                    {
                        string idstring = (string)e.CommandArgument;
                        long   pid      = 0;
                        long.TryParse(idstring, out pid);

                        OrderPackage package = o.Packages.Where(y => y.Id == pid).SingleOrDefault();
                        if (package != null)
                        {
                            package.TrackingNumber = trackingNumberTextBox.Text;
                            MTApp.OrderServices.Orders.Update(o);
                        }
                    }
                }
            }
            LoadOrder();
        }
コード例 #6
0
    protected void Button1_Click(object sender, EventArgs e)
    {
        if (Session["CustomerUID"] != null && (dsPackage.dtSelectedPackageDataTable)Session["selectedPackage"] != null)
        {
            OrderPackageDetail opd;
            OrderPackage       op             = new OrderPackage();
            clsPackage         pk             = new clsPackage();
            DataTable          dt             = new DataTable();
            DataTable          dtOrderPackage = new DataTable();
            int OrderPackageUID = 0;

            //Insert Order
            op.CustomerUID = Convert.ToInt32(Session["CustomerUID"]);
            op.OrderNo     = lblOrderNo.Text.Trim();
            op.OrderDate   = Convert.ToDateTime(lblOrderDate.Text.Trim());
            op.Total       = Convert.ToDecimal(txtTotal.Text.Trim());
            op.VAT         = Convert.ToDecimal(txtVat.Text.Trim());
            op.GrandTotal  = Convert.ToDecimal(txtGrandTotal.Text.Trim());
            op.StatusFlage = "A";
            op.CUser       = 99;
            op.CWhen       = DateTime.Now;
            op.MUser       = 99;
            op.MWhen       = DateTime.Now;
            db.OrderPackages.InsertOnSubmit(op);
            db.SubmitChanges();

            //Insert Order Detail
            dtOrderPackage = pk.SearchPackageOrdeByOrderNo(lblOrderNo.Text.Trim());
            if (dtOrderPackage.Rows.Count > 0 && dtOrderPackage != null)
            {
                OrderPackageUID = Convert.ToInt32(dtOrderPackage.Rows[0]["UID"]);

                dt = (dsPackage.dtSelectedPackageDataTable)Session["selectedPackage"];
                for (int i = 0; i <= dt.Rows.Count - 1; i++)
                {
                    opd = new OrderPackageDetail();
                    opd.OrderPackageUID = OrderPackageUID;
                    opd.PackageUID      = Convert.ToInt32(dt.Rows[i]["UID"]);
                    opd.UnitPrice       = Convert.ToDecimal(dt.Rows[i]["UnitPrice"]);
                    opd.Qty             = Convert.ToInt32(dt.Rows[i]["Qty"]);
                    opd.Total           = opd.UnitPrice * opd.Qty;
                    opd.StatusFlag      = "A";
                    opd.CUser           = 99;
                    opd.CWhen           = DateTime.Now;
                    opd.MUser           = 99;
                    opd.MWhen           = DateTime.Now;
                    db.OrderPackageDetails.InsertOnSubmit(opd);
                    db.SubmitChanges();
                    opd = null;
                }
            }
            Session["OrderNo"] = lblOrderNo.Text.Trim();
            Response.Redirect("PackageOrder3.aspx");
        }
        else
        {
            ClientScript.RegisterClientScriptBlock(this.GetType(), "Information", "alert('Session หมดอายุ  กรุณาเลือกแพ็คเกจที่ต้องการใหม่อีกครั้งครับ')", true);
        }
    }
コード例 #7
0
ファイル: AuctionData.cs プロジェクト: maricak/AuctionsIEP
        public Guid?CreateOrder(OrderPackage package, string orderUserId)
        {
            logger.InfoFormat("CreateOrder: {0} ", JsonConvert.SerializeObject(new
            {
                package,
                orderUserId
            }));
            try
            {
                using (AuctionDB db = new AuctionDB())
                {
                    var defaultValues = db.DefaultValues.SingleOrDefault();
                    var orderUser     = db.Users.Where(u => u.Id.Equals(orderUserId)).SingleOrDefault();
                    if (orderUser == null || defaultValues == null)
                    {
                        logger.ErrorFormat("CreateOrder: Something is null {0} ", JsonConvert.SerializeObject(new
                        {
                            orderUser,
                            defaultValues
                        }));
                        return(null);
                    }
                    Order order = new Order
                    {
                        Currency       = defaultValues.Currency,
                        Id             = Guid.NewGuid(),
                        User           = orderUser,
                        NumberOfTokens = (package == OrderPackage.SILVER ? defaultValues.SilverTokenNumber
                            : package == OrderPackage.GOLD ? defaultValues.GoldTokenNumber
                            : defaultValues.PlatinuTokenNumber),
                        Status = OrderStatus.CANCELED
                    };
                    order.Price = order.NumberOfTokens * defaultValues.TokenValue;

                    db.Orders.Add(order);
                    db.SaveChanges();

                    logger.InfoFormat("CreateOrder: new order {0} ", JsonConvert.SerializeObject(new
                    {
                        order.Id,
                        order.Currency,
                        order.NumberOfTokens,
                        order.Status,
                        order.Price,
                    }));

                    return(order.Id);
                }
            }
            catch (Exception e)
            {
                logger.Error("CreateOrder", e);
            }
            return(null);
        }
コード例 #8
0
        public void TestGeneratePackageContent()
        {
            OrderPackage op = new OrderPackage();

            op.TotalAmount = "1";
            op.ClientIP    = "127.0.0.1";
            op.OrderNO     = "16642817866003386000";

            var pk = op.GeneratePackageContent();

            Assert.IsTrue(pk == "bank_type=WX&body=XXX&fee_type=1&input_charset=GBK&notify_url=http%3a%2f%2fwww.qq.com&out_trade_no=16642817866003386000&partner=1900000109&spbill_create_ip=127.0.0.1&total_fee=1&sign=BEEF37AD19575D92E191C1E4B1474CA9");
        }
コード例 #9
0
        public void TestGenereatePaySign()
        {
            OrderPackage op = new OrderPackage();

            op.TotalAmount = "1";
            op.ClientIP    = "127.0.0.1";
            op.OrderNO     = "16642817866003386000";

            PreOrderRequest por = new PreOrderRequest();

            por.Package = op;
            por.GeneratePaySign();

            Assert.IsTrue(por.PaySign == "7717231c335a05165b1874658306fa431fe9a0de");
        }
コード例 #10
0
        private void ShipOrPackageItems(bool dontShip)
        {
            Order order = MTApp.OrderServices.Orders.FindForCurrentStore(Request.QueryString["id"]);
            OrderShippingStatus previousShippingStatus = order.ShippingStatus;

            string serviceCode = string.Empty;

            if (this.lstTrackingProvider.SelectedValue != null)
            {
                serviceCode = this.lstTrackingProvider.SelectedValue;
            }

            OrderPackage p = ShipItems(order, this.TrackingNumberField.Text.Trim(), order.ShippingProviderId, serviceCode, dontShip);

            ReloadOrder(previousShippingStatus);
        }
コード例 #11
0
        public ActionResult Create(CreateOrderViewModel model)
        {
            logger.InfoFormat("Create-POST: {0}", JsonConvert.SerializeObject(new
            {
                user = User.Identity.GetUserName(),
                model
            }));

            if (ModelState.IsValid)
            {
                OrderPackage package = model.Package == "SILVER" ? OrderPackage.SILVER
                    : model.Package == "GOLD" ? OrderPackage.GOLD
                    : model.Package == "PLATINUM" ? OrderPackage.PLATINUM
                    : OrderPackage.ERROR;

                string userId = User.Identity.GetUserId();

                if (String.IsNullOrEmpty(userId) || package == OrderPackage.ERROR)
                {
                    return(RedirectToAction("Index", new { message = OrderMessageId.Error }));
                }

                Guid?orderId = data.CreateOrder(package, userId);

                if (orderId == null)
                {
                    return(RedirectToAction("Index", new { message = OrderMessageId.Error }));
                }
                return(Redirect("https://stage.centili.com/widget/WidgetModule?api=564f47646ce7f954ad981d6b1b6166fc&country=RS&countrylock=true&clientid=" + orderId.ToString()));
            }
            else
            {
                var dv = data.GetDetailsDefaultValues();

                if (dv == null)
                {
                    return(RedirectToAction("Index", new { message = OrderMessageId.Error }));
                }
                ViewBag.platinum   = dv.PlatinuTokenNumber;
                ViewBag.silver     = dv.SilverTokenNumber;
                ViewBag.gold       = dv.GoldTokenNumber;
                ViewBag.tokenPrice = dv.TokenValue;
                ViewBag.currency   = dv.Currency;
            }
            return(View(model));
        }
コード例 #12
0
        private OrderPackage ShipItems(Order o, string trackingNumber, string serviceProvider, string serviceCode, bool dontShip)
        {
            OrderPackage p = new OrderPackage();

            p.ShipDateUtc                 = DateTime.UtcNow;
            p.TrackingNumber              = trackingNumber;
            p.ShippingProviderId          = serviceProvider;
            p.ShippingProviderServiceCode = serviceCode;
            foreach (GridViewRow gvr in this.ItemsGridView.Rows)
            {
                if (gvr.RowType == DataControlRowType.DataRow)
                {
                    LineItem li = o.GetLineItem((long)this.ItemsGridView.DataKeys[gvr.RowIndex].Value);
                    if (li != null)
                    {
                        int     qty       = 0;
                        TextBox QtyToShip = (TextBox)gvr.FindControl("QtyToShip");
                        if (QtyToShip != null)
                        {
                            if (!int.TryParse(QtyToShip.Text, out qty))
                            {
                                qty = 0;
                            }
                        }
                        p.Items.Add(new OrderPackageItem(li.ProductId, li.Id, qty));
                        p.Weight += (li.ProductShippingWeight * qty);
                    }
                }
            }
            p.WeightUnits = WebAppSettings.ApplicationWeightUnits;

            o.Packages.Add(p);
            if (!dontShip)
            {
                MTApp.OrdersShipPackage(p, o);
            }
            MTApp.OrderServices.Orders.Update(o);

            return(p);
        }
コード例 #13
0
ファイル: HotcakesApplication.cs プロジェクト: wncoder/core
        public bool OrdersUnshipItems(OrderPackage package, Order order)
        {
            if (order == null)
            {
                throw new NullReferenceException("order");
            }

            if (package == null)
            {
                throw new NullReferenceException("package");
            }

            var result = true;

            if (package.Items.Count == 0)
            {
                return(result);
            }

            foreach (var pi in package.Items)
            {
                var li = order.GetLineItem(pi.LineItemId);
                if (li == null || li.IsNonShipping)
                {
                    continue;
                }

                // Prevent unshipping more than shipped if order is not recurring
                var quantityToUnship = pi.Quantity;
                if (!order.IsRecurring && pi.Quantity > li.QuantityShipped)
                {
                    quantityToUnship = li.QuantityShipped;
                }
                CatalogServices.InventoryLineItemUnShipQuantity(li, quantityToUnship);
            }

            return(result);
        }
コード例 #14
0
    public List <OrderPackage> CalculateCheapestPrice(Int32 AmountOfLicenses,
                                                      List <PriceRange> PriceRanges, out Double Total)
    {
        List <OrderPackage> result = new List <OrderPackage>();

        Total = 0;

        Int32 AmountsOfLicensesleft = AmountOfLicenses;

        PriceRanges.Sort(ComparePrice);

        for (int i = 0; i < PriceRanges.Count; i++)
        {
            for (int j = PriceRanges[i].MaxAmount; j >= PriceRanges[i].MinAmount; j--)
            {
                if (j <= AmountsOfLicensesleft)
                {
                    OrderPackage Order = new OrderPackage();
                    Int32        AmountOfThisPackage = AmountsOfLicensesleft / j;
                    //Int32 AmountForThisPrice = Convert.ToInt32(Math.Floor(tmp));

                    Order.PriceRange       = PriceRanges[i];
                    Order.AmountOfLicenses = j;

                    Total += Order.AmountOfLicenses * Order.PriceRange.PricePerLicense;

                    for (int k = 0; k < AmountOfThisPackage; k++)
                    {
                        result.Add(Order);
                    }

                    AmountsOfLicensesleft = AmountsOfLicensesleft - (AmountOfThisPackage * j);
                }
            }
        }

        return(result);
    }
コード例 #15
0
        public OperationResult CreateOrder(UserForm userForm, OrderData data, out string productName)
        {
            var result = new OperationResult();
            //尋找是否有可用Coupon
            CouponDetail couponDetail = CheckCoupon(data.AccountName, data.CouponDetailId);

            if (couponDetail == null)
            {
                data.CouponDetailId = null;
            }
            else
            {
                data.CouponDetailId = couponDetail.CouponDetailId;
            }
            byte?invoiceDonateTo;

            if (userForm.InvoiceDonateTo == null)
            {
                invoiceDonateTo = null;
            }
            else
            {
                invoiceDonateTo = byte.Parse(userForm.InvoiceDonateTo);
            }
            UserFavorite favorite = _repository.GetAll <UserFavorite>()
                                    .First(x => x.FavoriteId == data.FavoriteId);
            PackageProduct            package         = null;
            List <UserDefinedProduct> userDefinedList = null;

            if (favorite.IsPackage)
            {
                package     = GetPackage(favorite);
                productName = package.Name;
            }
            else
            {
                userDefinedList = GetUserDefinedList(favorite);
                productName     = userDefinedList[0].Name;
            }
            using (var transaction = _context.Database.BeginTransaction()) {
                try {
                    Order order = new Order {
                        OrderId         = Guid.NewGuid(),
                        AccountName     = data.AccountName,
                        FullName        = userForm.FullName,
                        Email           = userForm.Email,
                        Phone           = userForm.Phone,
                        DateService     = DateTime.Parse(userForm.DateService),
                        Address         = $"{userForm.County}{userForm.District}{userForm.Address}",
                        Remark          = userForm.Remark == null ? string.Empty : userForm.Remark,
                        OrderState      = (byte)OrderState.Unpaid,
                        Rate            = null,
                        Comment         = string.Empty,
                        CouponDetailId  = data.CouponDetailId,
                        PaymentType     = string.Empty,
                        InvoiceType     = byte.Parse(userForm.InvoiceType),
                        InvoiceDonateTo = invoiceDonateTo,
                        MerchantTradeNo = data.MerchantTradeNo,
                        TradeNo         = string.Empty,
                        CreateTime      = data.Now,
                        EditTime        = data.Now,
                        CreateUser      = data.AccountName,
                        EditUser        = data.AccountName,
                    };
                    _repository.Create <Order>(order);
                    _context.SaveChanges();

                    OrderDetail od = new OrderDetail {
                        OrderDetailId = Guid.NewGuid(),
                        OrderId       = order.OrderId,
                        FavoriteId    = data.FavoriteId,
                        FinalPrice    = data.FinalPrice,
                        ProductName   = productName,
                        CreateTime    = data.Now,
                        EditTime      = data.Now,
                        CreateUser    = data.AccountName,
                        EditUser      = data.AccountName,
                    };
                    _repository.Create <OrderDetail>(od);
                    _context.SaveChanges();

                    if (favorite.IsPackage)
                    {
                        List <int?> roomTypes = new List <int?> {
                            package.RoomType, package.RoomType2
                        };
                        if (package.RoomType3 >= 0)
                        {
                            roomTypes.Add(package.RoomType3);
                        }
                        List <int?> squareFeets = new List <int?> {
                            package.Squarefeet, package.Squarefeet2
                        };
                        if (package.Squarefeet3 >= 0)
                        {
                            squareFeets.Add(package.Squarefeet3);
                        }

                        OrderPackage orderPackage = new OrderPackage {
                            OrderId      = order.OrderId,
                            RoomTypes    = string.Join(",", roomTypes),
                            SquareFeets  = string.Join(",", squareFeets),
                            ServiceItems = package.ServiceItem,
                            Hour         = package.Hour,
                            Price        = package.Price,
                            CreateTime   = data.Now,
                            EditTime     = data.Now,
                            CreateUser   = data.AccountName,
                            EditUser     = data.AccountName,
                        };
                        _repository.Create <OrderPackage>(orderPackage);
                    }
                    else
                    {
                        foreach (var item in userDefinedList)
                        {
                            OrderUserDefined orderUserDefined = new OrderUserDefined {
                                OrderId      = order.OrderId,
                                RoomType     = item.RoomType,
                                SquareFeet   = item.Squarefeet,
                                ServiceItems = item.ServiceItems,
                                Hour         = item.Hour,
                                Price        = item.Price,
                                CreateTime   = data.Now,
                                EditTime     = data.Now,
                                CreateUser   = data.AccountName,
                                EditUser     = data.AccountName,
                            };
                            _repository.Create <OrderUserDefined>(orderUserDefined);
                        }
                    }
                    _context.SaveChanges();

                    if (couponDetail != null)
                    {
                        couponDetail.State = (int)UseState.Used;
                        _context.SaveChanges();
                    }

                    result.IsSuccessful = true;
                    transaction.Commit();
                } catch (Exception ex) {
                    result.IsSuccessful = false;
                    result.Exception    = ex;
                    transaction.Rollback();
                }
            }
            return(result);
        }
コード例 #16
0
 partial void DeleteOrderPackage(OrderPackage instance);
コード例 #17
0
        protected void PackagesGridView_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e)
        {
            OrderPackage p = (OrderPackage)e.Row.DataItem;

            if (p != null)
            {
                string serviceCodeName = "Other";
                int    trackerCode     = 0;

                int.TryParse(p.ShippingProviderId, out trackerCode);

                TrackingProvider trackProvider = TrackingProvider.None;

                switch (trackerCode)
                {
                case 1:
                    serviceCodeName = "UPS";
                    trackProvider   = TrackingProvider.UPS;
                    break;

                case 2:
                    serviceCodeName = "FedEx";
                    trackProvider   = TrackingProvider.FedEx;
                    break;

                case 3:
                    serviceCodeName = "US Postal Service";
                    trackProvider   = TrackingProvider.USPostal;
                    break;
                }
                //IShippingService provider = MerchantTribe.Commerce.Shipping.AvailableServices.FindById(p.ShippingProviderId);


                //List<IServiceCode> codes = provider.ListAllServiceCodes();
                //foreach (IServiceCode item in codes) {
                //    if (item.Code == p.ShippingProviderServiceCode) {
                //        serviceCodeName = item.DisplayName;
                //    }
                //}

                Label ShippedByField = (Label)e.Row.FindControl("ShippedByField");
                if (ShippedByField != null)
                {
                    //if (provider != null) {
                    //    if (serviceCodeName != string.Empty) {
                    ShippedByField.Text = serviceCodeName;
                    //    }
                    //    else {
                    //        ShippedByField.Text = provider.Name;
                    //    }
                    //}
                }

                HyperLink TrackingLink = (HyperLink)e.Row.FindControl("TrackingLink");
                if (TrackingLink != null)
                {
                    TrackingLink.Text = p.TrackingNumber;
                    //if (provider != null) {
                    //    if (o != null && o.Bvin != string.Empty) {
                    //        //if (provider.SupportsTracking()) {
                    //        //    TrackingLink.Text = "Track Package";
                    //        //    TrackingLink.NavigateUrl = provider.GetTrackingUrl(p.TrackingNumber);
                    //        //}
                    //    }
                    //}
                }

                TextBox TrackingTextBox = (TextBox)e.Row.FindControl("TrackingNumberTextBox");
                if (TrackingTextBox != null)
                {
                    TrackingTextBox.Text = p.TrackingNumber;
                }

                Label items = (Label)e.Row.FindControl("items");
                if (items != null)
                {
                    items.Text = string.Empty;
                    foreach (OrderPackageItem pi in p.Items)
                    {
                        if (pi.Quantity > 0)
                        {
                            items.Text += pi.Quantity.ToString("#") + " - ";
                            if (o != null)
                            {
                                foreach (LineItem li in o.Items)
                                {
                                    if (li.Id == pi.LineItemId)
                                    {
                                        items.Text += li.ProductSku + ": " + li.ProductName + "<br />";
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
コード例 #18
0
 public async Task <Order> PackageOrderRows(OrderPackage orderPackage) =>
 await _client.PostAsync <Order>("api/orderpackage", orderPackage);
コード例 #19
0
    protected void Button1_Click(object sender, EventArgs e)
    {
        if (Session["CustomerUID"] != null && (dsPackage.dtSelectedPackageDataTable)Session["selectedPackage"] != null)
        {
            OrderPackageDetail opd;
            OrderPackage op = new OrderPackage();
            clsPackage pk = new clsPackage();
            DataTable dt = new DataTable();
            DataTable dtOrderPackage = new DataTable();
            int OrderPackageUID = 0;

            //Insert Order
            op.CustomerUID = Convert.ToInt32(Session["CustomerUID"]);
            op.OrderNo = lblOrderNo.Text.Trim();
            op.OrderDate = Convert.ToDateTime(lblOrderDate.Text.Trim());
            op.Total = Convert.ToDecimal(txtTotal.Text.Trim());
            op.VAT = Convert.ToDecimal(txtVat.Text.Trim());
            op.GrandTotal = Convert.ToDecimal(txtGrandTotal.Text.Trim());
            op.StatusFlage = "A";
            op.CUser = 99;
            op.CWhen = DateTime.Now;
            op.MUser = 99;
            op.MWhen = DateTime.Now;
            db.OrderPackages.InsertOnSubmit(op);
            db.SubmitChanges();

            //Insert Order Detail
            dtOrderPackage = pk.SearchPackageOrdeByOrderNo(lblOrderNo.Text.Trim());
            if(dtOrderPackage.Rows.Count > 0 && dtOrderPackage !=null)
            {
                OrderPackageUID = Convert.ToInt32(dtOrderPackage.Rows[0]["UID"]);

                dt = (dsPackage.dtSelectedPackageDataTable)Session["selectedPackage"];
                for (int i = 0; i <= dt.Rows.Count - 1; i++)
                {
                    opd = new OrderPackageDetail();
                    opd.OrderPackageUID = OrderPackageUID;
                    opd.PackageUID = Convert.ToInt32(dt.Rows[i]["UID"]);
                    opd.UnitPrice = Convert.ToDecimal(dt.Rows[i]["UnitPrice"]);
                    opd.Qty = Convert.ToInt32(dt.Rows[i]["Qty"]);
                    opd.Total = opd.UnitPrice * opd.Qty;
                    opd.StatusFlag = "A";
                    opd.CUser = 99;
                    opd.CWhen = DateTime.Now;
                    opd.MUser = 99;
                    opd.MWhen = DateTime.Now;
                    db.OrderPackageDetails.InsertOnSubmit(opd);
                    db.SubmitChanges();
                    opd = null;
                }
                
            }
            Session["OrderNo"] = lblOrderNo.Text.Trim();
            Response.Redirect("PackageOrder3.aspx");
        }
        else
        {
            ClientScript.RegisterClientScriptBlock(this.GetType(), "Information", "alert('Session หมดอายุ  กรุณาเลือกแพ็คเกจที่ต้องการใหม่อีกครั้งครับ')", true);
        }
    }
コード例 #20
0
ファイル: OrderService.cs プロジェクト: appleLsY/BarberManage
 /// <summary>
 /// 预约
 /// </summary>
 /// <param name="orderModel"></param>
 /// <returns></returns>
 public OrderModel Add(OrderModel orderModel)
 {
     using (Db = new BMSDBContext())
     {
         //获取店铺设置
         var companyInfo = Db.ShopSetting.FirstOrDefault();
         //1.判断是否在营业时间
         if (orderModel.StartTime.Hour < companyInfo.StartTime.Hour || orderModel.StartTime.Hour < companyInfo.EndTime.Hour)
         {
             throw new Exception("所选时间不在营业时间");
         }
         //2.判断是否超过同时服务人数
         //服务所需分钟数
         var needTime = orderModel.Packages.Sum(o => o.Timespan);
         //服务结束时间
         var serveEndTime = orderModel.StartTime.AddMinutes(needTime);
         var count        = (orderModel.StartTime - serveEndTime).Minutes / 30;
         for (int i = 1; i <= count; i++)
         {
             var start           = orderModel.StartTime.AddMinutes(needTime * (i - 1));
             var end             = orderModel.StartTime.AddMinutes(needTime * i);
             var allShedulCounts = Db.Schedule.Where(o => o.StartTime <= orderModel.StartTime && o.EndTime >= end).Count();
             if (allShedulCounts >= companyInfo.MaxServeCount)
             {
                 throw new Exception(string.Format("{0}-{1}时间段店铺达到最大服务人数", start, end));
             }
         }
         //3.判断理发师时间安排
         var shedulCounts = Db.Schedule.Where(o => o.BarberId == orderModel.BarberId && o.StartTime <= orderModel.StartTime && o.EndTime >= serveEndTime).Count();
         if (shedulCounts > 0)
         {
             throw new Exception("与理发师时间冲突");
         }
         //插入数据
         var order = new Order()
         {
             CustomerId  = orderModel.UserId,
             OrderNo     = orderModel.OrderNo,
             CreatedBy   = orderModel.UserId,
             CreatedOn   = DateTime.Now,
             OrderStatus = "",
             Price       = orderModel.Packages.Sum(o => o.Price),
             ChanelCode  = ""
         };
         Db.Order.Add(order);
         Db.SaveChanges();
         foreach (var item in orderModel.Packages)
         {
             var orderPackage = new OrderPackage()
             {
                 OrderId   = Db.Order.Where(o => o.OrderNo == orderModel.OrderNo).FirstOrDefault().Id,
                 PackageId = item.Id
             };
             Db.OrderPackage.Add(orderPackage);
         }
         var shedul = new Schedule()
         {
             CustomerId = orderModel.UserId,
             BarberId   = orderModel.BarberId,
             OrderId    = Db.Order.Where(o => o.OrderNo == orderModel.OrderNo).FirstOrDefault().Id,
             StartTime  = orderModel.StartTime,
             EndTime    = serveEndTime,
             CreatedOn  = DateTime.Now
         };
         Db.Schedule.Add(shedul);
     }
     if (Db.SaveChanges() < 1)
     {
         throw new Exception("错误");
     }
     return(orderModel);
 }
コード例 #21
0
 partial void InsertOrderPackage(OrderPackage instance);
コード例 #22
0
        public OrderFullModel GetOrderFull(Guid orderId)
        {
            try
            {
                Order       o  = _repository.GetAll <Order>().First(x => x.OrderId == orderId);
                OrderDetail od = _repository.GetAll <OrderDetail>().First(x => x.OrderId == orderId);

                OrderFullModel orderFull = new OrderFullModel
                {
                    DateService     = o.DateService.ToString("yyyy-MM-dd,HH:mm"),
                    Address         = o.Address,
                    OrderState      = o.OrderState,
                    FinalPrice      = od.FinalPrice,
                    FullName        = o.FullName,
                    Phone           = o.Phone,
                    Email           = o.Email,
                    CreateTime      = o.CreateTime.ToString("yyyy-MM-dd,HH:mm"),
                    InvoiceType     = o.InvoiceType,
                    InvoiceDonateTo = o.InvoiceDonateTo,
                    ProductName     = od.ProductName,
                    Rate            = o.Rate,
                };

                var couponDetail = _repository.GetAll <CouponDetail>()
                                   .FirstOrDefault(x => x.CouponDetailId == o.CouponDetailId);
                if (couponDetail == null)
                {
                    orderFull.DiscountAmount = 0;
                }
                else
                {
                    orderFull.DiscountAmount = _repository.GetAll <Coupon>()
                                               .First(x => x.CouponId == couponDetail.CouponId)
                                               .DiscountAmount;
                }

                switch (o.PaymentType)
                {
                case "Credit_CreditCard":
                    orderFull.PaymentType = "信用卡";
                    break;

                case "":
                    orderFull.PaymentType = "未付款";
                    break;

                default:
                    orderFull.PaymentType = "其他";
                    break;
                }

                OrderPackage package = _repository.GetAll <OrderPackage>().FirstOrDefault(x => x.OrderId == orderId);

                if (package != null)
                {
                    orderFull.PackageModel = new PackageModel
                    {
                        RoomTypes    = package.RoomTypes.Split(',').Select(x => int.Parse(x)).ToArray(),
                        SquareFeets  = package.SquareFeets.Split(',').Select(x => int.Parse(x)).ToArray(),
                        ServiceItems = package.ServiceItems.Replace("+", " + "),
                        Hour         = package.Hour,
                        Price        = package.Price,
                    };
                }
                else
                {
                    var userDefined = _repository.GetAll <OrderUserDefined>().Where(x => x.OrderId == orderId);

                    orderFull.UserDefinedList = new List <UserDefinedModel>();
                    foreach (var item in userDefined)
                    {
                        orderFull.UserDefinedList.Add(new UserDefinedModel
                        {
                            RoomType     = item.RoomType,
                            SquareFeet   = item.SquareFeet,
                            ServiceItems = item.ServiceItems.Replace(",", " + "),
                            Hour         = item.Hour,
                            Price        = item.Price
                        });
                    }
                }
                return(orderFull);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #23
0
 partial void UpdateOrderPackage(OrderPackage instance);