public void saveNewHeaderAndNewDaySummary() { // test for new header and new day // should create new record for daysummary LaundryHeaderDataEntity header = new LaundryHeaderDataEntity(); LaundryDetailDataEntity detail = new LaundryDetailDataEntity(); LaundryJobChargesDataEntity jobcharge = new LaundryJobChargesDataEntity(); LaundryCategoryDataEntity category = new LaundryCategoryDao().GetByName("Colored Garments"); LaundryServiceDataEntity service = new LaundryServiceDao().GetByName("Wash - Dry - Fold"); 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 = 5; detail.Amount = pricescheme.Price * Convert.ToDecimal(detail.Kilo); detail.ItemQty = 20; 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 = 0; header.TotalAmountDue = (header.AmountDue + header.TotalCharge) - header.TotalDiscount; header.TotalPayment = header.TotalAmountDue; if(header.TotalPayment == header.TotalAmountDue){ header.PaidFlag = true; } else{ header.PaidFlag = false; } // set paymentdetail LaundryPaymentDetailDataEntity paymentdetail = new LaundryPaymentDetailDataEntity(); paymentdetail.Amount = header.TotalPayment; paymentdetail.PaymentDate = Convert.ToDateTime(DateTime.Now.ToShortDateString()); paymentdetail.Header = header; header.PaymentDetailEntities.Add(paymentdetail); // set daysummary LaundryDaySummaryDataEntity daysummary = new LaundryDaySummaryDataEntity(); daysummary.DayStamp = Convert.ToDateTime(DateTime.Now.ToShortDateString()); daysummary.TotalSales += header.TotalPayment; daysummary.TransCount += 1; daysummary.HeaderEntities.Add(header); // set header entity in daysummary for nhibernate to pickup and map header.DaySummary = daysummary; // set daysummary entity in header for nhibernate to pickup and map custdao.SaveOrUpdate(customer); // save or update customer // save daysummary record; no need to explicitly save header,detail,jobcharges,paymentdetail, etc for new daysummary record // this will handle the saving for the linked tables // FIX: save new header & new daysummary thru laundrydao instead of laundrydaysummary LaundryDao dao = new LaundryDao(); dao.SaveOrUpdate(header); }
public void saveNewHeaderAndNewDaySummary() { // test for new header and new day // should create new record for daysummary RefillHeaderDataEntity header = new RefillHeaderDataEntity(); RefillDetailDataEntity detail = new RefillDetailDataEntity(); RefillTransactionTypeDataEntity transactionType = new RefillTransactionTypeDao().GetByName("Delivery"); RefillProductTypeDataEntity productType = new RefillProductTypeDao().GetByName("5 Gal at 25"); CustomerDao custdao = new CustomerDao(); CustomerDataEntity customer = custdao.GetByName("Vanessa Dee"); if(customer == null) { customer = new CustomerDataEntity(); customer.Name = "Vanessa Dee"; customer.Address = "Cebu"; customer.ContactNumber = "111-1111"; } header.Date = DateTime.Now; header.TransactionType = transactionType; detail.Header = header; // set header entity in detail for nhibernate to pickup and map detail.ProductType = productType; detail.Qty = 10; detail.Amount = productType.Price * Convert.ToDecimal(detail.Qty); detail.StoreBottleQty = 10; detail.StoreCapQty = 10; // update main inventory // TODO: fix proper handling of inventory per type of bottle??? RefillInventoryDao refillInvDao = new RefillInventoryDao(); RefillInventoryHeaderDataEntity inv = new RefillInventoryHeaderDataEntity(); //inv = refillInvDao.GetByName("Cap"); //inv.TotalQty = 500; //inv.QtyOnHand -= detail.StoreCapQty; //inv.QtyReleased += detail.StoreCapQty; //refillInvDao.Update(inv); inv = refillInvDao.GetByName("5 Gal Bottle"); inv.QtyOnHand -= detail.StoreBottleQty; inv.QtyReleased += detail.StoreBottleQty; refillInvDao.Update(inv); // update cust inventory RefillCustomerInventoryDao custInvDao = new RefillCustomerInventoryDao(); RefillCustInventoryHeaderDataEntity custInv= new RefillCustInventoryHeaderDataEntity(); custInv.Customer = customer; custInv.CapsOnHand += detail.StoreCapQty; custInv.BottlesOnHand += detail.StoreBottleQty; header.Customer = customer; header.DetailEntities.Add(detail); // add detail to header details list header.AmountDue = detail.Amount; header.TotalQty = detail.Qty; header.AmountTender = header.AmountDue; if(header.AmountTender == header.AmountTender){ header.PaidFlag = true; } else{ header.PaidFlag = false; } // set paymentdetail RefillPaymentDetailDataEntity paymentdetail = new RefillPaymentDetailDataEntity(); paymentdetail.Amount = header.AmountTender; paymentdetail.PaymentDate = Convert.ToDateTime(DateTime.Now.ToShortDateString()); paymentdetail.Header = header; header.PaymentDetailEntities.Add(paymentdetail); // set daysummary RefillDaySummaryDataEntity daysummary = new RefillDaySummaryDataEntity(); daysummary.DayStamp = Convert.ToDateTime(DateTime.Now.ToShortDateString()); daysummary.TotalSales += header.AmountTender; daysummary.TransCount += 1; daysummary.HeaderEntities.Add(header); // set header entity in daysummary for nhibernate to pickup and map header.DaySummary = daysummary; // set daysummary entity in header for nhibernate to pickup and map custdao.SaveOrUpdate(customer); // save or update customer custInvDao.SaveOrUpdate(custInv); // save daysummary record; no need to explicitly save header,detail,jobcharges,paymentdetail, etc for new daysummary record // this will handle the saving for the linked tables RefillDao ldao = new RefillDao(); ldao.SaveOrUpdate(header); }