Beispiel #1
0
    private void Databind(string id)
    {
        DataTable dt = EditShipment.QueryData(id);

        ViewState["dt"] = dt;
        grd.DataSource  = dt;
        grd.DataBind();
        //Nmtree.MergeGridViewCell.MergeRow(grd,0,7);
    }
        public async Task <IActionResult> EditShipment(EditShipment input)
        {
            if (!ModelState.IsValid)
            {
                var shipmentForEdit = this.driversService.GetShipment(input.ShipmentId);

                return(this.View(shipmentForEdit));
            }

            if (input.Pictures != null)
            {
                foreach (var picture in input.Pictures)
                {
                    var index      = picture.FileName.LastIndexOf('.');
                    var extension  = picture.FileName.Substring(index);
                    var currDriver = await this.userManager.GetUserAsync(User);

                    var currImage = new Image
                    {
                        Extension       = extension,
                        ShipmentId      = input.ShipmentId,
                        AddedByDriverId = currDriver.Id,
                        CreatedOn       = DateTime.UtcNow,
                    };

                    //Отвори ми файлов стрийм към wwwroot/proof/име на файла в режим на създаване на нов файл и вземи данните от Picture и ми ги копирай в посочения stream
                    string imageUrl = "/proof/" + currImage.Id + "." + extension;

                    using (FileStream fileStream = new FileStream(this.webHostEnvironment.WebRootPath + imageUrl, FileMode.Create))
                    {
                        await picture.CopyToAsync(fileStream);
                    }

                    currImage.ImageUrl = imageUrl;

                    input.Images.Add(currImage);
                }
            }

            await this.driversService.ChangeShipmentDataAsync(input);

            return(this.RedirectToAction("ShipmentChanged", "Drivers", new ChangesApplied
            {
                Message = "Вие успешно променихте поръчка с номер:",
                ShipmentId = input.ShipmentId
            }));
        }
        public async Task ChangeShipmentDataAsync(EditShipment input)
        {
            var currShipment = this.db.Shipments.FirstOrDefault(s => s.Id == input.ShipmentId);

            currShipment.Width          = input.Width;
            currShipment.Length         = input.Length;
            currShipment.Height         = input.Height;
            currShipment.Weight         = input.Weight;
            currShipment.CountOfPallets = input.CountOfPallets ?? 0;
            currShipment.Comment        = input.Comment;
            currShipment.IsDelivered    = input.IsDelivered;

            if (input.Images != null)
            {
                currShipment.Images = input.Images;
            }

            await this.db.SaveChangesAsync();
        }
        public async Task <ActionResult> Edit(EditShipment model)
        {
            if (ModelState.IsValid)
            {
                var totalQuantity = model.ShipmentItems.Sum(r => r.Quantity);
                if (totalQuantity == 0)
                {
                    ModelState.AddModelError(string.Empty, "Quantity must be specified for each least one item.");
                }
            }

            if (!ModelState.IsValid)
            {
                //foreach (var itemModel in model.ReturnItems)
                //{
                //    itemModel.Quantities = ModelFactory.GetQuantitySelectList(itemModel.MaxQuantity);
                //}

                var aShippingVendors = await ShipmentAdminService.GetShippingVendorsAsync();

                model.ShippingVendors = ModelFactory.GetShippingVendorSelectList(aShippingVendors);

                return(View(model));
            }

            var shipmentId = model.ShipmentId;

            var actionData = this.GetActionData();

            switch (actionData?.ActionName)
            {
            case Actions.Save:
                _ = await SaveShipment(model);

                break;
            }

            return(RedirectToAction("Index", "Shipment"));
        }
        public async Task ChangeShipmentDataShouldReplaceCurrShipmentWithNewData()
        {
            var optionsBuilder = new DbContextOptionsBuilder <ApplicationDbContext>()
                                 .UseInMemoryDatabase("name");
            var db           = new ApplicationDbContext(optionsBuilder.Options);
            var currShipment = new Shipment
            {
                Width          = 2,
                Length         = 2,
                Height         = 2,
                Weight         = 200,
                CountOfPallets = 3,
                Comment        = "Some Text",
                IsDelivered    = true
            };
            await db.Shipments.AddAsync(currShipment);

            await db.SaveChangesAsync();

            var editShipment = new EditShipment
            {
                ShipmentId     = currShipment.Id,
                Width          = 4,
                Length         = 4,
                Height         = 4,
                Weight         = 400,
                CountOfPallets = 4,
                Comment        = "Editted Text",
                IsDelivered    = false
            };

            var  driversService = new DriversService(db);
            Task result         = driversService.ChangeShipmentDataAsync(editShipment);

            Assert.True(result.IsCompletedSuccessfully);
            Assert.Equal(400, currShipment.Weight);
        }
        private async Task <long> SaveShipment(EditShipment model)
        {
            if (model.ShipmentId == null)
            {
                var mCreateShipmentItems = new List <MFulfillment_CreateShipmentItem>();
                foreach (var item in model.ShipmentItems)
                {
                    mCreateShipmentItems.Add(new MFulfillment_CreateShipmentItem()
                    {
                        ShipmentRequestItemId = item.ShipmentRequestItemId,
                        Quantity = item.Quantity
                    });
                }

                var mCreateShipment = new MFulfillment_CreateShipment()
                {
                    ShipmentDateTimeUtc = Locale.GetUtcFromLocalTime(model.ShipmentDate),
                    ShippingVendorId    = model.ShippingVendorId,
                    TrackingCode        = model.TrackingNumber,
                    CreateShipmentItems = mCreateShipmentItems
                };

                var aCreateShipment = new AShipment_CreateShipment()
                {
                    MCreateShipment = mCreateShipment
                };

                var shipmentId = await ShipmentAdminService.CreateShipmentAsync(aCreateShipment);

                return(shipmentId);
            }
            else
            {
                var mUpdateShipmentItems = new List <MFulfillment_UpdateShipmentItem>();
                foreach (var item in model.ShipmentItems)
                {
                    mUpdateShipmentItems.Add(new MFulfillment_UpdateShipmentItem()
                    {
                        ShipmentItemId = item.ShipmentItemId.Value,
                        Quantity       = item.Quantity
                    });
                }

                var mUpdateShipment = new MFulfillment_UpdateShipment()
                {
                    ShipmentDateTimeUtc = Locale.GetUtcFromLocalTime(model.ShipmentDate),
                    ShippingVendorId    = model.ShippingVendorId,
                    TrackingCode        = model.TrackingNumber,
                    UpdateShipmentItems = mUpdateShipmentItems
                };

                var aUpdateShipment = new AShipment_UpdateShipment()
                {
                    MUpdateShipment = mUpdateShipment
                };

                await ShipmentAdminService.UpdateShipmentAsync(aUpdateShipment);

                return(model.ShipmentId.Value);
            }
        }
Beispiel #7
0
    /// <summary>
    /// 添加批次号在出库单中
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnSaveClose_Click(object sender, EventArgs e)
    {
        string result = "";

        if (txtLotid.Text == "")
        {
            JScript.Alert("请输入批次号", this);
            return;
        }
        DataTable dt = (DataTable)ViewState["dt"];

        if (dt.Rows.Count == 0)
        {
            return;
        }
        using (DbDataReader reader = EditShipment.QueryLotInfo(txtLotid.Text))
        {
            if (reader.Read())
            {
                dt = (DataTable)ViewState["dt"];

                //add by lei.xue on 2017-7-18 批次是否已经在列表中
                foreach (DataRow dr in dt.Rows)
                {
                    if (dr["lotid"].ToString() == txtLotid.Text)
                    {
                        JScript.Alert("批次已存在于列表中", this);
                        return;
                    }
                }

                //是否入库
                if (reader["warehouse"].ToString() != "Y")
                {
                    JScript.Alert("批次尚未入库", this);
                    return;
                }
                //是否出货
                if (reader["shipment"].ToString() == "Y")
                {
                    JScript.Alert("批次已经出货", this);
                    return;
                }
                if (reader["tempshipmenttime"].ToString() != "")
                {
                    JScript.Alert("批次号已经预出库!", this);
                    return;
                }

                result = Shipment.InsertShipmentInfo(ViewState["shipmentid"].ToString()
                                                     , txtLotid.Text
                                                     , System.Web.HttpContext.Current.Request.Cookies["userID"].Value.ToString());
                if (result == "fail")
                {
                    JScript.Alert("添加出错!", this);
                    return;
                }

                DataRow dtRow = dt.NewRow();
                dtRow["shipmentID"]       = ViewState["shipmentid"].ToString();
                dtRow["pinmin"]           = reader["pinmin"].ToString();
                dtRow["lotid"]            = reader["lotid"].ToString();
                dtRow["type"]             = reader["type"].ToString();
                dtRow["validwidth"]       = reader["validwidth"].ToString();
                dtRow["validlength"]      = reader["validlength"].ToString();
                dtRow["tempshipmenttime"] = System.DateTime.Now.ToString();
                dt.Rows.Add(dtRow);
                grd.DataSource = dt;
                grd.DataBind();
            }
            else
            {
                ////JScript.Alert("未找到条码信息", this);
                //JScript.Alert("批次未入库", this);
                //return;
            }
        }
    }