Ejemplo n.º 1
0
        private void set_ContactPref(object sender, RoutedEventArgs e)
        {
            try
            {
                contact contact = ImpexDB.contacts.Where(x => x.id_contact == sbxContact.ContactID).FirstOrDefault();

                if (contact != null)
                {
                    impex impex = (impex)impexViewSource.View.CurrentItem;
                    impex.contact = contact;

                    if (contact != null)
                    {
                        purchase_invoiceViewSource.Source =
                            ImpexDB.purchase_invoice
                            .Where(a =>
                                   a.id_company == CurrentSession.Id_Company &&
                                   a.is_impex &&
                                   a.id_contact == contact.id_contact &&
                                   a.status == Status.Documents_General.Approved)
                            .OrderByDescending(a => a.trans_date)
                            .ToList();
                    }
                }
            }
            catch (Exception ex)
            {
                toolBar.msgError(ex);
            }
        }
Ejemplo n.º 2
0
        private void Hyperlink_PreviewMouseUp(object sender, MouseButtonEventArgs e)
        {
            crud_modal.Visibility      = Visibility.Visible;
            pnlPurchaseInvoice         = new cntrl.PanelAdv.pnlPurchaseInvoice();
            pnlPurchaseInvoice._entity = ImpexDB;
            impex impex = (impex)impexViewSource.View.CurrentItem;

            if (sbxContact.ContactID > 0 || impex.id_contact > 0)
            {
                int id_contact = 0;
                if (sbxContact.ContactID > 0)
                {
                    id_contact = sbxContact.ContactID;
                }
                else
                {
                    id_contact = impex.id_contact;
                }
                contact contact = ImpexDB.contacts.Where(x => x.id_contact == id_contact).FirstOrDefault();
                pnlPurchaseInvoice._contact = contact;
                pnlPurchaseInvoice.IsImpex  = true;
            }

            pnlPurchaseInvoice.PurchaseInvoice_Click += PurchaseInvoice_Click;
            crud_modal.Children.Add(pnlPurchaseInvoice);
        }
Ejemplo n.º 3
0
        private void Calculate_Click(object sender, RoutedEventArgs e)
        {
            impex impex = impexDataGrid.SelectedItem as impex;
            List <entity.Class.Impex_CostDetail> Impex_CostDetail = null;

            foreach (entity.Class.Impex_Products Impex_Products in Impex_ProductsLIST)
            {
                decimal totalExpense  = 0;
                decimal totalQuantity = 0;

                if (Impex_Products.id_item == 0)
                {
                    Impex_CostDetail = impex_importDataGrid.ItemsSource.OfType <entity.Class.Impex_CostDetail>().ToList();
                    totalExpense     = impex.impex_expense.Where(x => x.id_item == 0).Sum(x => x.value);
                    totalQuantity    = Impex_CostDetail.Sum(x => x.quantity);
                }
                else
                {
                    Impex_CostDetail = impex_importDataGrid.ItemsSource.OfType <entity.Class.Impex_CostDetail>().ToList().Where(x => x.id_item == Impex_Products.id_item || x.id_item == 0).ToList();
                    totalExpense     = impex.impex_expense.Where(x => x.id_item == Impex_Products.id_item).Sum(x => x.value);
                    totalQuantity    = Impex_CostDetail.Sum(x => x.quantity);
                }

                foreach (entity.Class.Impex_CostDetail _ImpexImportDetails in Impex_CostDetail)
                {
                    if (totalExpense > 0)
                    {
                        _ImpexImportDetails.prorated_cost = Math.Round(_ImpexImportDetails.unit_cost + (totalExpense / totalQuantity), 2);

                        decimal SubTotal = (_ImpexImportDetails.quantity * _ImpexImportDetails.prorated_cost);
                        _ImpexImportDetails.sub_total = Math.Round(SubTotal, 2);
                    }
                }
            }
        }
Ejemplo n.º 4
0
        private void toolBar_btnDelete_Click_1(object sender)
        {
            MessageBoxResult res = MessageBox.Show("Are you sure want to delete?", "Delete", MessageBoxButton.YesNo, MessageBoxImage.Question);

            if (res == MessageBoxResult.Yes)
            {
                impex impex = impexDataGrid.SelectedItem as impex;
                ImpexDB.impex.Remove(impex);
                toolBar_btnSave_Click_1(sender);
            }
        }
Ejemplo n.º 5
0
 private void impexDataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     Impex_CostDetailLIST.Clear();
     Impex_ProductsLIST.Clear();
     if (impexDataGrid.SelectedItem != null)
     {
         impex impex = impexDataGrid.SelectedItem as impex;
         foreach (impex_export impex_export in impex.impex_export)
         {
             getProratedCostCounted(impex_export.sales_invoice, false);
         }
     }
 }
Ejemplo n.º 6
0
 private void toolBar_btnEdit_Click_1(object sender)
 {
     if (impexDataGrid.SelectedItem != null)
     {
         impex impex = (impex)impexDataGrid.SelectedItem;
         impex.IsSelected           = true;
         impex.State                = EntityState.Modified;
         ImpexDB.Entry(impex).State = EntityState.Modified;
     }
     else
     {
         toolBar.msgWarning("Please Select an Item");
     }
 }
Ejemplo n.º 7
0
        private void GetExpenses_PreviewMouseUp(object sender, EventArgs e)
        {
            if (impexDataGrid.SelectedItem != null)
            {
                if (id_incotermComboBox.SelectedItem != null && pnlPurchaseInvoice.selected_purchase_invoice.FirstOrDefault() != null)
                {
                    impex                        impex           = impexDataGrid.SelectedItem as impex;
                    purchase_invoice             PurchaseInvoice = pnlPurchaseInvoice.selected_purchase_invoice.FirstOrDefault() as purchase_invoice;
                    impex_incoterm               Incoterm        = id_incotermComboBox.SelectedItem as impex_incoterm;
                    List <impex_incoterm_detail> IncotermDetail  = null;

                    if (impex.impex_type == entity.impex._impex_type.Import)
                    {
                        //Only fetch buyer expence
                        IncotermDetail = ImpexDB.impex_incoterm_detail.Where(i => i.id_incoterm == Incoterm.id_incoterm && i.buyer == true).ToList();
                    }
                    if (impex.impex_type == entity.impex._impex_type.Export)
                    {
                        //Only fetch seller expence
                        IncotermDetail = ImpexDB.impex_incoterm_detail.Where(i => i.id_incoterm == Incoterm.id_incoterm && i.seller == true).ToList();
                    }

                    foreach (entity.Class.Impex_Products product in Impex_ProductsLIST)
                    {
                        foreach (var item in IncotermDetail)
                        {
                            impex_expense impex_expense = new impex_expense();
                            impex_expense.State = EntityState.Added;

                            if (ImpexDB.impex_incoterm_condition.Where(x => x.id_incoterm_condition == item.id_incoterm_condition).FirstOrDefault() != null)
                            {
                                impex_expense.impex_incoterm_condition = ImpexDB.impex_incoterm_condition.Where(x => x.id_incoterm_condition == item.id_incoterm_condition).FirstOrDefault();
                            }

                            impex_expense.id_incoterm_condition = item.id_incoterm_condition;
                            impex_expense.id_currencyfx         = PurchaseInvoice.id_currencyfx;
                            impex_expense.id_purchase_invoice   = PurchaseInvoice.id_purchase_invoice;
                            impex_expense.id_item = (int)product.id_item;
                            impex.impex_expense.Add(impex_expense);
                        }
                    }
                    impeximpex_expenseViewSource.View.Refresh();
                    productDataGrid.SelectedIndex = 0;
                }
                else
                {
                    MessageBox.Show("Please select Incoterm, Type and Invoice to get expences.", "Get Expences", MessageBoxButton.OK, MessageBoxImage.Information);
                }
            }
        }
Ejemplo n.º 8
0
        private void toolBar_btnSave_Click(object sender)
        {
            impex impex = impexDataGrid.SelectedItem as impex;

            List <impex_expense> impexexpenselist = impex.impex_expense.Where(x => x.value <= 0).ToList();

            foreach (impex_expense impex_expense in impexexpenselist)
            {
                impex.impex_expense.Remove(impex_expense);
            }

            if (ImpexDB.SaveChanges() > 0)
            {
                toolBar.msgSaved(ImpexDB.NumberOfRecords);
            }
        }
Ejemplo n.º 9
0
        private void toolBar_btnNew_Click(object sender)
        {
            sales_invoiceViewSource.Source = ImpexDB.sales_invoice.Where(a => a.id_company == company_ID && a.id_contact == 0 && a.is_issued == true).OrderByDescending(a => a.trans_date).ToList();
            impex impex = new impex();

            impex.impex_type = entity.impex._impex_type.Export;
            impex.eta        = DateTime.Now;
            impex.etd        = DateTime.Now;
            impex.is_active  = true;
            //id_sal_invoiceComboBox.SelectedIndex = 0;
            impex.State      = EntityState.Added;
            impex.status     = Status.Documents_General.Pending;
            impex.IsSelected = true;
            ImpexDB.impex.Add(impex);
            impexViewSource.View.MoveCurrentToLast();
            Impex_CostDetailLIST.Clear();
        }
Ejemplo n.º 10
0
        private void impexDataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            Impex_CostDetailLIST.Clear();
            Impex_ProductsLIST.Clear();

            if (impexDataGrid.SelectedItem != null)
            {
                impex impex = impexDataGrid.SelectedItem as impex;
                foreach (impex_import impex_import in impex.impex_import)
                {
                    getProratedCostCounted(impex_import.purchase_invoice, false);
                }
            }

            productDataGrid.ItemsSource      = null;
            impex_importDataGrid.ItemsSource = null;
            impex_importDataGrid.ItemsSource = Impex_CostDetailLIST;
            productDataGrid.ItemsSource      = Impex_ProductsLIST;
            Calculate_Click(null, null);
        }
Ejemplo n.º 11
0
        private void toolBar_btnNew_Click_1(object sender)
        {
            purchase_invoiceViewSource.Source = ImpexDB.purchase_invoice.Where(a => a.id_company == CurrentSession.Id_Company && a.id_contact == 0 && a.is_issued == true).OrderByDescending(a => a.trans_date).ToList();
            impex impex = new impex();

            impex.impex_type = entity.impex._impex_type.Import;
            if (ImpexDB.impex_incoterm.Where(x => x.is_priority).FirstOrDefault() != null)
            {
                impex.id_incoterm = ImpexDB.impex_incoterm.Where(x => x.is_priority).FirstOrDefault().id_incoterm;
            }

            impex.eta        = DateTime.Now;
            impex.etd        = DateTime.Now;
            impex.is_active  = true;
            impex.State      = EntityState.Added;
            impex.status     = Status.Documents_General.Pending;
            impex.IsSelected = true;
            ImpexDB.impex.Add(impex);
            impexViewSource.View.MoveCurrentToLast();
            Impex_CostDetailLIST.Clear();
        }
Ejemplo n.º 12
0
        public void PurchaseInvoice_Click(object sender)
        {
            if (pnlPurchaseInvoice.selected_purchase_invoice.FirstOrDefault() != null)
            {
                if (pnlPurchaseInvoice.selected_purchase_invoice.FirstOrDefault().contact != null)
                {
                    contact contact = pnlPurchaseInvoice.selected_purchase_invoice.FirstOrDefault().contact;

                    impex impex = (impex)impexViewSource.View.CurrentItem;
                    impex.contact = contact;

                    sbxContact.Text = contact.name;
                    purchase_invoiceViewSource.Source =
                        pnlPurchaseInvoice.selected_purchase_invoice;
                    btnImportInvoice_Click(sender, null);

                    crud_modal.Children.Clear();
                    crud_modal.Visibility = Visibility.Collapsed;
                }
            }
        }
Ejemplo n.º 13
0
        public void SalesInvoice_Click(object sender)
        {
            if (pnlSalesInvoice.selected_sales_invoice.FirstOrDefault() != null)
            {
                if (pnlSalesInvoice.selected_sales_invoice.FirstOrDefault().contact != null)
                {
                    contact contact = ImpexDB.contacts.Where(x => x.id_contact == sbxContact.ContactID).FirstOrDefault();

                    impex impex = (impex)impexViewSource.View.CurrentItem;
                    impex.contact = contact;

                    sbxContact.Text = contact.name;

                    sales_invoiceViewSource.Source =
                        pnlSalesInvoice.selected_sales_invoice;
                    btnImportInvoice_Click(sender, null);

                    crud_modal.Children.Clear();
                    crud_modal.Visibility = Visibility.Collapsed;
                }
            }
        }
Ejemplo n.º 14
0
        private void getProratedCostCounted(purchase_invoice purchase_invoice, bool isNew)
        {
            impex impex = impexDataGrid.SelectedItem as impex;

            if (isNew == true)
            {
                //impex import invoice.
                if (impex.impex_import.Where(x => x.id_purchase_invoice == purchase_invoice.id_purchase_invoice).Count() > 0)
                {
                    //Update
                    impex_import impex_import = impex.impex_import.First();
                    impex_import.id_purchase_invoice = purchase_invoice.id_purchase_invoice;
                    impex_import.purchase_invoice    = purchase_invoice;
                }
                else
                {
                    //Insert
                    impex_import impex_import = new impex_import();
                    impex_import.id_purchase_invoice = purchase_invoice.id_purchase_invoice;
                    impex_import.purchase_invoice    = purchase_invoice;
                    impex.impex_import.Add(impex_import);
                }
            }
            else
            {
                //Impex datagrid selection change.
                if (purchase_invoice == null)
                {
                    impex_import impex_import = impex.impex_import.First();
                    purchase_invoice = impex_import.purchase_invoice;
                }
            }


            //Get expences
            List <impex_expense> impex_expense = impex.impex_expense.ToList();
            decimal totalExpense = 0;

            foreach (var item in impex_expense)
            {
                totalExpense += item.value;
            }

            if (purchase_invoice != null)
            {
                //Insert Purchase Invoice Detail
                List <purchase_invoice_detail> purchase_invoice_detail = purchase_invoice.purchase_invoice_detail.ToList();

                decimal TotalInvoiceAmount = 0;

                foreach (var item in purchase_invoice_detail)
                {
                    TotalInvoiceAmount += (item.quantity * item.UnitCost_Vat);
                }

                if (Impex_ProductsLIST.Where(x => x.id_item == 0).Count() == 0)
                {
                    entity.Class.Impex_Products ImpexImportProductDetails = new entity.Class.Impex_Products();
                    ImpexImportProductDetails.id_item = 0;
                    ImpexImportProductDetails.item    = "ALL";
                    Impex_ProductsLIST.Add(ImpexImportProductDetails);
                }

                foreach (purchase_invoice_detail _purchase_invoice_detail in purchase_invoice_detail.Where(x => x.item != null && x.item.item_product != null))
                {
                    int id_item = (int)_purchase_invoice_detail.id_item;

                    if (Impex_ProductsLIST.Where(x => x.id_item == id_item).Count() == 0)
                    {
                        entity.Class.Impex_Products ImpexImportProductDetails = new entity.Class.Impex_Products();
                        ImpexImportProductDetails.id_item = (int)_purchase_invoice_detail.id_item;
                        ImpexImportProductDetails.item    = ImpexDB.items.Where(a => a.id_item == _purchase_invoice_detail.id_item).FirstOrDefault().name;
                        Impex_ProductsLIST.Add(ImpexImportProductDetails);
                    }

                    entity.Class.Impex_CostDetail ImpexImportDetails = new entity.Class.Impex_CostDetail();
                    ImpexImportDetails.number            = _purchase_invoice_detail.purchase_invoice.number;
                    ImpexImportDetails.id_item           = (int)_purchase_invoice_detail.id_item;
                    ImpexImportDetails.item              = ImpexDB.items.Where(a => a.id_item == _purchase_invoice_detail.id_item).FirstOrDefault().name;
                    ImpexImportDetails.quantity          = _purchase_invoice_detail.quantity;
                    ImpexImportDetails.unit_cost         = _purchase_invoice_detail.unit_cost;
                    ImpexImportDetails.id_invoice        = _purchase_invoice_detail.id_purchase_invoice;
                    ImpexImportDetails.id_invoice_detail = _purchase_invoice_detail.id_purchase_invoice_detail;

                    if (totalExpense > 0)
                    {
                        ImpexImportDetails.prorated_cost = Math.Round(_purchase_invoice_detail.unit_cost + (totalExpense / purchase_invoice_detail.Sum(x => x.quantity)), 2);
                    }

                    decimal SubTotal = (_purchase_invoice_detail.quantity * ImpexImportDetails.prorated_cost);
                    ImpexImportDetails.sub_total = Math.Round(SubTotal, 2);
                    Impex_CostDetailLIST.Add(ImpexImportDetails);
                }
            }
        }
Ejemplo n.º 15
0
        private void toolBar_btnApprove_Click(object sender)
        {
            try
            {
                impex impex = impexDataGrid.SelectedItem as impex;

                if (impex.status != Status.Documents_General.Approved)
                {
                    List <impex_expense> impex_expenses = impex.impex_expense.ToList();
                    List <entity.Class.Impex_CostDetail> ImpexImportDetails = (List <entity.Class.Impex_CostDetail>)impex_ExportDataGrid.ItemsSource;
                    if (ImpexImportDetails.Count > 0)
                    {
                        //To make sure we have a Purchase Total
                        decimal SalesTotal = ImpexImportDetails.Sum(i => i.sub_total);
                        if (SalesTotal != 0)
                        {
                            foreach (entity.Class.Impex_CostDetail detail in ImpexImportDetails)
                            {
                                //Get total value of a Product Row
                                decimal itemTotal = detail.quantity * detail.unit_cost;

                                sales_invoice sales_invoice = ImpexDB.sales_invoice.Where(x => x.id_sales_invoice == detail.id_invoice).FirstOrDefault();
                                item_movement item_movement = ImpexDB.item_movement.Where(x => x.id_sales_invoice_detail == detail.id_invoice_detail).FirstOrDefault();

                                foreach (impex_expense _impex_expense in impex_expenses)
                                {
                                    decimal condition_value = _impex_expense.value;
                                    if (condition_value != 0 && itemTotal != 0)
                                    {
                                        //Coeficient is used to get prorated cost of one item
                                        item_movement_value item_movement_detail = new item_movement_value();

                                        decimal Cost = Math.Round(_impex_expense.value / ImpexImportDetails.Sum(x => x.quantity), 2);

                                        //decimal Cost = Impex_CostDetail.unit_cost * coeficient;

                                        //Improve this in future. For now take from Purchase
                                        using (db db = new db())
                                        {
                                            int     ID_CurrencyFX_Default = CurrentSession.CurrencyFX_Default.id_currencyfx;
                                            decimal DefaultCurrency_Cost  = Currency.convert_Values(Cost, sales_invoice.id_currencyfx, ID_CurrencyFX_Default, null);

                                            item_movement_detail.unit_value    = DefaultCurrency_Cost;
                                            item_movement_detail.id_currencyfx = ID_CurrencyFX_Default;
                                        }

                                        item_movement_detail.comment = _impex_expense.impex_incoterm_condition.name;
                                        item_movement.item_movement_value.Add(item_movement_detail);
                                    }
                                }
                            }
                            impex.status = Status.Documents_General.Approved;
                            ImpexDB.SaveChanges();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                toolBar.msgError(ex);
            }
        }