void UpdateProCount(BillInfo BI)
        {
            int         idBill       = _serviceBill.GetUncheckBillByIdTable_S(_idTable);
            IEnumerable listBillInfo = _serviceBillInfo.GetListBillInfoByIdBill_S(idBill);

            foreach (BillInfo item in listBillInfo)
            {
                if (BI.id == item.id)
                {
                    if (_serviceBillInfo.UpdateBillInfo_S(new BillInfo()
                    {
                        id = item.id, idBill = idBill, idProduct = item.idProduct, count = (item.count - BI.count)
                    }))
                    {
                        break;
                    }
                    break;
                }
            }
        }
        void ChangeIdBill(int idBillBeChange, int idBillChangeTo)
        {
            IEnumerable listBillInfo = _serviceBillInfo.GetListBillInfoByIdBill_S(idBillBeChange);

            foreach (BillInfo item in listBillInfo)
            {
                if (_serviceBillInfo.UpdateBillInfo_S(new BillInfo()
                {
                    id = item.id, idBill = idBillChangeTo, idProduct = item.idProduct, count = item.count
                }))
                {
                }
            }
        }
Exemple #3
0
        void SwitchTable()
        {
            TableFood table = lsvBill.Tag as TableFood;

            if (table == null)
            {
                return;
            }
            int idBillBeSwitch  = _serviceBill.GetUncheckBillByIdTable_S(table.id);
            int idTableSwitchTo = (cmbTableFood.SelectedItem as TableFood).id;

            if (idTableSwitchTo == table.id)
            {
                return;
            }
            int         idBillSwitchTo             = _serviceBill.GetUncheckBillByIdTable_S(idTableSwitchTo);
            IEnumerable listBillInfo_TableBeSwitch = _serviceBillInfo.GetListBillInfoByIdBill_S(idBillBeSwitch);
            bool        check = false;

            if (idBillSwitchTo == -1)
            {
                if (MessageBox.Show(String.Format("Bạn có chắc chắn muốn chuyển {0} sang {1} không?"
                                                  , table.name, (cmbTableFood.SelectedItem as TableFood).name), "Thông báo", MessageBoxButtons.OKCancel) == DialogResult.OK)
                {
                    if (_serviceBill.AddBill_S(new Bill()
                    {
                        idTable = idTableSwitchTo, dateCheckIn = DateTime.Now, discount = 0, status = 0, totalPrice = 0
                    }))
                    {//Tạo bill mới cho bàn đc chuyển tới
                        int idBillCurrent = _serviceBill.GetMaxIdBill_S().GetValueOrDefault();
                        foreach (BillInfo item in listBillInfo_TableBeSwitch)
                        {//Chuyển tất cả billinfo của bàn được chuyển qua bàn mới
                            if (_serviceBillInfo.UpdateBillInfo_S(new BillInfo()
                            {
                                id = item.id, idBill = idBillCurrent, idProduct = item.idProduct, count = item.count
                            }))
                            { // idBill ở đây là của bill mới tạo nên lấy giá trị max của bill
                                check = true;
                            }
                        }
                    }
                }
            }
            else
            { //Trường hợp này là 2 bàn cùng có bill nên k cần tạo bill mới cho bàn chuyển tới
                if (MessageBox.Show(String.Format("Bạn có chắc chắn muốn gọp {0} và {1} không?"
                                                  , table.name, (cmbTableFood.SelectedItem as TableFood).name), "Thông báo", MessageBoxButtons.OKCancel) == DialogResult.OK)
                {
                    foreach (BillInfo item in listBillInfo_TableBeSwitch)
                    {//Chuyển tất các các billinfo cho bàn đc chuyển tới
                        if (_serviceBillInfo.UpdateBillInfo_S(new BillInfo()
                        {
                            id = item.id, idBill = idBillSwitchTo, idProduct = item.idProduct, count = item.count
                        }))
                        {
                            check = true;
                        }
                    }
                }
            }
            _serviceBill.DeleteBillById_S(idBillBeSwitch);
            if (check)
            {
                _serviceTable.UpdateStatus_S(new TableFood()
                {
                    id = table.id, status = "Trống"
                });
                if (idBillSwitchTo == -1)
                {
                    MessageBox.Show("Chuyển bàn thành công!");
                    _serviceTable.UpdateStatus_S(new TableFood()
                    {
                        id = idTableSwitchTo, status = "Có Khách"
                    });
                }
                else
                {
                    MessageBox.Show("Gọp bàn thành công!");
                }
            }
            //ShowBill(idTableSwitchTo);
            LoadTable();
        }