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); }
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"); } }
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; }
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"); }
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"); } }
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; }