Пример #1
0
        private void btnRemoveDrink_Click(object sender, EventArgs e)
        {
            Validation validation = new Validation();

            string content = "";

            content += validation.Check_Empty("ID", txtIDRemove);

            if (content != "")
            {
                MessageBox.Show(content, "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                LinkedListHD <DoUong> .Node NodeDoUong = Form2.menu.pHead;
                while (NodeDoUong != null)
                {
                    if (NodeDoUong.data.ID.ToString() == txtIDRemove.Text)
                    {
                        Form2.menu.Remove(NodeDoUong);
                        MessageBox.Show("Đồ uống đã được xóa khỏi menu!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.None);
                        txtIDRemove.Text = "";
                        return;
                    }
                    NodeDoUong = NodeDoUong.pNext;
                }
                MessageBox.Show("Đồ uống không có trong menu!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                txtIDRemove.Text = "";
            }
        }
Пример #2
0
        private void btnPrint_Click(object sender, EventArgs e)
        {
            frmHoaDon = new frmHoaDon();

            frmHoaDon.Width  = 400;
            frmHoaDon.Height = 400;

            if (hoadon == null)
            {
                MessageBox.Show("Mời bạn order đồ uống!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            frmHoaDon.lblIDBill.Text      = hoadon.IdHD + "";
            frmHoaDon.lblNameCusBill.Text = txtNameCusOrder.Text;
            frmHoaDon.txtBill.Text        = Show_Textbox() + "\r\n";
            frmHoaDon.lblTotalBill.Text   = lblTotalOrder.Text + "";

            frmHoaDon.ShowDialog();

            txtNameCusOrder.Text = "";
            txtIDOrder.Text      = "";
            txtAmountOrder.Text  = "";
            lblPriceOrder.Text   = "";
            lblTotalOrder.Text   = "";
            Total = 0;
            IDHoaDon++;

            dsHoaDon = new LinkedListHD <HoaDon>();
        }
Пример #3
0
        private void btnAddAfter_Click(object sender, EventArgs e)
        {
            Validation validation = new Validation();

            string content = "";

            content += validation.Check_Empty("ID", txtIDAdd);
            content += validation.Check_Empty("Name", txtNameAdd);
            content += validation.Check_Empty("Promotion", txtPromotionAdd);
            content += validation.Check_Empty("Price", txtPriceAdd);
            content += validation.Check_Empty("After ID", txtIDAfter);
            if (content != "")
            {
                MessageBox.Show(content, "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                LinkedListHD <DoUong> .Node NodeDoUong = Form2.menu.pHead;
                while (NodeDoUong != null)
                {
                    if (NodeDoUong.data.ID.ToString() == txtIDAdd.Text)
                    {
                        MessageBox.Show("ID đã tồn tại!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        txtIDAdd.Text = "";
                        return;
                    }
                    NodeDoUong = NodeDoUong.pNext;
                }
                DoUong douong = new DoUong();
                douong.ID        = int.Parse(txtIDAdd.Text);
                douong.Name      = txtNameAdd.Text;
                douong.Promotion = int.Parse(txtPromotionAdd.Text);
                douong.Price     = double.Parse(txtPriceAdd.Text);

                LinkedListHD <DoUong> .Node pSearch = Form2.menu.pHead;
                while (pSearch != null)
                {
                    if (pSearch.data.ID == int.Parse(txtIDAfter.Text))
                    {
                        Form2.menu.AddAfter(douong, pSearch);
                        MessageBox.Show("Đồ uống đã được thêm vào menu.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.None);
                        txtIDAdd.Text        = "";
                        txtNameAdd.Text      = "";
                        txtPromotionAdd.Text = "";
                        txtPriceAdd.Text     = "";
                        txtIDAfter.Text      = "";
                        return;
                    }
                    pSearch = pSearch.pNext;
                }
                MessageBox.Show("Không tìm thấy After ID. Đồ uống được thêm vào cuối menu.", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                Form2.menu.Add(douong);
            }
        }
Пример #4
0
        public string Show_Textbox()
        {
            string output = "";

            LinkedListHD <HoaDon> .Node NodeHoaDon = dsHoaDon.pHead;
            while (NodeHoaDon != null)
            {
                output    += NodeHoaDon.data.douong.Name + "\r\n" + "Amount: " + NodeHoaDon.data.Count + "\r\n";
                NodeHoaDon = NodeHoaDon.pNext;
            }
            return(output);
        }
Пример #5
0
 public string Get_Price(string id)
 {
     LinkedListHD <DoUong> .Node NodeDoUong = menu.pHead;
     while (NodeDoUong != null)
     {
         if (NodeDoUong.data.ID.ToString() == id)
         {
             return(NodeDoUong.data.Price + "");
         }
         NodeDoUong = NodeDoUong.pNext;
     }
     return("");
 }
Пример #6
0
        //public double Price_Min(LinkedListHD<DoUong> D)
        //{
        //    LinkedListHD<DoUong>.Node Node = D.pHead;
        //    double min = Node.data.Price;
        //    while (Node != null)
        //    {
        //        if (Node.data.Price < min)
        //        {
        //            min = Node.data.Price;
        //        }
        //        Node = Node.pNext;
        //    }
        //    return min;
        //}

        private void btnIncrease_Click(object sender, EventArgs e)
        {
            LinkedListHD <DoUong> increase = new LinkedListHD <DoUong>();


            double temp = 0;

            while (increase.count != Form2.menu.count)
            {
                double min = 10000000000;
                LinkedListHD <DoUong> .Node NodeDoUong = Form2.menu.pHead;

                while (NodeDoUong != null)
                {
                    if (NodeDoUong.data.Price <= min && NodeDoUong.data.Price > temp)
                    {
                        min = NodeDoUong.data.Price;
                    }
                    NodeDoUong = NodeDoUong.pNext;
                }

                LinkedListHD <DoUong> .Node Node = Form2.menu.pHead;

                while (Node != null)
                {
                    if (Node.data.Price == min)
                    {
                        DoUong douong = Node.data;
                        increase.Add(douong);
                    }
                    Node = Node.pNext;
                }
                temp = min;
            }


            txbMoney.Text = "";
            LinkedListHD <DoUong> .Node PrintNode = increase.pHead;
            while (PrintNode != null)
            {
                if (PrintNode.data.ID.ToString().Length < 2)
                {
                    txbMoney.Text += PrintNode.data.ID + "                   " + PrintNode.data.Price + "\r\n";
                }
                else
                {
                    txbMoney.Text += PrintNode.data.ID + "                 " + PrintNode.data.Price + "\r\n";
                }
                PrintNode = PrintNode.pNext;
            }
        }
Пример #7
0
 private void PromotionsUC_Load(object sender, EventArgs e)
 {
     LinkedListHD <DoUong> .Node NodeMenu = Form2.menu.pHead;
     while (NodeMenu != null)
     {
         if (NodeMenu.data.ID.ToString().Length < 2)
         {
             txbPromotions.Text += NodeMenu.data.ID + "                   " + NodeMenu.data.Price + "\r\n";
         }
         else
         {
             txbPromotions.Text += NodeMenu.data.ID + "                 " + NodeMenu.data.Price + "\r\n";
         }
         NodeMenu = NodeMenu.pNext;
     }
 }
Пример #8
0
 private void txtIDOrder_TextChanged(object sender, EventArgs e)
 {
     if (txtIDOrder.Text != "")
     {
         txtAmountOrder.Text = "1";
         LinkedListHD <DoUong> .Node node = menu.pHead;
         while (node != null)
         {
             if (node.data.ID.ToString() == txtIDOrder.Text)
             {
                 lblPriceOrder.Text = int.Parse(txtAmountOrder.Text) * node.data.Price + "";
                 return;
             }
             node = node.pNext;
         }
     }
 }
Пример #9
0
 private void btnDefault_Click(object sender, EventArgs e)
 {
     txbMoney.Text = "";
     LinkedListHD <DoUong> .Node NodeMenu = Form2.menu.pHead;
     while (NodeMenu != null)
     {
         if (NodeMenu.data.ID.ToString().Length < 2)
         {
             txbMoney.Text += NodeMenu.data.ID + "                   " + NodeMenu.data.Price + "\r\n";
         }
         else
         {
             txbMoney.Text += NodeMenu.data.ID + "                 " + NodeMenu.data.Price + "\r\n";
         }
         NodeMenu = NodeMenu.pNext;
     }
 }
Пример #10
0
 private void btnMenu_Click(object sender, EventArgs e)
 {
     menuUC1.txbMenu.Text = "";
     LinkedListHD <DoUong> .Node NodeMenu = Form2.menu.pHead;
     while (NodeMenu != null)
     {
         if (NodeMenu.data.ID.ToString().Length < 2)
         {
             menuUC1.txbMenu.Text += NodeMenu.data.ID + "                   " + NodeMenu.data.Name + "\r\n";
         }
         else
         {
             menuUC1.txbMenu.Text += NodeMenu.data.ID + "                 " + NodeMenu.data.Name + "\r\n";
         }
         NodeMenu = NodeMenu.pNext;
     }
     menuUC1.BringToFront();
 }
Пример #11
0
        private void txtAmountOrder_TextChanged(object sender, EventArgs e)
        {
            int num = 1;

            if (txtAmountOrder.Text == "0")
            {
                txtAmountOrder.Text = "1";
            }
            else
            {
                bool convert = int.TryParse(txtAmountOrder.Text, out num);
                if (convert == true)
                {
                    LinkedListHD <HoaDon> .Node NodeHoaDon = dsHoaDon.pHead;
                    if (NodeHoaDon == null)
                    {
                        if (num < 0)
                        {
                            MessageBox.Show("Hóa đơn trống không thể trả lại đồ uống!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            return;
                        }
                        else
                        {
                            lblPriceOrder.Text = num * double.Parse(Get_Price(txtIDOrder.Text)) + "";
                            return;
                        }
                    }

                    while (NodeHoaDon != null)
                    {
                        if (NodeHoaDon.data.douong.ID.ToString() == txtIDOrder.Text)
                        {
                            // Đồ uống đã có trong hóa đơn ===> order thêm
                            if (num > 0)
                            {
                                if (NodeHoaDon.data.Count + num > 5 && NodeHoaDon.data.douong.Promotion != 0)
                                {
                                    if (NodeHoaDon.data.douong.Promotion == 1)
                                    {
                                        lblPriceOrder.Text = (num * double.Parse(Get_Price(txtIDOrder.Text))) * 0.8 + "";
                                        return;
                                    }
                                    else
                                    {
                                        lblPriceOrder.Text = (num * double.Parse(Get_Price(txtIDOrder.Text))) * 0.7 + "";
                                        return;
                                    }
                                }
                                else
                                {
                                    lblPriceOrder.Text = num * double.Parse(Get_Price(txtIDOrder.Text)) + "";
                                    return;
                                }
                            }
                            else
                            {
                                if (Math.Abs(num) >= NodeHoaDon.data.Count)
                                {
                                    lblPriceOrder.Text = num * double.Parse(Get_Price(txtIDOrder.Text)) + "";
                                    MessageBox.Show("Bạn muốn trả lại đồ uống này", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                    return;
                                }
                                else
                                {
                                    lblPriceOrder.Text = (num * double.Parse(Get_Price(txtIDOrder.Text))) + "";
                                    return;
                                }
                            }
                        }
                        NodeHoaDon = NodeHoaDon.pNext;
                    }
                    // Đồ uống chưa có trong hóa đơn
                    if (num < 0)
                    {
                        MessageBox.Show("Bạn chưa order đồ uống này!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        txtAmountOrder.Text = "1";
                        return;
                    }
                    else
                    {
                        LinkedListHD <HoaDon> .Node Node = dsHoaDon.pHead;
                        while (Node != null)
                        {
                            if (Node.data.douong.Promotion == 1)
                            {
                                lblPriceOrder.Text = (num * double.Parse(Get_Price(txtIDOrder.Text))) * 0.8 + "";
                                return;
                            }
                            else
                            {
                                if (Node.data.douong.Promotion == 2)
                                {
                                    lblPriceOrder.Text = (num * double.Parse(Get_Price(txtIDOrder.Text))) * 0.7 + "";
                                    return;
                                }
                            }
                            Node = Node.pNext;
                        }

                        // Promotion == 0
                        lblPriceOrder.Text = (num * double.Parse(Get_Price(txtIDOrder.Text))) + "";
                        return;
                    }
                }
                else
                {
                    // Không convert được
                }
            }
            // Đồ uống chưa có trong hóa đơn
            if (txtIDOrder.Text != "")
            {
                if (num > 5)
                {
                    LinkedListHD <HoaDon> .Node NodeHoaDon = dsHoaDon.pHead;
                    while (NodeHoaDon != null)
                    {
                        if (NodeHoaDon.data.douong.ID.ToString() == txtIDOrder.Text)
                        {
                            if (NodeHoaDon.data.douong.Promotion == 1)
                            {
                                lblPriceOrder.Text = (num * double.Parse(Get_Price(txtIDOrder.Text))) * 0.8 + "";
                                return;
                            }
                            else
                            {
                                if (NodeHoaDon.data.douong.Promotion == 2)
                                {
                                    lblPriceOrder.Text = (num * double.Parse(Get_Price(txtIDOrder.Text))) * 0.7 + "";
                                    return;
                                }
                                else
                                {
                                    lblPriceOrder.Text = num * double.Parse(Get_Price(txtIDOrder.Text)) + "";
                                    return;
                                }
                            }
                        }
                        NodeHoaDon = NodeHoaDon.pNext;
                    }
                }
            }
        }
Пример #12
0
        private void btnAddOrder_Click(object sender, EventArgs e)
        {
            Validation validation = new Validation();

            string content = "";

            content += validation.Check_Empty("Name Cus", txtNameCusOrder);
            content += validation.Check_Empty("ID", txtIDOrder);
            content += validation.Check_Empty("Amount", txtAmountOrder);

            if (content != "")
            {
                MessageBox.Show(content, "Validation", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                int test = 0;
                LinkedListHD <DoUong> .Node NodeDoUong = menu.pHead;

                while (NodeDoUong != null)
                {
                    if (NodeDoUong.data.ID.ToString() == txtIDOrder.Text)
                    {
                        test = 1;
                    }
                    NodeDoUong = NodeDoUong.pNext;
                }

                if (test == 0)
                {
                    MessageBox.Show("ID đồ uống không tồn tại trong menu!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                Total += double.Parse(lblPriceOrder.Text);
                if (Total <= 0)
                {
                    lblTotalOrder.Text = "";
                }
                else
                {
                    lblTotalOrder.Text = Total + "";
                }

                LinkedListHD <DoUong> .Node Node = menu.pHead;

                while (Node != null)
                {
                    if (Node.data.ID.ToString() == txtIDOrder.Text)
                    {
                        DoUong douong = Node.data;
                        LinkedListHD <HoaDon> .Node NodeHoaDon = dsHoaDon.pHead;
                        while (NodeHoaDon != null)
                        {
                            if (NodeHoaDon.data.douong.ID.ToString() == txtIDOrder.Text)
                            {
                                NodeHoaDon.data.Count += int.Parse(txtAmountOrder.Text);
                                hoadon.Total          += double.Parse(lblPriceOrder.Text);
                                txtAmountOrder.Text    = "1";
                                if (NodeHoaDon.data.Count <= 0)
                                {
                                    dsHoaDon.Remove(NodeHoaDon);
                                }
                                return;
                            }
                            NodeHoaDon = NodeHoaDon.pNext;
                        }
                        hoadon              = new HoaDon();
                        hoadon.IdHD         = IDHoaDon;
                        hoadon.CustomerName = txtNameCusOrder.Text;
                        hoadon.Total       += double.Parse(lblPriceOrder.Text);
                        hoadon.douong       = douong;
                        hoadon.Count        = int.Parse(txtAmountOrder.Text);
                        dsHoaDon.Add(hoadon);
                    }
                    Node = Node.pNext;
                }
            }
            txtAmountOrder.Text = "1";
        }