Example #1
0
        private void SaveChanges()
        {
            payment payment = paymentViewSource.View.CurrentItem as payment;

            foreach (payment_detail payment_detail in payment.payment_detail)
            {
                if (PaymentDB.payment_schedual.Where(x => x.id_payment_detail == payment_detail.id_payment_detail).FirstOrDefault() != null)
                {
                    payment_schedual payment_schedual = PaymentDB.payment_schedual.Where(x => x.id_payment_detail == payment_detail.id_payment_detail).FirstOrDefault();
                    if (payment_detail.value != payment_schedual.credit)
                    {
                        payment_schedual.credit = payment_detail.value;
                    }
                }
                if (PaymentDB.app_account_detail.Where(x => x.id_payment_detail == payment_detail.id_payment_detail).FirstOrDefault() != null)
                {
                    app_account_detail app_account_detail = PaymentDB.app_account_detail.Where(x => x.id_payment_detail == payment_detail.id_payment_detail).FirstOrDefault();
                    if (payment_detail.value != app_account_detail.credit)
                    {
                        app_account_detail.credit = payment_detail.value;
                    }
                }
            }

            lblCancel_MouseDown(null, null);
        }
Example #2
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            contact contact   = contactViewSource.View.CurrentItem as contact;
            int     Condition = (int)cbxCondition.SelectedValue;

            if (contact.id_contact > 0 && payment_schedualViewSource != null && Condition > 0)
            {
                payment_schedualViewSource.View.Filter = i =>
                {
                    payment_schedual payment_schedual = i as payment_schedual;
                    if (payment_schedual.id_contact == contact.id_contact && payment_schedual.AccountReceivableBalance > 0 && payment_schedual.sales_invoice.id_condition == Condition)
                    {
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                };
            }
            else
            {
                contactViewSource.View.Filter = null;
            }
        }
Example #3
0
        private void btnAddDetail_Click(object sender, RoutedEventArgs e)
        {
            payment        payment           = paymentViewSource.View.CurrentItem as payment;
            payment_detail payment_detailold = paymentpayment_detailViewSource.View.CurrentItem as payment_detail;
            payment_detail payment_detail    = new payment_detail();

            payment_detail.payment = payment;
            payment_detail.value   = 0;


            int id_currencyfx = payment_detailold.payment_schedual.FirstOrDefault().id_currencyfx;

            if (PaymentDB.app_currencyfx.Where(x => x.id_currencyfx == id_currencyfx).FirstOrDefault() != null)
            {
                payment_detail.id_currencyfx  = id_currencyfx;
                payment_detail.app_currencyfx = PaymentDB.app_currencyfx.Where(x => x.id_currencyfx == id_currencyfx).FirstOrDefault();
            }
            int id_payment_schedual = payment_detailold.payment_schedual.FirstOrDefault().id_payment_schedual;

            if (PaymentDB.payment_schedual.Where(x => x.id_payment_schedual == id_payment_schedual).FirstOrDefault() != null)
            {
                payment_schedual _payment_schedual = PaymentDB.payment_schedual.Where(x => x.id_payment_schedual == id_payment_schedual).FirstOrDefault();
                payment_detail.payment_schedual.Add(_payment_schedual);
            }

            payment.payment_detail.Add(payment_detail);
            paymentpayment_detailViewSource.View.Refresh();
        }
Example #4
0
        private void Refince_Click(object sender, RoutedEventArgs e)
        {
            payment_schedual PaymentSchedual = payment_schedualViewSource.View.CurrentItem as payment_schedual;

            cntrl.Curd.Refinance Refinance = new cntrl.Curd.Refinance(cntrl.Curd.Refinance.Mode.AccountReceivable);
            if (payment_schedualViewSource != null)
            {
                if (payment_schedualViewSource.View != null)
                {
                    payment_schedualViewSource.View.Filter = i =>
                    {
                        payment_schedual payment_schedual = (payment_schedual)i;
                        if (payment_schedual.IsSelected == true)
                        {
                            return(true);
                        }
                        else
                        {
                            return(false);
                        }
                    };
                }
            }
            Refinance.objEntity = PaymentDB;
            Refinance.payment_schedualViewSource = payment_schedualViewSource;
            Refinance.id_contact     = PaymentSchedual.id_contact;
            Refinance.id_currency    = PaymentSchedual.app_currencyfx.id_currency;
            Refinance.btnSave_Click += SaveRefinance_Click;
            crud_modal.Visibility    = System.Windows.Visibility.Visible;
            crud_modal.Children.Add(Refinance);
        }
Example #5
0
        private void DataGrid_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e)
        {
            payment_schedual payment_schedual = payment_schedualViewSource.View.CurrentItem as payment_schedual;

            if (payment_schedual.id_payment_schedual == 0)
            {
                payment_schedual Firstpayment_schedual = payment_schedualViewSource.View.OfType <payment_schedual>().ToList().FirstOrDefault() as payment_schedual;

                if (WindowsMode == Mode.AccountPayable)
                {
                    payment_schedual.credit = payment_schedual.credit;
                    payment_schedual.debit  = 0;
                    payment_schedual.AccountPayableBalance = payment_schedual.credit;

                    payment_schedual.app_currencyfx = Firstpayment_schedual.purchase_invoice.app_currencyfx;
                    payment_schedual.RaisePropertyChanged("app_currencyfx");
                    payment_schedual.purchase_invoice    = Firstpayment_schedual.purchase_invoice;
                    payment_schedual.id_purchase_invoice = Firstpayment_schedual.purchase_invoice.id_purchase_invoice;
                    payment_schedual.trans_date          = Firstpayment_schedual.purchase_invoice.trans_date;
                    payment_schedual.status         = entity.Status.Documents_General.Pending;
                    payment_schedual.id_currencyfx  = Firstpayment_schedual.id_currencyfx;
                    payment_schedual.app_currencyfx = Firstpayment_schedual.app_currencyfx;
                    payment_schedual.id_contact     = Firstpayment_schedual.purchase_invoice.id_contact;
                    payment_schedual.contact        = Firstpayment_schedual.purchase_invoice.contact;
                }
                else
                {
                    payment_schedual.credit = 0;
                    payment_schedual.debit  = payment_schedual.debit;
                    payment_schedual.AccountReceivableBalance = payment_schedual.debit;

                    payment_schedual.app_currencyfx = Firstpayment_schedual.sales_invoice.app_currencyfx;
                    payment_schedual.RaisePropertyChanged("app_currencyfx");
                    payment_schedual.sales_invoice    = Firstpayment_schedual.sales_invoice;
                    payment_schedual.id_sales_invoice = Firstpayment_schedual.sales_invoice.id_sales_invoice;
                    payment_schedual.trans_date       = Firstpayment_schedual.sales_invoice.trans_date;
                    payment_schedual.status           = entity.Status.Documents_General.Pending;
                    payment_schedual.app_currencyfx   = Firstpayment_schedual.app_currencyfx;
                    payment_schedual.id_currencyfx    = Firstpayment_schedual.id_currencyfx;
                    payment_schedual.id_contact       = Firstpayment_schedual.sales_invoice.id_contact;
                    payment_schedual.contact          = Firstpayment_schedual.sales_invoice.contact;
                }

                payment_schedual.RaisePropertyChanged("contact");
            }

            if (WindowsMode == Mode.AccountPayable)
            {
                lbldiff.Content = Convert.ToDecimal(lblBalance.Content) - payment_schedualViewSource.View.OfType <payment_schedual>().Sum(x => x.credit);
            }
            else
            {
                lbldiff.Content = Convert.ToDecimal(lblBalance.Content) - payment_schedualViewSource.View.OfType <payment_schedual>().Sum(x => x.debit);
            }
        }
Example #6
0
        private void Refince_Click(object sender, RoutedEventArgs e)
        {
            payment_schedual PaymentSchedual = payment_schedualViewSource.View.CurrentItem as payment_schedual;

            Refinance.objEntity = PaymentDB;
            Refinance.payment_schedualViewSource = payment_schedualViewSource;
            Refinance.id_contact     = PaymentSchedual.id_contact;
            Refinance.id_currency    = PaymentSchedual.app_currencyfx.id_currency;
            Refinance.btnSave_Click += SaveRefinance_Click;
            crud_modal.Visibility    = System.Windows.Visibility.Visible;
            crud_modal.Children.Add(Refinance);
        }
Example #7
0
        private List <payment_schedual> update_Status(payment_schedual payment_schedual)
        {
            List <payment_schedual> payment_schedualList = new List <payment_schedual>();

            if (payment_schedual.payment_detail != null)
            {
                List <payment_detail> payment_detailList = new List <payment_detail>();
            }

            //Basic Cleanup
            //payment_schedual.status = entity.Status.Documents_General.Annulled;
            payment_schedualList.Add(payment_schedual);
            return(payment_schedualList);
        }
Example #8
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            sales_invoice sales_invoice = (sales_invoice)sales_invoiceViewSource.View.CurrentItem as sales_invoice;
            payment       payment       = paymentViewSource.View.CurrentItem as payment;

            /// VALIDATIONS...
            ///
            /// Validates if Contact is not assigned, then it will take user to the Contact Tab.
            if (sales_invoice.contact == null)
            {
                tabContact.Focus();
                return;
            }

            /// Validates if Sales Detail has 0 rows, then take you to Sales Tab.
            if (sales_invoice.sales_invoice_detail.Count == 0)
            {
                tabSales.Focus();
                return;
            }

            /// Validate Payment <= Sales.GrandTotal
            //if (payment.GrandTotal >= payment.GrandTotal_Detail)
            //{
            if (payment.GrandTotalDetail < sales_invoice.GrandTotal)
            {
                tabPayment.Focus();
                return;
            }

            /// If all validation is met, then we can start Sales Process.
            if (sales_invoice.contact != null && sales_invoice.sales_invoice_detail.Count > 0)
            {
                ///Approve Sales Invoice.
                ///Note> Approve includes Save Logic. No need to seperately Save.
                ///Plus we are passing True as default because in Point of Sale, we will always discount Stock.
                SalesInvoiceDB.Approve(true);

                payment_schedual payment_schedual = SalesInvoiceDB.payment_schedual.Where(x => x.id_sales_invoice == sales_invoice.id_sales_invoice && x.debit > 0).FirstOrDefault();
                PaymentDB.Approve(payment_schedual.id_payment_schedual, (bool)chkreceipt.IsChecked);

                //Start New Sale
                New_Sale_Payment();
            }
        }
Example #9
0
        private void btnSave_Click(object sender, RoutedEventArgs e)
        {
            payment_schedual payment_schedual = payment_schedualViewSource.View.CurrentItem as payment_schedual;

            if (payment_schedual != null)
            {
                if (payment_schedual.id_range > 0)
                {
                    app_document_range app_document_range = PaymentDBold.app_document_range.Where(x => x.id_range == payment_schedual.id_range).FirstOrDefault();
                    if (app_document_range != null)
                    {
                        payment_schedual.number = entity.Brillo.Logic.Range.calc_Range(app_document_range, true);

                        entity.Brillo.Document.Start.Manual(payment_schedual, app_document_range);
                    }
                }

                payment_schedual.status = Status.Documents_General.Approved;
                payment_schedual.RaisePropertyChanged("status");

                try
                {
                    PaymentDBold.SaveChanges();
                }
                catch (Exception)
                {
                    throw;
                }

                if (SaveChanges != null)
                {
                    SaveChanges(this, new RoutedEventArgs());
                }

                Grid parentGrid = (Grid)this.Parent;
                parentGrid.Children.Clear();
                parentGrid.Visibility = Visibility.Hidden;
            }
        }
Example #10
0
        private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            contact contact = contactViewSource.View.CurrentItem as contact;

            if (contact.id_contact > 0 && payment_schedualViewSource != null)
            {
                payment_schedualViewSource.View.Filter = i =>
                {
                    payment_schedual payment_schedual = i as payment_schedual;
                    if (payment_schedual.id_contact == contact.id_contact && payment_schedual.AccountReceivableBalance > 0)
                    {
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                };
            }
            else
            {
                contactViewSource.View.Filter = null;
            }
        }
Example #11
0
        public void ReceivePayment(ref dbContext _entity, payment_schedual payment_schedual, int id_range, int id_currencyfx, int id_payment_type,
                                   int id_purchase_return, int id_sales_return, decimal value, string comment, int id_account, DateTime trans_date)
        {
            payment payment = new payment();

            if (id_sales_return > 0)
            {
                payment.id_contact = payment_schedual.contact.id_contact;

                if (id_range != null)
                {
                    payment.id_range = id_range;
                    if (_entity.db.app_document_range.Where(x => x.id_range == payment.id_range).FirstOrDefault() != null)
                    {
                        payment.app_document_range = _entity.db.app_document_range.Where(x => x.id_range == payment.id_range).FirstOrDefault();
                    }
                }


                payment_detail payment_detailreturn = new payment_detail();
                if (_entity.db.app_currencyfx.Where(x => x.id_currencyfx == id_currencyfx).FirstOrDefault() != null)
                {
                    payment_detailreturn.app_currencyfx = _entity.db.app_currencyfx.Where(x => x.id_currencyfx == id_currencyfx).FirstOrDefault();
                }

                payment_detailreturn.id_currencyfx   = id_currencyfx;
                payment_detailreturn.id_payment_type = id_payment_type;

                payment_detailreturn.id_purchase_return = id_purchase_return;
                payment_detailreturn.id_sales_return    = id_sales_return;

                payment_detailreturn.value   = value;
                payment_detailreturn.comment = comment;
                payment_schedual _payment_schedualreturn = new payment_schedual();

                _payment_schedualreturn.credit              = Convert.ToDecimal(value);
                _payment_schedualreturn.parent              = payment_schedual;
                _payment_schedualreturn.expire_date         = payment_schedual.expire_date;
                _payment_schedualreturn.status              = payment_schedual.status;
                _payment_schedualreturn.id_contact          = payment_schedual.id_contact;
                _payment_schedualreturn.id_currencyfx       = payment_schedual.id_currencyfx;
                _payment_schedualreturn.id_purchase_invoice = payment_schedual.id_purchase_invoice;
                _payment_schedualreturn.id_purchase_order   = payment_schedual.id_purchase_order;
                _payment_schedualreturn.id_purchase_return  = payment_schedual.id_purchase_return;
                _payment_schedualreturn.id_sales_invoice    = payment_schedual.id_sales_invoice;
                _payment_schedualreturn.id_sales_order      = payment_schedual.id_sales_order;
                _payment_schedualreturn.id_sales_return     = id_sales_return;
                _payment_schedualreturn.trans_date          = trans_date;
                payment_detailreturn.payment_schedual.Add(_payment_schedualreturn);
                payment.payment_detail.Add(payment_detailreturn);
            }
            else
            {
                payment.id_contact = payment_schedual.contact.id_contact;

                if (id_range > 0)
                {
                    payment.id_range = id_range;
                    if (_entity.db.app_document_range.Where(x => x.id_range == payment.id_range).FirstOrDefault() != null)
                    {
                        payment.app_document_range = _entity.db.app_document_range.Where(x => x.id_range == payment.id_range).FirstOrDefault();
                    }
                }



                payment_detail payment_detail = new payment_detail();
                payment_detail.id_account = id_account;
                if (_entity.db.app_currencyfx.Where(x => x.id_currencyfx == id_currencyfx).FirstOrDefault() != null)
                {
                    payment_detail.app_currencyfx = _entity.db.app_currencyfx.Where(x => x.id_currencyfx == id_currencyfx).FirstOrDefault();
                }
                payment_detail.id_currencyfx   = id_currencyfx;
                payment_detail.id_payment_type = id_payment_type;

                payment_detail.id_purchase_return = id_purchase_return;
                payment_detail.id_sales_return    = id_sales_return;

                payment_detail.value   = value;
                payment_detail.comment = comment;
                payment_schedual _payment_schedual = new payment_schedual();

                _payment_schedual.credit              = Convert.ToDecimal(value);
                _payment_schedual.parent              = payment_schedual;
                _payment_schedual.expire_date         = payment_schedual.expire_date;
                _payment_schedual.status              = payment_schedual.status;
                _payment_schedual.id_contact          = payment_schedual.id_contact;
                _payment_schedual.id_currencyfx       = payment_schedual.id_currencyfx;
                _payment_schedual.id_purchase_invoice = payment_schedual.id_purchase_invoice;
                _payment_schedual.id_purchase_order   = payment_schedual.id_purchase_order;
                _payment_schedual.id_purchase_return  = payment_schedual.id_purchase_return;
                _payment_schedual.id_sales_invoice    = payment_schedual.id_sales_invoice;
                _payment_schedual.id_sales_order      = payment_schedual.id_sales_order;
                _payment_schedual.id_sales_return     = payment_schedual.id_sales_return;
                _payment_schedual.trans_date          = trans_date;


                payment_detail.payment_schedual.Add(_payment_schedual);
                payment.payment_detail.Add(payment_detail);

                //Add Account Logic. With IF FUnction if payment type is Basic Behaviour. If not ignore.
                if (_entity.db.payment_type.Where(x => x.id_payment_type == id_payment_type).FirstOrDefault().payment_behavior == payment_type.payment_behaviours.Normal)
                {
                    app_account_detail app_account_detail = new app_account_detail();
                    if (_entity.db.app_account_session.Where(x => x.id_account == id_account && x.is_active).FirstOrDefault() != null)
                    {
                        app_account_detail.id_session = _entity.db.app_account_session.Where(x => x.id_account == id_account && x.is_active).FirstOrDefault().id_session;
                    }
                    app_account_detail.id_account      = id_account;
                    app_account_detail.id_currencyfx   = payment_detail.id_currencyfx;
                    app_account_detail.id_payment_type = id_payment_type;
                    app_account_detail.trans_date      = trans_date;
                    app_account_detail.debit           = 0;
                    app_account_detail.credit          = Convert.ToDecimal(value);
                    _entity.db.app_account_detail.Add(app_account_detail);
                }
            }


            _entity.db.payments.Add(payment);



            IEnumerable <DbEntityValidationResult> validationresult = _entity.db.GetValidationErrors();

            if (validationresult.Count() == 0)
            {
                _entity.SaveChanges();

                entity.Brillo.Document.Start.Automatic(payment, payment.app_document_range);
            }
        }
Example #12
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);
        }
Example #13
0
        private void btnSave_Click(object sender, RoutedEventArgs e)
        {
            if (purchase_invoice != null)
            {
                if (dbContext.db.payment_schedual.Where(a => a.id_purchase_invoice == purchase_invoice.id_purchase_invoice && a.id_contact == purchase_invoice.id_contact).FirstOrDefault() != null)
                {
                    payment_schedual payment_schedual = dbContext.db.payment_schedual.Where(a => a.id_purchase_invoice == purchase_invoice.id_purchase_invoice && a.id_contact == purchase_invoice.id_contact).FirstOrDefault();

                    if (invoice_total > 0)
                    {
                        payment_detail payment_detail = new payment_detail();
                        payment_detail.value      = invoice_total;
                        payment_detail.id_account = (int)app_accountComboBox.SelectedValue;
                        payment payment = new payment();
                        if (payment_schedual != null)
                        {
                            payment.id_contact           = payment_schedual.id_contact;
                            payment.contact              = payment_schedual.contact;
                            payment_detail.id_currencyfx = payment_schedual.id_currencyfx;

                            if (dbContext.db.payment_type.Where(x => x.is_default).FirstOrDefault() != null)
                            {
                                payment_detail.id_payment_type = dbContext.db.payment_type.Where(x => x.is_default).FirstOrDefault().id_payment_type;
                            }
                            else
                            {
                                MessageBox.Show("Please insert paymnent Type");
                                return;
                            }
                        }

                        payment_detail.App_Name = global::entity.App.Names.PurchaseInvoice;

                        payment_schedual _payment_schedual = new payment_schedual();
                        _payment_schedual.debit                    = invoice_total;
                        _payment_schedual.parent                   = payment_schedual;
                        _payment_schedual.expire_date              = payment_schedual.expire_date;
                        _payment_schedual.status                   = payment_schedual.status;
                        _payment_schedual.id_contact               = payment_schedual.id_contact;
                        _payment_schedual.id_currencyfx            = payment_schedual.id_currencyfx;
                        _payment_schedual.id_purchase_invoice      = payment_schedual.id_purchase_invoice;
                        _payment_schedual.trans_date               = DateTime.Now;
                        _payment_schedual.AccountReceivableBalance = invoice_total;

                        payment_detail.payment_schedual.Add(_payment_schedual);
                        payment.payment_detail.Add(payment_detail);

                        //Add Account Logic. With IF FUnction if payment type is Basic Behaviour. If not ignore.
                        app_account_detail app_account_detail = new app_account_detail();
                        if (dbContext.db.app_account_session.Where(x => x.id_account == payment_detail.id_account && x.is_active).FirstOrDefault() != null)
                        {
                            app_account_detail.id_session = dbContext.db.app_account_session.Where(x => x.id_account == payment_detail.id_account && x.is_active).FirstOrDefault().id_session;
                        }
                        app_account_detail.id_account      = (int)payment_detail.id_account;
                        app_account_detail.id_currencyfx   = payment_schedual.id_currencyfx;
                        app_account_detail.id_payment_type = payment_detail.id_payment_type;
                        app_account_detail.debit           = Convert.ToDecimal(payment_detail.value);
                        app_account_detail.credit          = 0;
                        dbContext.db.app_account_detail.Add(app_account_detail);

                        dbContext.db.payments.Add(payment);

                        IEnumerable <DbEntityValidationResult> validationresult = dbContext.db.GetValidationErrors();
                        if (validationresult.Count() == 0)
                        {
                            dbContext.db.SaveChanges();

                            entity.Brillo.Logic.Document Document = new entity.Brillo.Logic.Document();
                            Document.Document_PrintPaymentReceipt(payment);

                            imgCancel_MouseDown(null, null);
                        }
                    }
                }
                else
                {
                    MessageBox.Show("Please Save and Approve invoice first to Make Payment.", "Cognitivo", MessageBoxButton.OK, MessageBoxImage.Asterisk);
                }
            }
            if (sales_invoice != null)
            {
                PaymentDB PaymentDB = new entity.PaymentDB();

                if (PaymentDB.payment_schedual.Where(a => a.id_sales_invoice == sales_invoice.id_sales_invoice && a.id_contact == sales_invoice.id_contact).FirstOrDefault() != null)
                {
                    payment_schedual payment_schedual = PaymentDB.payment_schedual.Where(a => a.id_sales_invoice == sales_invoice.id_sales_invoice && a.id_contact == sales_invoice.id_contact).FirstOrDefault();

                    if (invoice_total > 0)
                    {
                        payment_detail payment_detail = new payment_detail();
                        payment_detail.value      = invoice_total;
                        payment_detail.id_account = (int)app_accountComboBox.SelectedValue;
                        payment payment = new payment();
                        if (payment_schedual != null)
                        {
                            payment.id_contact           = payment_schedual.id_contact;
                            payment.contact              = payment_schedual.contact;
                            payment_detail.id_currencyfx = payment_schedual.id_currencyfx;
                            if (PaymentDB.payment_type.Where(x => x.is_default).FirstOrDefault() != null)
                            {
                                payment_detail.id_payment_type = PaymentDB.payment_type.Where(x => x.is_default).FirstOrDefault().id_payment_type;
                            }
                            else
                            {
                                MessageBox.Show("Please insert paymnent Type");
                                return;
                            }
                        }

                        payment_detail.IsSelected = true;
                        payment_detail.App_Name   = global::entity.App.Names.SalesInvoice;
                        payment.payment_detail.Add(payment_detail);

                        //payment_schedual _payment_schedual = new payment_schedual();
                        //_payment_schedual.credit = invoice_total;
                        //_payment_schedual.parent = payment_schedual;
                        //_payment_schedual.expire_date = payment_schedual.expire_date;
                        //_payment_schedual.status = payment_schedual.status;
                        //_payment_schedual.id_contact = payment_schedual.id_contact;
                        //_payment_schedual.id_currencyfx = payment_schedual.id_currencyfx;
                        //_payment_schedual.id_sales_invoice = payment_schedual.id_sales_invoice;
                        //_payment_schedual.trans_date = payment_schedual.trans_date;
                        //_payment_schedual.AccountReceivableBalance = invoice_total;

                        //payment_detail.payment_schedual.Add(_payment_schedual);
                        //payment.payment_detail.Add(payment_detail);

                        ////Add Account Logic. With IF FUnction if payment type is Basic Behaviour. If not ignore.
                        //app_account_detail app_account_detail = new app_account_detail();
                        //if (dbContext.db.app_account_session.Where(x => x.id_account == payment_detail.id_account && x.is_active).FirstOrDefault() != null)
                        //{
                        //    app_account_detail.id_session = dbContext.db.app_account_session.Where(x => x.id_account == payment_detail.id_account && x.is_active).FirstOrDefault().id_session;
                        //}
                        //app_account_detail.id_account = (int)payment_detail.id_account;
                        //app_account_detail.id_currencyfx = payment_schedual.id_currencyfx;
                        //app_account_detail.id_payment_type = payment_detail.id_payment_type;
                        //app_account_detail.debit = 0;
                        //app_account_detail.credit = Convert.ToDecimal(payment_detail.value);
                        //dbContext.db.app_account_detail.Add(app_account_detail);

                        PaymentDB.payments.Add(payment);
                        PaymentDB.MakePayment(payment_schedual, payment, true);
                        imgCancel_MouseDown(null, null);
                    }
                }
                else
                {
                    MessageBox.Show("Please Save and Approve invoice first to Make Payment.", "Cognitivo", MessageBoxButton.OK, MessageBoxImage.Asterisk);
                }
            }
        }
Example #14
0
        public void add_paymnet_detail(db db, sales_invoice sales_invoice, object SALDOCUOTA, object IMPORTE)
        {
            if (!(SALDOCUOTA is DBNull))
            {
                decimal      SALDOCUOTAValue = Convert.ToDecimal(SALDOCUOTA);
                payment_type payment_type;
                if (SALDOCUOTAValue < sales_invoice.GrandTotal)
                {
                    if (db.payment_type.Where(x => x.is_default).FirstOrDefault() == null)
                    {
                        payment_type = GenerateDefaultPaymentType();
                        db.payment_type.Add(payment_type);
                        db.SaveChanges();
                    }
                    else
                    {
                        payment_type = db.payment_type.Where(x => x.is_default).FirstOrDefault();
                    }

                    if (IMPORTE is DBNull)
                    {
                        if (sales_invoice.payment_schedual.FirstOrDefault() != null)
                        {
                            payment_schedual payment_schedual = sales_invoice.payment_schedual.FirstOrDefault();
                            decimal          invoice_total    = sales_invoice.GrandTotal;

                            if (invoice_total > 0)
                            {
                                payment_detail payment_detail = new payment_detail();
                                payment_detail.value = invoice_total;

                                if (db.app_account.Where(x => x.id_account_type == app_account.app_account_type.Terminal).FirstOrDefault() != null)
                                {
                                    app_account app_account = db.app_account.Where(x => x.id_account_type == app_account.app_account_type.Terminal).FirstOrDefault();
                                    payment_detail.id_account = app_account.id_account;
                                }
                                else
                                {
                                    app_account app_account = GenerateDefaultApp_Account();
                                    db.app_account.Add(app_account);
                                    payment_detail.app_account = app_account;
                                    payment_detail.id_account  = app_account.id_account;
                                }

                                payment payment = new payment();

                                if (payment_schedual != null)
                                {
                                    payment.id_contact           = payment_schedual.id_contact;
                                    payment.contact              = payment_schedual.contact;
                                    payment_detail.id_currencyfx = payment_schedual.id_currencyfx;

                                    payment_detail.id_payment_type = payment_type.id_payment_type;
                                    payment_detail.payment_type    = payment_type;
                                }

                                payment_detail.App_Name = global::entity.App.Names.SalesInvoice;

                                payment_schedual _payment_schedual = new payment_schedual();
                                _payment_schedual.credit                   = invoice_total;
                                _payment_schedual.parent                   = payment_schedual;
                                _payment_schedual.expire_date              = payment_schedual.expire_date;
                                _payment_schedual.status                   = payment_schedual.status;
                                _payment_schedual.id_contact               = payment_schedual.id_contact;
                                _payment_schedual.id_currencyfx            = payment_schedual.id_currencyfx;
                                _payment_schedual.id_sales_invoice         = payment_schedual.id_sales_invoice;
                                _payment_schedual.trans_date               = payment_schedual.trans_date;
                                _payment_schedual.AccountReceivableBalance = invoice_total;

                                payment_detail.payment_schedual.Add(_payment_schedual);
                                payment.payment_detail.Add(payment_detail);

                                //Add Account Logic. With IF FUnction if payment type is Basic Behaviour. If not ignore.
                                app_account_detail app_account_detail = new app_account_detail();

                                if (db.app_account_session.Where(x => x.id_account == payment_detail.id_account && x.is_active).FirstOrDefault() != null)
                                {
                                    app_account_detail.id_session = db.app_account_session.Where(x => x.id_account == payment_detail.id_account && x.is_active).FirstOrDefault().id_session;
                                }

                                app_account_detail.id_account      = (int)payment_detail.id_account;
                                app_account_detail.id_currencyfx   = payment_schedual.id_currencyfx;
                                app_account_detail.id_payment_type = payment_detail.id_payment_type;
                                app_account_detail.payment_type    = payment_type;
                                app_account_detail.debit           = 0;
                                app_account_detail.credit          = Convert.ToDecimal(payment_detail.value);
                                db.app_account_detail.Add(app_account_detail);

                                try
                                {
                                    db.payments.Add(payment);
                                }
                                catch (Exception ex)
                                {
                                    throw ex;
                                }
                            }
                        }
                    }
                }
            }
        }
Example #15
0
        private void btnSave_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                payment_withholding_tax payment_withholding_tax = new payment_withholding_tax();
                payment_withholding_tax.status     = Status.Documents_General.Pending;
                payment_withholding_tax.id_contact = ((dynamic)_invoiceList.FirstOrDefault()).id_contact;
                if (cbxDocument.SelectedValue != null)
                {
                    payment_withholding_tax.id_range = (int)cbxDocument.SelectedValue;
                }

                payment_withholding_tax.id_currencyfx      = ((dynamic)_invoiceList.FirstOrDefault()).id_currencyfx;
                payment_withholding_tax.withholding_number = txtnumber.Text;
                payment_withholding_tax.value       = (decimal)lbltotalvat.Content;
                payment_withholding_tax.trans_date  = (DateTime)DtpTransdate.SelectedDate;
                payment_withholding_tax.expire_date = (DateTime)DtpTransdate.SelectedDate;


                payment_withholding_details payment_withholding_details = new payment_withholding_details();
                if (_invoiceList.FirstOrDefault().GetType() == typeof(sales_invoice) || _invoiceList.FirstOrDefault().GetType().BaseType == typeof(sales_invoice))
                {
                    sales_invoice sales_invoice = (sales_invoice)_invoiceList.FirstOrDefault();
                    payment_withholding_details.id_sales_invoice = sales_invoice.id_sales_invoice;
                }
                else if (_invoiceList.FirstOrDefault().GetType() == typeof(purchase_invoice) || _invoiceList.FirstOrDefault().GetType().BaseType == typeof(purchase_invoice))
                {
                    purchase_invoice purchase_invoice = (purchase_invoice)_invoiceList.FirstOrDefault();
                    payment_withholding_details.id_purchase_invoice = purchase_invoice.id_purchase_invoice;
                }

                payment_withholding_tax.payment_withholding_details.Add(payment_withholding_details);

                PaymentDB.payment_withholding_tax.Add(payment_withholding_tax);
                payment_schedual _payment_schedual = new payment_schedual();

                if (_invoiceList.FirstOrDefault().GetType().BaseType == typeof(sales_invoice))
                {
                    _payment_schedual.credit = Convert.ToDecimal(lbltotalvat.Content);
                }
                else if (_invoiceList.FirstOrDefault().GetType().BaseType == typeof(purchase_invoice))
                {
                    _payment_schedual.debit = Convert.ToDecimal(lbltotalvat.Content);
                }

                _payment_schedual.parent              = payment_schedual;
                _payment_schedual.expire_date         = payment_schedual.expire_date;
                _payment_schedual.status              = payment_schedual.status;
                _payment_schedual.id_contact          = payment_schedual.id_contact;
                _payment_schedual.id_currencyfx       = payment_schedual.id_currencyfx;
                _payment_schedual.id_purchase_invoice = payment_schedual.id_purchase_invoice;
                _payment_schedual.id_purchase_order   = payment_schedual.id_purchase_order;
                _payment_schedual.id_purchase_return  = payment_schedual.id_purchase_return;
                _payment_schedual.id_sales_invoice    = payment_schedual.id_sales_invoice;
                _payment_schedual.id_sales_order      = payment_schedual.id_sales_order;
                _payment_schedual.id_sales_return     = payment_schedual.id_sales_return;
                _payment_schedual.trans_date          = (DateTime)DtpTransdate.SelectedDate;

                PaymentDB.payment_schedual.Add(_payment_schedual);

                PaymentDB.SaveChanges();

                Grid parentGrid = (Grid)this.Parent;
                parentGrid.Children.Clear();
                parentGrid.Visibility = System.Windows.Visibility.Hidden;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }