| | |
| | | public static void UpdateInventoryRegularly() |
| | | { |
| | | var db = new SqlHelper<object>().GetInstance(); |
| | | var areaCodeList = Settings.areaPropertyList.Select(a => a.areaCode).ToList(); |
| | | var locations = db.Queryable<Location>() |
| | | .LeftJoin<LjLotOnhand>((a, b) => a.S_CODE == b.STORAGE_LOCATION) |
| | | .LeftJoin<LocCntrRel>((a, b, c) => a.S_CODE == c.S_LOC_CODE) |
| | | .Where((a, b, c) => b.PALLET_ID != c.S_CNTR_CODE) |
| | | .LeftJoin<LocCntrRel>((a, b) => a.S_CODE == b.S_LOC_CODE) |
| | | .Where((a,b) => a.N_CURRENT_NUM > 0 && b.S_CNTR_CODE != null && areaCodeList.Contains(a.S_AREA_CODE) ) |
| | | .ToList(); |
| | | |
| | | foreach (var loc in locations) |
| | | { |
| | | var lotOnhand = db.Queryable<LjLotOnhand>().Where(a => a.STORAGE_LOCATION == loc.S_CODE).First(); |
| | | if (lotOnhand != null) { |
| | | db.Deleteable(lotOnhand).ExecuteCommand(); |
| | | db.Deleteable<LjLotOnhand>().Where(a => a.ID == lotOnhand.ID).ExecuteCommand(); |
| | | } |
| | | |
| | | var locCntrRels = LocationHelper.GetLocCntr(loc.S_CODE); |
| | |
| | | var material = WMSHelper.GetMaterial(cntrItem.S_ITEM_CODE); |
| | | LjLotOnhand ljLotOnhand = new LjLotOnhand() |
| | | { |
| | | ID = WMSHelper.GenerateStockRecordNo(), |
| | | MATERIAL_CODE = cntrItem.S_ITEM_CODE, |
| | | LOT_NAME = cntrItem.S_BATCH_NO, |
| | | PALLET_ID = cntrItem.S_CNTR_CODE, |
| | | STORAGE_LOCATION = loc.S_CODE, |
| | | QC_STATUS = cntrItem.S_ITEM_STATE, |
| | | UNIT = material.S_UNIT, |
| | | UNIT = material == null ? "":material.S_UNIT, |
| | | QTY = cntrItem.F_QTY, |
| | | IN_DATE = cntrItem.T_INBOUND_TIME, |
| | | IN_DATE = cntrItem.T_INBOUND_TIME.ToString("yyyy-MM-dd"), |
| | | CREATION_DATE = DateTime.Now, |
| | | WAREHOUSE_TYPE = "2" |
| | | }; |
| | | db.Insertable(lotOnhand).ExecuteCommand(); |
| | | db.Insertable(ljLotOnhand).ExecuteCommand(); |
| | | } |
| | | }); |
| | | } |