private void CopyToPayableBalance(Sales s, PayableBalance payableBalance) { payableBalance.BalanceYear = Store.ActiveYear; payableBalance.BalanceMonth = Store.ActiveMonth; payableBalance.SalesCode = s.Code; payableBalance.SalesDate = s.Date; payableBalance.CustomerId = s.CustomerId; payableBalance.SalesmanId = s.SalesmanId; payableBalance.PaymentMethod = s.PaymentMethod; payableBalance.IsStatus = s.Status; payableBalance.Notes = s.Notes; payableBalance.GrandTotal = s.GrandTotal; payableBalance.AmountInWords = s.AmountInWords; payableBalance.DueDate = s.DueDate; payableBalance.TermOfPayment = s.TermOfPayment; List <PayableBalanceItem> payableBalanceItems = new List <PayableBalanceItem>(); foreach (var salesItem in s.SalesItems) { PayableBalanceItem pbi = new PayableBalanceItem(); pbi.PayableBalanceId = salesItem.SalesId; pbi.ProductId = salesItem.ProductId; pbi.Qty = salesItem.Qty; pbi.Price = salesItem.Price; payableBalanceItems.Add(pbi); } payableBalance.PayableBalanceItems = payableBalanceItems; }
public void Update(PayableBalance payableBalance) { Transaction tx = null; try { using (var em = EntityManagerFactory.CreateInstance(ds)) { tx = em.BeginTransaction(); //decimal oldGrandTotal = 0; //var oldPayableBalance = GetById(payableBalance.ID); //if (oldPayableBalance != null) //{ // oldGrandTotal = oldPayableBalance.GrandTotal; //} string[] columns = { "BalanceYear", "BalanceMonth", "SalesCode", "SalesDate", "CustomerId", "SalesmanId", "PaymentMethod", "GrandTotal", "IsStatus", "Notes", "AmountInWords", "DueDate", "TermOfPayment", "ModifiedDate" }; object[] values = { payableBalance.BalanceYear, payableBalance.BalanceMonth, payableBalance.SalesCode, payableBalance.SalesDate.ToShortDateString(), payableBalance.CustomerId, payableBalance.SalesmanId, payableBalance.PaymentMethod, payableBalance.GrandTotal, payableBalance.IsStatus == true?1:0, payableBalance.Notes, payableBalance.AmountInWords, payableBalance.DueDate.ToShortDateString(), payableBalance.TermOfPayment, DateTime.Now.ToShortDateString() }; var q = new Query().Select(columns).From(tableName).Update(values).Where("ID").Equal("{" + payableBalance.ID + "}"); em.ExecuteNonQuery(q.ToSql(), tx); payableBalanceItemRepository.Delete(em, tx, payableBalance.ID); foreach (var payableBalanceItem in payableBalance.PayableBalanceItems) { payableBalanceItem.PayableBalanceId = payableBalance.ID; payableBalanceItemRepository.Save(em, tx, payableBalanceItem); } UpdateGrandTotal(em, tx, payableBalance.ID, payableBalance.GrandTotal); //update sales salesRepository.Delete(em, tx, payableBalance.SalesCode); Sales sales = CopyToSales(payableBalance); salesRepository.Save(em, tx, sales); tx.Commit(); } } catch (Exception ex) { tx.Rollback(); throw ex; } }
private Sales CopyToSales(PayableBalance payableBalance) { Sales sales = new Sales(); sales.Code = payableBalance.SalesCode; sales.Date = payableBalance.SalesDate; sales.CustomerId = payableBalance.CustomerId; sales.SalesmanId = payableBalance.SalesmanId; sales.PaymentMethod = payableBalance.PaymentMethod; sales.Status = payableBalance.IsStatus; sales.Notes = payableBalance.Notes; sales.GrandTotal = payableBalance.GrandTotal; sales.AmountInWords = payableBalance.AmountInWords; sales.DueDate = payableBalance.DueDate; sales.PrintCounter = 0; sales.TermOfPayment = payableBalance.TermOfPayment; List <SalesItem> salesItems = new List <SalesItem>(); foreach (var payableBalanceItem in payableBalance.PayableBalanceItems) { SalesItem si = new SalesItem(); si.SalesId = payableBalanceItem.PayableBalanceId; si.ProductId = payableBalanceItem.ProductId; si.Qty = payableBalanceItem.Qty; si.Price = payableBalanceItem.Price; salesItems.Add(si); } sales.SalesItems = salesItems; return(sales); }
private void PopulatePayableBalance(PayableBalance payableBalance) { var item = new ListViewItem(payableBalance.ID.ToString()); item.SubItems.Add(payableBalance.SalesDate.ToString("dd/MM/yyyy")); item.SubItems.Add(payableBalance.SalesCode); item.SubItems.Add(payableBalance.Customer.Name); item.SubItems.Add(payableBalance.Salesman.Name); item.SubItems.Add(payableBalance.GrandTotal.ToString("N0").Replace(",", ".")); lvwPayableBalance.Items.Add(item); }
public void Save(PayableBalance payableBalance) { Transaction tx = null; try { using (var em = EntityManagerFactory.CreateInstance(ds)) { Guid ID = Guid.NewGuid(); tx = em.BeginTransaction(); string[] columns = { "ID", "BalanceYear", "BalanceMonth", "SalesCode", "SalesDate", "CustomerId", "SalesmanId", "PaymentMethod", "GrandTotal", "IsStatus", "Notes", "AmountInWords", "DueDate", "TermOfPayment", "CreatedDate", "ModifiedDate" }; object[] values = { ID, payableBalance.BalanceYear, payableBalance.BalanceMonth, payableBalance.SalesCode, payableBalance.SalesDate.ToShortDateString(), payableBalance.CustomerId, payableBalance.SalesmanId, payableBalance.PaymentMethod, payableBalance.GrandTotal, payableBalance.IsStatus == true?1:0, payableBalance.Notes, payableBalance.AmountInWords, payableBalance.DueDate.ToShortDateString(), payableBalance.TermOfPayment, DateTime.Now.ToShortDateString(), DateTime.Now.ToShortDateString() }; var q = new Query().Select(columns).From(tableName).Insert(values); em.ExecuteNonQuery(q.ToSql(), tx); //save detail foreach (var payableBalanceItem in payableBalance.PayableBalanceItems) { payableBalanceItem.PayableBalanceId = ID; payableBalanceItemRepository.Save(em, tx, payableBalanceItem); } //copy to sales Sales sales = CopyToSales(payableBalance); salesRepository.Save(em, tx, sales); tx.Commit(); } } catch (Exception ex) { tx.Rollback(); throw ex; } }
private void tsbEdit_Click(object sender, EventArgs e) { var userAccess = userAccessRepository.GetAll(); bool isAllowed = userAccess.Exists(u => u.FullName == Store.ActiveUser && u.ObjectName == "Saldo Awal Piutang" && u.IsEdit); if (isAllowed == false && Store.IsAdministrator == false) { MessageBox.Show("Anda tidak dapat merubah", "Perhatian", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { Sales sales = salesRepository.GetByCode(txtSalesCode.Text); //bool isUsed=payableBalanceRepository.IsPayableBalanceUsedByBillReceipt(sales.ID); if (Store.IsPeriodClosed) { MessageBox.Show("Tidak dapat menambah/ubah/hapus \n\n Periode : " + Store.GetMonthName(Store.ActiveMonth) + " " + Store.ActiveYear + "\n\n" + "Sudah Tutup Buku", "Perhatian", MessageBoxButtons.OK, MessageBoxIcon.Information); } //else if (isUsed) //{ // MessageBox.Show("Tidak bisa ubah " + "\n\n" + "Dokumen : " + txtSalesCode.Text + "\n\n" + "dipakai di TTNT ", "Perhatian", // MessageBoxButtons.OK, MessageBoxIcon.Information); //} else { PayableBalance payableBalance = payableBalanceRepository.GetById(new Guid(txtID.Text)); if (Store.ActiveMonth != Store.StartDate.Month || Store.ActiveYear != Store.StartDate.Year) { MessageBox.Show("Tanggal harus sesuai periode awal pemakaian" + "\n" + Store.GetMonthName(Store.StartDate.Month) + " " + Store.StartDate.Year, "Info", MessageBoxButtons.OK, MessageBoxIcon.Information); } else if (payableBalance.IsStatus == true) { MessageBox.Show("Tidak bisa diubah " + "\n\n" + "Dokumen : " + txtSalesCode.Text + "\n\n" + "dipakai di Pelunasan Piutang ", "Perhatian", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { formMode = FormMode.Edit; this.Text = "Saldo Awal Piutang - Edit"; EnableFormForEdit(); } } } }
private void tsbDelete_Click(object sender, EventArgs e) { var userAccess = userAccessRepository.GetAll(); bool isAllowed = userAccess.Exists(u => u.FullName == Store.ActiveUser && u.ObjectName == "Saldo Awal Piutang" && u.IsDelete); if (isAllowed == false && Store.IsAdministrator == false) { MessageBox.Show("Anda tidak dapat menghapus", "Perhatian", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { Sales sales = salesRepository.GetByCode(txtSalesCode.Text); if (Store.IsPeriodClosed) { MessageBox.Show("Tidak dapat menambah/ubah/hapus \n\n Periode : " + Store.GetMonthName(Store.ActiveMonth) + " " + Store.ActiveYear + "\n\n" + "Sudah Tutup Buku", "Perhatian", MessageBoxButtons.OK, MessageBoxIcon.Information); } else if (payableBalanceRepository.IsPayableBalanceUsedByBillReceipt(sales.ID)) { MessageBox.Show("Tidak bisa dihapus " + "\n\n" + "Dokumen : " + txtSalesCode.Text + "\n\n" + "dipakai di TTNT ", "Perhatian", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { PayableBalance payableBalance = payableBalanceRepository.GetById(new Guid(txtID.Text)); if (payableBalance.IsStatus == true) { MessageBox.Show("Tidak bisa menghapus " + "\n\n" + "Dokumen : " + txtSalesCode.Text + "\n\n" + "dipakai di Pelunasan Piutang ", "Perhatian", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { if (MessageBox.Show("Anda yakin ingin menghapus '" + txtSalesCode.Text + "'", "Perhatian", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { payableBalanceRepository.Delete(new Guid(txtID.Text), txtSalesCode.Text); GetLastPayableBalance(); } } } } }
public PayableBalance GetLast() { PayableBalance payableBalance = null; using (var em = EntityManagerFactory.CreateInstance(ds)) { var sql = "SELECT TOP 1 pb.ID, pb.BalanceYear, pb.BalanceMonth, pb.SalesCode, pb.SalesDate, pb.CustomerId, c.CustomerName, " + "pb.SalesmanId, s.SalesmanName, pb.PaymentMethod, pb.GrandTotal, pb.IsStatus, Pb.Notes, pb.CreatedDate, pb.ModifiedDate, " + "pb.AmountInWords, pb.DueDate, pb.TermOfPayment " + "FROM (PayableBalance pb INNER JOIN Customer c ON pb.CustomerId = c.ID) " + "INNER JOIN Salesman s ON pb.SalesmanId = s.ID " + "ORDER BY pb.SalesCode DESC"; payableBalance = em.ExecuteObject <PayableBalance>(sql, new PayableBalanceMapper()); } return(payableBalance); }
private void ViewPayableBalanceDetail(PayableBalance payableBalance) { txtID.Text = payableBalance.ID.ToString(); txtSalesCode.Text = payableBalance.SalesCode; dtpDate.Text = payableBalance.SalesDate.ToShortDateString(); dtpDueDate.Text = payableBalance.DueDate.ToShortDateString(); txtTermOfPayment.Text = payableBalance.TermOfPayment.ToString(); txtCustomerId.Text = payableBalance.CustomerId.ToString(); txtCustomerName.Text = payableBalance.Customer.Name; txtSalesmanId.Text = payableBalance.SalesmanId.ToString(); txtSalesmanName.Text = payableBalance.Salesman.Name; if (payableBalance.PaymentMethod == 1) { optCash.Checked = true; } else if (payableBalance.PaymentMethod == 2) { optCredit.Checked = true; } if (payableBalance.IsStatus == true) { lblPaidStatus.Visible = true; } else { lblPaidStatus.Visible = false; } lblTotal.Text = payableBalance.GrandTotal.ToString(); txtNotes.Text = payableBalance.Notes; }
private void SalesToPayableBalance() { var sales = salesRepository.GetByStatusFalse(); foreach (var s in sales) { var oldPayableBalance = payableBalanceRepository.GetByMonthYear(Store.ActiveMonth, Store.ActiveYear, s.Code); PayableBalance payableBalance = new PayableBalance(); if (oldPayableBalance == null) { CopyToPayableBalance(s, payableBalance); payableBalanceRepository.SaveFromClosingPeriod(payableBalance); } else { payableBalance.ID = oldPayableBalance.ID; CopyToPayableBalance(s, payableBalance); //payableBalance.BalanceYear = Store.ActiveYear; //payableBalance.BalanceMonth = Store.ActiveMonth; //payableBalance.SalesCode = s.Code; //payableBalance.SalesDate = s.Date; //payableBalance.CustomerId = s.CustomerId; //payableBalance.SalesmanId = s.SalesmanId; //payableBalance.PaymentMethod = s.PaymentMethod; //payableBalance.IsStatus = s.Status; //payableBalance.Notes = s.Notes; //payableBalance.GrandTotal = s.GrandTotal; //payableBalance.AmountInWords = s.AmountInWords; //payableBalance.DueDate = s.DueDate; payableBalanceRepository.UpdateFromClosingPeriod(payableBalance); } } }
private void GetLastPayableBalance() { int month = 0; int year = 0; if (Store.ActiveMonth == 1) { month = 12; year = Store.ActiveYear - 1; } else { month = Store.ActiveMonth - 1; year = Store.ActiveYear; } PayableBalance payableBalance = payableBalanceRepository.GetLast(month, year); if (payableBalance != null) { ViewPayableBalanceDetail(payableBalance); LoadPayableItems(new Guid(txtID.Text)); } }
private void GetPayableBalanceById(Guid id) { PayableBalance payableBalance = payableBalanceRepository.GetById(id); ViewPayableBalanceDetail(payableBalance); }
private void SavePayableBalance() { if (dtpDate.Value.Month >= Store.StartDate.Month && dtpDate.Value.Year >= Store.StartDate.Year) { MessageBox.Show("Tanggal harus sebelum periode awal pemakaian" + "\n" + Store.GetMonthName(Store.StartDate.Month) + " " + Store.StartDate.Year, "Info", MessageBoxButtons.OK, MessageBoxIcon.Information); } else if (formMode == FormMode.Add && payableBalanceRepository.IsSalesCodeExisted(txtSalesCode.Text)) { MessageBox.Show("Dokumen : \n\n" + txtSalesCode.Text + "\n\n" + "sudah ada ", "Perhatian", MessageBoxButtons.OK, MessageBoxIcon.Information); } else if (txtSalesCode.Text == "") { MessageBox.Show("Dokumen harus diisi", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information); txtSalesCode.Focus(); } else if (txtCustomerName.Text == "") { MessageBox.Show("Customer harus diisi", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information); btnBrowseCustomer.Focus(); } else if (txtSalesmanName.Text == "") { MessageBox.Show("Salesman harus diisi", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information); btnBrowseSalesman.Focus(); } else if (dtpDate.Value > dtpDueDate.Value) { MessageBox.Show("Tanggal jatuh tempo harus lebih besar dari tanggal transaksi", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information); } else if (lvwPayableBalance.Items.Count == 0) { MessageBox.Show("Detail tidak boleh kosong", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { PayableBalance payableBalance = new PayableBalance(); payableBalance.BalanceYear = Store.StartDate.Year; payableBalance.BalanceMonth = Store.StartDate.Month - 1; payableBalance.SalesCode = txtSalesCode.Text; payableBalance.SalesDate = dtpDate.Value; payableBalance.CustomerId = new Guid(txtCustomerId.Text); payableBalance.SalesmanId = new Guid(txtSalesmanId.Text); payableBalance.DueDate = dtpDueDate.Value; payableBalance.TermOfPayment = int.Parse(txtTermOfPayment.Text); payableBalance.PaymentMethod = 2; payableBalance.GrandTotal = decimal.Parse(lblTotal.Text.Replace(".", "")); payableBalance.Notes = txtNotes.Text; string amountInWords = Store.GetAmounInWords(Convert.ToInt32(payableBalance.GrandTotal)); string firstLetter = amountInWords.Substring(0, 2).Trim().ToUpper(); string theRest = amountInWords.Substring(2, amountInWords.Length - 2); payableBalance.AmountInWords = firstLetter + theRest + " rupiah"; var payableBalanceItems = new List <PayableBalanceItem>(); foreach (ListViewItem item in lvwPayableBalance.Items) { string productId = item.SubItems[0].Text; string price = item.SubItems[3].Text; string qty = item.SubItems[4].Text; PayableBalanceItem pbi = new PayableBalanceItem(); pbi.ProductId = new Guid(productId); pbi.Qty = int.Parse(qty.Replace(".", "")); pbi.Price = decimal.Parse(price.Replace(".", "")); payableBalanceItems.Add(pbi); } payableBalance.PayableBalanceItems = payableBalanceItems; if (formMode == FormMode.Add) { payableBalanceRepository.Save(payableBalance); GetLastPayableBalance(); } else if (formMode == FormMode.Edit) { payableBalance.ID = new Guid(txtID.Text); payableBalance.GrandTotal = decimal.Parse(lblTotal.Text.Replace(".", "")); payableBalanceRepository.Update(payableBalance); } DisableForm(); formMode = FormMode.View; FillCode(); this.Text = "Saldo Awal Piutang"; } }