public void PrintTransaction(LaundryHeaderDataEntity p_headerEntity)
        {
            if(p_headerEntity != null){
                MessageService.ShowInfo("Printing checklist with JO number: " + p_headerEntity.LaundryHeaderID.ToString().PadLeft(6, '0'));

                try{
                    PrintService.PrintCheckList(p_headerEntity, GetPrinterInfo());
                }catch(Exception ex){
                    MessageService.ShowError("Unexpected exception has occurred during printing. Please verify whether printer is installed and online. \n Please check error logs for details.", "Error in Printing", ex);
                }
            }
        }
Пример #2
0
        public CheckListView(LaundryHeaderDataEntity p_headerEntity, int p_jonumber)
        {
            //
            // The InitializeComponent() call is required for Windows Forms designer support.
            //
            InitializeComponent();

            //
            // TODO: Add constructor code after the InitializeComponent() call.
            //
            Resource.setIcon(this, System.IO.Directory.GetCurrentDirectory() + "/images/checklist.ico");
            this.SetTitle("Laundry Check List");
            m_presenter = new CheckListViewPresenter(this, new LaundryChecklistDao());
            m_headerEntity = p_headerEntity;
            m_jonumber = p_jonumber;
        }
Пример #3
0
        public static bool PrintCheckList(LaundryHeaderDataEntity header, PrinterDataEntity printer)
        {
            try
            {
                SetPrinter(printer);
                if (ps == null) return false;

                StringBuilder sb = new StringBuilder();
                sb.Append(SetAlignment("CENTER"));
              	sb.Append(SetFontSize(2));
              	sb.AppendLine("CHECKLIST");
              	sb.Append(SetFontSize(0));
              	sb.AppendLine("");
                sb.Append(SetAlignment("LEFT"));
                sb.AppendLine("SO#:      " + header.LaundryHeaderID.ToString());
                sb.AppendLine("CUSTOMER: " + header.Customer.Name);
                sb.AppendLine("DATE:     " + header.ReceivedDate.ToShortDateString());
                sb.AppendLine("");

                sb.Append(SetAlignment("CENTER"));
                sb.Append("  ITEM               # OF ITEMS");
                sb.AppendLine("");
                int qty = 0;
                foreach(LaundryJobChecklistDataEntity checklist in header.JobChecklistEntities)
                {
                    sb.AppendLine(SetAlignment("CENTER") + "  " + FormatStringAlignment(checklist.Checklist.Name.ToUpper(),"LEFT") +
                                  FormatStringAlignment(checklist.Qty.ToString(), "RIGHT"));
                    qty += checklist.Qty;
                }
                sb.AppendLine("");
                sb.AppendLine("");
                sb.Append(SetAlignment("CENTER"));
                sb.AppendLine("LISTED "+ qty.ToString() +" of " +header.TotalItemQty.ToString() + " ITEMS");
                sb.AppendLine("");
                sb.AppendLine("******************************");
                sb.AppendLine("");
                sb.AppendLine("");
                sb.Append(CutPaper());

                RawPrinterHelper.SendStringToPrinter(ps.PrinterName, sb.ToString());
                return true;
            }
            catch(Exception ex)
            {
                throw ex;
            }
        }
Пример #4
0
        public void getLaundryByID()
        {
            LaundryHeaderDataEntity header = new LaundryHeaderDataEntity();
            LaundryDao dao = new LaundryDao();
            header = dao.GetByID(1);

            Assert.NotNull(header);
            Assert.AreEqual("John Doe", header.Customer.Name);

            foreach(LaundryDetailDataEntity detail in header.DetailEntities)
            {
                Console.WriteLine("service name: " + detail.Service.Name);
                Console.WriteLine("category name: " + detail.Category.Name);
                Console.WriteLine("itemqty: " + detail.ItemQty);
                Console.WriteLine("kilo: " + detail.Kilo);
                Console.WriteLine("amount: " + detail.Amount);
            }
        }
Пример #5
0
 public void Delete(LaundryHeaderDataEntity p_header)
 {
     using(var session = NHibernateHelper.OpenSession())
     {
         using(var transaction = session.BeginTransaction())
         {
             try
             {
                 session.Delete(p_header);
                 transaction.Commit();
             }
             catch(Exception ex)
             {
                 transaction.Rollback();
                 throw ex;
             }
         }
     }
 }
Пример #6
0
        void LaundryNewViewLoad(object sender, EventArgs e)
        {
            setButtonImages();
            Resource.formatAlternatingRows(dataGridView1);
            m_laundryDao = new LaundryDao();
            m_presenter = new LaundryViewPresenter(this, m_laundryDao);
            if(this.Text.Contains("[NEW]")){

                Resource.setIcon(this, System.IO.Directory.GetCurrentDirectory() + "/images/basket_new.ico");
                m_headerEntity = new LaundryHeaderDataEntity();
                m_presenter.SetAllCustomers();
                this.groupBox2.Enabled = this.btnclaim.Enabled = btndelete.Enabled = false;
                txtjoborder.Text = m_presenter.getHeaderID().ToString().PadLeft(6, '0');
                this.dtrecieveDate.Value = DateTime.Now;
                this.dtdueDate.Value = DateTime.Now;
                dataGridView1.AllowUserToDeleteRows = true;
            }else{
                Resource.setIcon(this, System.IO.Directory.GetCurrentDirectory() + "/images/basket_claim.ico");
                cmbCustomers.Enabled = false;
                grpServices.Enabled = false;
                lblchecklist.Enabled = false;
                //btncancel.Enabled = false;
                txtdiscount.Enabled = false;
                dataGridView1.AllowUserToDeleteRows = false;
                //btnprint.Enabled = true;

                btnDeleteDetail.Enabled = false;
                cmbCustomers.DropDownStyle = ComboBoxStyle.DropDown;
                EnableDisableControls(false);
                txtsearch.Focus();
            }
            m_presenter.SetAllServices();
            m_presenter.SetAllCharges();
        }
Пример #7
0
        public void LoadHeaderEntityData(LaundryHeaderDataEntity p_headerEntity)
        {
            this.m_headerEntity = p_headerEntity;
            if(this.m_headerEntity != null){
                btnsaveclose.Enabled = true;
                btnclaim.Enabled = true;
                chkchargesList.Enabled = true;

                txtjoborder.Text = m_headerEntity.LaundryHeaderID.ToString().PadLeft(6, '0');
                cmbCustomers.Text = m_headerEntity.Customer.Name;
                dtrecieveDate.Value = m_headerEntity.ReceivedDate;
                dtdueDate.Value = m_headerEntity.DueDate;
                foreach(LaundryDetailDataEntity detailEntity in m_headerEntity.DetailEntities){
                    dataGridView1.Rows.Add(detailEntity.Service.Name, detailEntity.Category.Name,  detailEntity.Kilo.ToString(), detailEntity.ItemQty.ToString(), detailEntity.Amount.ToString("N2"));
                }
                //chkpaywhenclaim.Enabled = m_headerEntity.PaidFlag;
                for(int i=0;i<chkchargesList.Items.Count;i++){
                    foreach(LaundryJobChargesDataEntity chargeEntity in m_headerEntity.JobChargeEntities){
                        if(chkchargesList.Items[i].ToString().Equals(chargeEntity.Charge.Name)){
                            chkchargesList.SetItemChecked(i, true);
                        }
                    }
                }
                // load amount details
                txtamtdue.Text = m_headerEntity.AmountDue.ToString("N2");
                txttotalamtdue.Text = m_headerEntity.TotalAmountDue.ToString("N2");
                txttotaldiscount.Text = m_headerEntity.TotalDiscount.ToString("0");
                txtdiscount.Text = ((m_headerEntity.TotalDiscount / (m_headerEntity.AmountDue + m_headerEntity.TotalCharge)) * 100).ToString("0");
                totalPayment = m_headerEntity.TotalPayment;
                txtbalance.Text = (m_headerEntity.TotalAmountDue - m_headerEntity.TotalPayment).ToString("N2");
                lblchecklist.Enabled = true;

                if(m_headerEntity.ClaimFlag){
                    lblvoid.Visible = true;
                    lblvoid.Text = "CLAIMED TRANSACTION";
                    lblvoid.ForeColor = Color.Green;
                    EnableDisableControls(false);
                }else{
                    EnableDisableControls(true);
                }

                if(m_headerEntity.VoidFlag){
                    lblvoid.Visible = true;
                    lblvoid.Text = "VOIDED TRANSACTION";
                    lblvoid.ForeColor = Color.Red;
                    //btndelete.Enabled = false;
                    EnableDisableControls(false);
                }else if(!m_headerEntity.ClaimFlag){
                    lblvoid.Visible = false;
                    //btndelete.Enabled = true;
                    //EnableDisableControls(true);
                }
            }else
                MessageService.ShowWarning("Can't find JO Number: " + txtsearch.Text, "Non-existing");
        }
Пример #8
0
        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);
        }
Пример #9
0
        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);
            }
        }
Пример #10
0
        private static void PrintClaimSlip(ref StringBuilder sb, LaundryHeaderDataEntity header, CompanyDataEntity company)
        {
            string[] itemArr;
            string item;

            PrintHeader(ref sb, company);
            sb.Append(SetFontSize(2));
            sb.AppendLine("CLAIM SLIP");
            sb.Append(SetFontSize(0));
            sb.AppendLine("");
            sb.Append(SetAlignment("LEFT"));
            sb.AppendLine("SO# :           " + header.LaundryHeaderID.ToString());
            sb.AppendLine("CUSTOMER :      " + header.Customer.Name.ToUpper());
            sb.AppendLine("DATE RECEIVED : " + header.ReceivedDate.ToShortDateString());
            sb.AppendLine("DATE DUE :      " + header.DueDate.ToShortDateString());
            sb.AppendLine("");

            sb.AppendLine("#OF ITEMS      KLS.        " + SetAlignment("RIGHT") +
                 "ITEM           TOTAL");

            foreach(LaundryDetailDataEntity detail in header.DetailEntities)
            {
                itemArr = detail.Service.Name.Split(' ');
                item ="";
                foreach(string st in itemArr)
                {
                    if(!st.Equals("-")){
                       	item += st.Substring(0,1);
                    }
                }
                item += "-";
                itemArr = detail.Category.Name.Split(' ');
                foreach(string st in itemArr){
                    item += st.Substring(0,1);
                }

                sb.AppendLine(SetAlignment("LEFT") + "  " + FormatStringAlignment(detail.ItemQty.ToString(), "LEFT")  + FormatStringAlignment(detail.Kilo.ToString(),"LEFT"));
                sb.AppendLine(SetAlignment("RIGHT") + FormatStringAlignment(item,"RIGHT") + FormatStringAlignment(detail.Amount.ToString("N2"),"RIGHT"));

            }
            sb.AppendLine("");
            sb.AppendLine("");
            sb.Append(SetAlignment("CENTER"));
            sb.AppendLine(header.TotalItemQty.ToString() + " ITEMS");
            sb.Append(SetAlignment("RIGHT"));
            sb.AppendLine("");
            sb.AppendLine("");

            sb.AppendLine("  TOTAL: " + FormatStringAlignment(header.TotalAmountDue.ToString("N2"),"RIGHT"));
            sb.AppendLine("DEPOSIT: " + FormatStringAlignment(header.TotalPayment.ToString("N2"),"RIGHT"));
            sb.AppendLine("BALANCE: " + FormatStringAlignment((header.TotalAmountDue - header.TotalPayment).ToString("N2"),"RIGHT"));
            PrintFooter(ref sb);
            sb.Append(CutPaper());
        }
Пример #11
0
 private static void PrintTag(ref StringBuilder sb, LaundryHeaderDataEntity header)
 {
     sb.Append(SetAlignment("CENTER"));
     sb.Append(SetFontSize(5));
     sb.AppendLine(header.Customer.Name.ToUpper());
     sb.Append(SetFontSize(4));
     sb.AppendLine(header.LaundryHeaderID.ToString());
     sb.Append(SetFontSize(0));;
     sb.AppendLine("");
     sb.AppendLine("");
     sb.Append(CutPaper());
 }
Пример #12
0
        public static bool PrintLaundrySlip(PrinterDataEntity printer, LaundryHeaderDataEntity header, CompanyDataEntity company)
        {
            try{
                SetPrinter(printer);
                if (ps == null) return false;

                StringBuilder sb = new StringBuilder();
                PrintClaimSlip(ref sb, header, company);
                RawPrinterHelper.SendStringToPrinter(ps.PrinterName, sb.ToString());

                sb = new StringBuilder();
                PrintTag(ref sb, header);
                ps.Copies = 1;
                RawPrinterHelper.SendStringToPrinter(ps.PrinterName, sb.ToString());
                return true;
            }
            catch(Exception ex)
            {
                throw ex;
            }
        }
        private bool SaveDaySummary(LaundryHeaderDataEntity headerEntity)
        {
            try{
                DateTime today = Convert.ToDateTime(DateTime.Now.ToShortDateString()); // daystamp in daysummary should be date only (no time);
                LaundryDaySummaryDataEntity daySummary = m_summaryDao.GetByDay(today);

                headerEntity.PaymentDetailEntities = m_headerEntity.PaymentDetailEntities;

                if(daySummary != null)
                {
                    if(m_view.GetTitle().Contains("NEW"))
                        daySummary.TransCount += 1;
                    //TODO: totalsales should be totalamoutdue - balance
                    if(headerEntity.PaymentDetailEntities[headerEntity.PaymentDetailEntities.Count-1] != null)
                        daySummary.TotalSales += headerEntity.PaymentDetailEntities[headerEntity.PaymentDetailEntities.Count-1].Amount;
                    else
                        daySummary.TotalSales += 0;

                    headerEntity.DaySummary = daySummary;
                    // update daysummary with transcount and totalsales
                    m_summaryDao.Update(daySummary);
                }else{
                    // set daysummary
                    daySummary = new LaundryDaySummaryDataEntity();
                    daySummary.DayStamp = Convert.ToDateTime(DateTime.Now.ToShortDateString());
                    //TODO: totalsales should be amounttender - amount change.
                    if(headerEntity.PaymentDetailEntities[headerEntity.PaymentDetailEntities.Count-1] != null)
                        daySummary.TotalSales += headerEntity.PaymentDetailEntities[headerEntity.PaymentDetailEntities.Count-1].Amount;
                    else
                        daySummary.TotalSales += 0;

                    if(m_view.GetTitle().Contains("NEW"))
                        daySummary.TransCount += 1;

                    // set header entity in daysummary for nhibernate to pickup and map
                    daySummary.HeaderEntities.Add(headerEntity);
                    // set daysummary entity in header for nhibernate to pickup and map
                    m_headerEntity.DaySummary = daySummary;
                    //m_chargeDao.SaveOrUpdate(headerEntity.
                    //m_customerDao.SaveOrUpdate(headerEntity.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
                }
                m_laundryDao.SaveOrUpdate(headerEntity);
            }catch(Exception ex){
                MessageService.ShowError("Unexpected exception occured while saving your entries.\nPlease see log file for technical details.","Error in Saving", ex);
                return false;
            }
            return true;
        }
        public void SaveClicked()
        {
            m_headerEntity = m_view.ProcessHeaderDataEntity();
            new_ChargeEntities = m_headerEntity.JobChargeEntities as List<LaundryJobChargesDataEntity>;
            new_DetailEntities = m_headerEntity.DetailEntities as List<LaundryDetailDataEntity>;
            new_ChecklistEntities = m_headerEntity.JobChecklistEntities as List<LaundryJobChecklistDataEntity>;
            if(m_view.GetTitle().Contains("NEW")){
                if(!SaveDaySummary(m_headerEntity))
                    return;
                if(MessageService.ShowYesNo("Successfully saved entries." + Environment.NewLine +
                                       "Do you want to print this transaction with JO number: " + m_headerEntity.LaundryHeaderID.ToString().PadLeft(6, '0') + "?" ,"Information")){
                    try{
                        PrintService.PrintLaundrySlip(GetPrinterInfo(), m_headerEntity, GetCompanyInfo());
                    }catch(Exception ex){
                        MessageService.ShowError("Unexpected exception has occurred during printing. Please verify whether printer is installed and online. \n Please check error logs for details.", "Error in Printing", ex);
                    }
                }
            }else if(m_view.GetTitle().Contains("CLAIM")){

                SaveUpdateDetails();

                SaveOrDeleteJobCharges();

                if(!SaveUpdateOrDeleteJobCheckList())
                    return;

                if(!SaveDaySummary(m_OriginalHeaderEntity))
                    return;

                MessageService.ShowInfo("Successfully saved entries.","Information");
            }
        }
        public void PrintTransaction()
        {
            m_headerEntity = m_view.ProcessHeaderDataEntity();
            if(m_headerEntity != null){
                MessageService.ShowInfo("Printing transaction with JO number: " + m_headerEntity.LaundryHeaderID.ToString().PadLeft(6, '0'));

                try{
                    PrintService.PrintLaundrySlip(GetPrinterInfo(), m_headerEntity, GetCompanyInfo());
                }catch(Exception ex){
                    MessageService.ShowError("Unexpected exception has occurred during printing. Please verify whether printer is installed and online. \n Please check error logs for details.", "Error in Printing", ex);

                }

            }
        }
 public void getHeaderEntityByJONumber(int jonumber)
 {
     m_OriginalHeaderEntity = m_laundryDao.GetByID(jonumber);
     m_view.LoadHeaderEntityData(m_OriginalHeaderEntity);
 }