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); }
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; } }
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(); }
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); }
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); } }
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); }
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); }
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(); } }
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; } }
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; } }
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); } }
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); }
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); } } }
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; } } } } } } }
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; } }