Esempio n. 1
0
        private void select_Item(sales_return sales_return, item item)
        {
            if (sales_return.sales_return_detail.Where(a => a.id_item == item.id_item).FirstOrDefault() == null)
            {
                sales_return_detail _sales_return_detail = new sales_return_detail();
                _sales_return_detail.State            = EntityState.Added;
                _sales_return_detail.sales_return     = sales_return;
                _sales_return_detail.Contact          = sales_return.contact;
                _sales_return_detail.item_description = item.description;
                _sales_return_detail.item             = item;
                _sales_return_detail.id_item          = item.id_item;

                sales_return.sales_return_detail.Add(_sales_return_detail);
            }
            else
            {
                sales_return_detail sales_return_detail = sales_return.sales_return_detail.Where(a => a.id_item == item.id_item).FirstOrDefault();
                sales_return_detail.quantity += 1;
            }

            Dispatcher.BeginInvoke((Action)(() =>
            {
                sales_returnsales_return_detailViewSource.View.Refresh();
                calculate_vat(null, null);
            }));
        }
Esempio n. 2
0
        private void salesreturnComboBox_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            try
            {
                if (salesreturnComboBox.Data != null)
                {
                    CollectionViewSource paymentpayment_detailViewSource = (CollectionViewSource)this.FindResource("paymentpayment_detailViewSource");
                    payment_detail       payment_detail = paymentpayment_detailViewSource.View.CurrentItem as payment_detail;
                    sales_return         sales_return   = (sales_return)salesreturnComboBox.Data;
                    salesreturnComboBox.Text = sales_return.number;
                    decimal return_value = (sales_return.GrandTotal - sales_return.payment_schedual.Where(x => x.id_sales_return == sales_return.id_sales_return).Sum(x => x.credit));
                    payment_detail.id_sales_return = sales_return.id_sales_return;

                    if (payment_detail.value > return_value)
                    {
                        payment_detail.value = return_value;
                        payment_detail.RaisePropertyChanged("value");
                    }
                    else
                    {
                        payment_detail.value = payment_detail.value;
                        payment_detail.RaisePropertyChanged("value");
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Esempio n. 3
0
 private void toolBar_btnSearch_Click(object sender, string query)
 {
     try
     {
         if (!string.IsNullOrEmpty(query))
         {
             salesReturnViewSource.View.Filter = i =>
             {
                 sales_return sales_return = i as sales_return;
                 if (sales_return.contact.name.ToLower().Contains(query.ToLower()))
                 {
                     return(true);
                 }
                 else
                 {
                     return(false);
                 }
             };
         }
         else
         {
             salesReturnViewSource.View.Filter = null;
         }
     }
     catch (Exception)
     { }
 }
Esempio n. 4
0
        private void sales_return_detailDataGrid_InitializingNewItem(object sender, InitializingNewItemEventArgs e)
        {
            sales_return_detail sales_return_detail = (sales_return_detail)e.NewItem;
            sales_return        sales_return        = (sales_return)sales_returnDataGrid.SelectedItem;

            sales_return_detail.sales_return = sales_return;
        }
Esempio n. 5
0
        private void toolBar_btnNew_Click(object sender)
        {
            ReturnSetting _pref_SalesReturn = new ReturnSetting();
            sales_return  objSalRtn         = SalesReturnDB.New();

            objSalRtn.trans_date = DateTime.Now.AddDays(_pref_SalesReturn.TransDate_OffSet);
            SalesReturnDB.sales_return.Add(objSalRtn);
            salesReturnViewSource.View.MoveCurrentToLast();
        }
Esempio n. 6
0
        private void sales_returnDataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            sales_return sales_return = (sales_return)sales_returnDataGrid.SelectedItem;

            if (sales_return != null)
            {
                calculate_vat(sender, e);
            }
        }
Esempio n. 7
0
        private void toolBar_btnPrint_Click(object sender, MouseButtonEventArgs e)
        {
            sales_return sales_return = sales_returnDataGrid.SelectedItem as sales_return;

            if (sales_return != null)
            {
                entity.Brillo.Document.Start.Manual(sales_return, sales_return.app_document_range);
            }
            else
            {
                toolBar.msgWarning("Please select");
            }
        }
Esempio n. 8
0
        public void Fill_BySalesReturn(sales_return sales_return)
        {
            this.Type        = entity.DebeHaber.TransactionTypes.SalesReturn;
            this.TransDate   = sales_return.trans_date;
            this.CompanyName = sales_return.contact.name;

            this.Gov_Code     = sales_return.contact.gov_code;
            this.Comment      = sales_return.comment;
            this.CurrencyName = sales_return.app_currencyfx != null ? sales_return.app_currencyfx.app_currency != null ? sales_return.app_currencyfx.app_currency.name : "" : "";

            this.DocNumber = sales_return.number;
            this.DocCode   = sales_return.app_document_range != null ? sales_return.app_document_range.code : "";
            this.DocExpiry = (sales_return.app_document_range != null ? (DateTime)sales_return.app_document_range.expire_date : DateTime.Now);
        }
Esempio n. 9
0
        private void item_Select(object sender, EventArgs e)
        {
            if (sbxItem.ItemID > 0)
            {
                sales_return sales_return = salesReturnViewSource.View.CurrentItem as sales_return;
                item         item         = SalesReturnDB.items.Where(x => x.id_item == sbxItem.ItemID).FirstOrDefault();

                if (item != null && item.id_item > 0 && sales_return != null)
                {
                    Task Thread = Task.Factory.StartNew(() => select_Item(sales_return, item));
                }
                sales_return.RaisePropertyChanged("GrandTotal");
            }
        }
Esempio n. 10
0
        private void toolBar_btnEdit_Click(object sender)
        {
            if (sales_returnDataGrid.SelectedItem != null)
            {
                sales_return sales_return = (sales_return)sales_returnDataGrid.SelectedItem;
                sales_return.IsSelected = true;
                sales_return.State      = System.Data.Entity.EntityState.Modified;
                SalesReturnDB.Entry(sales_return).State = EntityState.Modified;
            }

            else
            {
                toolBar.msgWarning("Please Select A Record");
            }
        }
Esempio n. 11
0
        private void calculate_vat(object sender, EventArgs e)
        {
            sales_return sales_return = (sales_return)sales_returnDataGrid.SelectedItem;

            sales_return.RaisePropertyChanged("GrandTotal");
            //List<sales_return_detail> sales_return_detail = sales_return.sales_return_detail.ToList();
            //dgvvat.ItemsSource = sales_return_detail
            //     .Join(SalesReturnDB.app_vat_group_details, ad => ad.id_vat_group, cfx => cfx.id_vat_group
            //          , (ad, cfx) => new { name = cfx.app_vat.name, value = ad.unit_price * cfx.app_vat.coefficient, id_vat = cfx.app_vat.id_vat, ad })
            //          .GroupBy(a => new { a.name, a.id_vat, a.ad })
            //   .Select(g => new
            //   {
            //       id_vat = g.Key.id_vat,
            //       name = g.Key.name,
            //       value = g.Sum(a => a.value * a.ad.quantity)
            //   }).ToList();
        }
Esempio n. 12
0
 private void DeleteCommand_Executed(object sender, ExecutedRoutedEventArgs e)
 {
     try
     {
         MessageBoxResult result = MessageBox.Show("Are you sure want to Delete?", "Delete", MessageBoxButton.YesNo, MessageBoxImage.Question);
         if (result == MessageBoxResult.Yes)
         {
             sales_return sales_return = salesReturnViewSource.View.CurrentItem as sales_return;
             //DeleteDetailGridRow
             sales_return_detailDataGrid.CancelEdit();
             SalesReturnDB.sales_return_detail.Remove(e.Parameter as sales_return_detail);
             sales_returnsales_return_detailViewSource.View.Refresh();
         }
     }
     catch (Exception ex)
     {
         toolBar.msgError(ex);
     }
 }
Esempio n. 13
0
        private void btnSalesInvoice_Click(object sender, RoutedEventArgs e)
        {
            sales_return _sales_return = (sales_return)salesReturnViewSource.View.CurrentItem;

            if (_sales_return != null)
            {
                crud_modal.Visibility   = Visibility.Visible;
                pnlSalesInvoice         = new cntrl.PanelAdv.pnlSalesInvoice();
                pnlSalesInvoice._entity = new ImpexDB();

                if (sbxContact.ContactID > 0)
                {
                    contact contact = SalesReturnDB.contacts.Where(x => x.id_contact == sbxContact.ContactID).FirstOrDefault();
                    pnlSalesInvoice._contact = contact;
                }

                pnlSalesInvoice.SalesInvoice_Click += SalesInvoice_Click;
                crud_modal.Children.Add(pnlSalesInvoice);
            }
        }
Esempio n. 14
0
        private void set_ContactPref(object sender, EventArgs e)
        {
            try
            {
                if (sbxContact.ContactID > 0)
                {
                    contact      contact      = SalesReturnDB.contacts.Where(x => x.id_contact == sbxContact.ContactID).FirstOrDefault();
                    sales_return sales_return = (sales_return)sales_returnDataGrid.SelectedItem;
                    sales_return.id_contact = contact.id_contact;
                    sales_return.contact    = contact;

                    ///Start Thread to get Data.
                    Task thread_SecondaryData = Task.Factory.StartNew(() => set_ContactPref_Thread(contact));
                }
            }
            catch (Exception ex)
            {
                toolBar.msgError(ex);
            }
        }
Esempio n. 15
0
        public void Document_Print(int document_id, object obj)
        {
            app_document app_document;
            string       PrinterName;
            string       Content = "";


            using (db db = new db())
            {
                app_document = db.app_document.Where(x => x.id_document == document_id).FirstOrDefault();
                PrinterName  = app_document.app_document_range.FirstOrDefault().printer_name;

                if (app_document.id_application == App.Names.Movement)
                {
                    item_transfer item_transfer = (item_transfer)obj;
                    Content = ItemMovement(item_transfer);
                    Print(Content, app_document, PrinterName);
                }
                else if (app_document.id_application == App.Names.SalesReturn)
                {
                    sales_return sales_return = (sales_return)obj;
                    Content = SalesReturn(sales_return);
                    Print(Content, app_document, PrinterName);
                }
                else if (app_document.id_application == App.Names.SalesInvoice)
                {
                    sales_invoice sales_invoice = (sales_invoice)obj;
                    Content = SalesInvoice(sales_invoice);
                    Print(Content, app_document, PrinterName);
                }
                else if (app_document.id_application == App.Names.PaymentUtility)
                {
                    payment payment = (payment)obj;
                    Content = Payment(payment);
                    Print(Content, app_document, PrinterName);
                }
            }
        }
Esempio n. 16
0
        public List <payment_schedual> revert_Schedual(object obj_entity)
        {
            List <payment_schedual> payment_schedualList = new List <payment_schedual>();

            //SALES INVOICE
            if (obj_entity as sales_invoice != null)
            {
                sales_invoice sales_invoice = (sales_invoice)obj_entity;
                if (sales_invoice.payment_schedual != null)
                {
                    foreach (payment_schedual payment in sales_invoice.payment_schedual)
                    {
                        payment_schedualList.AddRange(update_Status(payment));
                    }
                }
            }
            //SALES ORDER
            else if (obj_entity as sales_order != null)
            {
                sales_order sales_order = (sales_order)obj_entity;
                if (sales_order.payment_schedual != null)
                {
                    foreach (payment_schedual payment in sales_order.payment_schedual)
                    {
                        payment_schedualList.AddRange(update_Status(payment));
                    }
                }
            }
            //PURCHASE INVOICE
            else if (obj_entity as purchase_invoice != null)
            {
                purchase_invoice purchase_invoice = (purchase_invoice)obj_entity;
                if (purchase_invoice.payment_schedual != null)
                {
                    foreach (payment_schedual payment in purchase_invoice.payment_schedual)
                    {
                        payment_schedualList.AddRange(update_Status(payment));
                    }
                }
            }
            //PURCHASE ORDER
            else if (obj_entity as purchase_order != null)
            {
                //If function to liberate paid amount
                purchase_order purchase_order = (purchase_order)obj_entity;
                if (purchase_order.payment_schedual != null)
                {
                    foreach (payment_schedual payment in purchase_order.payment_schedual)
                    {
                        payment_schedualList.AddRange(update_Status(payment));
                    }
                }
            }
            //PURCHASE RETURN
            else if (obj_entity as purchase_return != null)
            {
                //If function to liberate paid amount
                purchase_return purchase_return = (purchase_return)obj_entity;
                if (purchase_return.payment_schedual != null)
                {
                    foreach (payment_schedual payment in purchase_return.payment_schedual)
                    {
                        payment_schedualList.AddRange(update_Status(payment));
                    }
                }
            }
            //SALES RETURN
            else if (obj_entity as sales_return != null)
            {
                //If function to liberate paid amount
                sales_return sales_return = (sales_return)obj_entity;
                if (sales_return.payment_schedual != null)
                {
                    foreach (payment_schedual payment in sales_return.payment_schedual)
                    {
                        payment_schedualList.AddRange(update_Status(payment));
                    }
                }
            }

            return(payment_schedualList);
        }
Esempio n. 17
0
        public List <payment_schedual> insert_Schedual(object obj_entity)
        {
            List <payment_schedual> payment_schedualList = new List <payment_schedual>();

            //SALES INVOICE
            if (obj_entity as sales_invoice != null)
            {
                sales_invoice sales_invoice = (sales_invoice)obj_entity;
                foreach (app_contract_detail app_contract_detail in sales_invoice.app_contract.app_contract_detail.Where(x => x.is_order == false))
                {
                    payment_schedual payment_schedual = new payment_schedual();
                    payment_schedual.credit        = 0;
                    payment_schedual.debit         = sales_invoice.GrandTotal * app_contract_detail.coefficient;
                    payment_schedual.id_currencyfx = sales_invoice.id_currencyfx;
                    payment_schedual.sales_invoice = sales_invoice;
                    payment_schedual.trans_date    = sales_invoice.trans_date;
                    payment_schedual.expire_date   = sales_invoice.trans_date.AddDays(app_contract_detail.interval);
                    payment_schedual.status        = entity.Status.Documents_General.Approved;
                    payment_schedual.id_contact    = sales_invoice.id_contact;
                    payment_schedualList.Add(payment_schedual);

                    ///Checks if selected Contract has Promissory Note created.
                    if (sales_invoice.app_contract.is_promissory)
                    {
                        payment_promissory_note payment_promissory_note = new payment_promissory_note();
                        //Dates. Transactional (based on Sales Trans) and Expiry (based on Exp of Payment)...
                        payment_promissory_note.trans_date  = sales_invoice.trans_date;
                        payment_promissory_note.expiry_date = sales_invoice.trans_date.AddDays(app_contract_detail.interval);
                        //Navigational Properties...
                        payment_promissory_note.id_branch   = sales_invoice.id_branch;
                        payment_promissory_note.id_terminal = sales_invoice.id_terminal;
                        payment_promissory_note.id_company  = sales_invoice.id_company;
                        payment_promissory_note.id_contact  = sales_invoice.id_contact;
                        //Values...
                        payment_promissory_note.value         = sales_invoice.GrandTotal * app_contract_detail.coefficient;
                        payment_promissory_note.id_currencyfx = sales_invoice.id_currencyfx;
                        payment_promissory_note.status        = entity.Status.Documents.Pending;

                        //Create Payment to control the Promissory Note as Non-Calculated.
                        payment_schedual payment_schedual_promise = new payment_schedual();
                        //Debit Credit
                        payment_schedual_promise.credit = 0;
                        payment_schedual_promise.debit  = sales_invoice.GrandTotal * app_contract_detail.coefficient;
                        //Nav Properties
                        payment_schedual_promise.id_contact    = sales_invoice.id_contact;
                        payment_schedual_promise.id_currencyfx = sales_invoice.id_currencyfx;
                        payment_schedual_promise.sales_invoice = sales_invoice;
                        //Date
                        payment_schedual_promise.trans_date    = sales_invoice.trans_date;
                        payment_schedual_promise.expire_date   = sales_invoice.trans_date.AddDays(app_contract_detail.interval);
                        payment_schedual_promise.can_calculate = false;
                        //Pending so that we can Approve while Printing.
                        payment_schedual_promise.status = entity.Status.Documents_General.Pending;

                        //Adding Payment Schedual into PromissoryNote
                        payment_promissory_note.payment_schedual.Add(payment_schedual_promise);
                        payment_promissory_noteLIST.Add(payment_promissory_note);
                    }
                }

                return(payment_schedualList);
            }

            //SALES RETURN
            else if (obj_entity as sales_return != null)
            {
                sales_return sales_return = (sales_return)obj_entity;

                payment_schedual payment_schedual = new payment_schedual();
                payment_schedual.debit         = sales_return.GrandTotal;
                payment_schedual.credit        = 0;
                payment_schedual.id_currencyfx = sales_return.id_currencyfx;
                payment_schedual.sales_return  = sales_return;
                payment_schedual.trans_date    = sales_return.trans_date;
                payment_schedual.expire_date   = sales_return.trans_date;
                payment_schedual.status        = entity.Status.Documents_General.Approved;
                payment_schedual.id_contact    = sales_return.id_contact;
                payment_schedual.can_calculate = false;
                payment_schedualList.Add(payment_schedual);

                return(payment_schedualList);
            }

            //PURCHASE RETURN
            else if (obj_entity as purchase_return != null)
            {
                purchase_return purchase_return = (purchase_return)obj_entity;

                payment_schedual payment_schedual = new payment_schedual();
                payment_schedual.credit          = purchase_return.GrandTotal;
                payment_schedual.debit           = 0;
                payment_schedual.id_currencyfx   = purchase_return.id_currencyfx;
                payment_schedual.purchase_return = purchase_return;
                payment_schedual.trans_date      = purchase_return.trans_date;
                payment_schedual.expire_date     = purchase_return.trans_date;
                payment_schedual.status          = entity.Status.Documents_General.Approved;
                payment_schedual.id_contact      = purchase_return.id_contact;
                payment_schedual.can_calculate   = false;
                payment_schedualList.Add(payment_schedual);

                return(payment_schedualList);
            }


            //SALES ORDER
            else if (obj_entity as sales_order != null)
            {
                sales_order sales_order = (sales_order)obj_entity;

                foreach (app_contract_detail app_contract_detail in sales_order.app_contract.app_contract_detail.Where(x => x.is_order))
                {
                    payment_schedual payment_schedual = new payment_schedual();
                    payment_schedual.credit        = 0;
                    payment_schedual.debit         = sales_order.GrandTotal * app_contract_detail.coefficient;
                    payment_schedual.id_currencyfx = sales_order.id_currencyfx;
                    payment_schedual.sales_order   = sales_order;
                    payment_schedual.trans_date    = sales_order.trans_date;
                    payment_schedual.expire_date   = sales_order.trans_date.AddDays(app_contract_detail.interval);
                    payment_schedual.status        = entity.Status.Documents_General.Approved;
                    payment_schedual.id_contact    = sales_order.id_contact;
                    payment_schedualList.Add(payment_schedual);
                }
                return(payment_schedualList);
            }



            //PURCHASE INVOICE
            else if (obj_entity as purchase_invoice != null)
            {
                purchase_invoice purchase_invoice = (purchase_invoice)obj_entity;

                foreach (app_contract_detail app_contract_detail in purchase_invoice.app_contract.app_contract_detail.Where(x => x.is_order == false))
                {
                    payment_schedual payment_schedual = new payment_schedual();
                    payment_schedual.credit           = purchase_invoice.GrandTotal * app_contract_detail.coefficient;
                    payment_schedual.debit            = 0;
                    payment_schedual.id_currencyfx    = purchase_invoice.id_currencyfx;
                    payment_schedual.purchase_invoice = purchase_invoice;
                    payment_schedual.trans_date       = purchase_invoice.trans_date;
                    payment_schedual.expire_date      = purchase_invoice.trans_date.AddDays(app_contract_detail.interval);
                    payment_schedual.status           = entity.Status.Documents_General.Pending;
                    payment_schedual.id_contact       = purchase_invoice.id_contact;
                    payment_schedualList.Add(payment_schedual);
                }
                return(payment_schedualList);
            }


            //PURCHASE ORDER
            else if (obj_entity as purchase_order != null)
            {
                purchase_order purchase_order = (purchase_order)obj_entity;

                foreach (app_contract_detail app_contract_detail in purchase_order.app_contract.app_contract_detail.Where(x => x.is_order))
                {
                    payment_schedual payment_schedual = new payment_schedual();
                    payment_schedual.credit         = purchase_order.GrandTotal * app_contract_detail.coefficient;
                    payment_schedual.debit          = 0;
                    payment_schedual.id_currencyfx  = purchase_order.id_currencyfx;
                    payment_schedual.purchase_order = purchase_order;
                    payment_schedual.trans_date     = purchase_order.trans_date;
                    payment_schedual.expire_date    = purchase_order.trans_date.AddDays(app_contract_detail.interval);
                    payment_schedual.status         = entity.Status.Documents_General.Pending;
                    payment_schedual.id_contact     = purchase_order.id_contact;
                    payment_schedualList.Add(payment_schedual);
                }
                return(payment_schedualList);
            }

            return(null);
        }
Esempio n. 18
0
        public void salesReturn()
        {
            string sql = " SELECT "
                         + " DEVOLUCION.CODDEVOLUCION,"
                         + " CLIENTES.NOMBRE,"
                         + " VENTAS.NUMVENTA,"
                         + " DEVOLUCION.CODCOMPROBANTE,"
                         + " DEVOLUCION.CODVENTA,"
                         + " DEVOLUCION.NUMDEVOLUCION,"
                         + " DEVOLUCION.FECHADEVOLUCION, "
                         + " DEVOLUCION.TOTALEXENTA,"
                         + " DEVOLUCION.TOTALGRAVADA,"
                         + " DEVOLUCION.TOTALIVA,"
                         + " DEVOLUCION.TOTALDEVOLUCION,"
                         + " DEVOLUCION.COTIZACION1,"
                         + " DEVOLUCION.FECGRA,"
                         + " DEVOLUCION.CODVENDEDOR, "
                         + " DEVOLUCION.CODCOMPROBANTERECP,"
                         + " DEVOLUCION.COBRADO,"
                         + " DEVOLUCION.CODDEPOSITO,"
                         + " DEVOLUCION.ESTADO,"
                         + " DEVOLUCION.MOTIVOANULADO,"
                         + " DEVOLUCION.MOTIVODESCARTE, "
                         + " DEVOLUCION.TOTALIVA5,"
                         + " DEVOLUCION.TOTALIVA10,"
                         + " DEVOLUCION.TIPODEVOLUCION,"
                         + " DEVOLUCION.DESCONTARMONTO,"
                         + " MONEDA.DESMONEDA,"
                         + " SUCURSAL.DESSUCURSAL,"
                         + " DEVOLUCION.SALDO, "
                         + " VENDEDOR.DESVENDEDOR"
                         + " FROM DEVOLUCION INNER JOIN"
                         + " CLIENTES ON DEVOLUCION.CODCLIENTE = CLIENTES.CODCLIENTE INNER JOIN"
                         + " MONEDA ON DEVOLUCION.CODMONEDA = MONEDA.CODMONEDA INNER JOIN"
                         + " SUCURSAL ON DEVOLUCION.CODSUCURSAL = SUCURSAL.CODSUCURSAL LEFT OUTER JOIN"
                         + " VENDEDOR ON DEVOLUCION.CODVENDEDOR = VENDEDOR.CODVENDEDOR LEFT OUTER JOIN"
                         + " VENTAS ON CLIENTES.CODCLIENTE = VENTAS.CODCLIENTE AND DEVOLUCION.CODVENTA = VENTAS.CODVENTA ";


            SqlConnection conn = new SqlConnection(_connString);

            //Counts Total number of Rows we have to process
            SqlCommand cmd = new SqlCommand(sql, conn);

            conn.Open();
            cmd.CommandText = "SELECT COUNT(*) FROM DEVOLUCION ";
            cmd.CommandType = CommandType.Text;
            int count = (int)cmd.ExecuteScalar();

            conn.Close();

            int value = 0;

            Dispatcher.BeginInvoke((Action)(() => salesReturnMaximum.Text = count.ToString()));
            Dispatcher.BeginInvoke((Action)(() => salesReturnValue.Text = value.ToString()));
            Dispatcher.BeginInvoke((Action)(() => progSalesReturn.Maximum = count));
            Dispatcher.BeginInvoke((Action)(() => progSalesReturn.Value = value));

            cmd = new SqlCommand(sql, conn);
            conn.Open();
            cmd.CommandType = CommandType.Text;
            //SqlDataReader reader = cmd.ExecuteReader();
            DataTable dt_salesReturn = exeDT(sql);

            foreach (DataRow reader in dt_salesReturn.Rows)
            {
                using (SalesReturnDB db = new SalesReturnDB())
                {
                    db.Configuration.AutoDetectChangesEnabled = false;

                    sales_return sales_return = db.New();
                    sales_return.id_company = id_company;

                    //if ((reader[6] is DBNull))
                    //{
                    //    sales_invoice.is_accounted = false;
                    //}
                    //else
                    //{
                    //    sales_invoice.is_accounted = (Convert.ToByte(reader[23]) == 0) ? false : true;
                    //}


                    //sales_invoice.version = 1;

                    sales_return.number     = (reader["NUMDEVOLUCION"] is DBNull) ? null : reader["NUMDEVOLUCION"].ToString();
                    sales_return.trans_date = Convert.ToDateTime(reader["FECHADEVOLUCION"]);

                    //Customer
                    if (!(reader["NOMBRE"] is DBNull))
                    {
                        string  _customer = reader["NOMBRE"].ToString();
                        contact contact   = db.contacts.Where(x => x.name == _customer && x.id_company == id_company).FirstOrDefault();
                        if (contact != null)
                        {
                            sales_return.id_contact = contact.id_contact;
                            sales_return.contact    = contact;
                        }
                    }

                    //Condition (Cash or Credit)

                    app_condition app_condition = db.app_condition.Where(x => x.name == "Contado").FirstOrDefault();
                    sales_return.id_condition = app_condition.id_condition;
                    if (db.app_contract.Where(x => x.name == "0 Días").Count() == 0)
                    {
                        app_contract app_contract = GenerateDefaultContrat(app_condition, 0);
                        db.app_contract.Add(app_contract);
                        sales_return.app_contract = app_contract;
                        sales_return.id_contract  = app_contract.id_contract;
                    }
                    else
                    {
                        app_contract app_contract = db.app_contract.Where(x => x.name == "0 Días").FirstOrDefault();
                        sales_return.app_contract = app_contract;
                        sales_return.id_contract  = app_contract.id_contract;
                    }



                    int          id_location  = 0;
                    app_location app_location = null;

                    //Branch
                    if (!(reader["DESSUCURSAL"] is DBNull))
                    {
                        //Branch
                        string     _branch    = reader["DESSUCURSAL"].ToString();
                        app_branch app_branch = db.app_branch.Where(x => x.name == _branch && x.id_company == id_company).FirstOrDefault();
                        sales_return.id_branch = app_branch.id_branch;

                        //Location
                        id_location  = db.app_location.Where(x => x.id_branch == app_branch.id_branch && x.is_default).FirstOrDefault().id_location;
                        app_location = db.app_location.Where(x => x.id_branch == app_branch.id_branch && x.is_default).FirstOrDefault();
                        //Terminal
                        sales_return.id_terminal = db.app_terminal.Where(x => x.app_branch.id_branch == app_branch.id_branch).FirstOrDefault().id_terminal;
                    }

                    if (!(reader["NUMVENTA"] is DBNull))
                    {
                        string        _salesNumber  = reader["NUMVENTA"].ToString();
                        sales_invoice sales_invoice = db.sales_invoice.Where(x => x.number == _salesNumber).FirstOrDefault();
                        sales_return.id_sales_invoice = sales_invoice.id_sales_invoice;
                        //   sales_return.sales_invoice = sales_invoice;
                    }

                    string _desMoneda = string.Empty;

                    //Sales Invoice Detail
                    string sqlDetail = "SELECT"
                                       + " dbo.PRODUCTOS.DESPRODUCTO,"              //0
                                       + " dbo.DEVOLUCIONDETALLE.CANTIDADDEVUELTA," //1
                                       + " dbo.DEVOLUCIONDETALLE.PRECIONETO, "      //2
                                       + " dbo.DEVOLUCIONDETALLE.COSTOPROMEDIO, "   //4
                                       + " dbo.DEVOLUCIONDETALLE.COSTOULTIMO, "     //5
                                       + " dbo.DEVOLUCIONDETALLE.IVA, "             //6
                                       + " dbo.DEVOLUCION.COTIZACION1 "             //6
                                       + " FROM dbo.DEVOLUCION LEFT OUTER JOIN"
                                       + " dbo.DEVOLUCIONDETALLE ON dbo.DEVOLUCION.CODDEVOLUCION = dbo.DEVOLUCIONDETALLE.CODDEVOLUCION LEFT OUTER JOIN"
                                       + " dbo.PRODUCTOS ON dbo.DEVOLUCIONDETALLE.CODPRODUCTO = dbo.PRODUCTOS.CODPRODUCTO"
                                       + " WHERE (dbo.DEVOLUCIONDETALLE.CODDEVOLUCION = " + reader["CODDEVOLUCION"].ToString() + ")";

                    DataTable dt = exeDT(sqlDetail);
                    foreach (DataRow row in dt.Rows)
                    {
                        //db Related Insertion.
                        sales_return.id_currencyfx  = db.app_currencyfx.Where(x => x.is_active).FirstOrDefault().id_currencyfx;
                        sales_return.app_currencyfx = db.app_currencyfx.Where(x => x.is_active).FirstOrDefault();

                        sales_return_detail sales_return_detail = new sales_return_detail();

                        string _prod_Name = row["DESPRODUCTO"].ToString();
                        item   item       = db.items.Where(x => x.name == _prod_Name && x.id_company == id_company).FirstOrDefault();
                        if (item != null)
                        {
                            sales_return_detail.id_item = item.id_item;
                        }
                        else
                        {
                            value += 1;
                            Dispatcher.BeginInvoke((Action)(() => progSalesReturn.Value = value));
                            Dispatcher.BeginInvoke((Action)(() => salesReturnValue.Text = value.ToString()));
                            continue;
                        }
                        sales_return_detail.id_item  = item.id_item;
                        sales_return_detail.quantity = Convert.ToDecimal(row["CANTIDADDEVUELTA"]);

                        sales_return_detail.id_location  = id_location;
                        sales_return_detail.app_location = app_location;

                        string _iva = row["IVA"].ToString();
                        if (_iva == "10.00")
                        {
                            sales_return_detail.id_vat_group = db.app_vat_group.Where(x => x.name == "10%").FirstOrDefault().id_vat_group;
                        }
                        else if (_iva == "5.00")
                        {
                            sales_return_detail.id_vat_group = db.app_vat_group.Where(x => x.name == "5%").FirstOrDefault().id_vat_group;
                        }
                        else
                        {
                            if (db.app_vat_group.Where(x => x.name == "Excento").FirstOrDefault() != null)
                            {
                                sales_return_detail.id_vat_group = db.app_vat_group.Where(x => x.name == "Excento").FirstOrDefault().id_vat_group;
                            }
                        }

                        decimal cotiz1 = Convert.ToDecimal((row["COTIZACION1"] is DBNull) ? 1 : Convert.ToDecimal(row["COTIZACION1"]));
                        sales_return_detail.unit_price = (Convert.ToDecimal(row["PRECIONETO"]) / sales_return_detail.quantity) / cotiz1;
                        if (!(row["COSTOPROMEDIO"] is DBNull))
                        {
                            sales_return_detail.unit_cost = Convert.ToDecimal(row["COSTOPROMEDIO"]);
                        }


                        //Commit Sales Invoice Detail
                        sales_return.sales_return_detail.Add(sales_return_detail);
                    }
                    sales_return.return_type = Status.ReturnTypes.Bonus;

                    if (sales_return.Error == null)
                    {
                        sales_return.State      = System.Data.Entity.EntityState.Added;
                        sales_return.IsSelected = true;
                        db.sales_return.Add(sales_return);
                        try
                        {
                            db.SaveChanges();
                        }
                        catch (Exception ex)
                        {
                            throw ex;
                        }
                        if (!(reader["ESTADO"] is DBNull))
                        {
                            int status = Convert.ToInt32(reader["ESTADO"]);
                            if (status == 0)
                            {
                                sales_return.status = Status.Documents_General.Pending;
                                if (!(reader[11] is DBNull))
                                {
                                    sales_return.comment = reader[11].ToString();
                                }
                            }
                            else if (status == 1)
                            {
                                sales_return.status = Status.Documents_General.Approved;
                                if (!(reader[11] is DBNull))
                                {
                                    sales_return.comment = reader[11].ToString();
                                }
                                db.Approve();
                            }
                            else if (status == 2)
                            {
                                sales_return.status = Status.Documents_General.Annulled;
                                if (!(reader[11] is DBNull))
                                {
                                    sales_return.comment = reader[11].ToString();
                                }
                                db.Approve();
                                db.Anull();
                            }
                        }


                        value += 1;
                        Dispatcher.BeginInvoke((Action)(() => progSalesReturn.Value = value));
                        Dispatcher.BeginInvoke((Action)(() => salesReturnValue.Text = value.ToString()));
                    }
                    else
                    {
                        //Add code to include error contacts into
                        sales_return_ErrorList.Add(sales_return);
                    }
                }
            }
            // reader.Close();
            //cmd.Dispose();
            conn.Close();

            //_customer_Current = _customer_Max;
        }
Esempio n. 19
0
        public void SalesInvoice_Click(object sender)
        {
            sales_return _sales_return = (sales_return)salesReturnViewSource.View.CurrentItem;

            if (_sales_return != null)
            {
                sbxContact.Text = pnlSalesInvoice.selected_sales_invoice.FirstOrDefault().contact.name;
                foreach (sales_invoice sales_invoice in pnlSalesInvoice.selected_sales_invoice)
                {
                    _sales_return.State            = EntityState.Modified;
                    _sales_return.id_condition     = sales_invoice.id_condition;
                    _sales_return.id_contract      = sales_invoice.id_contract;
                    _sales_return.id_currencyfx    = sales_invoice.id_currencyfx;
                    _sales_return.id_sales_invoice = sales_invoice.id_sales_invoice;

                    contact contact = SalesReturnDB.contacts.Where(x => x.id_contact == sales_invoice.id_contact).FirstOrDefault();
                    _sales_return.id_contact = contact.id_contact;
                    _sales_return.contact    = contact;
                    sbxContact.Text          = contact.name;

                    foreach (sales_invoice_detail _sales_invoice_detail in sales_invoice.sales_invoice_detail)
                    {
                        if (_sales_return.sales_return_detail.Where(x => x.id_item == _sales_invoice_detail.id_item).Count() == 0)
                        {
                            sales_return_detail sales_return_detail = new sales_return_detail();
                            sales_return_detail.id_sales_invoice_detail = _sales_invoice_detail.id_sales_invoice_detail;

                            if (SalesReturnDB.sales_invoice_detail.Where(x => x.id_sales_invoice_detail == _sales_invoice_detail.id_sales_invoice_detail).FirstOrDefault() != null)
                            {
                                sales_return_detail.sales_invoice_detail = SalesReturnDB.sales_invoice_detail.Where(x => x.id_sales_invoice_detail == _sales_invoice_detail.id_sales_invoice_detail).FirstOrDefault();
                            }

                            sales_return_detail.sales_return = _sales_return;

                            if (SalesReturnDB.items.Where(x => x.id_item == _sales_invoice_detail.id_item).FirstOrDefault() != null)
                            {
                                sales_return_detail.item             = SalesReturnDB.items.Where(x => x.id_item == _sales_invoice_detail.id_item).FirstOrDefault();
                                sales_return_detail.item_description = _sales_invoice_detail.item_description;
                            }

                            sales_return_detail.id_item  = _sales_invoice_detail.id_item;
                            sales_return_detail.quantity = _sales_invoice_detail.quantity - SalesReturnDB.sales_return_detail
                                                           .Where(x => x.id_sales_invoice_detail == _sales_invoice_detail.id_sales_invoice_detail)
                                                           .GroupBy(x => x.id_sales_invoice_detail).Select(x => x.Sum(y => y.quantity)).FirstOrDefault();

                            sales_return_detail.id_vat_group  = _sales_invoice_detail.id_vat_group;
                            sales_return_detail.unit_price    = _sales_invoice_detail.unit_price;
                            sales_return_detail.CurrencyFX_ID = _sales_return.id_currencyfx;
                            _sales_return.sales_return_detail.Add(sales_return_detail);
                        }

                        SalesReturnDB.Entry(_sales_return).Entity.State = EntityState.Added;
                        crud_modal.Children.Clear();
                        crud_modal.Visibility = Visibility.Collapsed;
                        salesReturnViewSource.View.Refresh();

                        sales_returnsales_return_detailViewSource.View.Refresh();
                    }
                }
            }
        }
Esempio n. 20
0
        //Sales return
        public void Document_PrintSalesReturn(int document_id, sales_return sales_return)
        {
            app_document app_document;

            using (db db = new db())
            {
                app_document = db.app_document.Where(x => x.id_document == document_id).FirstOrDefault();
            }

            if (app_document != null)
            {
                if (app_document.style_reciept == true)
                {
                    String header     = app_document.reciept_header;
                    string Mainheader = "";
                    foreach (sales_return_detail sales_return_detail in sales_return.sales_return_detail)
                    {
                        Mainheader += header.Replace("<<item>>", sales_return_detail.item.name);
                        Mainheader += header.Replace("<<Location>>", sales_return_detail.app_location.name);
                        Mainheader += header.Replace("<<debit>>", sales_return_detail.quantity.ToString());
                        Mainheader += header.Replace("<<Credit>>", "0");
                        Mainheader += header.Replace("<<Transcation>>", sales_return.trans_date.ToString());
                        Mainheader += "\n";
                    }

                    String footer     = app_document.reciept_footer;
                    string Mainfooter = "";
                    foreach (sales_return_detail sales_return_detail in sales_return.sales_return_detail)
                    {
                        Mainfooter += footer.Replace("<<item>>", sales_return_detail.item.name);
                        Mainfooter += footer.Replace("<<Location>>", sales_return_detail.app_location.name);
                        Mainfooter += footer.Replace("<<debit>>", sales_return_detail.quantity.ToString());
                        Mainfooter += footer.Replace("<<Credit>>", "0");
                        Mainfooter += footer.Replace("<<Transcation>>", sales_return.trans_date.ToString());
                        Mainfooter += "\n";
                    }

                    String body     = app_document.reciept_body;
                    string Mainbody = "";
                    foreach (sales_return_detail sales_return_detail in sales_return.sales_return_detail)
                    {
                        Mainbody += body.Replace("<<item>>", sales_return_detail.item.name);
                        Mainbody += body.Replace("<<Location>>", sales_return_detail.app_location.name);
                        Mainbody += body.Replace("<<debit>>", sales_return_detail.quantity.ToString());
                        Mainbody += body.Replace("<<Credit>>", "0");
                        Mainbody += body.Replace("<<Transcation>>", sales_return.trans_date.ToString());
                        Mainbody += "\n";
                    }


                    PrintDialog  pd  = new PrintDialog();
                    FlowDocument doc = new FlowDocument(new Paragraph(new Run(Mainheader + "\n\n" + Mainbody + "\n\n" + Mainfooter)));
                    doc.Name = "FlowDoc";
                    IDocumentPaginatorSource idpSource = doc;
                    pd.PrintDocument(idpSource.DocumentPaginator, Mainheader + "\n\n" + Mainbody + "\n\n" + Mainfooter);
                }
                else if (app_document.style_printer == true)
                {
                    if (sales_return.app_document_range.printer_name != null)
                    {
                        DocumentViewr MainWindow = new DocumentViewr();
                        MainWindow.loadSalesReturnReport(sales_return.id_sales_return);
                    }
                    else
                    {
                        DocumentViewr MainWindow = new DocumentViewr();
                        MainWindow.loadSalesReturnReport(sales_return.id_sales_return);
                        Window window = new Window
                        {
                            Title   = "Report",
                            Content = MainWindow
                        };

                        window.ShowDialog();
                    }
                }
            }
        }
Esempio n. 21
0
        public string SalesReturn(sales_return sales_return)
        {
            string      Header      = string.Empty;
            string      Detail      = string.Empty;
            string      Footer      = string.Empty;
            string      CompanyName = string.Empty;
            app_company app_company = null;

            if (sales_return.app_company != null)
            {
                CompanyName = sales_return.app_company.name;
            }
            else
            {
                using (db db = new db())
                {
                    if (db.app_company.Where(x => x.id_company == sales_return.id_company).FirstOrDefault() != null)
                    {
                        app_company = db.app_company.Where(x => x.id_company == sales_return.id_company).FirstOrDefault();
                        CompanyName = app_company.name;
                    }
                }
            }
            string UserGiven = "";

            if (sales_return.security_user != null)
            {
                UserGiven = sales_return.security_user.name;
            }
            else
            {
                using (db db = new db())
                {
                    if (db.security_user.Where(x => x.id_user == sales_return.id_user).FirstOrDefault() != null)
                    {
                        security_user security_user = db.security_user.Where(x => x.id_user == sales_return.id_user).FirstOrDefault();
                        UserGiven = security_user.name;
                    }
                }
            }

            string   TransNumber = sales_return.number;
            DateTime TransDate   = sales_return.trans_date;
            string   BranchName  = sales_return.app_branch.name;

            Header =
                CompanyName + "\n"
                + "RUC:" + app_company.gov_code + "\n"
                + app_company.address + "\n"
                + "***" + app_company.alias + "***" + "\n"
                + "Timbrado: " + sales_return.app_document_range.code + " Vto: " + sales_return.app_document_range.expire_date
                + "\n"
                + "--------------------------------"
                + "Descripcion, Cantiad, Precio" + "\n"
                + "--------------------------------" + "\n"
                + "\n";

            foreach (sales_return_detail d in sales_return.sales_return_detail)
            {
                string  ItemName      = d.item.name;
                string  ItemCode      = d.item.code;
                decimal?Qty           = d.quantity;
                string  TaskName      = d.item_description;
                decimal?UnitPrice_Vat = Math.Round(d.UnitPrice_Vat, 2);

                Detail = Detail
                         + ItemName + "\n"
                         + Qty.ToString() + "\t" + ItemCode + "\t" + UnitPrice_Vat + "\n";
            }


            Footer  = "--------------------------------" + "\n";
            Footer += "Total " + sales_return.app_currencyfx.app_currency.name + ": " + sales_return.GrandTotal + "\n";
            Footer += "Fecha & Hora: " + sales_return.trans_date + "\n";
            Footer += "Numero de Factura: " + sales_return.number + "\n";
            Footer += "-------------------------------" + "\n";

            if (sales_return != null)
            {
                List <sales_return_detail> sales_return_detail = sales_return.sales_return_detail.ToList();
                if (sales_return_detail.Count > 0)
                {
                    using (db db = new db())
                    {
                        var listvat = sales_return_detail
                                      .Join(db.app_vat_group_details, ad => ad.id_vat_group, cfx => cfx.id_vat_group
                                            , (ad, cfx) => new { name = cfx.app_vat.name, value = ad.unit_price * cfx.app_vat.coefficient, id_vat = cfx.app_vat.id_vat, ad })
                                      .GroupBy(a => new { a.name, a.id_vat, a.ad })
                                      .Select(g => new
                        {
                            vatname = g.Key.ad.app_vat_group.name,
                            id_vat  = g.Key.id_vat,
                            name    = g.Key.name,
                            value   = g.Sum(a => a.value * a.ad.quantity)
                        }).ToList();
                        var VAtList = listvat.GroupBy(x => x.id_vat).Select(g => new
                        {
                            vatname = g.Max(y => y.vatname),
                            id_vat  = g.Max(y => y.id_vat),
                            name    = g.Max(y => y.name),
                            value   = g.Sum(a => a.value)
                        }).ToList();
                        foreach (dynamic item in VAtList)
                        {
                            Footer += item.vatname + "   : " + Math.Round(item.value, 2) + "\n";
                        }
                        Footer += "Total IVA: " + sales_return.app_currencyfx.app_currency.name + " " + Math.Round(VAtList.Sum(x => x.value), 2) + "\n";
                    }
                }
            }

            Footer += "-------------------------------";
            Footer += "Cliente   : " + sales_return.contact.name + "\n";
            Footer += "Documento : " + sales_return.contact.gov_code + "\n";
            Footer += "Condicion : " + sales_return.app_condition.name + "\n";
            Footer += "-------------------------------";
            Footer += "Sucursal    : " + sales_return.app_branch.name + " Terminal: " + sales_return.app_terminal.name + "\n";
            Footer += "Cajero/a    : " + UserGiven;

            string Text = Header + Detail + Footer;

            return(Text);
        }