예제 #1
0
        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);
        }
예제 #2
0
        public bool CloseDfileWithNoAction(DfileItem item, string resolution, string resolvedBy)
        {
            if (string.IsNullOrEmpty(resolution))
            {
                UserInteraction.Dialog.ShowMessage
                    ("Resolution is required to close this item with no action.", UserMessageType.Validation);
                return(false);
            }

            IUnitOfWork uow = item.Session;

            item.Resolution = resolution;
            item.ResolvedBy = resolvedBy;
            item.Action     = DfileAction.NoAction;
            item.Status     = DfileStatus.Closed;

            try
            {
                Scout.Core.Data.Save(uow);
                UserInteraction.Dialog.ShowMessage("Dfile closed with no action.", UserMessageType.Information);
                return(true);
            }
            catch (Exception ex)
            {
                UserInteraction.Dialog.ShowMessage(ex.Message, UserMessageType.Exception);
                return(false);
            }
        }
예제 #3
0
        public bool ResolveItem(DfileItem item, string resolution,
                                string resolvedBy, DfileAction action, Order actionOrder)
        {
            if (!new DfileResolutionValidator(resolution, action, actionOrder).Validated())
            {
                return(false);
            }

            item.Resolution  = resolution;
            item.ResolvedBy  = resolvedBy;
            item.ActionOrder = actionOrder;
            item.Action      = action;
            item.Status      = DfileStatus.Resolved;

            try
            {
                Scout.Core.Data.Save(item.Session);
                UserInteraction.Dialog.ShowMessage("Dfile Resolved", UserMessageType.Information);
                return(true);
            }
            catch (Exception ex)
            {
                UserInteraction.Dialog.ShowMessage(ex.Message, UserMessageType.Exception);
                Logging.Log(ex.Message, LogType.Exception);
                return(false);
            }
        }
예제 #4
0
        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);
        }
예제 #5
0
 private void LoadDfileItemForReceipt(DfileItem item)
 {
     serialNumberText.Text = item.SerialNumber;
     partNumberText.Text   = item.Part.PartNumber;
     quantityText.Text     = "1";
     commentsText.Text     = item.Comments;
     partNumberText_Validated(null, null);
     serialNumberText_Validated(null, null);
 }
예제 #6
0
 public ResolveDfileItemView(DfileItem item)
 {
     InitializeComponent();
     m_dfileItem = item;
     m_uow       = m_dfileItem.Session;
     LoadActionTypes();
     BindDfileDetails();
     WireEvents();
 }
예제 #7
0
        private void OpenIncomingOrder()
        {
            DfileItem item = dfileItemsView.GetFocusedRow() as DfileItem;

            if (item != null)
            {
                ViewLoader.Instance().CreateFormWithArgs <mainOrderForm>(
                    false, new object[] { item.IncomingOrder });
            }
        }
예제 #8
0
        private void ResolveDfile()
        {
            DfileItem item = dfileItemsView.GetFocusedRow() as DfileItem;

            if (item != null)
            {
                ResolveDfileItemView view = new ResolveDfileItemView(item);
                view.StartPosition = FormStartPosition.CenterParent;

                if (view.ShowDialog(this) == DialogResult.OK)
                {
                    Search();
                }
            }
        }
예제 #9
0
 public bool CloseItem(DfileItem item)
 {
     try
     {
         item.Status = DfileStatus.Closed;
         Scout.Core.Data.Save(item.Session);
         UserInteraction.Dialog.ShowMessage("Dfile closed", UserMessageType.Information);
         return(true);
     }
     catch (Exception ex)
     {
         UserInteraction.Dialog.ShowMessage("There was an error closing the dfile record for this unit. Error=" + ex.Message, UserMessageType.Exception);
         return(false);
     }
 }
예제 #10
0
        private void runActionButton_Click(object sender, EventArgs e)
        {
            DfileItem item = dfileItemsView.GetFocusedRow() as DfileItem;

            if (item != null)
            {
                PurchaseOrder po = item.ActionOrder.GetContract <PurchaseOrder>() as PurchaseOrder;
                if (po != null)
                {
                    receivingForm form = new receivingForm(po);
                    form.StartPosition = FormStartPosition.CenterParent;
                    form.ShowDialog();
                    Search();
                }
            }
        }
예제 #11
0
        private void loadDfileItemForReceiving_Click(object sender, EventArgs e)
        {
            DfileItem item = dfileView.GetFocusedRow() as DfileItem;

            if (item != null)
            {
                if (item.Status == DfileStatus.Open)
                {
                    Scout.Core.UserInteraction.Dialog.ShowMessage
                        ("This Dfile item has to be resolved before it can be received.", UserMessageType.Information);

                    return;
                }

                LoadDfileItemForReceipt(item);
            }
        }
예제 #12
0
        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);
            }
        }