Beispiel #1
0
        }//End of BtnPrintDetails_Click(..)

        private void BtnComplete_Click(object sender, EventArgs e)
        {
            _myOrder = _myOrderManager.GetOrderByID(_myOrderId);
            _myOrder.ShippingOrderLineItemList = _myOrderDetails.GetLineItemsByID(_myOrderId);
            Boolean success  = _myOrderManager.UpdatePickedTrue(_myOrder);
            Boolean success2 = _myOrderManager.ClearUserId(_myOrderManager.GetOrderByID(_myOrderId));

            if (success == true && success2 == true)
            {
                if (lvItemsForPick.Items.Count.Equals(0))
                {
                    Close();
                    MessageBox.Show("Order has been sent to shipping.", "Pick Complete");
                }
            }
            else
            {
                if (success == false)
                {
                    MessageBox.Show("Error picking order.", "Pick Fail");
                }
                if (success == false)
                {
                    MessageBox.Show("Error shifting ownership.", "Ownership Change Fail");
                }
            }
        }//End of BtnComplete_Click(..)
        }//End PopulatePackListView(..)

        private void btnPackComplete_Click(object sender, EventArgs e)
        {
            ListView.SelectedListViewItemCollection selectedOrder = this.lvPackList.SelectedItems;
            try
            {
                int           selectedOrderId = Convert.ToInt32(selectedOrder[0].SubItems[0].Text);
                ShippingOrder currentOrder    = _myOrderManager.GetOrderByID(selectedOrderId);
                currentOrder.ShippingOrderLineItemList = _shippingLineItemMan.GetLineItemsByID(selectedOrderId);
                Boolean success = _myOrderManager.UpdateShippedDate(currentOrder);
                _myOrderManager.UpdateUserId(currentOrder, _myAccessToken.UserID);
                if (success == true)
                {
                    MessageBox.Show("Now Printing Pack Slip", "Packing Complete");
                    RefreshPackView();
                    frmPrintPackReport packReport = new frmPrintPackReport(currentOrder, _myAccessToken);
                    packReport.ShowDialog();
                    packReport = null;
                }
                else
                {
                    MessageBox.Show("Cannot complete action.", "Refreshing");
                    RefreshPackView();
                }
            }
            catch (ArgumentOutOfRangeException)
            {
                MessageBox.Show("Please select an order from the list", "No Order Selected");
            }
        }//End btnPackComplete_Click(..)
Beispiel #3
0
        }//End PopulateMasterListView(..)

        private void btnClearUser_Click(object sender, EventArgs e)
        {
            ListView.SelectedListViewItemCollection selectedOrder = this.lvAllOrders.SelectedItems;
            try
            {
                int           selectedOrderId = Convert.ToInt32(selectedOrder[0].SubItems[0].Text);
                ShippingOrder currentOrder    = _myOrderManager.GetOrderByID(selectedOrderId);
                if (currentOrder.Picked == true && currentOrder.UserId.HasValue)
                {
                    MessageBox.Show("That order has already been shipped.", "Cannot Change Employee");
                }
                else
                {
                    Boolean success = _myOrderManager.ClearUserId(currentOrder);
                    if (success == true)
                    {
                        PopulateMasterListView(lvAllOrders, _myOrderManager.GetAllShippingOrders());
                    }
                    else
                    {
                        MessageBox.Show("Cannot complete operation.", "Operation Failed");
                    }
                }
            }
            catch (ArgumentOutOfRangeException)
            {
                MessageBox.Show("Please select an order from the list", "No Order Selected");
            }
        }//btnClearUser_Click(..)
Beispiel #4
0
        }//End of btnPackComplete_Click(..)

        private void btnClearUser_Click(object sender, EventArgs e)
        {
            try
            {
                int           selectedOrderId = (int)this.lvAllOrders.SelectedIndices[0] + 1;
                ShippingOrder currentOrder    = _myOrderManager.GetOrderByID(selectedOrderId);
                if (currentOrder.Picked == true && currentOrder.UserId.HasValue)
                {
                    MessageBox.Show("That order has already been shipped.", "Cannot Change Employee");
                }
                else
                {
                    Boolean success = _myOrderManager.ClearUserId(currentOrder);
                    if (success == true)
                    {
                        RefreshOrderViews();
                    }
                    else
                    {
                        MessageBox.Show("Cannot complete operation.", "Operation Failed");
                    }
                }
            }
            catch (ArgumentOutOfRangeException)
            {
                MessageBox.Show("Please select an order from the list", "No Order Selected");
            }
        }//End of btnClearUser_Click(..)
Beispiel #5
0
 private void btnStartPick_Click(object sender, EventArgs e)
 {
     try
     {
         int           selectedOrder = (int)this.lvPickList.SelectedIndices[0] + 1;
         ShippingOrder myOrder       = _myOrderManager.GetOrderByID(selectedOrder);
         if (myOrder.UserId.HasValue)
         {
             MessageBox.Show("Ownership belongs to another", "Already Assigned");
         }
         else
         {
             Boolean success = _myOrderManager.UpdateUserId(myOrder, _myAccessToken.UserID);
             if (success == true)
             {
                 RefreshOrderViews();
                 InitPick(selectedOrder);
             }
             else
             {
                 MessageBox.Show("Ownership of pick to you has failed", "Assignment Failed");
                 RefreshOrderViews();
             }
         }
     }
     catch (ArgumentOutOfRangeException)
     {
         MessageBox.Show("Please select an order from the list", "No Order Selected");
     }
 }//End btnStartPick(..)
            public void It_Should_Discount_Cheapest_Small_Parcel_When_At_Lest_Four_Small_Parcels()
            {
                var expectedDiscountParcel = new Parcel(5, 9, 1);

                var parcels = new List <Parcel>
                {
                    new Parcel(5, 9, 10),
                    new Parcel(5, 9, 30),
                    expectedDiscountParcel,
                    new Parcel(5, 9, 10),
                    new Parcel(5, 9, 31),
                };

                var underTest = new ShippingOrder(parcels, shippingRatesByCode);


                Assert.Equal(expectedDiscountParcel.TotalPrice, underTest.TotalDiscount);
                Assert.Contains(parcels[0], underTest.Discounts[0].Parcels);
                Assert.Contains(parcels[1], underTest.Discounts[0].Parcels);
                Assert.Contains(parcels[2], underTest.Discounts[0].Parcels);
                Assert.Contains(parcels[3], underTest.Discounts[0].Parcels);
                Assert.DoesNotContain(parcels[4], underTest.Discounts[0].Parcels);

                var expectedOrderTotal = parcels.Sum(parcel => parcel.TotalPrice) - expectedDiscountParcel.TotalPrice;

                Assert.Equal(expectedOrderTotal, underTest.TotalPrice);
            }
            public void It_Should_Apply_Multiple_Discounts_Wiht_Parcels_Used_Only_Once_Per_Discount()
            {
                var discountedParcelOne = new Parcel(30, 30, 1);
                var discountedParcelTwo = new Parcel(30, 30, 4);

                var parcels = new List <Parcel>
                {
                    discountedParcelOne,
                    discountedParcelTwo,
                    new Parcel(30, 30, 5),
                    new Parcel(30, 30, 6),
                    new Parcel(30, 30),
                    new Parcel(30, 30),
                };

                var underTest = new ShippingOrder(parcels, shippingRatesByCode);

                var expectedTotalDiscount = discountedParcelOne.TotalPrice + discountedParcelTwo.TotalPrice;

                Assert.Equal(expectedTotalDiscount, underTest.TotalDiscount);
                Assert.Contains(parcels[0], underTest.Discounts[0].Parcels);
                Assert.Contains(parcels[4], underTest.Discounts[0].Parcels);
                Assert.Contains(parcels[5], underTest.Discounts[0].Parcels);
                Assert.Contains(parcels[1], underTest.Discounts[1].Parcels);
                Assert.Contains(parcels[2], underTest.Discounts[1].Parcels);
                Assert.Contains(parcels[3], underTest.Discounts[1].Parcels);
            }
Beispiel #8
0
        public static List <CLSPackDetails> FetchCLSPackDetails(ShippingOrder order, SqlConnection myConnection)
        {
            List <CLSPackDetails> reportLines = new List <CLSPackDetails>();
            SqlConnection         conn        = myConnection;

            try
            {
                conn.Open();
                SqlCommand cmd = new SqlCommand("proc_GetCLSPackDetails", conn);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@ShippingOrderId", order.ID);

                SqlDataReader reader = cmd.ExecuteReader();
                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        var reportLine = new CLSPackDetails(reader.GetInt32(0))
                        {
                            ShippingTermId          = reader.GetInt32(1),
                            ShippingVendorId        = reader.GetInt32(2),
                            ShippingDescription     = reader.GetString(3),
                            ShippingVendorName      = reader.IsDBNull(4) ? "" : reader.GetString(4),
                            ShippingTermDescription = reader.GetString(5),
                            ProductId     = reader.GetInt32(6),
                            ProductName   = reader.GetString(7),
                            Quantity      = reader.GetInt32(8),
                            ShipDate      = reader.GetDateTime(9),
                            ShipToName    = reader.IsDBNull(10) ? "" : reader.GetString(10),
                            ShipToAddress = reader.IsDBNull(11) ? "" : reader.GetString(11),
                            ShipToCity    = reader.IsDBNull(12) ? "" : reader.GetString(12),
                            ShipToState   = reader.IsDBNull(13) ? "" : reader.GetString(13),
                            ShipToZip     = reader.IsDBNull(14) ? "" : reader.GetString(14)
                        };
                        reportLines.Add(reportLine);
                    }
                }
                reader.Close();
            }
            catch (DataException ex)
            {
                Console.WriteLine(ex.Message);
                throw new ApplicationException(Messeges.GetMessage("DatabaseException"), ex);
            }
            catch (SqlException ex)
            {
                Console.WriteLine(ex.Message);
                throw new ApplicationException(Messeges.GetMessage("SqlException"), ex);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                throw new ApplicationException(Messeges.GetMessage("Exception"), ex);
            }
            finally
            {
                conn.Close();
            }
            return(reportLines);
        }// End FetchCLSPackDetails(.)
Beispiel #9
0
        } //end AddShippingOrder

        public static bool UpdateShippingOrder(ShippingOrder shippingOrder, ShippingOrder origShippingOrder, SqlConnection myConnection)
        {
            myConnection = myConnection ?? GetInventoryDbConnection();
            try
            {
                var mySqlCommand = new SqlCommand("proc_UpdateShippingOrder", myConnection)
                {
                    CommandType = CommandType.StoredProcedure
                };

                mySqlCommand.Parameters.AddWithValue("@purchaseOrderID", shippingOrder.PurchaseOrderId);
                mySqlCommand.Parameters.AddWithValue("@userID", shippingOrder.UserId ?? Convert.DBNull); //could be null
                mySqlCommand.Parameters.AddWithValue("@picked", shippingOrder.Picked ? 1 : 0);
                mySqlCommand.Parameters.AddWithValue("@shipDate", (shippingOrder.ShipDate) ?? Convert.DBNull);
                mySqlCommand.Parameters.AddWithValue("@shippingTermID", shippingOrder.ShippingTermId);
                mySqlCommand.Parameters.AddWithValue("@shipToName", shippingOrder.ShipToName ?? Convert.DBNull);
                mySqlCommand.Parameters.AddWithValue("@shipToAddress", shippingOrder.ShipToAddress ?? Convert.DBNull);
                mySqlCommand.Parameters.AddWithValue("@shipToCity", shippingOrder.ShipToCity ?? Convert.DBNull);
                mySqlCommand.Parameters.AddWithValue("@shipToState", shippingOrder.ShipToState ?? Convert.DBNull);
                mySqlCommand.Parameters.AddWithValue("@shipToZip", shippingOrder.ShipToZip ?? Convert.DBNull);

                mySqlCommand.Parameters.AddWithValue("@orig_ShippingOrderID", origShippingOrder.ID);
                mySqlCommand.Parameters.AddWithValue("@orig_PurchaseOrderID", origShippingOrder.PurchaseOrderId);
                mySqlCommand.Parameters.AddWithValue("@orig_UserID", origShippingOrder.UserId ?? Convert.DBNull);
                mySqlCommand.Parameters.AddWithValue("@orig_Picked", origShippingOrder.Picked ? 1 : 0);
                mySqlCommand.Parameters.AddWithValue("@orig_ShipDate", (origShippingOrder.ShipDate) ?? Convert.DBNull);
                mySqlCommand.Parameters.AddWithValue("@orig_ShippingTermID", origShippingOrder.ShippingTermId);
                mySqlCommand.Parameters.AddWithValue("@orig_ShipToName", origShippingOrder.ShipToName ?? Convert.DBNull);
                mySqlCommand.Parameters.AddWithValue("@orig_ShipToAddress", origShippingOrder.ShipToAddress ?? Convert.DBNull);
                mySqlCommand.Parameters.AddWithValue("@orig_ShipToCity", origShippingOrder.ShipToCity ?? Convert.DBNull);
                mySqlCommand.Parameters.AddWithValue("@orig_ShipToState", origShippingOrder.ShipToState ?? Convert.DBNull);
                mySqlCommand.Parameters.AddWithValue("@orig_ShipToZip", origShippingOrder.ShipToZip ?? Convert.DBNull);

                myConnection.Open();
                if (mySqlCommand.ExecuteNonQuery() == 1)
                {
                    return(true);
                }
            }
            catch (DataException ex)
            {
                Console.WriteLine(ex.Message);
                throw new ApplicationException(Messeges.GetMessage("DatabaseException"), ex);
            }
            catch (SqlException ex)
            {
                Console.WriteLine(ex.Message);
                throw new ApplicationException(Messeges.GetMessage("SqlException"), ex);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                throw new ApplicationException(Messeges.GetMessage("Exception"), ex);
            }
            finally
            {
                myConnection.Close();
            }
            return(false);
        } // end UpdateShippingOrder(...)
Beispiel #10
0
        public ActionResult Confirm(FormCollection collection)
        {
            string str = collection["checkitem"];

            string[] strDelete = str.Split(',');

            foreach (var i in strDelete)
            {
                if (i != "false")
                {
                    string[] str_arr = i.Split('_');
                    int      value   = int.Parse(str_arr[0]);
                    Order    _order  = db.Orders.FirstOrDefault(x => x.Id == value);
                    _order.Status = true;
                    //db.SaveChanges();

                    ShippingOrder ShippingOrder = new ShippingOrder {
                        ID = "S" + DateTime.Now.ToString("yyyyMMdd") + str_arr[0], OrderID = str_arr[1], Status = "New", CreatedDateTime = DateTime.Now
                    };
                    db.ShippingOrders.Add(ShippingOrder);
                    db.SaveChanges();
                }
            }

            return(Redirect("Index"));
        }
        public ActionResult ShippingOrderDestroy([DataSourceRequest] DataSourceRequest request, ShippingOrder shippingorders)
        {
            BL.ShippingOrders blShippingOrders = new BL.ShippingOrders();
            ShippingOrder     model            = blShippingOrders.SoftDelete(shippingorders);

            return(Json(new[] { model }.ToDataSourceResult(request, ModelState), JsonRequestBehavior.AllowGet));
        }
        static void Main(string[] args)
        {
            try
            {
                // this method takes information from user and converts it to appropriate format for calling api
                ShippingOrder shippingData = GetShippingInfoFromUser();

                // this methods gets companies info from DB and call their api's
                GetCompaniesInfoFromDB();

                foreach (CompanyInfo companyInfo in companyList)
                {
                    // first we must convert the input data to API input format
                    string convertedShippingData = ConvertShippingDataToAPIFormat(companyInfo.InputFormat, shippingData);

                    // if convertedShippingData is empty it means we problem with converting data, so no need to call api, just log the error for trouble shooting
                    if (convertedShippingData == string.Empty)
                    {
                        Console.WriteLine($" Error ConvertShippingDataToAPIFormat {companyInfo.InputFormat}");
                        continue;
                    }
                    CallCompaniesWebApi(companyInfo, convertedShippingData).Wait();
                }

                Console.WriteLine($"The best Price belong to {selectedCompany.CompanyName} , the price is {selectedCompany.Price}");
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Freight App exception: {ex.ToString()}");
            }
        }
        // Identify device to shipping order
        public ShippingOrder identifyDevice(String username_ad, String password_ad, ShippingOrder soc, string serial_number, int tp_id, int model_id)
        {
            Authentication_class var_auth   = new Authentication_class();
            AuthenticationHeader authHeader = var_auth.getAuthHeader(username_ad, password_ad);

            AsmRepository.SetServiceLocationUrl(var_auth.var_service_location_url);

            //var docmService = AsmRepository.GetServiceProxy<IDocumentManagementService>(authHeader);
            var soService     = AsmRepository.AllServices.GetOrderManagementService(authHeader);
            var faService     = AsmRepository.AllServices.GetFinanceService(authHeader);
            var sbService     = AsmRepository.AllServices.GetSandBoxManagerService(authHeader);
            var agService     = AsmRepository.AllServices.GetAgreementManagementService(authHeader);
            var deviceService = AsmRepository.AllServices.GetDevicesService(authHeader);

            var viewfService = AsmRepository.AllServices.GetViewFacadeService(authHeader);

            try
            {
                var so_lineitem = soc.ShippingOrderLines.Items.Find(t => t.TechnicalProductId == tp_id);

                if (so_lineitem == null)
                {
                    //Console.WriteLine("Can't find techinical product with id : " + tp_id + " in shipping order with id : " + soc.Id.Value);
                    return(null);
                }

                var buildlist = new BuildList
                {
                    OrderLineId     = so_lineitem.Id,
                    OrderId         = soc.Id,
                    ModelId         = model_id,
                    StockHandlerId  = soc.ShipFromStockHandlerId,
                    TransactionType = BuildListTransactionType.ShippingSerializedProducts
                };

                var b_build_list = deviceService.CreateBuildList(buildlist);

                var d_a_list = deviceService.AddDeviceToBuildListManually(b_build_list.Id.Value, serial_number);

                if (d_a_list.Accepted.Value)
                {
                    var dblist = deviceService.PerformBuildListAction(b_build_list.Id.Value);
                }
                else
                {
                    //Console.WriteLine("Failed to attach decoder with SN : " + serial_number + " to Shipping Order : Error : " + d_a_list.Error);
                    return(null);
                }

                return(soc);
            }
            catch (Exception ex)
            {
                //msg = "Errors : " + ex.Message + "  ------  Exception Stack : " + ex.StackTrace;
                //Console.WriteLine("Errors : " + ex.Message);
                //Console.WriteLine("Stack : " + ex.StackTrace);
                //logger.Error(msg);
                return(null);
            }
        }
        public HttpResponseMessage GetShippingOrderById(String username_ad, String password_ad, int id)
        {
            Authentication_class var_auth = new Authentication_class();
            AuthenticationHeader ah       = var_auth.getAuthHeader(username_ad, password_ad);

            AsmRepository.SetServiceLocationUrl(var_auth.var_service_location_url);
            var TSService = AsmRepository.GetServiceProxyCachedOrDefault <IOrderManagementService>(ah);

            BaseQueryRequest request = new BaseQueryRequest();

            request.FilterCriteria = new CriteriaCollection();
            request.FilterCriteria.Add(new Criteria("Id", id));

            ShippingOrder servicetype = TSService.GetShippingOrder(id);

            if (servicetype != null)
            {
                return(Request.CreateResponse(HttpStatusCode.OK, servicetype));
            }
            else
            {
                var       message = string.Format("error");
                HttpError err     = new HttpError(message);
                return(Request.CreateResponse(HttpStatusCode.OK, message));
            }
        }
        }//End of PopulatePickListView(..)

        private void btnStartPick_Click(object sender, EventArgs e)
        {
            ListView.SelectedListViewItemCollection selectedOrder = this.lvPickList.SelectedItems;
            try
            {
                int           selectedOrderId = Convert.ToInt32(selectedOrder[0].SubItems[0].Text);
                ShippingOrder myOrder         = _myOrderManager.GetOrderByID(selectedOrderId);
                if (myOrder.UserId.Equals(_myAccessToken.Id))
                {
                    MessageBox.Show("Order is already in your 'My Orders' queue", "Action Unnecessary");
                }
                else if (myOrder.UserId.HasValue)
                {
                    MessageBox.Show("Order already belongs to another person", "Action Failed");
                }
                else
                {
                    Boolean success = _myOrderManager.UpdateUserId(myOrder, _myAccessToken.Id);
                    if (success == true)
                    {
                        RefreshPickView();
                        InitPick(selectedOrderId);
                    }
                    else
                    {
                        MessageBox.Show("Ownership of pick to you has failed", "Assignment Failed");
                        RefreshPickView();
                    }
                }
            }
            catch (ArgumentOutOfRangeException)
            {
                MessageBox.Show("Please select an order from the list", "No Order Selected");
            }
        }//End btnStartPick_Click(..)
        public frmPrintPackReport(ShippingOrder order, AccessToken _myAccessToken)
        {
            InitializeComponent();
            var RoleAccess = new RoleAccess(_myAccessToken, this);

            _currentOrder = order;
            Instance      = this;
        }//frmPrintPackReport(.)
Beispiel #17
0
        }//End of ClearShippedDate(.)

        public bool UpdateUserId(ShippingOrder order, int employeeID)
        {
            //If the UserId of the current ShippingOrder is the same value as the new value do not call the update procedure.
            {
                //Need to do error checking... Try/Catch.
                return(ShippingOrderDAL.AssignShippingOrder(order, employeeID, _connection));
            }
        }//End of UpdateUserId..)
Beispiel #18
0
        }//End of UpdatePickedTrue(.)

        //When would this be done?
        public bool UpdatePickedFalse(ShippingOrder order)
        {
            foreach (ShippingOrderLineItem item in order.ShippingOrderLineItemList)
            {
                prodMan.AddToAvailable(item.Quantity, item.ProductId);
            }
            //Need to do error checking... Try/Catch.
            return(ShippingOrderDAL.UnpickShippingOrder(order, _connection));
        }//End of UpdatePickedFalse(.)
Beispiel #19
0
        }//End of UpdateShippedDate(.)

        //When would this be done?
        public bool ClearShippedDate(ShippingOrder order)
        {
            //Need to do error checking... Try/Catch.

            foreach (ShippingOrderLineItem item in order.ShippingOrderLineItemList)
            {
                prodMan.AddToOnHand(item.Quantity, item.ProductId);
            }
            return(ShippingOrderDAL.UnshipShippingOrder(order, _connection));
        }//End of ClearShippedDate(.)
Beispiel #20
0
        }//End of UpdatePickedFalse(.)

        public bool UpdateShippedDate(ShippingOrder order)
        {
            //Need to do error checking... Try/Catch.

            foreach (ShippingOrderLineItem item in order.ShippingOrderLineItemList)
            {
                prodMan.RemoveFromOnHand(item.Quantity, item.ProductId);
            }
            return(ShippingOrderDAL.ShipShippingOrder(order, _connection));
            //Need to update on-hand inventory for all line items once the shipped date is set.
        }//End of UpdateShippedDate(.)
Beispiel #21
0
        public async Task <ActionResult> StatusTracking(string shippingTrackingNo)
        {
            ShippingOrder shippingOrder = await this.HttpContext.GetOwinContext().Get <CMSDbContext>().Set <ShippingOrder>().Where(x => x.TrackingId == shippingTrackingNo).FirstOrDefaultAsync();

            if (shippingOrder == null || (this.User.IsInRole("Customer") && shippingOrder.ShipmentOwnerId != this.User.Identity.GetUserId()))
            {
                return(new HttpStatusCodeResult(404));
            }

            return(View(new ShippingStatusViewModel {
                ShippingOrderId = shippingOrder.Id, ShippingStatus = shippingOrder.Status
            }));
        }
            public void It_Should_Only_Charge_1kg_Per_Kg_Overweight_For_Heavy_Parcels()
            {
                var expectedCost = 51.00;

                var parcels = new List <Parcel>
                {
                    new Parcel(5, 9, 51)
                };

                var underTest = new ShippingOrder(parcels, shippingRatesByCode);

                Assert.Equal(expectedCost, underTest.TotalPrice);
            }
Beispiel #23
0
        public async Task <ActionResult> Assignment(ShippingAssignmentViewModel model)
        {
            model.Containers = await this.HttpContext.GetOwinContext().Get <CMSDbContext>().Set <Container>().ToListAsync();

            ShippingOrder shippingOrder = await this.HttpContext.GetOwinContext().Get <CMSDbContext>().Set <ShippingOrder>().FirstOrDefaultAsync(x => x.TrackingId == model.OrderTrackingId.ToString());

            model.Items = shippingOrder.Items.ToList();

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            try
            {
                ShippingAssignment shippingAssignment = await this.HttpContext.GetOwinContext().Get <CMSDbContext>().Set <ShippingAssignment>().FirstOrDefaultAsync(x => x.ShippingOrderId == model.ShippingOrderId);

                if (shippingAssignment == null)
                {
                    shippingAssignment = new ShippingAssignment();

                    this.HttpContext.GetOwinContext().Get <CMSDbContext>().Set <ShippingAssignment>().Add(new ShippingAssignment
                    {
                        ContainerId     = model.ContainerId,
                        ShippingOrderId = model.ShippingOrderId,
                    });

                    if (shippingOrder != null)
                    {
                        shippingOrder.ActualTonnage = model.ActualWeight;
                    }
                }
                else
                {
                    shippingAssignment.ContainerId = model.ContainerId;
                    shippingAssignment.ShippingOrder.ActualTonnage = model.ActualWeight;
                }

                shippingAssignment.AssignorId       = this.User.Identity.GetUserId();
                shippingAssignment.AssignedDateTime = DateTime.Now;

                await this.HttpContext.GetOwinContext().Get <CMSDbContext>().SaveChangesAsync();

                model.Message = "Shipping assignment has been saved.";
            }
            catch (Exception ex)
            {
                model.Message = "Error occured. Failed to save shipping assignment.";
            }
            return(View(model));
        }
Beispiel #24
0
        }//End of Update(..)

        public bool UpdatePickedTrue(ShippingOrder order)
        {
            //Need to do error checking... Try/Catch.

            foreach (ShippingOrderLineItem item in order.ShippingOrderLineItemList)
            {
                prodMan.RemoveFromAvailable(item.Quantity, item.ProductId);
            }
            return(ShippingOrderDAL.PickShippingOrder(order, _connection));
            //Should also clear the current UserId.

            //Can also call ShippingOrderDAL.UnpickShippingOrder... When would this be done?
            //If necessary add logic to determine which method is called.
        }//End of UpdatePickedTrue(.)
Beispiel #25
0
        /// <summary>
        /// 新增配送訂單
        /// </summary>
        /// <param name="orderId">訂單編號</param>
        public void InsertShippingOrder(string orderId)
        {
            ShippingOrder model = new ShippingOrder()
            {
                Id        = this.GetShippingOrderSequence(),
                OrderId   = orderId,
                Status    = 1,
                CteatedAt = DateTime.Now
            };

            ShippingOrderQueryBuilder builder = new ShippingOrderQueryBuilder();
            string sql = builder.GetInsertShippingOrderSql();

            this.ShippingOrderRepository.Execute(sql, model);
        }
Beispiel #26
0
        private static ShippingOrder GetShippingInfoFromUser()
        {
            // we need to take the shipping info including source address, destination address
            // and package dimension from user and convert it to appropriate json or xml

            ShippingOrder shippingOrder = new ShippingOrder();

            shippingOrder.SourceAddress = new Address(100, "Marine Dr", "Vancouver", "V3C YPZ");

            shippingOrder.TargetAddress = new Address(200, "Marine Dr", "Toronto", "C4C YPZ");

            shippingOrder.PackageDimension = new PackageDimension(20, 50, 30);

            return(shippingOrder);
        }
            public void Should_Correctly_Total_The_Price_Of_An_Order()
            {
                var expectedCost = 51.00;

                var parcels = new List <Parcel>
                {
                    new Parcel(5, 9),
                    new Parcel(11, 49),
                    new Parcel(5, 51),
                    new Parcel(101, 9),
                };

                var underTest = new ShippingOrder(parcels, shippingRatesByCode);

                Assert.Equal(expectedCost, underTest.TotalPrice);
            }
            public void Should_Double_The_Price_Of_An_Order_When_Speedy_Shipping()
            {
                var expectedCost = 102.00;

                var parcels = new List <Parcel>
                {
                    new Parcel(5, 9),
                    new Parcel(11, 49),
                    new Parcel(5, 51),
                    new Parcel(101, 9),
                };

                var underTest = new ShippingOrder(parcels, shippingRatesByCode, true);

                Assert.Equal(expectedCost, underTest.TotalPrice);
            }
            public void Should_Include_The_Speedy_Shipping_Charge_When_Speedy_Shipping()
            {
                var expectedCost = 51.00;

                var parcels = new List <Parcel>
                {
                    new Parcel(5, 9),
                    new Parcel(11, 49),
                    new Parcel(5, 51),
                    new Parcel(101, 9),
                };

                var underTest = new ShippingOrder(parcels, shippingRatesByCode, true);

                Assert.Equal(expectedCost, underTest.SpeedyShippingPrice);
            }
            public void It_Should_Charge_An_Extra_2kg_For_A_Package_When_It_Is_Overweight()
            {
                var expectedCost = 59.00;

                var parcels = new List <Parcel>
                {
                    new Parcel(5, 9, 2),
                    new Parcel(11, 49, 4),
                    new Parcel(5, 51, 7),
                    new Parcel(101, 9, 11),
                };

                var underTest = new ShippingOrder(parcels, shippingRatesByCode);

                Assert.Equal(expectedCost, underTest.TotalPrice);
            }