private bool UnitIsDfiled(ReceiptFacts facts) { Logging.Log("Checking if unit " + facts.SerialNumber + " is to be dfiled.", LogType.Information); CloseResolvedDfile(facts); if (facts.DisableDfileCheck) { return(false); } if (facts.PurchaseOrder.Shopfloorline.DfileIsEnabled == false) { return(false); } DfileCondition dfile = new DfileCondition(); if (dfile.IsSatisfiedBy(facts)) { DfileItem item = Scout.Core.Service <IDfileService>() .CreateDfileItem(facts, dfile.Message.ToString()); if (item != null) { UserInteraction.Dialog.ShowMessage("This is unit is to be dfiled for: " + dfile.Message.Message, UserMessageType.Warning, stubborn: true); } return(true); } return(false); }
private Receipt CreateReceipt(ReceiptFacts facts) { Receipt receipt = new FactsReceiptMapper().MapFrom(facts); return(receipt); }
private void MapToPreAlertItem(ReceiptFacts facts, string lotid) { IPreAlert preAlert = OrderService.GetPreAlertByType(facts.PurchaseOrder.PreAlertType); if (preAlert == null) { return; } string serialNumber = facts.SerialNumber; if (!string.IsNullOrEmpty(facts.SerialNumber)) { serialNumber = serialNumber.Trim(); serialNumber = serialNumber.ToUpper(); IPreAlertItem item = preAlert.GetItemBySerialNumber(facts.PurchaseOrder, serialNumber); if (item != null) { item.LotId = lotid; } } }
public DfileItem CreateDfileItem(ReceiptFacts facts, string reason) { if (Repository.GetUnResolvedItemBySerialNumber (Data.GetUnitOfWork(), facts.SerialNumber) != null) { UserInteraction.Dialog.ShowMessage ("This unit is on dfile and must be resolved before it can be received.", UserMessageType.Error, stubborn: true); return(null); } Logging.Log("Creating dfile for " + facts.SerialNumber, LogType.Information); DfileItem dfileItem = new DfileItem(Data.GetUnitOfWork()) { ShopfloorlineId = facts.PurchaseOrder.Shopfloorline.Id, IncomingOrderId = facts.PurchaseOrder.Order.Id, PartId = facts.Part.Id, SerialNumber = facts.SerialNumber, Reason = reason, Comments = facts.Comments, LineItemIdentifier = facts.LineItemIdentifier }; Scout.Core.Data.Save(dfileItem.Session); return(dfileItem); }
private bool CreateReceiptRecords(ReceiptFacts facts) { if (!new ReceiptValidator(facts).Validated()) { return(false); } try { IUnitOfWork uow = facts.Session as IUnitOfWork; Receipt receipt = CreateReceipt(facts); CreateInventoryItem(receipt); CreateSerializedUnit(receipt); CreateTransaction(receipt, facts.SourceType); MapToPreAlertItem(facts, receipt.UnitTrackingId); ProcessRouting(receipt.PurchaseLineItem, receipt.Item); UpdateLineItemStatus(receipt); //Persist Scout.Core.Data.Save(uow); // Check if the unit should be captured Scout.Core.Service <ICaptureService>() .RunCaptureCheck(receipt.Item, "PURREC"); // Print Traveler Label Scout.Core.Service <IInventoryService>() .PrintTravelerLabel(receipt.Item); return(true); } catch (Exception ex) { UserInteraction.Dialog.ShowMessage( "There was an error saving the receipt " + ex.Message, UserMessageType.Exception ); Logging.Log("Error receiving unit [" + facts.SerialNumber + "] " + ex.Message, LogType.Error); return(false); } }
public bool ReceiveUnit(ReceiptFacts facts) { if (Scout.Core.Service <IInventoryService>().DuplicateSNItemExists(facts.SerialNumber)) { Logging.Log("Unit already exists " + facts.SerialNumber, LogType.Error); UserInteraction.Dialog.ShowMessage("This unit already exists: " + facts.SerialNumber, UserMessageType.Error); return(false); } Logging.Log("Receiving unit " + facts.SerialNumber, LogType.Information); if (UnitIsDfiled(facts)) { return(true); } return(CreateReceiptRecords(facts)); }
public void CloseDfileItemFromReceipt(ReceiptFacts facts) { IUnitOfWork uow = Scout.Core.Data.GetUnitOfWork(); DfileItem item = Repository.GetResolvedItemBySerialNumber(uow, facts.SerialNumber); if (item != null && item.ActionOrder.Id == facts.PurchaseOrder.Order.Id) { CloseItem(item); facts.DisableDfileCheck = item.DisableDfileAtReceipt; Logging.Log("Closing dfile item for " + facts.SerialNumber, LogType.Information); } else if (item != null) { Scout.Core.UserInteraction.Dialog.ShowMessage ("This dfile unit should be received against order" + item.ActionOrder.Id, UserMessageType.Error); } }
private void Receive() { ReceiptFacts facts = GatherFacts(); if (m_receiving.ReceiveUnit(facts)) { m_purchaseOrder.ReceiptDeltas.Reload(); expectedGrid.DataSource = m_purchaseOrder.ReceiptDeltas; if (batchReceiptCheck.Checked) { BatchClear(); } else { Clear(); } } LoadDfileUnits(); }
private ReceiptFacts GatherFacts() { ReceiptFacts facts = new ReceiptFacts(); facts.Session = m_purchaseOrder.Session; facts.SerialNumber = serialNumberText.Text; facts.Qty = Int32.Parse(quantityText.Text); facts.Comments = commentsText.Text; facts.Part = m_part; facts.ReceivingCart = (Tote)cartLookup.EditValue; facts.RoutingRequired = m_purchaseOrder.RoutingRequired; facts.PurchaseOrder = m_purchaseOrder; facts.PurchaseLineItem = m_purchaseOrder.GetLineByPart(m_part); facts.LineItemIdentifier = lineItemIdentifierText.Text; facts.SourceType = m_purchaseOrder.SourceType ?? "PURREC"; // Assign custom fields if (m_customFields != null) { facts.CustomFields = m_customFields; } return(facts); }
private void CloseResolvedDfile(ReceiptFacts facts) { Scout.Core.Service <IDfileService>() .CloseDfileItemFromReceipt(facts); }