Exemplo n.º 1
0
        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;
            }));
        }
Exemplo n.º 2
0
        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);
            }));
        }