private void c1Combo2_SelectedValueChanged(object sender, EventArgs e) { if (txMode == DataEntryModes.Add) { try { // get data dsCore ds = new dsCore(); OrdersTableAdapter od = new OrdersTableAdapter(); OrderDetailsTableAdapter ta = new OrderDetailsTableAdapter(); ds.EnforceConstraints = false; od.Connection = AppHelper.GetDbConnection(); od.FillByID(ds.Orders, (int)c1Combo2.SelectedValue); ta.Connection = AppHelper.GetDbConnection(); ta.FillNotCompleted(ds.OrderDetails, (int)c1Combo2.SelectedValue); // clear grid dsCore1.OrderDetails.Clear(); // fill grid with new data _grid.Redraw = false; DataRowView dv = (DataRowView)this.BindingContext[dsCore1, "Orders"].Current; dv["CompanyID"] = ds.Orders[0].CompanyID; dv["CurrencyID"] = ds.Orders[0].CurrencyID; if (!ds.Orders[0].IsCompanyIDNull()) c1Combo1.SelectedValue = ds.Orders[0].CompanyID; foreach (dsCore.OrderDetailsRow src in ds.OrderDetails.Rows) { dsCore.OrderDetailsRow row = dsCore1.OrderDetails.NewOrderDetailsRow(); row.OrderID = (int)dv["ID"]; row.ItemID = src.ItemID; row.ItemCode = src.ItemCode; row.ItemName = src.ItemName; row.Quantity = src.Quantity; row.UnitPrice = src.UnitPrice; row.TaxPct = src.TaxPct; row.Remarks = src.Remarks; row.MeasureCode = src.MeasureCode; dsCore1.OrderDetails.AddOrderDetailsRow(row); } // redraw grid _grid.Redraw = true; _grid.Refresh(); } catch (Exception ex) { // textfile logging Logger.ErrorRoutine(ex); // screen logging RibbonMessageBox.Show("ERROR Retrieving Detail Data: \n" + ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } }
private void btnSave_Click(object sender, EventArgs e) { // Validate all required field(s) if (!ValidateUserInput()) return; // if you get here, it means that all user input has been validated Cursor = Cursors.AppStarting; try { // End editing BindingContext[dsCore1, "Orders"].EndCurrentEdit(); BindingContext[dsCore1, "OrderDetails"].EndCurrentEdit(); // There are changes that need to be made, so attempt to update the datasource by // calling the update method and passing the dataset and any parameters. if (txMode == DataEntryModes.Add) { // copy master record dari main dataset // harus dilakukan krena main dataset sebelumnya sudah // AcceptChanges padahal belum diupdate ke database dsChanges = new dsCore(); dsChanges.EnforceConstraints = false; dsChanges.Orders.Rows.Add(((DataRowView)this.BindingContext[dsCore1, "Orders"].Current).Row.ItemArray); // copy juga detail record dari main dataset for (int i = 0; i < dsCore1.OrderDetails.Rows.Count; i++) dsChanges.OrderDetails.Rows.Add(dsCore1.OrderDetails.Rows[i].ItemArray); // persist changes to database daOrders1.Update(dsChanges.Orders); daOrderDetails1.Update(dsChanges.OrderDetails); // inform user, successful DialogResult dr = RibbonMessageBox.Show("Data SUCCESFULLY saved to database\n" + "Do you want to print this document?\n", Application.ProductName, MessageBoxButtons.YesNo, MessageBoxIcon.Question); // ask user for voucher print if (dr == DialogResult.Yes) { Cursor = Cursors.AppStarting; Form fx = new frmReportViewer1(ReportHelper1.LoadDeliveryOrderForm(c1TextBox1.Text)); fx.WindowState = FormWindowState.Maximized; fx.ShowDialog(); Cursor = Cursors.Default; } } else { // persist changes to database daOrders1.Update(dsCore1.Orders); daOrderDetails1.Update(dsCore1.OrderDetails); // inform user for successful update RibbonMessageBox.Show("Changes SUCCESFULLY saved to database", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Information); } // success, close form btnClose.PerformClick(); } catch (SqlException ex) { // textfile logging Logger.ErrorRoutine(ex); // screen logging if (ex.Number != 2601) RibbonMessageBox.Show("ERROR Saving Data: \n" + ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); else RibbonMessageBox.Show("ERROR Saving Data:\n" + "Document number [" + c1TextBox1.Text + "]already existed in database\n" + "Please change this document number and try saving again.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } catch (Exception ex) { // textfile logging Logger.ErrorRoutine(ex); // screen logging RibbonMessageBox.Show("ERROR Saving Data: \n" + ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } Cursor = Cursors.Default; }
private void GenerateInvoice(dsCore ds) { dsCore dt = new dsCore(); dt.EnforceConstraints = false; // copy master record dt.Orders.Rows.Add(ds.Orders[0].ItemArray); // copy juga detail record dari main dataset for (int i = 0; i < ds.OrderDetails.Rows.Count; i++) dt.OrderDetails.Rows.Add(ds.OrderDetails.Rows[i].ItemArray); // ubah jenis transaksi dt.Orders[0].ParentID = ds.Orders[0].ID; dt.Orders[0].OrderNo = DbHelper.GenerateNewOrderID(TransactionTypes.TX_PURCHASE_INVOICE, dt.Orders[0].OrderDate.Year); dt.Orders[0].OrderType = TransactionTypes.TX_PURCHASE_INVOICE; dt.Orders[0].OrderValue = ds.Orders[0].OrderValue; // persist changes to database daOrders1.Update(dt.Orders); daOrderDetails1.Update(dt.OrderDetails); // remember result InvoiceID = dt.Orders[0].ID; InvoiceNum = dt.Orders[0].OrderNo; }
private void GeneratePayment(dsCore ds) { dsCore dt = new dsCore(); dt.EnforceConstraints = false; // copy master record dt.Orders.Rows.Add(ds.Orders[0].ItemArray); // ubah jenis transaksi dt.Orders[0].ParentID = ds.Orders[0].ID; dt.Orders[0].OrderNo = DbHelper.GenerateNewOrderID(TransactionTypes.TX_PURCHASE_PAYMENT, dt.Orders[0].OrderDate.Year); dt.Orders[0].OrderType = TransactionTypes.TX_PURCHASE_PAYMENT; dt.Orders[0].OrderValue = Convert.ToDouble(c1NumericEdit1.Value); // detail payment dsCore.OrderDetailsRow row = dt.OrderDetails.NewOrderDetailsRow(); row.OrderID = dt.Orders[0].ID; row.ReferenceID = InvoiceID; row.UnitPrice = Convert.ToDouble(c1NumericEdit1.Value); row.Quantity = 1; row.TaxPct = 0; if (!dt.Orders[0].IsRemarksNull()) row.Remarks = ds.Orders[0].Remarks; dt.OrderDetails.AddOrderDetailsRow(row); // persist changes to database daOrders1.Update(dt.Orders); daOrderDetails1.Update(dt.OrderDetails); // remember result PaymentID = dt.Orders[0].ID; PaymentNum = dt.Orders[0].OrderNo; }
private void btnSave_Click(object sender, EventArgs e) { // Validate all required field(s) if (!ValidateUserInput()) return; // if you get here, it means that all user input has been validated Cursor = Cursors.AppStarting; try { // End editing BindingContext[dsCore1, "Orders"].EndCurrentEdit(); BindingContext[dsCore1, "OrderDetails"].EndCurrentEdit(); // There are changes that need to be made, so attempt to update the datasource by // calling the update method and passing the dataset and any parameters. if (txMode == DataEntryModes.Add) { // copy master record dari main dataset // harus dilakukan krena main dataset sebelumnya sudah // AcceptChanges padahal belum diupdate ke database dsChanges = new dsCore(); dsChanges.EnforceConstraints = false; dsChanges.Orders.Rows.Add(((DataRowView)this.BindingContext[dsCore1, "Orders"].Current).Row.ItemArray); // copy juga detail record dari main dataset for (int i = 0; i < dsCore1.OrderDetails.Rows.Count; i++) dsChanges.OrderDetails.Rows.Add(dsCore1.OrderDetails.Rows[i].ItemArray); // persist changes to database daOrders1.Update(dsChanges.Orders); daOrderDetails1.Update(dsChanges.OrderDetails); // only generate invoice GenerateInvoice(dsChanges); // generate payment record for cash payment if (radioButton1.Checked || Convert.ToDouble(c1NumericEdit1.Value) > 0) GeneratePayment(dsChanges); // inform user for successful update RibbonMessageBox.Show("Data SUCCESFULLY saved to database\n" + (InvoiceID < 0 ? "" : "New Invoice Voucher [" + InvoiceNum + "] created automatically\n") + (PaymentID < 0 ? "" : "New Payment Voucher [" + PaymentNum + "] created automatically\n"), Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Information); } else { // persist changes to database daOrders1.Update(dsCore1.Orders); daOrderDetails1.Update(dsCore1.OrderDetails); // inform user for successful update RibbonMessageBox.Show("Changes SUCCESFULLY saved to database", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Information); } // success, close form btnClose.PerformClick(); } catch (SqlException ex) { // textfile logging Logger.ErrorRoutine(ex); // screen logging if (ex.Number != 2601) RibbonMessageBox.Show("ERROR Saving Data: \n" + ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); else RibbonMessageBox.Show("ERROR Saving Data:\n" + "Document number [" + c1TextBox1.Text + "]already existed in database\n" + "Please change this document number and try saving again.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } catch (Exception ex) { // textfile logging Logger.ErrorRoutine(ex); // screen logging RibbonMessageBox.Show("ERROR Saving Data: \n" + ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } Cursor = Cursors.Default; }
private void c1Combo1_SelectedValueChanged(object sender, EventArgs e) { if (txMode == DataEntryModes.Add) { try { // prevent redraw _grid.Redraw = false; // get data dsCore ds = new dsCore(); OrdersTableAdapter od = new OrdersTableAdapter(); ds.EnforceConstraints = false; od.Connection = AppHelper.GetDbConnection(); od.FillOutstandingSalesInvoices(ds.Orders, (int)c1Combo1.SelectedValue); // clear grid dsCore1.OrderDetails.Clear(); // fill grid with new data DataRowView dv = (DataRowView)this.BindingContext[dsCore1, "Orders"].Current; foreach (dsCore.OrdersRow src in ds.Orders.Rows) { dsCore.OrderDetailsRow row = dsCore1.OrderDetails.NewOrderDetailsRow(); row.OrderID = (int)dv["ID"]; row.ReferenceID = src.ID; row.ReferenceNo = src.OrderNo; row.ReferenceDate = src.OrderDate; row.ReferenceValue = src.OutstandingValue; row.UnitPrice = src.OutstandingValue; row.Quantity = 1; row.TaxPct = 0; if (!src.IsRemarksNull()) row.Remarks = src.Remarks; dsCore1.OrderDetails.AddOrderDetailsRow(row); } // recalculate CountDetails(); // redraw grid _grid.Redraw = true; _grid.Refresh(); } catch (Exception ex) { // textfile logging Logger.ErrorRoutine(ex); // screen logging RibbonMessageBox.Show("ERROR Retrieving Detail Data: \n" + ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } }