Пример #1
0
 public BaseServiceResponse <Material> CreateMaterial(Material material)
 {
     try {
         _db.Materials.Add(material);
         var newStock = new MaterialStock
         {
             Material          = material,
             AvailableQuantity = 0,
             IdealQuantity     = 13
         };
         _db.MaterialStocks.Add(newStock);
         _db.SaveChanges();
         return(new BaseServiceResponse <Material>
         {
             Data = material,
             Time = DateTime.UtcNow,
             Message = "New Material Added!",
             IsSuccess = true
         });
     }catch (Exception e) {
         return(new BaseServiceResponse <Material>
         {
             Data = material,
             Time = DateTime.UtcNow,
             Message = e.StackTrace,
             IsSuccess = false
         });
     }
 }
Пример #2
0
        protected override void AfterInsert(ProductionMoving item, DbContext dbContext)
        {
            //移库以后,要调整库存:移入部门库存增加,移出部门库存减少
            lock (typeof(ProductMovingLogic))
            {
                WorkshopLogic WorkshopLogic = new WorkshopLogic(dbContext);
                Workshop      fromWorkshop  = dbContext.Set <Workshop>().Where(x => x.RecordId == item.WorkshopIdFrom).First();
                bool          isFinishedProductionWorkshop = WorkshopLogic.IsFinishedProductionWorkshop(fromWorkshop);
                MaterialStock stockIn  = AssureInStock(item, isFinishedProductionWorkshop, dbContext);
                MaterialStock stockOut = AssureOutStock(item, isFinishedProductionWorkshop, dbContext);

                if (stockIn != null)
                {
                    stockIn.QtyMoveIn = stockIn.QtyMoveIn + item.Qty;  // 移入
                    stockIn.QtyStock  = stockIn.QtyStock + item.Qty;   // 库存增加
                    GlobalConstants.ModifyEntityStatus(stockIn, dbContext);
                }

                if (stockOut != null)
                {
                    stockOut.QtyMoveOut = stockOut.QtyMoveOut + item.Qty;  // 移出
                    stockOut.QtyStock   = stockOut.QtyStock - item.Qty;    // 库存减少
                    GlobalConstants.ModifyEntityStatus(stockOut, dbContext);
                }

                dbContext.SaveChanges();
            }
        }
        private static void UpdateItemStock(ProductionOrderProgress item, DbContext dbContext)
        {
            MaterialStock stock = AssureStock(item, dbContext);

            stock.QtyStock = stock.QtyStock + item.Qty;
            stock.QtyGood  = stock.QtyGood + item.Qty;
            GlobalConstants.ModifyEntityStatus(stock, dbContext);
        }
Пример #4
0
        private static void UpdateItemStock(QualityCheck item, DbContext dbContext)
        {
            MaterialStock stock = AssureStock(item, dbContext);

            stock.QtyStock  = stock.QtyStock + item.Qty;
            stock.QtyDefect = stock.QtyDefect + item.Qty;
            GlobalConstants.ModifyEntityStatus(stock, dbContext);
        }
Пример #5
0
    public bool fnIsExist(MaterialStock materialStock)
    {
        string sSql = "  SELECT COUNT([material_id])   " +
                      "  FROM   [MNDTmaterial_stock]   " +
                      "  WHERE  [material_id] = '" + materialStock.material_id + "'   " +
                      "       AND [warehouse_id] = '" + materialStock.warehouse_id + "'   ";

        return(PublicApi.fnGetValue(sSql, "MNDT") == "1");
    }
Пример #6
0
    public DataTable fnSelect(MaterialStock materialStock)
    {
        string sSql = "  SELECT TOP 1 * " +
                      "  FROM   [MNDTmaterial_stock] [materialStock]  " +
                      "  WHERE [materialStock].[material_id] = '" + materialStock.material_id + "' " +
                      "       AND [materialStock].[warehouse_id] = '" + materialStock.warehouse_id + "' ";

        return(PublicApi.fnGetDt(sSql, "MNDT"));
    }
Пример #7
0
    public DataTable fnSelects(MaterialStock materialStock)
    {
        string sCondition = "";

        sCondition += PublicApi.fnAddCondition("[material_id]", materialStock.material_id);
        sCondition += PublicApi.fnAddCondition("[warehouse_id]", materialStock.warehouse_id);
        sCondition += " ORDER BY [" + materialStock.order + "] ";
        string sInquireSql =
            "  SELECT *  " +
            "  FROM MNDTmaterial_stock  " +
            "  WHERE 1 = 1 " + sCondition;

        return(PublicApi.fnGetDt(sInquireSql, "MNDT"));
    }
Пример #8
0
    //public string fnDelete(MaterialStock materialStock, string sIP, string sId)
    //{
    //    string sSql = " UPDATE [dbo].[MNDTmaterial_stock] " +
    //                    "       SET [status] = 'D' " +
    //                    " WHERE [material_id] = '" + materialStock.material_id + "' ";
    //    MaterialStockTran materialStockTran = new MaterialStockTran();

    //    materialStockTran.MaterialStockId(materialStock.material_id)
    //                .IP(sIP)
    //                .Status("D")
    //                .CreateId(sId);
    //    sSql += fnInsertSql(materialStockTran);

    //    return PublicApi.fnExecuteSQL(sSql, "MNDT");
    //}

    //public string fnDeletes(MaterialStock materialStock, string sIP, string sId)
    //{
    //    string sSql = " UPDATE [dbo].[MNDTmaterial_stock] " +
    //                    "       SET [status] = 'D' " +
    //                    " WHERE [material_id] IN (" + materialStock.material_id + ")";
    //    MaterialStockTran materialStockTran = new MaterialStockTran();

    //    materialStockTran.MaterialStockId(materialStock.material_id)
    //                .IP(sIP)
    //                .Status("D")
    //                .CreateId(sId);
    //    sSql += fnInsertsSql(materialStockTran);

    //    return PublicApi.fnExecuteSQL(sSql, "MNDT");
    //}

    public string fnCount(MaterialStock materialStock)
    {
        string sCondition = "";

        sCondition += PublicApi.fnAddCondition("[material_id]", materialStock.material_id);
        sCondition += PublicApi.fnAddCondition("[warehouse_id]", materialStock.warehouse_id);

        string sCountSql =
            "          SELECT COUNT(material_id)   " +
            "          FROM   [MNDTmaterial_stock]   " +
            "          WHERE  1 = 1 " + sCondition;
        string sPageSize = PublicApi.fnGetValue(sCountSql, "MNDT");

        return(sPageSize);
    }
Пример #9
0
 public IActionResult New(MaterialStock materialStock, string message)
 {
     if (message.Equals("Update"))
     {
         _context.MaterialStocks.Update(materialStock);
         _context.SaveChanges();
         _client.AddToastNotification("WELL DONE!! Your Data Has Been Successfully Updated", NotificationType.success, new ToastNotificationOption {
             PositionClass = "toast-top-right"
         });
     }
     else
     {
         _context.MaterialStocks.Add(materialStock);
         _context.SaveChanges();
     }
     return(RedirectToAction("Index"));
 }
Пример #10
0
    // sNum 排行
    public DataTable fnSelectStockId(MaterialStock materialStock, string sNum)
    {
        string sCondition = "";

        sCondition += PublicApi.fnAddCondition("[material_id]", materialStock.material_id);
        sCondition += PublicApi.fnAddCondition("[warehouse_id]", materialStock.warehouse_id);

        string sSql = "  SELECT [materialStock].[material_id]  " +
                      "       ,[materialStock].[warehouse_id]  " +
                      "  FROM   (SELECT Row_number() OVER (ORDER BY [" + materialStock.order + "] ASC) NUM,   " +
                      "                  *   " +
                      "          FROM   [MNDTmaterial_stock]   " +
                      "          WHERE  1 = 1" + sCondition + ") AS [materialStock]  " +
                      "  WHERE [materialStock].[NUM] = '" + sNum + "' ";

        return(PublicApi.fnGetDt(sSql, "MNDT"));
    }
Пример #11
0
    public DataTable fnSelectStocks(MaterialStock materialStock)
    {
        string sCondition = "";

        sCondition += PublicApi.fnAddCondition("[material_id]", materialStock.material_id);
        sCondition += " AND [material_s].[amount] <> 0 ";
        sCondition += " ORDER BY [parameter] ";

        string sInquireSql =
            "  SELECT [material_s].[warehouse_id],   " +
            "         [material_s].[amount]   " +
            "  FROM   [mndtmaterial_stock] [material_s]   " +
            "         LEFT JOIN [mndtkind_details] [kind_d]   " +
            "                ON [kind_d].[kind_id] = 'WAR'   " +
            "                AND [material_s].[warehouse_id] = [kind_d].[code_id]   " +
            "  WHERE  1 = 1   " + sCondition;

        return(PublicApi.fnGetDt(sInquireSql, "MNDT"));
    }
Пример #12
0
    public string fnUpdateAmountSql(MaterialStock materialStock)
    {
        MaterialStockTran materialStockTran = new MaterialStockTran();

        materialStockTran.WarehouseId(materialStock.warehouse_id)
        .MaterialId(materialStock.material_id)
        .Description("系統進出貨正常變更")
        .CreateId(materialStock.create_id);

        string sSql = fnInsertSql(materialStockTran);

        sSql +=
            "  UPDATE [dbo].[MNDTmaterial_stock]  " +
            "     SET [amount] = [amount] + " + materialStock.amount + "  " +
            "  WHERE [material_id] = '" + materialStock.material_id + "' " +
            "        AND [warehouse_id] = '" + materialStock.warehouse_id + "'  ";

        return(sSql);
    }
Пример #13
0
        private MaterialStock AssureOutStock(ProductionMoving item, bool isFinishedProductionWorkshop, DbContext dbContext)
        {
            MaterialStock stock = dbContext.Set <MaterialStock>().Where(x => x.StoreId == item.WorkshopIdFrom && x.MaterialId == item.ProductionId).FirstOrDefault();

            if (stock == null && !isFinishedProductionWorkshop)
            {
                stock              = new MaterialStock();
                stock.MaterialId   = item.ProductionId;
                stock.MaterialCode = item.ProductionCode;
                stock.MaterialName = item.ProductionName;

                stock.StoreId   = item.WorkshopIdFrom;
                stock.StoreCode = item.WorkshopCodeFrom;
                stock.StoreName = item.WorkshopNameFrom;

                dbContext.Set <MaterialStock>().Add(stock);
                dbContext.SaveChanges();
            }
            return(stock);
        }
        private static MaterialStock AssureStock(ProductionOrderProgress item, DbContext dbContext)
        {
            MaterialStock stock = dbContext.Set <MaterialStock>().Where(x => x.StoreId == item.WorkshopId && x.MaterialId == item.ProductionId).FirstOrDefault();

            if (stock == null)
            {
                stock              = new MaterialStock();
                stock.MaterialId   = item.ProductionId;
                stock.MaterialCode = item.ProductionCode;
                stock.MaterialName = item.ProductionName;

                stock.StoreId   = item.WorkshopId;
                stock.StoreCode = item.WorkshopCode;
                stock.StoreName = item.WorkshopName;

                dbContext.Set <MaterialStock>().Add(stock);
                dbContext.SaveChanges();
            }
            return(stock);
        }
Пример #15
0
    public string fnInsert(MaterialStock materialStock)
    {
        string sSql =
            "  INSERT INTO [dbo].[MNDTmaterial_stock]  " +
            "             ([material_id]  " +
            "             ,[warehouse_id]  " +
            "             ,[amount]  " +
            "             ,[safe_amount]  " +
            "             ,[create_id]  " +
            "             ,[create_datetime])  " +
            "  VALUES  " +
            "             ('" + materialStock.material_id + "' " +
            "             ,'" + materialStock.warehouse_id + "' " +
            "             ,'0' " +
            "             ,'0' " +
            "             ,'" + materialStock.create_id + "' " +
            "             ,GETDATE())  ";

        return(PublicApi.fnExecuteSQL(sSql, "MNDT"));
    }
Пример #16
0
    public string fnUpdate(MaterialStock materialStock, string sDescription, string sIP)
    {
        MaterialStockTran materialStockTran = new MaterialStockTran();

        materialStockTran.WarehouseId(materialStock.warehouse_id)
        .MaterialId(materialStock.material_id)
        .Description(sDescription)
        .CreateId(materialStock.create_id);

        string sSql = fnInsertSql(materialStockTran);

        sSql +=
            "  UPDATE [dbo].[MNDTmaterial_stock]  " +
            "     SET [amount] = '" + materialStock.amount + "'  " +
            "        ,[safe_amount] =  '" + materialStock.safe_amount + "'  " +
            "  WHERE [material_id] = '" + materialStock.material_id + "' " +
            "        AND [warehouse_id] = '" + materialStock.warehouse_id + "'  ";

        return(PublicApi.fnExecuteSQL(sSql, "MNDT"));
    }
Пример #17
0
    public DataTable fnExport(MaterialStock materialStock)
    {
        string sCondition = "";

        sCondition += PublicApi.fnAddCondition("[material_id]", materialStock.material_id);
        sCondition += " ORDER BY [" + materialStock.order + "] ";
        string sSql =
            "  select [materialstock].[material_id] '編號',   " +
            "         [materialstock].[company_id] '公司id',   " +
            "         [materialstock].[name] '名子',   " +
            "         [materialstock].[unit] '單位',   " +
            "         [materialstock].[currency] '貨幣',  " +
            "         [materialstock].[price] '價格',  " +
            "         [materialstock].[shelf_life] '期限',  " +
            "         [materialstock].[description] '描述',  " +
            "         [materialstock].[status] '狀態'  " +
            "  FROM MNDTmaterial_stock as [materialstock]  " +
            "  WHERE 1 = 1 " + sCondition;

        return(PublicApi.fnGetDt(sSql, "mndt"));
    }
Пример #18
0
        public IActionResult New(Purchase purchase)
        {
            var productName = _context.Products.FirstOrDefault(x => x.Id == purchase.ProductId).PurchaseName;
            var ratePerKg   = purchase.TotalAmount / purchase.Quantity;

            var existingPurchase = _context.MaterialStocks.FirstOrDefault(x => x.ProductName.Equals(productName));

            if (existingPurchase != null)
            {
                var mStock = _context.MaterialStocks.FirstOrDefault(x => x.ProductName.Equals(productName));
                mStock.Quantity    = mStock.Quantity + purchase.Quantity;
                mStock.TotalAmount = mStock.TotalAmount + purchase.TotalAmount;
                mStock.RatePerKg   = mStock.TotalAmount / mStock.Quantity;
                _context.Update(mStock);
                _context.SaveChanges();
                Load();
                _client.AddToastNotification("Congratulations, You Data HAs been SucessFully Added", NotificationType.success, null);
            }
            else
            {
                var materialStock = new MaterialStock();
                materialStock.ProductName = productName;
                materialStock.Quantity    = purchase.Quantity;
                materialStock.TotalAmount = purchase.TotalAmount;
                materialStock.RatePerKg   = ratePerKg;
                _context.MaterialStocks.Add(materialStock);
                _context.SaveChanges();
                Load();
                _client.AddToastNotification("Congratulations, You Data HAs been SucessFully Added", NotificationType.success, null);
            }


            purchase.AmountOfOneQuantity = ratePerKg;
            _context.Purchases.Add(purchase);

            _context.SaveChanges();
            Load();
            _client.AddToastNotification("Congratulations, You Data HAs been SucessFully Added", NotificationType.success, null);
            return(View());
        }
Пример #19
0
    // iPage 第N頁
    // iSize 最大顯示數量
    public DataTable fnSelects(MaterialStock materialStock, int iPage, int iSize)
    {
        int    iStart     = (iPage - 1) * iSize + 1;
        int    iEnd       = iPage * iSize;
        string sCondition = "";

        sCondition += PublicApi.fnAddCondition("[material_id]", materialStock.material_id);
        sCondition += PublicApi.fnAddCondition("[warehouse_id]", materialStock.warehouse_id);

        string sInquireSql =
            "  SELECT [materialStock].[material_id],   " +
            "         [materialStock].[warehouse_id],   " +
            "         [materialStock].[amount],   " +
            "         [materialStock].[safe_amount],   " +
            "         [materialStock].[NUM]   " +
            "  FROM   (SELECT Row_number() OVER (ORDER BY [" + materialStock.order + "] ASC) NUM,   " +
            "                  *   " +
            "          FROM   [MNDTmaterial_stock]   " +
            "          WHERE  1 = 1 " + sCondition + ") AS [materialStock]  " +
            "  WHERE  NUM BETWEEN " + iStart.ToString() + " AND " + iEnd.ToString() + "   ";

        return(PublicApi.fnGetDt(sInquireSql, "MNDT"));
    }
Пример #20
0
 public static MaterialStock CreateMaterialStock(long materialStockID, decimal stockQuantity, decimal issuedQuantity, global::System.DateTime inStockDateTime, long orderID, long subMaterialsNameID, short uOMID)
 {
     MaterialStock materialStock = new MaterialStock();
     materialStock.MaterialStockID = materialStockID;
     materialStock.StockQuantity = stockQuantity;
     materialStock.IssuedQuantity = issuedQuantity;
     materialStock.InStockDateTime = inStockDateTime;
     materialStock.OrderID = orderID;
     materialStock.SubMaterialsNameID = subMaterialsNameID;
     materialStock.UOMID = uOMID;
     return materialStock;
 }
Пример #21
0
 public void AddToMaterialStocks(MaterialStock materialStock)
 {
     base.AddObject("MaterialStocks", materialStock);
 }
Пример #22
0
    public string fnUpdateAmount(MaterialStock materialStock)
    {
        string sSql = fnUpdateAmountSql(materialStock);

        return(PublicApi.fnExecuteSQL(sSql, "MNDT"));
    }