public void PrintBillService(MainWindow main)
        {
            BillServiceTemplate billServiceTemplate = new BillServiceTemplate();

            billServiceTemplate.txbName.Text         = main.txbNameCustomerBS.Text;
            billServiceTemplate.txbAddress.Text      = CustomerDAL.Instance.FindByIdBillService(ConvertToIDString(main.txbIdBillServiceBS.Text)).Address;
            billServiceTemplate.txbPhoneNumber.Text  = main.txbPhoneCustomerBS.Text;
            billServiceTemplate.txbEmployeeName.Text = CurrentAccount.Name;
            billServiceTemplate.txbId.Text           = main.txbIdBillServiceBS.Text;
            billServiceTemplate.txbDate.Text         = DateTime.Now.ToShortDateString();
            billServiceTemplate.txbTotal.Text        = main.txbTotalBS.Text;
            billServiceTemplate.txbTotalPaid.Text    = main.txbTotalPaidBS.Text;
            billServiceTemplate.txbRest.Text         = main.txbRestBS.Text;

            List <Parameter> parameters = ParameterDAL.Instance.GetData();

            billServiceTemplate.txbStoreName.Text    = parameters[1].Value;
            billServiceTemplate.txbStoreAddress.Text = parameters[2].Value;
            //print
            PrintDialog pd = new PrintDialog();

            if (pd.ShowDialog() != true)
            {
                return;
            }
            FixedDocument document = new FixedDocument();
            PageContent   temp;

            for (int i = 0; i < main.stkBillServiceInfo.Children.Count; i++) // Duyệt các chi tiết hóa đơn dịch vụ đã chọn
            {
                BillServiceTemplateControl control = main.stkBillServiceInfo.Children[i] as BillServiceTemplateControl;
                BillServiceTemplateControl billServiceTemplateControl = new BillServiceTemplateControl();
                billServiceTemplateControl.txbNumber.Text           = (i + 1).ToString();
                billServiceTemplateControl.txbName.Text             = control.txbName.Text;
                billServiceTemplateControl.txbPrice.Text            = control.txbPrice.Text;
                billServiceTemplateControl.txbCalculateMoney.Text   = control.txbCalculateMoney.Text;
                billServiceTemplateControl.txbQuantity.Text         = control.txbQuantity.Text;
                billServiceTemplateControl.txbTotal.Text            = control.txbTotal.Text;
                billServiceTemplateControl.txbPaidMoney.Text        = control.txbPaidMoney.Text;
                billServiceTemplateControl.txbRest.Text             = control.txbRest.Text;
                billServiceTemplateControl.txbDeliveryDate.Text     = control.txbDeliveryDate.Text;
                billServiceTemplateControl.txbStatus.Text           = control.txbStatus.Text;
                billServiceTemplateControl.btnSwapStatus.Visibility = Visibility.Hidden;
                billServiceTemplateControl.grdMain.ColumnDefinitions.RemoveAt(10);
                billServiceTemplateControl.grdMain.Children.Remove(billServiceTemplateControl.grdMain.Children[11]);
                billServiceTemplate.stkBillServiceInfo.Children.Add(billServiceTemplateControl);

                document.DocumentPaginator.PageSize = new Size(billServiceTemplate.grdPrint.ActualWidth, billServiceTemplate.grdPrint.ActualHeight);
                if (billServiceTemplate.stkBillServiceInfo.Children.Count == 10 || i == main.stkBillServiceInfo.Children.Count - 1)
                {
                    billServiceTemplate.grdPrint.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));
                    billServiceTemplate.grdPrint.Arrange(new Rect(0, 0, billServiceTemplate.grdPrint.DesiredSize.Width, billServiceTemplate.grdPrint.DesiredSize.Height));
                    temp = ConvertToPage(billServiceTemplate.grdPrint);
                    document.Pages.Add(temp);
                    billServiceTemplate.stkBillServiceInfo.Children.Clear();
                }
            }
            pd.PrintDocument(document.DocumentPaginator, main.txbIdBillServiceBS.Text);
        }
        public void ConfirmDeliveried(BillServiceTemplateControl billServiceTemplateControl)
        {
            BillServiceInfo billServiceInfo = BillServiceInfoDAL.Instance.GetBillServiceInfo(ConvertToIDString(checkedItem.txbId.Text), billServiceTemplateControl.txbIdService.Text);

            billServiceInfo.DeliveryDate = DateTime.Now;
            billServiceInfo.Status       = 1;
            //billServiceInfo.PaidMoney = (billServiceInfo.Price + billServiceInfo.Tips) * billServiceInfo.Quantity;
            if (BillServiceInfoDAL.Instance.Update(billServiceInfo))
            {
                CustomMessageBox.Show("Cập nhật giao hàng thành công!", "Thông báo", MessageBoxButton.OK, MessageBoxImage.Asterisk);
                Customer customer = CustomerDAL.Instance.FindById(checkedItem.txbIdCustomer.Text);
                UpdateMembership(customer, ConvertToNumber(billServiceTemplateControl.txbRest.Text));
                checkedItem.btnDeleteBillService.Visibility = Visibility.Hidden;
                checkedItem.txbRest.Text = main.txbRestBS.Text = (double.Parse(main.txbRestBS.Text) - double.Parse(billServiceTemplateControl.txbRest.Text)).ToString();
                billServiceTemplateControl.txbRest.Text                   = "0";
                billServiceTemplateControl.txbStatus.Text                 = "Đã giao";
                billServiceTemplateControl.txbDeliveryDate.Text           = DateTime.Now.ToShortDateString();
                billServiceTemplateControl.btnSwapStatus.IsHitTestVisible = false;
                billServiceTemplateControl.btnSwapStatus.Visibility       = Visibility.Hidden;
                billServiceTemplateControl.txbStatus.Foreground           = (System.Windows.Media.Brush) new BrushConverter().ConvertFrom("#FF01B500");
                if (BillServiceInfoDAL.Instance.IsFullDeliveried(ConvertToIDString(checkedItem.txbId.Text)))
                {
                    BillService billService = BillServiceDAL.Instance.GetBillService(ConvertToIDString(checkedItem.txbId.Text));
                    billService.Status = 1;
                    if (BillServiceDAL.Instance.Update(billService))
                    {
                        checkedItem.txbStatus.Text       = "Đã giao";
                        checkedItem.txbStatus.Foreground = (System.Windows.Media.Brush) new BrushConverter().ConvertFrom("#FF01B500");
                    }
                }
            }
            else
            {
                CustomMessageBox.Show("Cập nhật thất bại!", "Thông báo", MessageBoxButton.OK, MessageBoxImage.Error);
            }
            //billServiceTemplateControl.icStatus.Kind = MaterialDesignThemes.Wpf.PackIconKind.TickCircleOutline;
            //billServiceTemplateControl.btnSwapStatus.Foreground = (System.Windows.Media.Brush)new BrushConverter().ConvertFrom("#FF01B500");
        }
        public void PickBillService(BillServiceControl billServiceControl)
        {
            BillService            billService      = BillServiceDAL.Instance.GetBillService(ConvertToIDString(billServiceControl.txbId.Text));
            Customer               customer         = CustomerDAL.Instance.FindById(billService.IdCustomer.ToString());
            List <BillServiceInfo> billServiceInfos = BillServiceInfoDAL.Instance.GetBillServiceInfos(billService.IdBillService.ToString());

            if (checkedItem != null) // Đưa lại màu xám
            {
                checkedItem.txbId.Foreground           = (System.Windows.Media.Brush) new BrushConverter().ConvertFrom("#FF4F4F4F");
                checkedItem.txbNameCustomer.Foreground = (System.Windows.Media.Brush) new BrushConverter().ConvertFrom("#FF4F4F4F");
                checkedItem.txbTotal.Foreground        = (System.Windows.Media.Brush) new BrushConverter().ConvertFrom("#FF4F4F4F");
                checkedItem.txbRest.Foreground         = (System.Windows.Media.Brush) new BrushConverter().ConvertFrom("#FF4F4F4F");
                if (checkedItem.txbStatus.Text == "Đã giao")
                {
                    checkedItem.txbStatus.Foreground = (System.Windows.Media.Brush) new BrushConverter().ConvertFrom("#FF01B500");
                }
                else
                {
                    checkedItem.txbStatus.Foreground = (System.Windows.Media.Brush) new BrushConverter().ConvertFrom("#FF4F4F4F");
                }
            }
            //Chuyển sang màu đang được chọn
            checkedItem = billServiceControl;

            checkedItem.txbId.Foreground           = (System.Windows.Media.Brush) new BrushConverter().ConvertFrom("#FF00329E");
            checkedItem.txbNameCustomer.Foreground = (System.Windows.Media.Brush) new BrushConverter().ConvertFrom("#FF00329E");
            checkedItem.txbTotal.Foreground        = (System.Windows.Media.Brush) new BrushConverter().ConvertFrom("#FF00329E");
            checkedItem.txbRest.Foreground         = (System.Windows.Media.Brush) new BrushConverter().ConvertFrom("#FF00329E");
            if (checkedItem.txbStatus.Text == "Chưa giao")
            {
                checkedItem.txbStatus.Foreground = (System.Windows.Media.Brush) new BrushConverter().ConvertFrom("#FF00329E");
            }
            //Hiển thị thông tin
            main.txbIdBillServiceBS.Text = billServiceControl.txbId.Text;
            main.txbCreateDateBS.Text    = billService.CreatedDate.ToShortDateString();
            main.txbNameCustomerBS.Text  = customer.CustomerName;
            main.txbPhoneCustomerBS.Text = customer.PhoneNumber;
            main.txbTotalBS.Text         = SeparateThousands(billService.Total.ToString());
            main.txbTotalPaidBS.Text     = SeparateThousands(billService.TotalPaidMoney.ToString());
            main.txbRestBS.Text          = billServiceControl.txbRest.Text;
            main.stkBillServiceInfo.Children.Clear();
            for (int i = 0; i < billServiceInfos.Count; i++)   //Hiển thị list BillServiceInfo
            {
                Service service = ServiceDAL.Instance.FindById(billServiceInfos[i].IdService.ToString());
                BillServiceTemplateControl billServiceTemplateControl = new BillServiceTemplateControl();
                billServiceTemplateControl.txbNumber.Text         = (i + 1).ToString();
                billServiceTemplateControl.txbIdService.Text      = billServiceInfos[i].IdService.ToString();
                billServiceTemplateControl.txbName.Text           = service.Name;
                billServiceTemplateControl.txbPrice.Text          = SeparateThousands(billServiceInfos[i].Price.ToString());
                billServiceTemplateControl.txbCalculateMoney.Text = SeparateThousands((billServiceInfos[i].Price + billServiceInfos[i].Tips).ToString());
                billServiceTemplateControl.txbPaidMoney.Text      = SeparateThousands(billServiceInfos[i].PaidMoney.ToString());
                billServiceTemplateControl.txbQuantity.Text       = billServiceInfos[i].Quantity.ToString();
                billServiceTemplateControl.txbTotal.Text          = SeparateThousands((ConvertToNumber(billServiceTemplateControl.txbCalculateMoney.Text) * billServiceInfos[i].Quantity).ToString());
                if (billServiceInfos[i].Status == 1)  // Đã giao thì bỏ button swap và chuyển màu sang success
                {
                    billServiceTemplateControl.txbDeliveryDate.Text     = billServiceInfos[i].DeliveryDate.ToShortDateString();
                    billServiceTemplateControl.btnSwapStatus.Visibility = Visibility.Hidden;
                    billServiceTemplateControl.txbStatus.Text           = "Đã giao";
                    billServiceTemplateControl.txbStatus.Foreground     = (System.Windows.Media.Brush) new BrushConverter().ConvertFrom("#FF01B500");
                }
                else
                {
                    billServiceTemplateControl.txbRest.Text   = SeparateThousands((ConvertToNumber(billServiceTemplateControl.txbTotal.Text) - billServiceInfos[i].PaidMoney).ToString());
                    billServiceTemplateControl.txbStatus.Text = "Chưa giao";
                }
                main.stkBillServiceInfo.Children.Add(billServiceTemplateControl);
            }
            main.btnPrintBS.IsEnabled = true;
        }