Example #1
0
        public void Anull()
        {
            foreach (sales_return sales_return in base.sales_return.Local)
            {
                if (sales_return.IsSelected && sales_return.Error == null)
                {
                    List <payment_schedual> payment_schedualList = new List <payment_schedual>();
                    Brillo.Logic.Payment    _Payment             = new Brillo.Logic.Payment();
                    payment_schedualList = _Payment.revert_Schedual(sales_return);

                    Brillo.Logic.Stock   _Stock            = new Brillo.Logic.Stock();
                    List <item_movement> item_movementList = new List <item_movement>();
                    item_movementList = _Stock.revert_Stock(this, App.Names.SalesReturn, sales_return);

                    if (payment_schedualList != null && payment_schedualList.Count > 0)
                    {
                        base.payment_schedual.RemoveRange(payment_schedualList);
                    }
                    if (item_movementList != null && item_movementList.Count > 0)
                    {
                        base.item_movement.RemoveRange(item_movementList);
                    }

                    sales_return.status = Status.Documents_General.Annulled;
                    SaveChanges();
                }
            }
        }
Example #2
0
        public void Anull()
        {
            foreach (purchase_return purchase_return in base.purchase_return.Local)
            {
                if (purchase_return.IsSelected && purchase_return.Error == null)
                {
                    List <payment_schedual> payment_schedualList = new List <payment_schedual>();
                    Brillo.Logic.Payment    _Payment             = new Brillo.Logic.Payment();
                    payment_schedualList = _Payment.revert_Schedual(purchase_return);

                    Brillo.Logic.Stock   _Stock            = new Brillo.Logic.Stock();
                    List <item_movement> item_movementList = new List <item_movement>();
                    item_movementList = _Stock.revert_Stock(this, App.Names.PurchaseReturn, purchase_return.id_purchase_return);

                    if (payment_schedualList != null && payment_schedualList.Count > 0)
                    {
                        base.payment_schedual.RemoveRange(payment_schedualList);
                    }
                    if (item_movementList != null && item_movementList.Count > 0)
                    {
                        base.item_movement.RemoveRange(item_movementList);
                    }
                }
            }
        }
Example #3
0
        public void Anull()
        {
            foreach (purchase_invoice purchase_invoice in base.purchase_invoice.Local)
            {
                if (purchase_invoice.IsSelected && purchase_invoice.Error == null)
                {
                    int count = purchase_invoice.purchase_invoice_detail.Where(x => x.purchase_return_detail == null).Count();
                    if (purchase_invoice.accounting_journal == null && count > 0)
                    {
                        List <payment_schedual> payment_schedualList = new List <payment_schedual>();
                        Brillo.Logic.Payment    _Payment             = new Brillo.Logic.Payment();
                        payment_schedualList = _Payment.revert_Schedual(purchase_invoice);

                        Brillo.Logic.Stock   _Stock            = new Brillo.Logic.Stock();
                        List <item_movement> item_movementList = new List <item_movement>();
                        item_movementList = _Stock.revert_Stock(this, App.Names.PurchaseInvoice, purchase_invoice);

                        if (payment_schedualList != null && payment_schedualList.Count > 0)
                        {
                            base.payment_schedual.RemoveRange(payment_schedualList);
                        }

                        if (item_movementList != null && item_movementList.Count > 0)
                        {
                            //base.item_movement.RemoveRange(item_movementList);
                        }

                        purchase_invoice.status = Status.Documents_General.Annulled;
                        SaveChanges();
                    }
                }
            }
        }
Example #4
0
        public bool Annull()
        {
            NumberOfRecords = 0;
            foreach (sales_order sales_order in base.sales_order.Local)
            {
                if (sales_order.IsSelected && sales_order.Error == null)
                {
                    SaveChanges();

                    if (sales_order.status == Status.Documents_General.Approved)
                    {
                        if (sales_order.sales_invoice == null || sales_order.sales_invoice.Count == 0)
                        {
                            List <payment_schedual> payment_schedualList = new List <payment_schedual>();
                            Brillo.Logic.Payment    _Payment             = new Brillo.Logic.Payment();
                            payment_schedualList = _Payment.revert_Schedual(sales_order);

                            Brillo.Logic.Stock   _Stock            = new Brillo.Logic.Stock();
                            List <item_movement> item_movementList = new List <item_movement>();
                            item_movementList = _Stock.revert_Stock(this, App.Names.SalesOrder, sales_order.id_sales_order);

                            if (payment_schedualList != null && payment_schedualList.Count > 0)
                            {
                                base.payment_schedual.RemoveRange(payment_schedualList);
                            }

                            if (item_movementList != null && item_movementList.Count > 0)
                            {
                                base.item_movement.RemoveRange(item_movementList);
                            }

                            sales_order.status = Status.Documents_General.Annulled;
                            SaveChanges();
                        }
                    }
                }

                NumberOfRecords       += 1;
                sales_order.IsSelected = false;
            }
            return(true);
        }
Example #5
0
        public bool Anull()
        {
            NumberOfRecords = 0;
            foreach (purchase_order purchase_order in base.purchase_order.Local)
            {
                if (purchase_order.IsSelected && purchase_order.Error == null)
                {
                    if (purchase_order.purchase_invoice.Count() == 0)
                    {
                        List <payment_schedual> payment_schedualList = new List <payment_schedual>();
                        Brillo.Logic.Payment    _Payment             = new Brillo.Logic.Payment();
                        payment_schedualList = _Payment.revert_Schedual(purchase_order);

                        Brillo.Logic.Stock   _Stock            = new Brillo.Logic.Stock();
                        List <item_movement> item_movementList = new List <item_movement>();
                        item_movementList = _Stock.revert_Stock(this, App.Names.PurchaseOrder, purchase_order.id_purchase_order);

                        if (payment_schedualList != null && payment_schedualList.Count > 0)
                        {
                            base.payment_schedual.RemoveRange(payment_schedualList);
                        }

                        if (item_movementList != null && item_movementList.Count > 0)
                        {
                            base.item_movement.RemoveRange(item_movementList);
                        }

                        purchase_order.status = Status.Documents_General.Annulled;
                        SaveChanges();

                        //Clean Up
                        purchase_order.IsSelected = false;
                        NumberOfRecords          += 1;
                    }
                }
            }
            return(true);
        }
Example #6
0
        public void Approve()
        {
            foreach (purchase_invoice invoice in base.purchase_invoice.Local.Where(x => x.IsSelected == true))
            {
                if (invoice.Error == null)
                {
                    if (invoice.id_purchase_invoice == 0)
                    {
                        SaveChanges();
                    }

                    if (invoice.status != Status.Documents_General.Approved)
                    {
                        List <payment_schedual> payment_schedualList = new List <payment_schedual>();
                        Brillo.Logic.Payment    _Payment             = new Brillo.Logic.Payment();
                        ///Insert Payment Schedual Logic
                        payment_schedualList = _Payment.insert_Schedual(invoice);

                        //Insert into Stock.
                        Insert_Items_2_Movement(invoice);

                        if (payment_schedualList != null && payment_schedualList.Count > 0)
                        {
                            payment_schedual.AddRange(payment_schedualList);
                        }

                        invoice.status = Status.Documents_General.Approved;
                        SaveChanges();
                    }
                }
                else if (invoice.Error != null)
                {
                    invoice.HasErrors = true;
                }

                invoice.IsSelected = false;
            }
        }
Example #7
0
        public void Anull()
        {
            SaveChanges();

            foreach (sales_invoice sales_invoice in base.sales_invoice.Local)
            {
                if (sales_invoice.IsSelected && sales_invoice.Error == null)
                {
                    if (sales_invoice.sales_invoice_detail.Where(x => x.sales_return_detail == null).Count() > 0
                        &&
                        sales_invoice.is_accounted == false)
                    {
                        List <payment_schedual> payment_schedualList = new List <payment_schedual>();
                        Brillo.Logic.Payment    _Payment             = new Brillo.Logic.Payment();
                        payment_schedualList = _Payment.revert_Schedual(sales_invoice);

                        Brillo.Logic.Stock   _Stock            = new Brillo.Logic.Stock();
                        List <item_movement> item_movementList = new List <item_movement>();
                        item_movementList = _Stock.revert_Stock(this, App.Names.SalesInvoice, sales_invoice);

                        if (payment_schedualList != null && payment_schedualList.Count > 0)
                        {
                            payment_schedual.RemoveRange(payment_schedualList);
                        }

                        if (item_movementList != null && item_movementList.Count > 0)
                        {
                            item_movement.RemoveRange(item_movementList);
                        }

                        sales_invoice.status = Status.Documents_General.Annulled;
                        SaveChanges();
                    }
                }
            }
        }
Example #8
0
        public bool Approve(bool IsDiscountStock)
        {
            NumberOfRecords = 0;
            foreach (sales_invoice invoice in sales_invoice.Local.Where(x =>
                                                                        x.status != Status.Documents_General.Approved &&
                                                                        x.IsSelected && x.Error == null))
            {
                SpiltInvoice(invoice);
            }

            foreach (sales_invoice invoice in sales_invoice.Local.Where(x =>
                                                                        x.status != Status.Documents_General.Approved &&
                                                                        x.IsSelected && x.Error == null))
            {
                if (invoice.id_sales_invoice == 0)
                {
                    SaveChanges();
                }
                if (Check_CreditLimit(invoice))
                {
                    //Logic
                    List <payment_schedual> payment_schedualList = new List <payment_schedual>();
                    Brillo.Logic.Payment    _Payment             = new Brillo.Logic.Payment();
                    payment_schedualList = _Payment.insert_Schedual(invoice);

                    //Save Promisory Note first, because it is referenced in Payment Schedual
                    if (_Payment.payment_promissory_noteLIST != null && _Payment.payment_promissory_noteLIST.Count > 0)
                    {
                        payment_promissory_note.AddRange(_Payment.payment_promissory_noteLIST);
                    }

                    //Payment Schedual
                    if (payment_schedualList != null && payment_schedualList.Count > 0)
                    {
                        payment_schedual.AddRange(payment_schedualList);
                    }
                    //Item Movement
                    if (IsDiscountStock)
                    {
                        Insert_Items_2_Movement(invoice);
                    }

                    if ((invoice.number == null || invoice.number == string.Empty) && invoice.id_range > 0)
                    {
                        if (invoice.id_branch > 0)
                        {
                            Brillo.Logic.Range.branch_Code = app_branch.Where(x => x.id_branch == invoice.id_branch).FirstOrDefault().code;
                        }
                        if (invoice.id_terminal > 0)
                        {
                            Brillo.Logic.Range.terminal_Code = app_terminal.Where(x => x.id_terminal == invoice.id_terminal).FirstOrDefault().code;
                        }

                        app_document_range app_document_range = base.app_document_range.Where(x => x.id_range == invoice.id_range).FirstOrDefault();

                        invoice.is_issued = true;
                        invoice.number    = Brillo.Logic.Range.calc_Range(app_document_range, true);
                        invoice.RaisePropertyChanged("number");
                        invoice.status    = Status.Documents_General.Approved;
                        invoice.timestamp = DateTime.Now;



                        //Generate BarCode

                        //Save Changes before Printing, so that all fields show up.
                        SaveChanges();

                        Brillo.Document.Start.Automatic(invoice, app_document_range);
                    }
                    else
                    {
                        invoice.is_issued = false;

                        invoice.status    = Status.Documents_General.Approved;
                        invoice.timestamp = DateTime.Now;

                        SaveChanges();
                    }

                    NumberOfRecords   += 1;
                    invoice.IsSelected = false;
                }
                return(true);
            }

            return(false);
        }
Example #9
0
        public bool Approve()
        {
            NumberOfRecords = 0;

            foreach (purchase_order purchase_order in base.purchase_order.Local.Where(x => x.IsSelected == true))
            {
                if (purchase_order.Error == null)
                {
                    if (purchase_order.id_purchase_order == 0)
                    {
                        SaveChanges();
                    }

                    if (purchase_order.status != Status.Documents_General.Approved)
                    {
                        if (purchase_order.number == null && purchase_order.id_range != null)
                        {
                            //Brillo.Logic.Document _Document = new Brillo.Logic.Document();
                            Brillo.Logic.Range.branch_Code   = base.app_branch.Where(x => x.id_branch == purchase_order.id_branch).FirstOrDefault().code;
                            Brillo.Logic.Range.terminal_Code = base.app_terminal.Where(x => x.id_terminal == purchase_order.id_terminal).FirstOrDefault().code;
                            app_document_range app_document_range = base.app_document_range.Where(x => x.id_range == purchase_order.id_range).FirstOrDefault();
                            purchase_order.number = Brillo.Logic.Range.calc_Range(app_document_range, true);
                            purchase_order.RaisePropertyChanged("number");
                            purchase_order.is_issued = true;
                        }
                        else
                        {
                            purchase_order.is_issued = false;
                        }

                        List <payment_schedual> payment_schedualList = new List <payment_schedual>();
                        Brillo.Logic.Payment    _Payment             = new Brillo.Logic.Payment();
                        payment_schedualList = _Payment.insert_Schedual(purchase_order);

                        Brillo.Logic.Stock   _Stock            = new Brillo.Logic.Stock();
                        List <item_movement> item_movementList = new List <item_movement>();
                        item_movementList = _Stock.insert_Stock(this, purchase_order);

                        if (payment_schedualList != null && payment_schedualList.Count > 0)
                        {
                            payment_schedual.AddRange(payment_schedualList);
                        }
                        if (item_movementList != null && item_movementList.Count > 0)
                        {
                            item_movement.AddRange(item_movementList);
                        }

                        purchase_order.status = Status.Documents_General.Approved;
                        SaveChanges();
                    }

                    if (purchase_order.is_issued)
                    {
                        app_document_range app_document_range = base.app_document_range.Where(x => x.id_range == purchase_order.id_range).FirstOrDefault();
                        Brillo.Document.Start.Automatic(purchase_order, app_document_range);
                    }

                    NumberOfRecords          += 1;
                    purchase_order.IsSelected = false;
                }
                else if (purchase_order.Error != null)
                {
                    purchase_order.HasErrors = true;
                }
            }

            return(true);
        }
Example #10
0
        public void Approve()
        {
            foreach (purchase_return purchase_return in base.purchase_return.Local.Where(x => x.IsSelected == true))
            {
                if (purchase_return.Error == null)
                {
                    if (purchase_return.id_purchase_return == 0)
                    {
                        SaveChanges();
                    }

                    if (purchase_return.status != Status.Documents_General.Approved)
                    {
                        List <payment_schedual> payment_schedualList = new List <payment_schedual>();
                        Brillo.Logic.Payment    _Payment             = new Brillo.Logic.Payment();
                        payment_schedualList = _Payment.insert_Schedual(purchase_return);

                        Brillo.Logic.Stock   _Stock            = new Brillo.Logic.Stock();
                        List <item_movement> item_movementList = new List <item_movement>();
                        item_movementList = _Stock.insert_Stock(this, purchase_return);

                        if (payment_schedualList != null && payment_schedualList.Count > 0)
                        {
                            payment_schedual.AddRange(payment_schedualList);
                        }
                        if (item_movementList != null && item_movementList.Count > 0)
                        {
                            item_movement.AddRange(item_movementList);
                        }


                        if (purchase_return.purchase_invoice != null)
                        {
                            payment payment = new payment();
                            payment.id_contact = purchase_return.id_contact;
                            payment_detail payment_detailreturn = new payment_detail();
                            // payment_detailreturn.id_account = payment_quick.payment_detail.id_account;
                            payment_detailreturn.id_currencyfx = purchase_return.id_currencyfx;
                            if (base.payment_type.Where(x => x.payment_behavior == entity.payment_type.payment_behaviours.CreditNote).FirstOrDefault() != null)
                            {
                                payment_detailreturn.id_payment_type = base.payment_type.Where(x => x.payment_behavior == entity.payment_type.payment_behaviours.CreditNote).FirstOrDefault().id_payment_type;
                            }
                            else
                            {
                                System.Windows.Forms.MessageBox.Show("Please add crditnote payment type...");
                                return;
                            }


                            payment_detailreturn.id_sales_return = purchase_return.id_purchase_return;

                            payment_detailreturn.value = purchase_return.GrandTotal;

                            payment_schedual payment_schedualReturn = new payment_schedual();
                            payment_schedualReturn.debit           = purchase_return.GrandTotal;
                            payment_schedualReturn.credit          = 0;
                            payment_schedualReturn.id_currencyfx   = purchase_return.id_currencyfx;
                            payment_schedualReturn.purchase_return = purchase_return;
                            payment_schedualReturn.trans_date      = purchase_return.trans_date;
                            payment_schedualReturn.expire_date     = purchase_return.trans_date;
                            payment_schedualReturn.status          = entity.Status.Documents_General.Approved;
                            payment_schedualReturn.id_contact      = purchase_return.id_contact;
                            payment_schedualReturn.can_calculate   = true;
                            payment_schedualReturn.parent          = purchase_return.purchase_invoice.payment_schedual.FirstOrDefault();

                            payment_detailreturn.payment_schedual.Add(payment_schedualReturn);
                            payment.payment_detail.Add(payment_detailreturn);
                            base.payments.Add(payment);
                        }
                        purchase_return.status = Status.Documents_General.Approved;
                        SaveChanges();
                    }
                }
                else if (purchase_return.Error != null)
                {
                    purchase_return.HasErrors = true;
                }
            }
        }
Example #11
0
        public void Approve()
        {
            foreach (sales_return sales_return in base.sales_return.Local.Where(x => x.status != Status.Documents_General.Approved))
            {
                if (sales_return.status != Status.Documents_General.Approved &&
                    sales_return.IsSelected &&
                    sales_return.Error == null)
                {
                    if (sales_return.id_sales_return == 0)
                    {
                        SaveChanges();
                    }

                    if (sales_return.status != Status.Documents_General.Approved)
                    {
                        if (sales_return.number == null && sales_return.id_range != null)
                        {
                            Brillo.Logic.Range.branch_Code   = base.app_branch.Where(x => x.id_branch == sales_return.id_branch).FirstOrDefault().code;
                            Brillo.Logic.Range.terminal_Code = base.app_terminal.Where(x => x.id_terminal == sales_return.id_terminal).FirstOrDefault().code;
                            app_document_range app_document_range = base.app_document_range.Where(x => x.id_range == sales_return.id_range).FirstOrDefault();
                            sales_return.number = Brillo.Logic.Range.calc_Range(app_document_range, true);
                            sales_return.RaisePropertyChanged("number");
                            sales_return.is_issued = true;

                            //Save values bofore printing.
                            SaveChanges();

                            Brillo.Document.Start.Automatic(sales_return, app_document_range);
                        }
                        else
                        {
                            sales_return.is_issued = false;
                        }

                        List <payment_schedual> payment_schedualList = new List <payment_schedual>();
                        Brillo.Logic.Payment    _Payment             = new Brillo.Logic.Payment();
                        payment_schedualList = _Payment.insert_Schedual(sales_return);

                        Brillo.Logic.Stock   _Stock            = new Brillo.Logic.Stock();
                        List <item_movement> item_movementList = new List <item_movement>();
                        item_movementList = _Stock.insert_Stock(this, sales_return);

                        if (payment_schedualList != null && payment_schedualList.Count > 0)
                        {
                            payment_schedual.AddRange(payment_schedualList);
                        }
                        if (item_movementList != null && item_movementList.Count > 0)
                        {
                            item_movement.AddRange(item_movementList);
                        }

                        if (sales_return.sales_invoice != null)
                        {
                            payment payment = new payment();
                            payment.id_contact = sales_return.id_contact;
                            payment_detail payment_detailreturn = new payment_detail();
                            // payment_detailreturn.id_account = payment_quick.payment_detail.id_account;
                            payment_detailreturn.id_currencyfx = sales_return.id_currencyfx;

                            //Check for Credit Note PaymentType.
                            if (base.payment_type.Where(x => x.payment_behavior == entity.payment_type.payment_behaviours.CreditNote).FirstOrDefault() != null)
                            {
                                //Gets Payment Type form Database.
                                payment_detailreturn.id_payment_type = base.payment_type.Where(x => x.payment_behavior == entity.payment_type.payment_behaviours.CreditNote).FirstOrDefault().id_payment_type;
                            }
                            else
                            {
                                //In case Payment type doesn not exist, this will create it and try to fix the error.
                                payment_type payment_type = new payment_type();
                                payment_type.payment_behavior = entity.payment_type.payment_behaviours.CreditNote;
                                payment_type.name             = LocExtension.GetLocalizedValue <string>("Cognitivo:local:SalesReturn");
                                base.payment_type.Add(payment_type);

                                payment_detailreturn.payment_type = payment_type;
                            }

                            payment_detailreturn.id_sales_return = sales_return.id_sales_return;
                            payment_detailreturn.value           = sales_return.GrandTotal;

                            payment_schedual payment_schedualReturn = new payment_schedual();
                            payment_schedualReturn.debit         = 0;
                            payment_schedualReturn.credit        = sales_return.GrandTotal;
                            payment_schedualReturn.id_currencyfx = sales_return.id_currencyfx;
                            payment_schedualReturn.sales_return  = sales_return;
                            payment_schedualReturn.trans_date    = sales_return.trans_date;
                            payment_schedualReturn.expire_date   = sales_return.trans_date;
                            payment_schedualReturn.status        = entity.Status.Documents_General.Approved;
                            payment_schedualReturn.id_contact    = sales_return.id_contact;
                            payment_schedualReturn.can_calculate = true;
                            payment_schedualReturn.parent        = sales_return.sales_invoice.payment_schedual.FirstOrDefault();

                            payment_detailreturn.payment_schedual.Add(payment_schedualReturn);
                            payment.payment_detail.Add(payment_detailreturn);
                            base.payments.Add(payment);
                        }

                        sales_return.status = Status.Documents_General.Approved;
                        SaveChanges();
                    }

                    else if (sales_return.Error != null)
                    {
                        sales_return.HasErrors = true;
                    }
                }
            }
        }
Example #12
0
        public bool Approve()
        {
            foreach (sales_order sales_order in base.sales_order.Local.Where(x => x.status != Status.Documents_General.Approved))
            {
                NumberOfRecords = 0;

                if (sales_order.status != Status.Documents_General.Approved &&
                    sales_order.IsSelected &&
                    sales_order.Error == null)
                {
                    if (sales_order.id_sales_order == 0)
                    {
                        SaveChanges();
                    }

                    if (sales_order.status != Status.Documents_General.Approved)
                    {
                        List <payment_schedual> payment_schedualList = new List <payment_schedual>();
                        Brillo.Logic.Payment    _Payment             = new Brillo.Logic.Payment();
                        payment_schedualList = _Payment.insert_Schedual(sales_order);

                        Brillo.Logic.Stock   _Stock            = new Brillo.Logic.Stock();
                        List <item_movement> item_movementList = new List <item_movement>();
                        item_movementList = _Stock.insert_Stock(this, sales_order);

                        if (payment_schedualList != null && payment_schedualList.Count > 0)
                        {
                            payment_schedual.AddRange(payment_schedualList);
                        }

                        if (item_movementList != null && item_movementList.Count > 0)
                        {
                            item_movement.AddRange(item_movementList);
                        }

                        if (sales_order.number == null && sales_order.id_range != null)
                        {
                            Brillo.Logic.Range.branch_Code   = base.app_branch.Where(x => x.id_branch == sales_order.id_branch).FirstOrDefault().code;
                            Brillo.Logic.Range.terminal_Code = base.app_terminal.Where(x => x.id_terminal == sales_order.id_terminal).FirstOrDefault().code;
                            app_document_range app_document_range = base.app_document_range.Where(x => x.id_range == sales_order.id_range).FirstOrDefault();
                            sales_order.number = Brillo.Logic.Range.calc_Range(app_document_range, true);
                            sales_order.RaisePropertyChanged("number");
                            sales_order.is_issued = true;

                            //Save Changes before Printing, so that all fields show up.
                            sales_order.status    = Status.Documents_General.Approved;
                            sales_order.timestamp = DateTime.Now;
                            SaveChanges();

                            Brillo.Document.Start.Automatic(sales_order, app_document_range);
                        }
                        else
                        {
                            sales_order.is_issued = false;
                            sales_order.status    = Status.Documents_General.Approved;
                            sales_order.timestamp = DateTime.Now;
                            SaveChanges();
                        }


                        item_request item_request = new item_request();
                        item_request.name    = sales_order.contact.name;
                        item_request.comment = sales_order.comment;


                        item_request.id_sales_order = sales_order.id_sales_order;
                        item_request.id_branch      = sales_order.id_branch;


                        item_request.request_date = (DateTime)sales_order.delivery_date;

                        foreach (sales_order_detail data in sales_order.sales_order_detail.Where(x => x.IsSelected))
                        {
                            item_request_detail item_request_detail = new entity.item_request_detail();
                            item_request_detail.date_needed_by        = (DateTime)sales_order.delivery_date;
                            item_request_detail.id_sales_order_detail = data.id_sales_order_detail;
                            item_request_detail.urgency = entity.item_request_detail.Urgencies.Medium;
                            int idItem = data.item.id_item;
                            item_request_detail.id_item = idItem;
                            item item = base.items.Where(x => x.id_item == idItem).FirstOrDefault();
                            if (item != null)
                            {
                                item_request_detail.item    = item;
                                item_request_detail.comment = item_request_detail.item.name;
                            }


                            item_request_detail.quantity = data.quantity;

                            foreach (item_dimension item_dimension in item.item_dimension)
                            {
                                item_request_dimension item_request_dimension = new item_request_dimension();
                                item_request_dimension.id_dimension    = item_dimension.id_app_dimension;
                                item_request_dimension.app_dimension   = item_dimension.app_dimension;
                                item_request_dimension.id_measurement  = item_dimension.id_measurement;
                                item_request_dimension.app_measurement = item_dimension.app_measurement;
                                item_request_dimension.value           = item_dimension.value;
                                item_request_detail.item_request_dimension.Add(item_request_dimension);
                            }

                            item_request.item_request_detail.Add(item_request_detail);
                        }
                        base.item_request.Add(item_request);
                        SaveChanges();
                    }

                    NumberOfRecords       += 1;
                    sales_order.IsSelected = false;
                }

                if (sales_order.Error != null)
                {
                    sales_order.HasErrors = true;
                }
            }

            return(true);
        }