public void AddByPreproductCmd(TX50_PrePdtWhsCmd tx50PrePdtWhsCmd) { var th63 = new TH63_PrePdtWhsCmdHst() { F63_AbnormalCode = tx50PrePdtWhsCmd.F50_AbnormalCode, F63_AddDate = tx50PrePdtWhsCmd.F50_AddDate, F63_CmdSeqNo = tx50PrePdtWhsCmd.F50_CmdSeqNo, F63_CommandEndDate = tx50PrePdtWhsCmd.F50_CommandEndDate, F63_CommandNo = tx50PrePdtWhsCmd.F50_CommandNo, F63_CommandSendDate = tx50PrePdtWhsCmd.F50_CommandEndDate, F63_CommandType = tx50PrePdtWhsCmd.F50_CommandType, F63_From = tx50PrePdtWhsCmd.F50_From, F63_ContainerNo = tx50PrePdtWhsCmd.F50_ContainerNo, F63_ContainerCode = tx50PrePdtWhsCmd.F50_ContainerCode, F63_PictureNo = tx50PrePdtWhsCmd.F50_PictureNo, F63_Priority = tx50PrePdtWhsCmd.F50_Priority, F63_RetryCount = tx50PrePdtWhsCmd.F50_RetryCount, F63_Status = tx50PrePdtWhsCmd.F50_Status, F63_StrRtrType = tx50PrePdtWhsCmd.F50_StrRtrType, F63_TerminalNo = tx50PrePdtWhsCmd.F50_TerminalNo, F63_To = tx50PrePdtWhsCmd.F50_To, F63_UpdateCount = tx50PrePdtWhsCmd.F50_UpdateCount, F63_UpdateDate = tx50PrePdtWhsCmd.F50_UpdateDate }; Add(th63); }
private bool Instab(string terminalNo, string as_shelf, string as_conno, string as_concode) { var nomanage = true; var serialNo = _unitOfWork.NoManageRepository.CreateOrUpdateTX48(ref nomanage, Constants.GetColumnInNoManager.PrePdtWhsCmdNo, 0, 1, 0, 0, 0); var conveyCode = _unitOfWork.ConveyorRepository.GetbyTerminerNo(terminalNo); var tx50 = new TX50_PrePdtWhsCmd { F50_CommandNo = Constants.F50_CommandNo.CmdNoRtr.ToString("D"), F50_CmdSeqNo = serialNo.ToString("D4"), F50_CommandType = Constants.CommandType.CmdType_0, F50_StrRtrType = "0", F50_Status = "0", F50_ContainerNo = as_conno, F50_ContainerCode = as_concode, F50_Priority = 0, F50_From = as_shelf, F50_To = conveyCode.F05_ConveyorCode, F50_CommandSendDate = DateTime.Now, F50_CommandEndDate = DateTime.Now, F50_TerminalNo = terminalNo, F50_PictureNo = Constants.PictureNo.TCIP023F, F50_AbnormalCode = null, F50_AddDate = DateTime.Now, F50_UpdateDate = DateTime.Now, F50_UpdateCount = 0, F50_RetryCount = 0 }; _unitOfWork.PreProductWarehouseCommandRepository.Add(tx50); return(true); }
public TerminalMessage(TX50_PrePdtWhsCmd preProductWarehouseCommand) : this() { if (preProductWarehouseCommand == null) { return; } if (string.IsNullOrEmpty(preProductWarehouseCommand.F50_CmdSeqNo)) { CommandSequence = " ".PadRight(4); } else { CommandSequence = preProductWarehouseCommand.F50_CmdSeqNo.PadRight(4); } CommandIndex = preProductWarehouseCommand.F50_CommandNo.PadRight(4); Command = preProductWarehouseCommand.F50_CommandType.PadRight(4); From = preProductWarehouseCommand.F50_From.PadRight(6); To = preProductWarehouseCommand.F50_To.PadRight(6); }
public int SendFromC2ToAw(TX50_PrePdtWhsCmd prePdtWhsCmd) { return(1); }
//BR28 Retrieving Container rules: public ResponseResult Edit(string commandNo, string preProductCode, string lotNo, string tabletisingLine, string terminalNo) { //Get and update tx41_tbtcmd var tabletCommand = _unitOfWork.TabletCommandRepository.GetMany( i => i.F41_KndCmdNo.Trim().Equals(commandNo) && i.F41_PrePdtLotNo.Trim().Equals(lotNo)) .FirstOrDefault(); if (tabletCommand != null) { tabletCommand.F41_TabletLine = "TAB0" + tabletisingLine; tabletCommand.F41_UpdateDate = DateTime.Now; _unitOfWork.TabletCommandRepository.Update(tabletCommand); } //Get data for tx49_prepdtshfstk var shelfStatus = Constants.F49_ShelfStatus.TX49_StkFlg_Stk; var preProductShelfStocks = _unitOfWork.PreProductShelfStockRepository.GetMany( i => i.F49_KndCmdNo.Trim().Equals(commandNo.Trim()) && i.F49_PreProductCode.Trim().Equals(preProductCode.Trim()) && i.F49_PreProductLotNo.Trim().Equals(lotNo.Trim()) && i.F49_ShelfStatus.Trim().Equals(shelfStatus)) .OrderBy(i => i.F49_ContainerSeqNo); //Declaration lsShelf and isAddress var lsShelf = ""; var isAddress = ""; if (!preProductShelfStocks.Any()) { return(new ResponseResult(false)); } foreach (var preProductShelfStock in preProductShelfStocks) { //Update status into TX49 preProductShelfStock.F49_ShelfStatus = Constants.F49_ShelfStatus.TX49_StkFlg_Rtr; _unitOfWork.PreProductShelfStockRepository.Update(preProductShelfStock); var containerCode = preProductShelfStock.F49_ContainerCode; var lstPrePdtShfSts = _unitOfWork.PreProductShelfStatusRepository.GetMany( i => i.F37_ContainerCode.Trim().Equals(containerCode.Trim())); // ls_Shelf = [as_Row] + [as_Bay] + [as_Level] var prePdtStsItem = lstPrePdtShfSts.FirstOrDefault(); if (prePdtStsItem != null) { lsShelf = prePdtStsItem.F37_ShelfRow + prePdtStsItem.F37_ShelfBay + prePdtStsItem.F37_ShelfLevel; foreach (var prePdtShfSts in lstPrePdtShfSts) { prePdtShfSts.F37_ShelfStatus = Constants.F37_ShelfStatus.ReservedForRetrieval.ToString("D"); _unitOfWork.PreProductShelfStatusRepository.Update(prePdtShfSts); break; } } else { return(new ResponseResult(false)); } //The system will check the status of the Conveyor and Pre-product Warehouse as BR 8 //Insert Or Update tx48_nomanage var isNoManage = true; var cmdSeqNo = _unitOfWork.NoManageRepository.CreateOrUpdateTX48(ref isNoManage, Constants.GetColumnInNoManager.PrePdtWhsCmdNo, 0, 1, 0, 0, 0).ToString("D4"); var f50commandNo = Constants.F50_CommandNo.CmdNoRtr.ToString("D"); var tx50PrePdtWhsCmd = _unitOfWork.PreProductWarehouseCommandRepository.Get( i => i.F50_CommandNo.Trim().Equals(f50commandNo) && i.F50_CmdSeqNo.Trim().Equals(cmdSeqNo.Trim())); //Insert tx50_prepdtwhscmd if (tx50PrePdtWhsCmd == null) { var prePdtWhsCmd = new TX50_PrePdtWhsCmd(); prePdtWhsCmd.F50_CommandNo = Constants.F50_CommandNo.CmdNoRtr.ToString("D"); prePdtWhsCmd.F50_CmdSeqNo = cmdSeqNo; prePdtWhsCmd.F50_CommandType = Constants.CommandType.CmdType_0; prePdtWhsCmd.F50_StrRtrType = Constants.F50_StrRtrType.StrRtrType_PrePdt.ToString("D"); prePdtWhsCmd.F50_Status = Constants.TC_CMDSTS.TC_CMDSTS_0; prePdtWhsCmd.F50_ContainerNo = preProductShelfStock.F49_ContainerNo; prePdtWhsCmd.F50_ContainerCode = preProductShelfStock.F49_ContainerCode; prePdtWhsCmd.F50_Priority = 0; prePdtWhsCmd.F50_From = lsShelf; prePdtWhsCmd.F50_To = _commonDomain.FindConveyor(terminalNo).F05_ConveyorCode; prePdtWhsCmd.F50_CommandSendDate = DateTime.Now; prePdtWhsCmd.F50_CommandEndDate = DateTime.Now; prePdtWhsCmd.F50_TerminalNo = terminalNo; prePdtWhsCmd.F50_PictureNo = Constants.PictureNo.TCIP031F; prePdtWhsCmd.F50_AbnormalCode = null; prePdtWhsCmd.F50_AddDate = DateTime.Now; prePdtWhsCmd.F50_UpdateDate = DateTime.Now; prePdtWhsCmd.F50_UpdateCount = 0; prePdtWhsCmd.F50_RetryCount = 0; _unitOfWork.PreProductWarehouseCommandRepository.Add(prePdtWhsCmd); } // var lsMsg = "Shelf No [" + isAddress + "] retrieving..."; //_notificationService.SendMessageToC2(lsMsg); } _unitOfWork.Commit(); return(new ResponseResult(true)); }
//BR46 Re-storing rules public ResponseResult CreateAndUpdate(string preProductCode, string shelfNo, string containerCode, double quantity, string lotNo, string terminalNo, DateTime?updateDate, int containerType) { //The system will separate the value of [Shelf No.] of the selected item in to 3 parts: [ls_row], [ls_bay], [ls_level] as defined on BR 31. var lstShelfNo = shelfNo.Split('-'); var lsRow = lstShelfNo[0]; var lsBay = lstShelfNo[1]; var lsLevel = lstShelfNo[2]; var preProductShelfStatus = _unitOfWork.PreProductShelfStatusRepository.GetMany( i => i.F37_ShelfRow.Trim().Equals(lsRow) && i.F37_ShelfBay.Trim().Equals(lsBay) && i.F37_ShelfLevel.Trim().Equals(lsLevel)).FirstOrDefault(); try { preProductShelfStatus.F37_ShelfStatus = Constants.F37_ShelfStatus.ReservedForStorage.ToString("D"); preProductShelfStatus.F37_UpdateDate = DateTime.Now; _unitOfWork.PreProductShelfStatusRepository.Update(preProductShelfStatus); } catch (Exception ex) { return(new ResponseResult(false)); } //If the system updates data successfully, it will continue updating data of the following table tx49_prepdtshfstk var commandNo = ""; var containerNo = ""; try { var preProductShelfStock = _unitOfWork.PreProductShelfStockRepository.GetMany( i => i.F49_ContainerCode.Trim().Equals(containerCode)) .FirstOrDefault(); if (preProductShelfStock != null) { commandNo = preProductShelfStock.F49_KndCmdNo; containerNo = preProductShelfStock.F49_ContainerNo; preProductShelfStock.F49_ShelfStatus = Constants.F49_ShelfStatus.TX49_StkFlg_Str; preProductShelfStock.F49_Amount = quantity; preProductShelfStock.F49_UpdateDate = DateTime.Now; _unitOfWork.PreProductShelfStockRepository.Update(preProductShelfStock); } } catch (Exception e) { return(new ResponseResult(false)); } var lstPreProductShelfStock = _unitOfWork.PreProductShelfStockRepository.GetMany( i => i.F49_PreProductLotNo.Trim().Equals(lotNo) && i.F49_KndCmdNo.Trim().Equals(commandNo)); var ldb_prepdtamount = 0.0; var liCount = lstPreProductShelfStock.Count(); foreach (var item in lstPreProductShelfStock) { ldb_prepdtamount += item.F49_Amount; } //Update tx42_kndcmd var storedStatus = Constants.F42_Status.TX42_Sts_Stored; var kneadingCommand = _unitOfWork.KneadingCommandRepository.GetMany( i => i.F42_KndCmdNo.Trim().Equals(commandNo) && i.F42_PrePdtLotNo.Trim().Equals(lotNo) && i.F42_Status.Equals(storedStatus)).FirstOrDefault(); if (kneadingCommand != null) { kneadingCommand.F42_ThrowAmount = ldb_prepdtamount; kneadingCommand.F42_StgCtnAmt = liCount; _unitOfWork.KneadingCommandRepository.Update(kneadingCommand); } var isNomanage = true; var as_cmdNo = _unitOfWork.NoManageRepository.CreateOrUpdateTX48(ref isNomanage, Constants.GetColumnInNoManager.PrePdtWhsCmdNo, prePdtWhsCmdNo: 1); //[ls_from] = the value of [is_convcode] retrieved on SQL 15 //Get record TM03_PreProduct where F03_PreProductCode equals preProductCode var preProductItem = _unitOfWork.PreProductRepository.GetMany(i => i.F03_PreProductCode.Trim().Equals(preProductCode.Trim())) .FirstOrDefault(); var szColorClass = Constants.ColorClass.Color.ToString("D"); if (containerType == 30) { szColorClass = Constants.ColorClass.Black.ToString("D"); } //Get record TM05_Conveyor var conveyorItem = _unitOfWork.ConveyorRepository.GetAll() .FirstOrDefault( i => i.F05_TerminalNo.Trim().Equals(terminalNo) && i.F05_ColorClass.Trim().Equals(szColorClass)); if (conveyorItem == null) { return(new ResponseResult(false, "The corresponding conveyor does not exist!")); } //assign lsForm=ConveyorCode var lsForm = conveyorItem.F05_ConveyorCode; //Insert data into tx50_prepdtwhscmd try { var tx50_prePdtWhsCmd = new TX50_PrePdtWhsCmd(); tx50_prePdtWhsCmd.F50_CommandNo = Constants.F50_CommandNo.CmdNoStkStr.ToString("D"); tx50_prePdtWhsCmd.F50_CmdSeqNo = as_cmdNo.ToString("D4"); tx50_prePdtWhsCmd.F50_CommandType = Constants.CommandType.CmdType_0; tx50_prePdtWhsCmd.F50_StrRtrType = Constants.F50_StrRtrType.StrRtrType_PrePdt.ToString("D"); tx50_prePdtWhsCmd.F50_Status = Constants.TC_CMDSTS.TC_CMDSTS_0; tx50_prePdtWhsCmd.F50_ContainerNo = containerNo; tx50_prePdtWhsCmd.F50_ContainerCode = containerCode; tx50_prePdtWhsCmd.F50_Priority = 0; tx50_prePdtWhsCmd.F50_From = lsForm; tx50_prePdtWhsCmd.F50_To = $"{lsRow}{lsBay}{lsLevel}"; tx50_prePdtWhsCmd.F50_CommandSendDate = DateTime.Now; tx50_prePdtWhsCmd.F50_CommandEndDate = DateTime.Now; tx50_prePdtWhsCmd.F50_TerminalNo = terminalNo; tx50_prePdtWhsCmd.F50_PictureNo = Constants.PictureNo.TCIP042F; tx50_prePdtWhsCmd.F50_AbnormalCode = null; tx50_prePdtWhsCmd.F50_AddDate = DateTime.Now; tx50_prePdtWhsCmd.F50_UpdateDate = DateTime.Now; tx50_prePdtWhsCmd.F50_UpdateCount = 0; tx50_prePdtWhsCmd.F50_RetryCount = 0; _unitOfWork.PreProductWarehouseCommandRepository.Add(tx50_prePdtWhsCmd); } catch (Exception e) { RestoringStatusOfPreproductWarehouse(lsRow, lsBay, lsLevel, terminalNo, containerCode, updateDate).RunSynchronously(); return(new ResponseResult(false)); } // Restore the status of the Pre-product Warehouse as BR 37. // Send message to C2 as BR 13 with the following parameters _notificationService.SendMessageToC2(Constants.F50_CommandNo.CmdNoStkRtr.ToString("D"), as_cmdNo.ToString("D4")); _unitOfWork.Commit(); return(new ResponseResult(true)); }
/// <summary> /// Retrieve stock taking of pre-product /// </summary> /// <param name="terminalNo"></param> /// <param name="preProductCode"></param> /// <param name="lsRow"></param> /// <param name="lsBay"></param> /// <param name="lsLevel"></param> /// <param name="containerCode"></param> /// <returns></returns> public ResponseResult <string> RetrieveStockTakingOfPreProduct(string terminalNo, string preProductCode, string lsRow, string lsBay, string lsLevel, string containerCode, string containerNo, DateTime?updateDate) { // TODO: Move this to constant var tx37_shfsts_stk = "3"; // Find all conveyors. var conveyors = _unitOfWork.ConveyorRepository.GetAll(); var errorMessage = ""; // Find all pre-products. var preProducts = _unitOfWork.PreProductRepository.GetAll(); var convcode = ""; var result = (from conveyor in conveyors from preProduct in preProducts where conveyor.F05_TerminalNo.Equals(terminalNo.Trim()) && conveyor.F05_LineNo.Trim().Equals(preProduct.F03_KneadingLine.Trim()) && conveyor.F05_ColorClass.Trim().Equals(preProduct.F03_ColorClass.Trim()) && preProduct.F03_PreProductCode.Trim().Equals(preProductCode.Trim()) select conveyor.F05_ConveyorCode).FirstOrDefault(); if (result == null) { convcode = "CV211"; errorMessage = "MSG13"; } else { convcode = result; } var checkConveyor = CheckConveyorByCode(convcode); if (!checkConveyor.IsSuccess) { return(new ResponseResult <string>(null, false, checkConveyor.ErrorMessages[0])); } var systemTime = DateTime.Now; // Find TX37 Record var prepdtshfstses = _unitOfWork.PreProductShelfStatusRepository.GetAll(); prepdtshfstses = prepdtshfstses.Where(x => x.F37_ShelfRow.Equals(lsRow)); prepdtshfstses = prepdtshfstses.Where(x => x.F37_ShelfBay.Equals(lsBay)); prepdtshfstses = prepdtshfstses.Where(x => x.F37_ShelfLevel.Equals(lsLevel)); prepdtshfstses = prepdtshfstses.Where(x => x.F37_ShelfStatus.Equals(tx37_shfsts_stk)); if (!prepdtshfstses.Any()) { errorMessage = "MSG28"; } foreach (var prepdtshfsts in prepdtshfstses) { prepdtshfsts.F37_ShelfStatus = Constants.F37_ShelfStatus.ReservedForRetrieval.ToString("D"); prepdtshfsts.F37_TerminalNo = terminalNo; prepdtshfsts.F37_UpdateDate = systemTime; _unitOfWork.PreProductShelfStatusRepository.Update(prepdtshfsts); break; } var prepdtshfstks = _unitOfWork.PreProductShelfStockRepository.GetAll(); prepdtshfstks = prepdtshfstks.Where(x => x.F49_ContainerCode.Equals(containerCode)); if (!prepdtshfstks.Any()) { errorMessage = "MSG28"; } if (!string.IsNullOrEmpty(errorMessage) && errorMessage == "MSG28") { return(new ResponseResult <string>(null, false, errorMessage)); } foreach (var prepdtshfstk in prepdtshfstks) { prepdtshfstk.F49_ShelfStatus = Constants.F49_ShelfStatus.TX49_StkFlg_Rtr; _unitOfWork.PreProductShelfStockRepository.Update(prepdtshfstk); } var isnoManager = true; try { var as_cmdno = _unitOfWork.NoManageRepository.CreateOrUpdateTX48(ref isnoManager, Constants.GetColumnInNoManager.PrePdtWhsCmdNo, prePdtWhsCmdNo: 1); var prepdtwhscmd = new TX50_PrePdtWhsCmd(); prepdtwhscmd.F50_CommandNo = Constants.F50_CommandNo.CmdNoStkRtr.ToString("D"); prepdtwhscmd.F50_CmdSeqNo = ("0000" + as_cmdno.ToString()).Substring(("0000" + as_cmdno.ToString()).Length - 4, 4); prepdtwhscmd.F50_CommandType = Constants.CommandType.CmdType_0; prepdtwhscmd.F50_StrRtrType = Constants.F50_StrRtrType.StrRtrType_PrePdt.ToString("D"); prepdtwhscmd.F50_Status = Constants.TC_CMDSTS.TC_CMDSTS_0; prepdtwhscmd.F50_ContainerNo = containerNo; prepdtwhscmd.F50_ContainerCode = containerCode; prepdtwhscmd.F50_From = string.Format("{0}{1}{2}", lsRow, lsBay, lsLevel); prepdtwhscmd.F50_To = convcode; prepdtwhscmd.F50_CommandSendDate = systemTime; prepdtwhscmd.F50_CommandEndDate = systemTime; prepdtwhscmd.F50_TerminalNo = terminalNo; prepdtwhscmd.F50_PictureNo = Constants.PictureNo.TCIP041F; prepdtwhscmd.F50_AddDate = systemTime; prepdtwhscmd.F50_UpdateDate = systemTime; _unitOfWork.PreProductWarehouseCommandRepository.Add(prepdtwhscmd); _notificationService.SendMessageToC2(Constants.F50_CommandNo.CmdNoStkRtr.ToString("D"), as_cmdno.ToString("D4")); _unitOfWork.Commit(); } catch (Exception ex) { RestoringStatusOfPreproductWarehouse(lsRow, lsBay, lsLevel, terminalNo, containerCode, updateDate).RunSynchronously(); _unitOfWork.Commit(); _log.Error(ex.Message, ex); } return(new ResponseResult <string>(convcode, true, errorMessage)); }