private async void load_PrimaryDataThread() { Cognitivo.Purchase.InvoiceSetting InvoiceSetting = new Cognitivo.Purchase.InvoiceSetting(); if (InvoiceSetting.filterbyBranch) { await PurchaseInvoiceDB.purchase_invoice.Where(a => a.id_company == CurrentSession.Id_Company && a.id_branch == CurrentSession.Id_Company).OrderByDescending(x => x.trans_date).ToListAsync(); } else { await PurchaseInvoiceDB.purchase_invoice.Where(a => a.id_company == CurrentSession.Id_Company).OrderByDescending(x => x.trans_date).ToListAsync(); } await Dispatcher.InvokeAsync(new Action(() => { purchase_invoiceViewSource = ((CollectionViewSource)(FindResource("purchase_invoiceViewSource"))); purchase_invoiceViewSource.Source = PurchaseInvoiceDB.purchase_invoice.Local; })); }
private void SelectProduct_Thread(object sender, EventArgs e, purchase_invoice purchase_invoice, item item, contact contact) { purchase_invoice_detail purchase_invoice_detail = new purchase_invoice_detail(); purchase_invoice_detail.purchase_invoice = purchase_invoice; Cognitivo.Purchase.InvoiceSetting InvoiceSetting = new Cognitivo.Purchase.InvoiceSetting(); //ItemLink if (item != null) { purchase_invoice_detail detail_withitem = purchase_invoice.purchase_invoice_detail.Where(a => a.id_item == item.id_item).FirstOrDefault(); if (detail_withitem != null && InvoiceSetting.AllowDuplicateItems) { //Item Exists in Context, so add to sum. purchase_invoice_detail _purchase_invoice_detail = detail_withitem; _purchase_invoice_detail.quantity += 1; //Return because Item exists, and will +1 in Quantity return; } else { //If Item Exists in previous purchase... then get Last Cost. Problem, will get in stored value, in future we will need to add logic to convert into current currency. purchase_invoice_detail _purchase_invoice_detail = PurchaseInvoiceDB.purchase_invoice_detail .Where(x => x.id_item == item.id_item && x.purchase_invoice.id_contact == purchase_invoice.id_contact) .OrderByDescending(y => y.purchase_invoice.trans_date) .FirstOrDefault(); if (_purchase_invoice_detail != null) { purchase_invoice_detail.unit_cost = _purchase_invoice_detail.unit_cost; } //Item DOES NOT Exist in Context purchase_invoice_detail.item = item; purchase_invoice_detail.id_item = item.id_item; purchase_invoice_detail.item_description = item.name; purchase_invoice_detail.quantity = 1; } foreach (item_dimension item_dimension in item.item_dimension) { purchase_invoice_dimension purchase_invoice_dimension = new purchase_invoice_dimension(); purchase_invoice_dimension.id_dimension = item_dimension.id_app_dimension; purchase_invoice_dimension.app_dimension = item_dimension.app_dimension; purchase_invoice_dimension.id_measurement = item_dimension.id_measurement; purchase_invoice_dimension.app_measurement = item_dimension.app_measurement; purchase_invoice_dimension.purchase_invoice_detail = purchase_invoice_detail; purchase_invoice_dimension.value = item_dimension.value; purchase_invoice_detail.purchase_invoice_dimension.Add(purchase_invoice_dimension); } } else { Dispatcher.BeginInvoke((Action)(() => { purchase_invoice_detail.item_description = sbxItem.Text; })); } //Cost Center if (contact != null && contact.app_cost_center != null) { app_cost_center app_cost_center = contact.app_cost_center; if (app_cost_center.id_cost_center > 0) { purchase_invoice_detail.id_cost_center = app_cost_center.id_cost_center; } } else { Dispatcher.BeginInvoke((Action)(() => { //If Contact does not exist, and If product exist, then take defualt Product Cost Center. Else, bring Administrative if (item != null) { int id_cost_center = 0; if (item.item_product != null) { app_cost_center app_cost_center = PurchaseInvoiceDB.app_cost_center.Where(a => a.is_product && a.is_active && a.id_company == CurrentSession.Id_Company).FirstOrDefault(); if (app_cost_center != null) { id_cost_center = Convert.ToInt32(app_cost_center.id_cost_center); } if (id_cost_center > 0) { purchase_invoice_detail.id_cost_center = id_cost_center; } } else if (item.item_asset != null) { app_cost_center app_cost_center = PurchaseInvoiceDB.app_cost_center.Where(a => a.is_fixedasset == true && a.is_active == true && a.id_company == CurrentSession.Id_Company).FirstOrDefault(); if (app_cost_center != null) { id_cost_center = Convert.ToInt32(app_cost_center.id_cost_center); } if (id_cost_center > 0) { purchase_invoice_detail.id_cost_center = id_cost_center; } } } else { int id_cost_center = 0; app_cost_center app_cost_center = PurchaseInvoiceDB.app_cost_center.Where(a => a.is_administrative == true && a.is_active == true && a.id_company == CurrentSession.Id_Company).FirstOrDefault(); if (app_cost_center != null) { id_cost_center = Convert.ToInt32(app_cost_center.id_cost_center); } if (id_cost_center > 0) { purchase_invoice_detail.id_cost_center = id_cost_center; } } })); } //VAT if (item != null) { if (item.id_vat_group > 0) { purchase_invoice_detail.id_vat_group = item.id_vat_group; } } else if (PurchaseInvoiceDB.app_vat_group.Where(x => x.is_active && x.is_default && x.id_company == CurrentSession.Id_Company).Any()) { purchase_invoice_detail.id_vat_group = PurchaseInvoiceDB.app_vat_group.Where(x => x.is_active && x.is_default && x.id_company == CurrentSession.Id_Company).FirstOrDefault().id_vat_group; } Dispatcher.BeginInvoke((Action)(() => { purchase_invoice.purchase_invoice_detail.Add(purchase_invoice_detail); purchase_invoicepurchase_invoice_detailViewSource.View.Refresh(); calculate_vat(null, null); })); }