public void saveNewPaymentDetail() { // test for saving new paymentdetail for partial payments LaundryHeaderDataEntity header = new LaundryDao().GetByID(2); header.TotalPayment += 50.00M; // accumulate amount tender with current payment // set paymentdetail LaundryPaymentDetailDataEntity paymentdetail = new LaundryPaymentDetailDataEntity(); paymentdetail.Amount = 50.00M; // current amount tender or payment paymentdetail.PaymentDate = Convert.ToDateTime(DateTime.Now.ToShortDateString()); paymentdetail.Header = header; // TODO: should update paidflag in header if total balance = 0. // update daysummary DateTime daysummaryDay = Convert.ToDateTime(DateTime.Now.ToShortDateString()); LaundryDaySummaryDataEntity daysummary = new LaundryDaySummaryDao().GetByDay(daysummaryDay); if(daysummary != null) { daysummary.TotalSales += paymentdetail.Amount; daysummary.DayStamp = daysummaryDay; } LaundryDaySummaryDao dao = new LaundryDaySummaryDao(); dao.SaveOrUpdate(daysummary); // update header, save payment detail etc. header.PaymentDetailEntities.Add(paymentdetail); LaundryDao ldao = new LaundryDao(); ldao.Update(header); }
public void saveNewHeaderAndUpdateDaySummary() { // test for new header but with existing daysummary // should not save new record for daysummary // should only update existing daysummary with transcount and sales DateTime sampleDay = Convert.ToDateTime(DateTime.Now.ToShortDateString()); // daystamp in daysummary should be date only (no time); LaundryDaySummaryDao summarydao = new LaundryDaySummaryDao(); LaundryDaySummaryDataEntity summary = summarydao.GetByDay(sampleDay); if(summary!= null) { LaundryHeaderDataEntity header = new LaundryHeaderDataEntity(); LaundryDetailDataEntity detail = new LaundryDetailDataEntity(); LaundryJobChargesDataEntity jobcharge = new LaundryJobChargesDataEntity(); LaundryCategoryDataEntity category = new LaundryCategoryDao().GetByName("White Garments"); LaundryServiceDataEntity service = new LaundryServiceDao().GetByName("Wash - Dry - Press"); LaundryPriceSchemeDataEntity pricescheme = new LaundryPriceSchemeDao().GetByCategoryService(service,category); CustomerDao custdao = new CustomerDao(); CustomerDataEntity customer = custdao.GetByName("John Dee"); if(customer == null) { customer = new CustomerDataEntity(); customer.Name = "John Dee"; customer.Address = "Cebu"; customer.ContactNumber = "111-1111"; } header.Customer = customer; header.ReceivedDate = DateTime.Now; header.DueDate = DateTime.Now.AddDays(5); // add 5 days for due date detail.Header = header; // set header entity in detail for nhibernate to pickup and map detail.Category = category; detail.Service = service; detail.Kilo = 100; detail.Amount = pricescheme.Price * Convert.ToDecimal(detail.Kilo); detail.ItemQty = 300; jobcharge.Charge = new LaundryChargeDao().GetByName("Delivery"); jobcharge.Header = header; // set header entity in jobcharge for nhibernate to pickup and map header.DetailEntities.Add(detail); // add detail to header details list header.JobChargeEntities.Add(jobcharge); // add charges to header charges list header.ClaimFlag = false; header.AmountDue = detail.Amount; header.TotalItemQty = detail.ItemQty; header.TotalCharge = jobcharge.Charge.Amount; header.TotalDiscount = 50.00M; header.TotalAmountDue = (header.AmountDue + header.TotalCharge) - header.TotalDiscount; header.TotalPayment += 50.00M; // accumulate amount tender with current amount tender // TODO: should update paidflag in header if total balance = 0. // set paymentdetail LaundryPaymentDetailDataEntity paymentdetail = new LaundryPaymentDetailDataEntity(); paymentdetail.Amount = header.TotalPayment; paymentdetail.PaymentDate = Convert.ToDateTime(DateTime.Now.ToShortDateString()); paymentdetail.Header = header; header.PaymentDetailEntities.Add(paymentdetail); summary.TransCount += 1; summary.TotalSales += header.TotalPayment; header.DaySummary = summary; // update daysummary with transcount and totalsales LaundryDaySummaryDao dao = new LaundryDaySummaryDao(); dao.Update(summary); // save header,details,etc. LaundryDao ldao = new LaundryDao(); ldao.SaveOrUpdate(header); } }