public ActionResult Add(SalesShipmentsDataModel model)
        {
            if (ModelState.IsValid)
            {
                SalesShipmentsData SalesShipments  = model.MapTo <SalesShipmentsDataModel, SalesShipmentsData>();
                int           salesShipmentsDataID = _salesShipmentsDataService.Insert(SalesShipments);
                var           inventoryDataRes     = _inventoryDataService.GetById(model.InventoryDataID);
                InventoryData inventoryData        = new InventoryData()
                {
                    ID                = model.InventoryDataID,
                    WarehouseID       = model.WarehouseID,
                    WarehouseName     = model.WarehouseName,
                    GoodsID           = model.GoodsID,
                    GoodsName         = model.GoodsName,
                    Unit              = model.Unit,
                    Specification     = model.Specification,
                    GoodsType         = model.GoodsType,
                    Brand             = model.Brand,
                    InventoryQuantity = model.OldQuantity - model.Quantity,
                    CostPrice         = inventoryDataRes.CostPrice,
                    InventorySum      = inventoryDataRes.InventorySum - model.Sum,

                    PurchaseDate      = DateTime.Now,
                    ShipmentsDate     = DateTime.Now,
                    LastInventoryDate = DateTime.Now,
                    FinalSaleDate     = DateTime.Now
                };
                _inventoryDataService.Update(inventoryData);

                if (model.ArrearsAmount != 0 && model.ArrearsAmount != null)
                {
                    //添加欠款信息
                    ArrearsInset(model, salesShipmentsDataID);
                }

                SuccessNotification("添加成功");
                return(RedirectToAction("Index"));
            }

            model.ClientDataList    = GetClientDataList();
            model.WarehouseList     = GetWarehouseList();
            model.SpecificationList = GetSpecificationList();
            model.GoodsTypeList     = GetGoodsTypeList();
            return(View(model));
        }
        public void Update(SalesShipmentsData SalesShipmentsData)
        {
            var sql = $@"update SalesShipmentsData set
                    Goods_ID=@GoodsID,
                    Goods_Name=@GoodsName,
                    Date=@Date,
                    Unit=@Unit,
                    Specification=@Specification,
                    GoodsType=@GoodsType,
                    Brand=@Brand,
                    Quantity=@Quantity,
                    UnitPrice=@UnitPrice,
                    Cost=@Cost,
                    Profit=@Profit,
                    Sum=@Sum,
                    Total=@Total,
                    Remarks=@Remarks,
                    ClientData_ID=@ClientDataID,
                    ClientData_Name=@ClientDataName
                    where ID=@ID";

            _context.Execute(sql, new
            {
                ID             = SalesShipmentsData.ID,
                GoodsID        = SalesShipmentsData.GoodsID,
                GoodsName      = SalesShipmentsData.GoodsName,
                Date           = SalesShipmentsData.Date,
                Unit           = SalesShipmentsData.Unit,
                Specification  = SalesShipmentsData.Specification,
                GoodsType      = SalesShipmentsData.GoodsType,
                Brand          = SalesShipmentsData.Brand,
                Quantity       = SalesShipmentsData.Quantity,
                UnitPrice      = SalesShipmentsData.UnitPrice,
                Cost           = SalesShipmentsData.Cost,
                Profit         = SalesShipmentsData.Profit,
                Sum            = SalesShipmentsData.Sum,
                Total          = SalesShipmentsData.Total,
                Remarks        = SalesShipmentsData.Remarks,
                ClientDataID   = SalesShipmentsData.ClientDataID,
                ClientDataName = SalesShipmentsData.ClientDataName
            });
        }
        public ActionResult Edit(SalesShipmentsDataModel model)
        {
            if (ModelState.IsValid)
            {
                SalesShipmentsData salesShipments = model.MapTo <SalesShipmentsDataModel, SalesShipmentsData>();
                _salesShipmentsDataService.Update(salesShipments);


                var           inventoryDataID = _inventoryDataService.GetById(model.InventoryDataID);
                InventoryData inventoryData   = new InventoryData()
                {
                    WarehouseID       = model.WarehouseID,
                    WarehouseName     = model.WarehouseName,
                    GoodsID           = model.GoodsID,
                    GoodsName         = model.GoodsName,
                    Unit              = model.Unit,
                    Specification     = model.Specification,
                    GoodsType         = model.GoodsType,
                    Brand             = model.Brand,
                    InventoryQuantity = inventoryDataID.InventoryQuantity + (model.Quantity - model.OldQuantity),
                    CostPrice         = ((model.Quantity != 0) ? (model.Sum / Convert.ToDecimal(model.Quantity)) : 0),
                    InventorySum      = model.Sum,

                    PurchaseDate      = DateTime.Now,
                    ShipmentsDate     = DateTime.Now,
                    LastInventoryDate = DateTime.Now,
                    FinalSaleDate     = DateTime.Now
                };
                _inventoryDataService.Update(inventoryData);
                SuccessNotification("修改成功");
                return(RedirectToAction("Index"));
            }

            model.ClientDataList    = GetClientDataList();
            model.WarehouseList     = GetWarehouseList();
            model.SpecificationList = GetSpecificationList();
            model.GoodsTypeList     = GetGoodsTypeList();
            return(View(model));
        }
        public int Insert(SalesShipmentsData SalesShipmentsData)
        {
            var sql = $@"insert into SalesShipmentsData(
                    Goods_ID,
                    Goods_Name,
                    Date,
                    Unit,
                    Specification,
                    GoodsType,
                    Brand,
                    Quantity,
                    UnitPrice,
                    Cost,
                    Profit,
                    Sum,
                    Total,
                    Remarks,
                    Warehouse_ID,
                    Warehouse_Name,
                    InventoryData_ID,
                    Active,
                    Freight,
                    ClientData_ID,
                    ClientData_Name)
			        VALUES (
                    @GoodsID,
                    @GoodsName,
                    @Date,
                    @Unit,
                    @Specification,
                    @GoodsType,
                    @Brand,
                    @Quantity,
                    @UnitPrice,
                    @Cost,
                    @Profit,
                    @Sum,
                    @Total,
                    @Remarks,
                    @WarehouseID,
                    @WarehouseName,
                    @InventoryDataID,
                    @Active,
                    @Freight,
                    @ClientDataID,
                    @ClientDataName) select @@identity";

            return(_context.QuerySingle <int>(sql, new
            {
                GoodsID = SalesShipmentsData.GoodsID,
                GoodsName = SalesShipmentsData.GoodsName,
                Date = SalesShipmentsData.Date,
                Unit = SalesShipmentsData.Unit,
                Specification = SalesShipmentsData.Specification,
                GoodsType = SalesShipmentsData.GoodsType,
                Brand = SalesShipmentsData.Brand,
                Quantity = SalesShipmentsData.Quantity,
                UnitPrice = SalesShipmentsData.UnitPrice,
                Cost = SalesShipmentsData.Cost,
                Profit = SalesShipmentsData.Profit,
                Sum = SalesShipmentsData.Sum,
                Total = SalesShipmentsData.Total,
                Remarks = SalesShipmentsData.Remarks,
                WarehouseID = SalesShipmentsData.WarehouseID,
                WarehouseName = SalesShipmentsData.WarehouseName,
                InventoryDataID = SalesShipmentsData.InventoryDataID,
                Active = "1",
                Freight = SalesShipmentsData.Freight,
                ClientDataID = SalesShipmentsData.ClientDataID,
                ClientDataName = SalesShipmentsData.ClientDataName
            }));
        }