async void setSerieBatchSource(ProductionOrderLineClient row)
        {
            var cache         = api.GetCache(typeof(InvItem));
            var invItemMaster = cache.Get(row._Item) as InvItem;

            if (invItemMaster == null)
            {
                return;
            }
            if (row.SerieBatches != null && row.SerieBatches.First()._Item == row._Item)/*Bind if Item changed*/
            {
                return;
            }
            UnicontaBaseEntity master;

            if (row._Qty < 0)
            {
                master = invItemMaster;
            }
            else
            {
                // We only select opens
                var mast = new InvSerieBatchOpen();
                mast.SetMaster(invItemMaster);
                master = mast;
            }
            var res = await api.Query <SerialToOrderLineClient>(master);

            if (res != null && res.Length > 0)
            {
                row.SerieBatches = res;
                row.NotifyPropertyChanged("SerieBatches");
            }
        }
Exemple #2
0
        void UpdatePrice(ProductionOrderLineClient rec)
        {
            var priceLookup = SetPriceLookup(rec);

            if (priceLookup != null && priceLookup.UseCustomerPrices)
            {
                priceLookup.GetCustomerPrice(rec, false);
            }
        }
        async void AddAttachment(string actionType, ProductionOrderLineClient productionOrderLineClient)
        {
            var invBomResult = await api.Query <InvBOMClient>(productionOrderLineClient, new[] { PropValuePair.GenereteParameter("ItemPart", typeof(string), "1") });

            if (invBomResult != null && invBomResult.Length > 0)
            {
                AddDockItem(actionType == "AddNote" ? TabControls.UserNotesPage : TabControls.UserDocsPage, invBomResult[0]);
            }
        }
        async void CreateProductionOrder(ProductionOrderLineClient orderLine)
        {
            var t = saveGridLocal();

            if (t != null && orderLine.RowId == 0)
            {
                await t;
            }

            AddDockItem(TabControls.ProductionOrdersPage2, new object[2] {
                api, orderLine
            }, Uniconta.ClientTools.Localization.lookup("Production"), "Add_16x16.png");
        }
        async void LinkSerialNumber(ProductionOrderLineClient orderLine)
        {
            var t = saveGridLocal();

            if (t != null && orderLine.RowId == 0)
            {
                await t;
            }
            if (api.CompanyEntity.Warehouse)
            {
                dgProductionOrderLineGrid.SetLoadedRow(orderLine); // serial page add warehouse and location
            }
            AddDockItem(TabControls.SerialToOrderLinePage, orderLine, string.Format("{0}:{1}/{2},{3}", Uniconta.ClientTools.Localization.lookup("SerialBatchNumbers"), orderLine.OrderRowId, orderLine._Item, orderLine.RowId));
        }
Exemple #6
0
 async void SetLocation(InvWarehouse master, ProductionOrderLineClient rec)
 {
     if (api.CompanyEntity.Location)
     {
         if (master != null)
         {
             rec.locationSource = master.Locations ?? await master.LoadLocations(api);
         }
         else
         {
             rec.locationSource = null;
             rec.Location       = null;
         }
         rec.NotifyPropertyChanged("LocationSource");
     }
 }
        private void DataControl_CurrentItemChanged(object sender, DevExpress.Xpf.Grid.CurrentItemChangedEventArgs e)
        {
            ProductionOrderLineClient oldselectedItem = e.OldItem as ProductionOrderLineClient;

            if (oldselectedItem != null)
            {
                oldselectedItem.PropertyChanged -= ProductionOrderLineGrid_PropertyChanged;
            }

            ProductionOrderLineClient selectedItem = e.NewItem as ProductionOrderLineClient;

            if (selectedItem != null)
            {
                selectedItem.PropertyChanged += ProductionOrderLineGrid_PropertyChanged;
            }
        }
        async void MarkedInvTrans(ProductionOrderLineClient selectedItem)
        {
            busyIndicator.IsBusy = true;
            var      invTrans = new InvTransClient();
            OrderAPI orderApi = new OrderAPI(api);
            var      res      = await orderApi.GetMarkedInvTrans(selectedItem, invTrans);

            busyIndicator.IsBusy = false;
            if (res == ErrorCodes.Succes)
            {
                AddDockItem(TabControls.InvTransMarkedPage, new object[] { api, invTrans }, string.Format("{0}: {1}", Uniconta.ClientTools.Localization.lookup("InvTransactions"), invTrans._OrderNumber));
            }
            else
            {
                UtilDisplay.ShowErrorCode(res);
            }
        }
        async void MarkedOrderLine(ProductionOrderLineClient selectedItem)
        {
            busyIndicator.IsBusy = true;
            var      orderLineMarked = new CreditorOrderLineClient();
            OrderAPI orderApi        = new OrderAPI(api);
            var      res             = await orderApi.GetMarkedOrderLine(selectedItem, orderLineMarked);

            busyIndicator.IsBusy = false;
            if (res == ErrorCodes.Succes)
            {
                AddDockItem(TabControls.OrderLineMarkedPage, new object[] { api, orderLineMarked }, string.Format("{0}: {1}", Uniconta.ClientTools.Localization.lookup("PurchaseLines"), orderLineMarked._OrderNumber));
            }
            else
            {
                UtilDisplay.ShowErrorCode(res);
            }
        }
        private void Location_GotFocus(object sender, RoutedEventArgs e)
        {
            ProductionOrderLineClient selectedItem = dgProductionOrderLineGrid.SelectedItem as ProductionOrderLineClient;

            if (selectedItem != null && selectedItem._Warehouse != null && warehouse != null)
            {
                var selected = (InvWarehouse)warehouse.Get(selectedItem._Warehouse);
                setLocation(selected, selectedItem);
                if (prevLocation != null)
                {
                    prevLocation.isValidate = false;
                }
                var editor = (CorasauGridLookupEditorClient)sender;
                prevLocation      = editor;
                editor.isValidate = true;
            }
        }
Exemple #11
0
        Uniconta.API.DebtorCreditor.FindPrices SetPriceLookup(ProductionOrderLineClient rec)
        {
            var OrderNumber = rec.OrderRowId;

            if (OrderNumber != 0)
            {
                if (dictPriceLookup.ContainsKey(OrderNumber))
                {
                    return(dictPriceLookup[OrderNumber]);
                }

                var order = (ProductionOrder)productionOrders.Get(OrderNumber);
                if (order != null)
                {
                    var priceLookup = new Uniconta.API.DebtorCreditor.FindPrices(order, api);
                    dictPriceLookup.Add(OrderNumber, priceLookup);
                    return(priceLookup);
                }
            }
            return(null);
        }
 private void LoadInvItemStorageGrid(ProductionOrderLineClient selectedRow)
 {
     if (!OnHandScreenInOrder || selectedRow == null)
     {
         return;
     }
     if (selectedRow._Item == null)
     {
         dgInvItemStorageClientGrid.ItemsSource = null;
     }
     else
     {
         var itm = (Uniconta.DataModel.InvItem)items?.Get(selectedRow._Item);
         if (itm != null && itm._ItemType == (byte)ItemType.Service)
         {
             dgInvItemStorageClientGrid.ItemsSource = null;
         }
         else
         {
             dgInvItemStorageClientGrid.UpdateMaster(selectedRow);
             dgInvItemStorageClientGrid.Filter(null);
         }
     }
 }
        async void UnfoldBOM(ProductionOrderLineClient selectedItem)
        {
            var items = this.items;
            var item  = (InvItem)items.Get(selectedItem._Item);

            if (item == null || item._ItemType < (byte)ItemType.BOM)
            {
                return;
            }

            busyIndicator.IsBusy      = true;
            busyIndicator.BusyContent = Uniconta.ClientTools.Localization.lookup("LoadingMsg");
            var list = await api.Query <InvBOM>(selectedItem);

            if (list != null && list.Length > 0)
            {
                var type = dgProductionOrderLineGrid.TableTypeUser;
                var Qty  = selectedItem._Qty;
                var lst  = new List <UnicontaBaseEntity>(list.Length);
                foreach (var bom in list)
                {
                    var invJournalLine = Activator.CreateInstance(type) as ProductionOrderLineClient;
                    invJournalLine._Date     = selectedItem._Date;
                    invJournalLine._Week     = selectedItem._Week;
                    invJournalLine._Dim1     = selectedItem._Dim1;
                    invJournalLine._Dim2     = selectedItem._Dim2;
                    invJournalLine._Dim3     = selectedItem._Dim3;
                    invJournalLine._Dim4     = selectedItem._Dim4;
                    invJournalLine._Dim5     = selectedItem._Dim5;
                    invJournalLine._Item     = bom._ItemPart;
                    invJournalLine._Variant1 = bom._Variant1;
                    invJournalLine._Variant2 = bom._Variant2;
                    invJournalLine._Variant3 = bom._Variant3;
                    invJournalLine._Variant4 = bom._Variant4;
                    invJournalLine._Variant5 = bom._Variant5;
                    item = (InvItem)items.Get(bom._ItemPart);
                    if (item == null && bom._ItemPart != null)
                    {
                        items = await api.LoadCache(typeof(InvItem), true);

                        item = (InvItem)items.Get(bom._ItemPart);
                    }
                    if (item != null)
                    {
                        invJournalLine._Warehouse     = bom._Warehouse ?? item._Warehouse ?? selectedItem._Warehouse;
                        invJournalLine._Location      = bom._Location ?? item._Location ?? selectedItem._Location;
                        invJournalLine._CostPriceLine = item._CostPrice;
                        invJournalLine.SetItemValues(item, selectedItem._Storage);
                        invJournalLine._Qty = Math.Round(bom.GetBOMQty(Qty), item._Decimals);
                        TableField.SetUserFieldsFromRecord(item, invJournalLine);
                    }
                    else
                    {
                        invJournalLine._Qty = Math.Round(bom.GetBOMQty(Qty), 2);
                    }
                    TableField.SetUserFieldsFromRecord(bom, invJournalLine);
                    lst.Add(invJournalLine);
                }
                busyIndicator.IsBusy = false;
                dgProductionOrderLineGrid.ReplaceCurrentRow(lst);
            }
            busyIndicator.IsBusy = false;
        }