private void AddNotInInventory_Click(object sender, RoutedEventArgs e)
        {
            if (NotInName.Text != String.Empty && NotInSize.Text != String.Empty && NotInPrice.Text != String.Empty)
            {
                //if (!notInInventory.Where(a => a.NotInInventoryName != NotInName.Text && a.NotInInventoryQuantity != Convert.ToInt32(NotInInventoryQuantity.Text) &&
                //     a.NotInInventorySize != NotInInventorySize.Text && a.NotInInventoryPrice != Convert.ToDecimal(NotInInventoryPrice.Text)).Any())
                {
                    Random            r     = new Random();
                    NotInInventoryDTO notIn = new NotInInventoryDTO();
                    notIn.NotInInventoryId       = r.Next(-5000, -1);
                    notIn.NotInInventoryName     = NotInName.Text;
                    notIn.NotInInventoryQuantity = 1;
                    notIn.NotInInventorySize     = NotInSize.Text;
                    notIn.NotInInventoryPrice    = Convert.ToDecimal(NotInPrice.Text);

                    if (basePage != null)
                    {
                        WorkOrderMessage msg = new WorkOrderMessage();

                        msg.NotInInventory = notIn;

                        basePage.LoadWorkOrderData(msg);
                    }

                    this.Close();
                }
            }
        }
예제 #2
0
        //the arrangement data is kept on this page - so the management for
        //both work order inventory and not in inventory lists as well as the
        //arrangement inventory and arrangement not in inventory lists is done here
        //if deletion happens here - if an item is deleted on the arrangement page,
        //then only arrangement data is modified, if a modification is made on the
        //arrangement page AND Save is pressed, the modified data is synced with
        //the data on this page
        public void OnDeleteWorkOrderItem(object sender, EventArgs e)
        {
            Button button = sender as Button;

            if (button != null)
            {
                WorkOrderViewModel sel = button.CommandParameter as WorkOrderViewModel;

                if (sel != null)
                {
                    if (sel.InventoryId == 0)  //"Not in inventory"
                    {
                        if (sel.GroupId == 0)  //not in arrangement
                        {
                            if (notInInventory.Where(a => a.NotInInventoryName == sel.InventoryName && a.NotInInventorySize == sel.Size &&
                                                     a.NotInInventoryQuantity == sel.Quantity).Any())
                            {
                                NotInInventoryDTO dto = notInInventory.Where(a => a.NotInInventoryName == sel.InventoryName && a.NotInInventorySize == sel.Size &&
                                                                             a.NotInInventoryQuantity == sel.Quantity).First();

                                notInInventory.Remove(dto);
                            }
                        }
                        else
                        {
                            RemoveItemFromArrangementList(sel);
                        }
                    }

                    RemoveItemFromInventoryList(sel);

                    RedrawInventoryList();
                }
            }
        }
        public void OnDeleteArrangementItem(object sender, EventArgs e)
        {
            Button button = sender as Button;

            if (button != null)
            {
                if (button.CommandParameter != null)
                {
                    WorkOrderViewModel dto = button.CommandParameter as WorkOrderViewModel;

                    if (dto != null)
                    {
                        if (dto.InventoryId == 0)
                        {
                            if (notInInventoryList.Where(a => a.NotInInventoryName == dto.InventoryName && a.NotInInventorySize == dto.Size && a.NotInInventoryQuantity == dto.Quantity).Any())
                            {
                                NotInInventoryDTO nii = notInInventoryList.Where(a => a.NotInInventoryName == dto.InventoryName && a.NotInInventorySize == dto.Size && a.NotInInventoryQuantity == dto.Quantity).First();
                                notInInventoryList.Remove(nii);
                            }
                        }
                        else
                        {
                            if (arrangementInventoryList.Where(a => a.InventoryId == dto.InventoryId).Any())
                            {
                                ArrangementInventoryItemDTO aiid = arrangementInventoryList.Where(a => a.InventoryId == dto.InventoryId).First();
                                arrangementInventoryList.Remove(aiid);
                            }
                        }
                    }

                    ReloadListData();
                }
            }
        }
예제 #4
0
 public WorkOrderMessage()
 {
     Person            = new PersonDTO();
     Inventory         = new WorkOrderInventoryMapDTO();
     NotInInventory    = new NotInInventoryDTO();
     Arrangement       = new AddArrangementRequest();
     CustomerContainer = new CustomerContainerDTO();
 }
예제 #5
0
 private void ProcessNotInInventoryData(NotInInventoryDTO dto)
 {
     if (!shipmentInventoryList.Where(a => a.NotInInventoryId == dto.NotInInventoryId).Any())
     {
         shipmentInventoryList.Add(new WorkOrderViewModel(dto));
         ReloadItemList();
     }
 }
        protected override void OnAppearing()
        {
            base.OnAppearing();

            Products.IsEnabled = true;

            //called when we return from an "Inventory Search"
            ArrangementInventoryItemDTO searchedForInventory = ((App)App.Current).searchedForArrangementInventory;

            if (searchedForInventory != null && searchedForInventory.InventoryId != 0)
            {
                if (!arrangementInventoryList.Contains(searchedForInventory))
                {
                    //arrangementInventoryListOC.Clear();

                    searchedForInventory.Quantity = 1;

                    arrangementInventoryList.Add(searchedForInventory);

                    //foreach (ArrangementInventoryItemDTO a in arrangementInventoryList)
                    //{
                    //    arrangementInventoryListOC.Add(a);
                    //}

                    //ArrangementItemsListView.ItemsSource = arrangementInventoryListOC;

                    SetWorkOrderSalesData();

                    ((App)App.Current).searchedForArrangementInventory = null;
                }
            }

            //called when we return from a "Customer Search"
            CustomerContainerDTO searchedForCustomerContainer = ((App)App.Current).searchedForCustomerContainer;

            if (searchedForCustomerContainer != null && searchedForCustomerContainer.CustomerContainerId != 0)
            {
                customerContainerId = searchedForCustomerContainer.CustomerContainerId;

                CustomerContainerLabelEntry.Text = searchedForCustomerContainer.Label;

                ((App)App.Current).searchedForCustomerContainer = null;
            }

            //called when we return from a  Work Order page click on a previously created arrangement item

            //called when we return from an "Inventory Search" AND a a not in inventory item wants to be added
            NotInInventoryDTO notInInventory = ((App)App.Current).notInInventory_toAdd;

            if (notInInventory != null && !NotInInventoryItemIsinList(notInInventory))
            {
                notInInventoryList.Add(notInInventory);
                ((App)App.Current).notInInventory_toAdd = null;
            }

            ReloadListData();
        }
예제 #7
0
        /// <summary>
        /// Add data from a subordinate page to this arrangement
        /// </summary>
        /// <param name="msg"></param>
        public override void LoadWorkOrderData(WorkOrderMessage msg)
        {
            if (msg.HasMessage())
            {
                if (msg.CustomerContainer.CustomerContainerId != 0)
                {
                    CustomerContainer = msg.CustomerContainer;
                    CustomerContainerLabelEntry.Text = CustomerContainer.Label;
                }

                if (msg.Inventory.InventoryId != 0)
                {
                    if (currentArrangement.ArrangementInventory.Where(a => a.InventoryId == msg.Inventory.InventoryId).Any())
                    {
                        ArrangementInventoryItemDTO dto = currentArrangement.ArrangementInventory.Where(a => a.InventoryId == msg.Inventory.InventoryId).First();
                        currentArrangement.ArrangementInventory.Remove(dto);
                    }

                    currentArrangement.ArrangementInventory.Add(new ArrangementInventoryItemDTO()
                    {
                        ArrangementId = currentArrangement.Arrangement.ArrangementId,
                        InventoryId   = msg.Inventory.InventoryId,
                        InventoryName = msg.Inventory.InventoryName + " " + msg.Inventory.Size,
                        Quantity      = 1
                    });;
                }

                if (!String.IsNullOrEmpty(msg.NotInInventory.NotInInventoryName))
                {
                    if (msg.NotInInventory.NotInInventoryId != 0)
                    {
                        if (currentArrangement.NotInInventory.Where(a => a.NotInInventoryId == msg.NotInInventory.NotInInventoryId).Any())
                        {
                            NotInInventoryDTO dto = currentArrangement.NotInInventory.Where(a => a.NotInInventoryId == msg.NotInInventory.NotInInventoryId).First();
                            currentArrangement.NotInInventory.Remove(dto);
                        }
                    }
                    else if (msg.NotInInventory.UnsavedId != 0)
                    {
                        if (currentArrangement.NotInInventory.Where(a => a.UnsavedId == msg.NotInInventory.UnsavedId).Any())
                        {
                            NotInInventoryDTO dto = currentArrangement.NotInInventory.Where(a => a.UnsavedId == msg.NotInInventory.UnsavedId).First();
                            currentArrangement.NotInInventory.Remove(dto);
                        }
                    }

                    //validate - no dupes
                    msg.NotInInventory.ArrangementId = currentArrangement.Arrangement.ArrangementId;
                    currentArrangement.NotInInventory.Add(msg.NotInInventory);
                }

                ReloadListData();
            }
        }
예제 #8
0
 public WorkOrderViewModel(NotInInventoryDTO dto)
 {
     WorkOrderId = dto.WorkOrderId;
     //InventoryId = 387;    //temp constant
     InventoryId      = 0;
     NotInInventoryId = dto.NotInInventoryId;
     UnsavedId        = dto.UnsavedId;
     InventoryName    = dto.NotInInventoryName;
     Quantity         = dto.NotInInventoryQuantity;
     ImageId          = 0;
     Size             = dto.NotInInventorySize;
     GroupId          = dto.ArrangementId;
 }
예제 #9
0
 public WorkOrderViewModel(NotInInventoryDTO dto)
 {
     WorkOrderId      = dto.WorkOrderId;
     InventoryId      = 387; //temp constant
     InventoryTypeId  = 0;   //we don't know - should they have to add this?
     NotInInventoryId = dto.NotInInventoryId;
     UnsavedId        = dto.UnsavedId;
     InventoryName    = dto.NotInInventoryName;
     Quantity         = dto.NotInInventoryQuantity;
     ImageId          = 0;
     Size             = dto.NotInInventorySize;
     GroupId          = dto.ArrangementId;
 }
        private void AddNotInInventory_Clicked(object sender, EventArgs e)
        {
            String msg = String.Empty;

            if (NotInInventoryName.Text == String.Empty)
            {
                msg += "Please add a name for the item not in inventory. \n";
            }

            if (NotInInventorySize.Text == String.Empty)
            {
                msg += "Please add a size for the item not in inventory. \n";
            }

            if (NotInInventoryPrice.Text == String.Empty)
            {
                msg += "Please add a price for the item not in inventory. \n";
            }

            if (msg != String.Empty)
            {
                DisplayAlert("Error", msg, "Ok");
            }
            else
            {
                NotInInventoryDTO dto = new NotInInventoryDTO();

                Random r = new Random();
                dto.NotInInventoryId = r.Next(-5000, -1);

                dto.WorkOrderId            = 0;
                dto.ArrangementId          = 0;
                dto.NotInInventoryName     = NotInInventoryName.Text;
                dto.NotInInventoryQuantity = 1;
                dto.NotInInventorySize     = NotInInventorySize.Text;
                dto.NotInInventoryPrice    = Convert.ToDecimal(NotInInventoryPrice.Text);



                if (Initiator is ArrangementPage)
                {
                    MessagingCenter.Send <NotInInventoryDTO>(dto, "ArrangementNotInInventory");
                }
                else if (Initiator is WorkOrderPage)
                {
                    MessagingCenter.Send <NotInInventoryDTO>(dto, "WorkOrderNotInInventory");
                }

                Navigation.PopAsync();
            }
        }
예제 #11
0
        private void QuantityTextBox_TextChanged(object sender, TextChangedEventArgs e)
        {
            foreach (WorkOrderViewModel vm in WorkOrderInventoryListView.ItemsSource as ObservableCollection <WorkOrderViewModel> )
            {
                if (vm.InventoryId != 0 && currentWorkOrder.WorkOrderList.Where(a => a.InventoryId == vm.InventoryId).Any())
                {
                    WorkOrderInventoryMapDTO woii = currentWorkOrder.WorkOrderList.Where(a => a.InventoryId == vm.InventoryId).First();
                    woii.Quantity = vm.Quantity;
                }

                if (vm.NotInInventoryId != 0 && currentWorkOrder.NotInInventory.Where(a => a.NotInInventoryId == vm.NotInInventoryId).Any())
                {
                    NotInInventoryDTO notIn = currentWorkOrder.NotInInventory.Where(a => a.NotInInventoryId == vm.NotInInventoryId).First();
                    notIn.NotInInventoryQuantity = vm.Quantity;
                }
            }
        }
예제 #12
0
        private void DeleteButton_Click(object sender, RoutedEventArgs e)
        {
            WorkOrderViewModel dto = (sender as Button).CommandParameter as WorkOrderViewModel;

            if (dto != null)
            {
                if (dto.InventoryId != 0)
                {
                    if (dto.GroupId.HasValue && dto.GroupId.Value != 0)
                    {
                        if (arrangementList.Where(a => a.Arrangement.ArrangementId == dto.GroupId.Value).Any())
                        {
                            AddArrangementRequest aar = arrangementList.Where(b => b.Arrangement.ArrangementId == dto.GroupId.Value).First();

                            if (aar.ArrangementInventory.Where(c => c.InventoryId == dto.InventoryId).Any())
                            {
                                ArrangementInventoryItemDTO item = aar.ArrangementInventory.Where(c => c.InventoryId == dto.InventoryId).First();

                                aar.ArrangementInventory.Remove(item);
                            }
                        }
                    }
                    else
                    {
                        if (currentWorkOrder.WorkOrderList.Where(a => a.InventoryId == dto.InventoryId).Any())
                        {
                            WorkOrderInventoryMapDTO map = currentWorkOrder.WorkOrderList.Where(b => b.InventoryId == dto.InventoryId).First();
                            currentWorkOrder.WorkOrderList.Remove(map);
                        }
                    }
                }
                else if (dto.NotInInventoryId != 0)
                {
                    if (currentWorkOrder.NotInInventory.Where(a => a.NotInInventoryId == dto.NotInInventoryId).Any())
                    {
                        NotInInventoryDTO notIn = currentWorkOrder.NotInInventory.Where(a => a.NotInInventoryId == dto.NotInInventoryId).First();

                        currentWorkOrder.NotInInventory.Remove(notIn);
                    }
                }

                ReloadItemList();

                SetWorkOrderSalesData();
            }
        }
예제 #13
0
        void ProcessNotInInventoryData(NotInInventoryDTO notIn)
        {
            if (notIn.NotInInventoryId != 0)
            {
                if (currentWorkOrder.NotInInventory.Where(a => a.NotInInventoryId == notIn.NotInInventoryId).Any())
                {
                    NotInInventoryDTO dto = currentWorkOrder.NotInInventory.Where(a => a.NotInInventoryId == notIn.NotInInventoryId).First();
                    currentWorkOrder.NotInInventory.Remove(dto);
                }
            }

            //names must be unique
            if (!currentWorkOrder.NotInInventory.Where(a => a.NotInInventoryName == notIn.NotInInventoryName).Any())
            {
                currentWorkOrder.NotInInventory.Add(notIn);
            }
            else
            {
                MessageBox.Show(Application.Current.MainWindow, "Duplicate name for not in inventory item.", "Error", MessageBoxButton.OK);
            }
        }
예제 #14
0
 void RemoveItemFromArrangementList(WorkOrderViewModel dto)
 {
     foreach (AddArrangementRequest aaReq in arrangementList)
     {
         if (dto.InventoryId == 0)  //not in inventory
         {
             if (aaReq.NotInInventory.Where(a => a.NotInInventoryName == dto.InventoryName && a.NotInInventorySize == dto.Size && a.NotInInventoryQuantity == dto.Quantity).Any())
             {
                 NotInInventoryDTO remove = aaReq.NotInInventory.Where(a => a.NotInInventoryName == dto.InventoryName && a.NotInInventorySize == dto.Size && a.NotInInventoryQuantity == dto.Quantity).First();
                 aaReq.NotInInventory.Remove(remove);
             }
         }
         else
         {
             if (aaReq.ArrangementInventory.Where(a => a.InventoryName == dto.InventoryName && a.Size == dto.Size && a.Quantity == dto.Quantity).Any())
             {
                 ArrangementInventoryItemDTO remove = aaReq.ArrangementInventory.Where(a => a.InventoryName == dto.InventoryName && a.Size == dto.Size && a.Quantity == dto.Quantity).First();
                 aaReq.ArrangementInventory.Remove(remove);
             }
         }
     }
 }
예제 #15
0
        private void OnDeleteArrangementInventory(object sender, RoutedEventArgs e)
        {
            Button b = sender as Button;

            if (b != null)
            {
                WorkOrderViewModel arrangementInventoryItem = b.CommandParameter as WorkOrderViewModel;
                if (arrangementInventoryItem != null)
                {
                    if (arrangementInventoryList.Where(a => a.InventoryId == arrangementInventoryItem.InventoryId).Any())
                    {
                        ArrangementInventoryItemDTO dto = arrangementInventoryList.Where(a => a.InventoryId == arrangementInventoryItem.InventoryId).First();
                        arrangementInventoryList.Remove(dto);
                    }
                    else if (notInInventory.Where(a => a.NotInInventoryId == arrangementInventoryItem.NotInInventoryId).Any())
                    {
                        NotInInventoryDTO dto = notInInventory.Where(a => a.NotInInventoryId == arrangementInventoryItem.NotInInventoryId).First();
                        notInInventory.Remove(dto);
                    }

                    ReloadListData();
                }
            }
        }
예제 #16
0
 public void AddNotInInventoryToWorkOrder(NotInInventoryDTO arg)
 {
     notInInventory_toAdd = arg;
 }
예제 #17
0
 public void AddNotInInventoryToArrangement(NotInInventoryDTO arg)
 {
     notInInventory_toAdd = arg;
 }
예제 #18
0
 private bool NotInInventoryItemIsinList(NotInInventoryDTO dto)
 {
     return(notInInventory.Where(a => a.NotInInventoryName == dto.NotInInventoryName &&
                                 a.NotInInventorySize == dto.NotInInventorySize && a.NotInInventoryPrice == dto.NotInInventoryPrice).Any());
 }