示例#1
0
        void SetItem(ProjectJournalLineLocal rec)
        {
            var item = (InvItem)ItemsCache.Get(rec._Item);

            if (item == null)
            {
                return;
            }

            SetPriceLookup(rec)?.SetPriceFromItem(rec, item);

            if (item._Dim1 != null)
            {
                rec.Dimension1 = item._Dim1;
            }
            if (item._Dim2 != null)
            {
                rec.Dimension2 = item._Dim2;
            }
            if (item._Dim3 != null)
            {
                rec.Dimension3 = item._Dim3;
            }
            if (item._Dim4 != null)
            {
                rec.Dimension4 = item._Dim4;
            }
            if (item._Dim5 != null)
            {
                rec.Dimension5 = item._Dim5;
            }
            if (item._Warehouse != null)
            {
                rec.Warehouse = item._Warehouse;
            }
            if (item._Location != null)
            {
                rec.Location = item._Location;
            }

            SetCat(rec, item._PrCategory);
            if (item._PayrollCategory != null)
            {
                rec.PayrollCategory = item._PayrollCategory;
                if (rec._SalesPrice == 0d)
                {
                    PayrollCat(rec, false);
                    TimePriceLookup?.GetEmployeePrice(rec);
                }
            }
            if (item._Unit != 0 && rec._Unit != item._Unit)
            {
                rec._Unit = item._Unit;
                rec.NotifyPropertyChanged("Unit");
            }

            globalEvents?.NotifyRefreshViewer(NameOfControl, item);
        }
示例#2
0
 async void setLocation(InvWarehouse master, ProjectJournalLineLocal 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");
     }
 }
 async void setTask(Uniconta.DataModel.Project project, ProjectJournalLineLocal rec)
 {
     if (api.CompanyEntity.ProjectTask)
     {
         if (project != null)
         {
             rec.taskSource = project.Tasks ?? await project.LoadTasks(api);
         }
         else
         {
             rec.taskSource = null;
             rec.Task       = null;
         }
         rec.NotifyPropertyChanged("TaskSource");
     }
 }
示例#4
0
        void PayrollCat(ProjectJournalLineLocal rec, bool AddItem)
        {
            var pay = (Uniconta.DataModel.EmpPayrollCategory)PayrollCache?.Get(rec._PayrollCategory);

            if (pay != null)
            {
                if (pay._Unit != 0 && rec._Unit != pay._Unit)
                {
                    rec._Unit = pay._Unit;
                    rec.NotifyPropertyChanged("Unit");
                }

                if (pay._PrCategory != null)
                {
                    rec.PrCategory = pay._PrCategory;
                }

                if (pay._Dim1 != null)
                {
                    rec.Dimension1 = pay._Dim1;
                }
                if (pay._Dim2 != null)
                {
                    rec.Dimension2 = pay._Dim2;
                }
                if (pay._Dim3 != null)
                {
                    rec.Dimension3 = pay._Dim3;
                }
                if (pay._Dim4 != null)
                {
                    rec.Dimension4 = pay._Dim4;
                }
                if (pay._Dim5 != null)
                {
                    rec.Dimension5 = pay._Dim5;
                }

                if (AddItem && pay._Item != null)
                {
                    rec.Item = pay._Item;
                }
            }
            rec.InsidePropChange = false;
        }
示例#5
0
        async void setSerieBatch(InvItem master, ProjectJournalLineLocal rec)
        {
            if (master != null && master._UseSerialBatch)
            {
                var lst = await api.Query <InvSerieBatchClient>(new InvSerieBatchOpen()
                {
                    _Item = rec._Item
                });

                rec.serieBatchSource = lst?.Select(x => x.Number).ToList();
            }
            else
            {
                rec.serieBatchSource = null;
                rec.SerieBatch       = null;
            }
            rec.NotifyPropertyChanged("SerieBatchSource");
        }
示例#6
0
        async void setTask(Uniconta.DataModel.Project project, ProjectJournalLineLocal rec)
        {
            if (api.CompanyEntity.ProjectTask)
            {
                if (project != null)
                {
                    var tasks = project.Tasks ?? await project.LoadTasks(api);

                    rec.taskSource = tasks?.Where(s => s.Ended == false && (rec._WorkSpace == null || s._WorkSpace == rec._WorkSpace));
                }
                else
                {
                    rec.taskSource = null;
                    rec.Task       = null;
                }
                rec.NotifyPropertyChanged("TaskSource");
            }
        }
示例#7
0
        async void GetItemFromSerailNumber(ProjectJournalLineLocal rec)
        {
            var reportApi = new Uniconta.API.Inventory.ReportAPI(api);

            busyIndicator.IsBusy = true;
            var rowId = await reportApi.GetItemFromSerialNumber(rec.SerieBatch);

            busyIndicator.IsBusy = false;
            if (rowId == 0)
            {
                return;
            }
            var item = (InvItem)ItemsCache.Get((int)rowId);

            if (item != null)
            {
                rec.Item = item._Item;
                rec.NotifyPropertyChanged("Item");
            }
        }
        async void PayrollCat(ProjectJournalLineLocal rec, bool AddItem)
        {
            double costPrice = 0, salesPrice = 0;
            var    emp = (Uniconta.DataModel.Employee)EmployeeCache?.Get(rec._Employee);

            if (emp != null)
            {
                costPrice  = emp._CostPrice;
                salesPrice = emp._SalesPrice;
            }

            var pay = (Uniconta.DataModel.EmpPayrollCategory)PayrollCache?.Get(rec._PayrollCategory);

            if (pay != null)
            {
                if (pay._Unit != 0 && rec._Unit != pay._Unit)
                {
                    rec._Unit = pay._Unit;
                    rec.NotifyPropertyChanged("Unit");
                }
                if (AddItem && !pay._Invoiceable)
                {
                    rec.Invoiceable = false;
                }

                if (pay._PrCategory != null)
                {
                    rec.PrCategory = pay._PrCategory;
                }

                if (pay._Rate != 0)
                {
                    costPrice = pay._Rate;
                }
                if (pay._SalesPrice != 0)
                {
                    salesPrice = pay._SalesPrice;
                }

                string Item = pay._Item;
                if (pay._Dim1 != null)
                {
                    rec.Dimension1 = pay._Dim1;
                }
                if (pay._Dim2 != null)
                {
                    rec.Dimension2 = pay._Dim2;
                }
                if (pay._Dim3 != null)
                {
                    rec.Dimension3 = pay._Dim3;
                }
                if (pay._Dim4 != null)
                {
                    rec.Dimension4 = pay._Dim4;
                }
                if (pay._Dim5 != null)
                {
                    rec.Dimension5 = pay._Dim5;
                }

                if (emp != null)
                {
                    Uniconta.DataModel.EmpPayrollCategoryEmployee found = null;
                    var Rates = pay.Rates ?? await pay.LoadRates(api);

                    foreach (var rate in Rates)
                    {
                        if (rate._ValidFrom != DateTime.MinValue && rate._ValidFrom > rec._Date)
                        {
                            continue;
                        }
                        if (rate._ValidTo != DateTime.MinValue && rate._ValidTo < rec._Date)
                        {
                            continue;
                        }
                        if (rate._Employee != emp._Number)
                        {
                            continue;
                        }
                        if (rate._Project != null)
                        {
                            if (rate._Project == rec._Project)
                            {
                                found = rate;
                                break;
                            }
                        }
                        else if (found == null)
                        {
                            found = rate;
                        }
                    }

                    if (found != null)
                    {
                        if (found._CostPrice != 0d)
                        {
                            costPrice = found._CostPrice;
                        }
                        else if (found._Rate != 0d)
                        {
                            costPrice = found._Rate;
                        }
                        if (found._SalesPrice != 0d)
                        {
                            salesPrice = found._SalesPrice;
                        }
                        if (found._Item != null)
                        {
                            Item = found._Item;
                        }

                        if (found._Dim1 != null)
                        {
                            rec.Dimension1 = found._Dim1;
                        }
                        if (found._Dim2 != null)
                        {
                            rec.Dimension2 = found._Dim2;
                        }
                        if (found._Dim3 != null)
                        {
                            rec.Dimension3 = found._Dim3;
                        }
                        if (found._Dim4 != null)
                        {
                            rec.Dimension4 = found._Dim4;
                        }
                        if (found._Dim5 != null)
                        {
                            rec.Dimension5 = found._Dim5;
                        }
                    }
                }

                if (AddItem && Item != null)
                {
                    rec.Item = Item;
                }
            }
            if (costPrice != 0d)
            {
                rec.SetCost(costPrice);
            }
            if (salesPrice != 0d)
            {
                rec.SetSales(salesPrice);
            }

            rec.InsidePropChange = false;
        }