Exemplo n.º 1
0
        public async Task <IActionResult> Get()
        {
            using (SqlConnection conn = Connection)
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = @"
                        SELECT p.ProductTypeId, pt.[Name] AS 'Product Type Name', SUM(p.Price) as 'Total Price'
                        FROM[Order] o
                        INNER JOIN UserPaymentType u ON o.UserPaymentTypeId = u.Id
                        LEFT JOIN[OrderProduct] op ON o.Id = op.OrderId
                        LEFT JOIN Product p ON op.ProductId = p.Id
                        LEFT JOIN ProductType pt ON p.ProductTypeId = pt.Id
                        GROUP BY p.ProductTypeId, pt.[Name]";
                    SqlDataReader        reader         = cmd.ExecuteReader();
                    List <RevenueReport> revenueReports = new List <RevenueReport>();

                    while (reader.Read())
                    {
                        RevenueReport revenueReport = new RevenueReport
                        {
                            ProductTypeId = reader.GetInt32(reader.GetOrdinal("ProductTypeId")),
                            ProductType   = reader.GetString(reader.GetOrdinal("Product Type Name")),
                            TotalRevenue  = reader.GetDecimal(reader.GetOrdinal("Total Price"))
                        };

                        revenueReports.Add(revenueReport);
                    }
                    reader.Close();

                    return(Ok(revenueReports));
                }
            }
        }
Exemplo n.º 2
0
        private void btnPay_Click(object sender, RoutedEventArgs e)
        {
            List <Room> rooms = new List <Room>();

            rooms.AddRange(Room.GetRoomsByCustomerID(((Customer)cbCustomerName.SelectedItem).IdCardNumber));

            int flag = 0;

            foreach (var item in rooms)
            {
                if (RentInfo.UpdateChechoutDate(item.Name) && RoomRentalDetail.DeleteRoomRentalDetail(item.Name) &&
                    Room.UpdateRoomStatus(item.Name) && RevenueReport.InsertRevenueReport(item.Name, item.Type, RentInfo.GetDateCheckin(item.Name), DateTime.Now, totalMoney) &&
                    PaymentDetail.DeletePaymentDetailByRoomName(item.Name))
                {
                    flag += 1;
                }
            }

            if (flag == rooms.Count)
            {
                MessageBox.Show("Thanh toán thành công!");
            }
            else
            {
                MessageBox.Show("Thanh toán không thành công! Vui lòng thực hiện lại thao tác!");
            }
            this.Close();
        }
Exemplo n.º 3
0
 private void btnPay_Click(object sender, RoutedEventArgs e)
 {
     if (RentInfo.UpdateChechoutDate(_roomToPay.Name) && RoomRentalDetail.DeleteRoomRentalDetail(_roomToPay.Name) &&
         Room.UpdateRoomStatus(_roomToPay.Name) && RevenueReport.InsertRevenueReport(_roomToPay.Name, _roomToPay.Type, RentInfo.GetDateCheckin(_roomToPay.Name), DateTime.Now, totalMoney) &&
         PaymentDetail.UpdatePaymentDetail(_roomToPay.Name, daysRent.Days + 1, totalMoney))
     {
         MessageBox.Show("Thanh toán thành công!");
     }
     else
     {
         MessageBox.Show("Thanh toán không thành công! Vui lòng thực hiện lại thao tác!");
     }
     this.Close();
 }
Exemplo n.º 4
0
        public RoomtypeStatisticUC(DateTime StartDay, DateTime EndDay)
        {
            InitializeComponent();

            List <RevenueReport> reports = new List <RevenueReport>();

            reports.Clear();
            reports.AddRange(RevenueReport.GetAllByDate(StartDay, EndDay));

            RoomTypeReports.Clear();
            foreach (var item in reports)
            {
                RoomTypeReports.Add(item);
            }
        }
Exemplo n.º 5
0
        public RevenueHistoryUC(DateTime StartDay, DateTime EndDay)
        {
            InitializeComponent();

            //Load RevenueReport from database
            List <RevenueReport> reports = new List <RevenueReport>();

            reports.Clear();
            reports.AddRange(RevenueReport.GetAllByDate(StartDay, EndDay));

            RevenueReports.Clear();
            foreach (var item in reports)
            {
                RevenueReports.Add(item);
            }
        }
Exemplo n.º 6
0
        public async Task <IActionResult> GET()
        {
            using (SqlConnection conn = Connection)
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = @"
                                        SELECT prodType.[Name], prodType.Id, SUM(p.Price) as TotalRevenue
                                        FROM OrderProduct orderProd
                                        LEFT JOIN Product p
                                        ON p.Id = orderProd.ProductId
                                        FULL OUTER JOIN ProductType prodType
                                        ON p.ProductTypeId = prodType.Id
                                        GROUP BY prodType.[Name], prodType.Id
                                        ";

                    SqlDataReader reader         = cmd.ExecuteReader();
                    var           revenueReports = new List <RevenueReport>();

                    RevenueReport report = null;

                    while (reader.Read())
                    {
                        report = new RevenueReport()
                        {
                            Id          = reader.GetInt32(reader.GetOrdinal("Id")),
                            ProductType = reader.GetString(reader.GetOrdinal("Name"))
                        };

                        if (!reader.IsDBNull(reader.GetOrdinal("TotalRevenue")))
                        {
                            report.TotalRevenue = reader.GetDecimal(reader.GetOrdinal("TotalRevenue"));
                        }
                        else
                        {
                            report.TotalRevenue = 0;
                        }

                        revenueReports.Add(report);
                    }
                    reader.Close();

                    return(Ok(revenueReports));
                }
            }
        }
 public async Task <IActionResult> Get()
 {
     using (SqlConnection conn = Connection)
     {
         conn.Open();
         using (SqlCommand cmd = conn.CreateCommand())
         {
             {
                 cmd.CommandText = @"
                                     SELECT pt.Id AS productTypeId, ISNULL(SUM(sales.Price), 0) AS totalRevenue, pt.[Name] as productType FROM ProductType pt
                                     LEFT JOIN
                                     (
                                     SELECT p.Price, p.ProductTypeId FROM Product p
                                     JOIN OrderProduct op ON op.ProductId = p.Id
                                     JOIN[Order] o ON o.Id = op.OrderId
                                     WHERE o.UserPaymentTypeId is not null
                                     )
                                     Sales ON sales.ProductTypeId = pt.Id
                                     GROUP BY pt.Id, pt.[Name]";
                 SqlDataReader        reader        = cmd.ExecuteReader();
                 List <RevenueReport> revenueReport = new List <RevenueReport>();
                 RevenueReport        reportItem    = null;
                 while (reader.Read())
                 {
                     reportItem = new RevenueReport
                     {
                         ProductTypeId = reader.GetInt32(reader.GetOrdinal("productTypeId")),
                         ProductType   = reader.GetString(reader.GetOrdinal("productType"))
                     };
                     if (!reader.IsDBNull(reader.GetOrdinal("totalRevenue")))
                     {
                         reportItem.TotalRevenue = reader.GetDecimal(reader.GetOrdinal("totalRevenue"));
                     }
                     else
                     {
                         reportItem.TotalRevenue = 0;
                     }
                     revenueReport.Add(reportItem);
                 }
                 reader.Close();
                 return(Ok(revenueReport));
             }
         }
     }
 }
Exemplo n.º 8
0
 private void DatePicker_SelectedDateChanged(object sender, SelectionChangedEventArgs e)
 {
     try
     {
         txbTotalRevenue.Text = string.Format("{0:N0}", RevenueReport.GetTotalRevenueByDate((DateTime)dtpStartDay.SelectedDate, (DateTime)dtpEndDay.SelectedDate));
         string selectedTag = (cbbReportType.SelectedItem as ComboBoxItem).Tag as string;
         if (selectedTag == "RevenueHistory")
         {
             GrdContent?.Children.Clear();
             GrdContent?.Children.Add(new RevenueHistoryUC((DateTime)dtpStartDay.SelectedDate, (DateTime)dtpEndDay.SelectedDate));
         }
         else if (selectedTag == "RoomtypeStatistic")
         {
             GrdContent?.Children?.Clear();
             GrdContent.Children.Add(new RoomtypeStatisticUC((DateTime)dtpStartDay.SelectedDate, (DateTime)dtpEndDay.SelectedDate));
         }
     }
     catch (Exception)
     {
     }
 }
        public async Task <IActionResult> Get()
        {
            using (SqlConnection conn = Connection)
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = @" SELECT pt.Id AS ProductTypeId, ISNULL(SUM(sales.Price),0) AS Price, pt.[Name] FROM ProductType pt
                                        LEFT JOIN 
                                            (
                                            SELECT p.Price, p.ProductTypeId FROM Product p 
                                            JOIN OrderProduct op ON op.ProductId = p.Id
                                            JOIN [Order] o ON o.Id = op.OrderId
                                            WHERE o.UserPaymentTypeId is not null
                                            ) 
                                            Sales ON sales.ProductTypeId = pt.Id
                                        GROUP BY pt.Id, pt.[Name]";


                    SqlDataReader reader = await cmd.ExecuteReaderAsync();

                    var revenueReport = new RevenueReport();

                    while (reader.Read())
                    {
                        ProductType productType = new ProductType
                        {
                            Id           = reader.GetInt32(reader.GetOrdinal("ProductTypeId")),
                            Name         = reader.GetString(reader.GetOrdinal("Name")),
                            TotalRevenue = reader.GetDecimal(reader.GetOrdinal("Price"))
                        };

                        revenueReport.ProductTypes.Add(productType);
                    }
                    reader.Close();
                    return(Ok(revenueReport));
                }
            }
        }
Exemplo n.º 10
0
        public async Task <IActionResult> Get(
            )
        {
            using (SqlConnection conn = Connection)
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    // this query returns a table with the total revnue of each product that has orders
                    cmd.CommandText = @"
                       SELECT pt.[Name], pt.Id, SUM(p.Price) AS Revenue
                       FROM OrderProduct op 
                       LEFT JOIN Product p ON p.Id = op.ProductId
                       LEFT JOIN ProductType pt on p.ProductTypeId = pt.Id group by pt.[Name], pt.Id 
                        ";


                    SqlDataReader reader = cmd.ExecuteReader();

                    List <RevenueReport> allReports = new List <RevenueReport>();

                    while (reader.Read())
                    {
                        var report = new RevenueReport()
                        {
                            ProductType   = reader.GetString(reader.GetOrdinal("Name")),
                            ProductTypeId = reader.GetInt32(reader.GetOrdinal("Id")),
                            TotalRevenue  = reader.GetDecimal(reader.GetOrdinal("Revenue"))
                        };

                        allReports.Add(report);
                    }
                    reader.Close();

                    return(Ok(allReports));
                }
            }
        }
Exemplo n.º 11
0
        public async Task <IActionResult> Get()
        {
            using (SqlConnection conn = Connection)
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = @"select pt.[Name], pt.Id, SUM(p.Price) as Revenue
                    from OrderProduct op left join Product p on p.Id = op.ProductId
                    full outer join ProductType pt on p.ProductTypeId = pt.Id group by pt.[Name], pt.Id ";
                    SqlDataReader        reader        = cmd.ExecuteReader();
                    List <RevenueReport> revenueReport = new List <RevenueReport>();
                    RevenueReport        reportItem    = null;
                    while (reader.Read())
                    {
                        reportItem = new RevenueReport
                        {
                            ProductTypeId = reader.GetInt32(reader.GetOrdinal("Id")),
                            ProductType   = reader.GetString(reader.GetOrdinal("Name"))
                        };
                        if (!reader.IsDBNull(reader.GetOrdinal("Revenue")))
                        {
                            reportItem.TotalRevenue = reader.GetDecimal(reader.GetOrdinal("Revenue"));
                        }
                        else
                        {
                            reportItem.TotalRevenue = 0;
                        }

                        revenueReport.Add(reportItem);
                    }
                    reader.Close();

                    return(Ok(revenueReport));
                }
            }
        }
        static void Main(string[] args)
        {
            var customer = new CustomerList();
            var run      = true;

            while (run)



            {
                var userInput = MainMenu(customer.CustomerId);
                switch (int.Parse(userInput))
                {
                case 1:
                    Console.Clear();



                    Console.WriteLine("You've chosen to create a new customer account.");

                    Console.WriteLine("Enter your first name");
                    var firstName = Console.ReadLine();

                    Console.WriteLine("Enter your last name");
                    var lastName = Console.ReadLine();

                    Console.WriteLine("Enter your street address");
                    var address = Console.ReadLine();

                    Console.WriteLine("Enter your city");
                    var city = Console.ReadLine();

                    Console.WriteLine("Enter your state");
                    var state = Console.ReadLine();

                    Console.WriteLine("Enter your postal code");
                    var postalCode = Console.ReadLine();

                    Console.WriteLine("Finally, enter your phone number");
                    var phone = Console.ReadLine();


                    var newCustomerInfo = new CreateCustomerAccount();
                    var newCustomer     = newCustomerInfo.AddNewCustomerInfo(firstName, lastName, address, city, state, postalCode, phone);

                    if (newCustomer)
                    {
                        Console.WriteLine("You added a customer!");
                    }
                    System.Threading.Thread.Sleep(1000);
                    break;

                case 2:
                    Console.Clear();
                    var counter             = 0;
                    var customerList        = new SelectCustomer();
                    var listOfCustomerNames = customerList.GetCustomerName();
                    Console.WriteLine("Which customer will be active?");
                    foreach (var list in listOfCustomerNames)
                    {
                        counter++;
                        Console.WriteLine($"{counter} {list.FirstName} {list.LastName}");
                    }

                    var selectedCustomer      = Console.ReadLine();
                    var selectedCustomerIndex = int.Parse(selectedCustomer.ToString());
                    customer = listOfCustomerNames[selectedCustomerIndex - 1];
                    Console.WriteLine($"the selected customer is {customer.FirstName} {customer.LastName}");
                    System.Threading.Thread.Sleep(1000);
                    break;

                case 3:
                    Console.Clear();

                    Console.WriteLine("What kind of Credit Card are you adding?");
                    var pmtType = Console.ReadLine();

                    Console.WriteLine("What is the account number?");
                    var acctNumber    = Console.ReadLine();
                    var acctNumberInt = long.Parse(acctNumber.ToString());

                    var customerId = customer.CustomerId;

                    var payment = new AddPayment();

                    payment.AddPaymentType(pmtType, customerId, acctNumberInt);

                    Console.WriteLine($"You have added {pmtType} {acctNumber} to {customer.FirstName} {customer.LastName}");
                    System.Threading.Thread.Sleep(1000);

                    break;

                case 4:
                    Console.Clear();
                    //Add product to sell
                    var productAdder = new ProductAdder();
                    Console.WriteLine("Enter the Product Name: ");
                    var productName = Console.ReadLine();
                    Console.WriteLine("Enter the Product Description: ");
                    var productDescription = Console.ReadLine();
                    Console.WriteLine("Enter the Product Price: ");
                    var productPrice = Convert.ToDouble(Console.ReadLine());
                    Console.WriteLine("Enter the Product Quantity: ");
                    var quantity  = Convert.ToInt32(Console.ReadLine());
                    var customers = productAdder.GetAllCustomers();

                    var counter4 = 0;
                    Console.WriteLine("Please select the customer whose product you are adding:");
                    foreach (var person in customers)
                    {
                        counter4++;
                        Console.WriteLine($"{counter4}. {person.FirstName} {person.LastName}");
                    }

                    var customerToAddProduct = int.Parse(Console.ReadLine());

                    var customerIdToAdd = customers[customerToAddProduct - 1];
                    var newProduct      = productAdder.AddNewProduct(productName, productDescription, productPrice, quantity, customerIdToAdd.CustomerId);
                    if (newProduct)
                    {
                        Console.WriteLine($"You added {productName} to {customerIdToAdd.FirstName} {customerIdToAdd.LastName}!");
                    }
                    System.Threading.Thread.Sleep(1000);
                    break;

                case 5:
                    Console.Clear();
                    //Add product to shopping cart
                    var productQuery  = new ProductQuery();
                    var allProducts   = productQuery.GetAllProducts();
                    var addProduct    = new AddProduct();
                    var orderModifier = new OrderModifier();

                    var order          = 0;
                    var addingProducts = true;
                    while (addingProducts)
                    {
                        Console.WriteLine("All Products");
                        var counter2 = 0;
                        foreach (var product in allProducts)
                        {
                            counter2++;
                            Console.WriteLine($"{counter2}. {product.ProductName}: {product.ProductPrice}");
                        }
                        counter2++;
                        Console.WriteLine($"{counter2}. Done adding products.");

                        Console.WriteLine("What product would you like to add to the order?");
                        var productToAdd = Console.ReadLine();
                        Console.WriteLine("");
                        var selectedProductIndex = int.Parse(productToAdd.ToString());
                        if (selectedProductIndex == counter2)
                        {
                            addingProducts = false;
                            break;
                        }
                        Console.WriteLine("How many would you like to add?");
                        var numberToAdd = Console.ReadLine();
                        var addedNumber = int.Parse(numberToAdd.ToString());
                        Console.WriteLine("");

                        var selectedProduct = allProducts[selectedProductIndex - 1];
                        if (order == 0)
                        {
                            order = orderModifier.CreateOrder(customer.CustomerId);
                        }
                        var addNewProduct = addProduct.AddProductToOrder(selectedProduct.ProductId, addedNumber, order);
                        if (addNewProduct)
                        {
                            Console.WriteLine($"You added {selectedProduct.ProductName} to your order!");
                        }
                        System.Threading.Thread.Sleep(1000);
                        Console.Clear();
                    }
                    break;

                case 6:
                    Console.Clear();
                    //Complete an order
                    break;

                case 7:
                    Console.Clear();
                    //Remove customer product
                    Console.WriteLine("Please choose product to delete:");

                    var removeCustomerProduct = new RemoveProduct();
                    removeCustomerProduct.RemoveCustomerProduct(customer);

                    break;

                case 8:
                    Console.Clear();
                    //Update product information
                    var getAllProducts   = new ProductQuery();
                    var productsToUpdate = getAllProducts.GetCustomerProducts(customer.CustomerId);
                    Console.WriteLine("All Products");
                    var counter3 = 0;
                    foreach (var product in productsToUpdate)
                    {
                        counter3++;
                        Console.WriteLine($"{counter3}. {product.ProductName}: {product.ProductPrice}");
                    }

                    Console.WriteLine("What product would you like to update?");
                    var productToUpdate = Console.ReadLine();
                    Console.WriteLine("");
                    var updateProductIndex = int.Parse(productToUpdate.ToString());
                    var updateThisProduct  = productsToUpdate[updateProductIndex - 1];
                    Console.Clear();
                    var productModifier = new AddProduct();
                    var updateProduct   = productModifier.UpdateProduct(updateThisProduct);
                    if (updateProduct)
                    {
                        Console.WriteLine("Product updated!");
                    }


                    System.Threading.Thread.Sleep(1000);
                    break;

                case 9:
                    Console.Clear();
                    //Show stale products
                    break;

                case 10:
                    Console.Clear();
                    var revenueQuery   = new RevenueQuery();
                    var listOfRevenues = revenueQuery.GetCustomerRevenue(customer.FirstName, customer.LastName);

                    var personRevenue = from personOrder in listOfRevenues
                                        group personOrder by personOrder.OrderId into g
                                        orderby g.Key
                                        select g;

                    var revenueCounter = 0.00;

                    Console.WriteLine($"This is the revenue report for {customer.FirstName} {customer.LastName}");
                    foreach (var revenueResult in personRevenue)
                    {
                        Console.WriteLine($"\nOrder #{revenueResult.Key}\n--------------------------------------");


                        foreach (var item in revenueResult)
                        {
                            revenueCounter += item.indivItemTotal;
                            Console.WriteLine($"{item.ProductName}     {item.OrderItemQuantity}   ${item.indivItemTotal} ");
                        }
                        //Console.WriteLine()
                    }
                    Console.WriteLine($"\nTotal Revenue is ${revenueCounter}");
                    Console.ReadLine();

                    break;

                case 11:
                    Console.Clear();
                    //Show overall product popularity
                    var revenueReport = new RevenueReport();
                    revenueReport.GetTop3Revenue();
                    break;

                case 12:
                    //Leave Bangazon!
                    run = false;
                    break;
                }
            }

            string MainMenu(int customerid)
            {
                View mainMenu = new View()
                                .AddMenuOption("1. Create a customer account")
                                .AddMenuOption("2. Choose active customer")
                                .AddMenuOption("4. Add product to sell")
                                .AddMenuOption("9. Show stale products")
                                .AddMenuOption("10. Show customer revenue report")
                                .AddMenuOption("11. Show overall product popularity")
                                .AddMenuOption("12. Leave Bangazon!");

                Console.Write(mainMenu.GetFullMenu());

                if (customerid > 0)
                {
                    mainMenu = new View()
                               .AddMenuOption("1. Create a customer account")
                               .AddMenuOption("2. Choose active customer")
                               .AddMenuOption("3. Create a payment option")
                               .AddMenuOption("4. Add product to sell")
                               .AddMenuOption("5. Add product to shopping cart")
                               .AddMenuOption("6. Complete an order")
                               .AddMenuOption("7. Remove customer product")
                               .AddMenuOption("8. Update product information")
                               .AddMenuOption("9. Show stale products")
                               .AddMenuOption("10. Show customer revenue report")
                               .AddMenuOption("11. Show overall product popularity")
                               .AddMenuOption("12. Leave Bangazon!");
                    Console.Write(mainMenu.GetFullMenu());
                }

                var userOption = Console.ReadLine();

                return(userOption);
            }
        }
Exemplo n.º 13
0
 public ReportUC()
 {
     InitializeComponent();
     GrdContent.Children.Add(new RevenueHistoryUC((DateTime)dtpStartDay.SelectedDate, (DateTime)dtpEndDay.SelectedDate));
     txbTotalRevenue.Text = string.Format("{0:N0}", RevenueReport.GetTotalRevenueByDate((DateTime)dtpStartDay.SelectedDate, (DateTime)dtpEndDay.SelectedDate));
 }
Exemplo n.º 14
0
        private void createNewTab(eTabType type)
        {
            switch (type)
            {
            case eTabType.MAIN_TAB:
                break;

            case eTabType.CUSTOMER_TAB:
            {
                //Hieu
                //Edit
                var newTab = isExitTabPage("Danh sách khách hàng");
                if (newTab == null)
                {
                    newTab = new TabPage("Danh sách khách hàng");
                    var customerList = new CustomerList();
                    customerList.Dock = DockStyle.Fill;
                    newTab.Controls.Add(customerList);

                    tabControl.TabPages.Add(newTab);
                }

                tabControl.SelectedTab = newTab;
                break;
            }

            case eTabType.VENDOR_TAB:
            {
                var newTab = isExitTabPage("Danh sách nhà cung cấp");
                if (newTab == null)
                {
                    newTab = new TabPage("Danh sách nhà cung cấp");
                    var vendorList = new VendorList();
                    vendorList.Dock = DockStyle.Fill;
                    newTab.Controls.Add(vendorList);

                    tabControl.TabPages.Add(newTab);
                }

                tabControl.SelectedTab = newTab;
                break;
            }

            case eTabType.ORDER_TAB:
            {
                var customerOrder = new CreateCustomerOrderForm();
                var result        = customerOrder.ShowDialog();
                if (result == DialogResult.OK)
                {
                    var newTab = isExitTabPage("Giao dịch");
                    if (newTab == null)
                    {
                        newTab            = new TabPage("Giao dịch");
                        newTab.AutoScroll = true;
                        var order = new OrderDetailForm(customerOrder.OrderId);
                        order.Dock = DockStyle.Top;
                        newTab.Controls.Add(order);

                        tabControl.TabPages.Add(newTab);
                    }

                    tabControl.SelectedTab = newTab;
                }
                else if (result == DialogResult.Retry)
                {
                    createNewTab(eTabType.CUSTOMER_TAB);
                }

                break;
            }

            case eTabType.CUSTOMER_ORDER_LIST_TAB:
            {
                var selectForm = new SelectOrderForm();
                var result     = selectForm.ShowDialog();

                if (result == DialogResult.OK)
                {
                    var text   = "Đơn hàng " + selectForm.OrderKey;
                    var newTab = isExitTabPage(text);

                    if (newTab == null)
                    {
                        newTab            = new TabPage(text);
                        newTab.AutoScroll = true;
                        var order = new CustomerOrderDetail(selectForm.OrderId);
                        order.Dock = DockStyle.Fill;
                        newTab.Controls.Add(order);

                        tabControl.TabPages.Add(newTab);
                    }

                    tabControl.SelectedTab = newTab;
                }

                break;
            }

            case eTabType.STORE_TAB:
            {
                var text   = "Danh sách kho hàng";
                var newTab = isExitTabPage(text);

                if (newTab == null)
                {
                    newTab            = new TabPage(text);
                    newTab.AutoScroll = true;
                    var store = new InventoryList();
                    store.Dock = DockStyle.Fill;
                    newTab.Controls.Add(store);

                    tabControl.TabPages.Add(newTab);
                }
                tabControl.SelectedTab = newTab;
                break;
            }

            case eTabType.PRODUCT_TAB:
            {
                var text   = "Danh sách mặt hàng";
                var newTab = isExitTabPage(text);

                if (newTab == null)
                {
                    newTab            = new TabPage(text);
                    newTab.AutoScroll = true;
                    var product = new ProductList();
                    product.Dock = DockStyle.Fill;
                    newTab.Controls.Add(product);
                    this.newProductMenuItem.Click += product.showDialogAddProduct;         //7ung
                    tabControl.TabPages.Add(newTab);
                }

                tabControl.SelectedTab = newTab;
                break;
            }

            case eTabType.STAFF_TAB:
            {
                var text   = "Danh sách nhân viên";
                var newTab = isExitTabPage(text);

                if (newTab == null)
                {
                    newTab            = new TabPage(text);
                    newTab.AutoScroll = true;
                    var staff = new StaffList();
                    staff.Dock = DockStyle.Fill;
                    newTab.Controls.Add(staff);

                    tabControl.TabPages.Add(newTab);
                }
                tabControl.SelectedTab = newTab;
                break;
            }

            case eTabType.INOUT_INVENTORY:
            {
                var text   = "Quản lý đơn hàng nhập xuất kho";
                var newTab = isExitTabPage(text);

                if (newTab == null)
                {
                    newTab            = new TabPage(text);
                    newTab.AutoScroll = true;
                    var store = new InOutInventoryList();
                    store.Dock = DockStyle.Fill;
                    newTab.Controls.Add(store);

                    tabControl.TabPages.Add(newTab);
                }
                tabControl.SelectedTab = newTab;
                break;
            }

            case eTabType.INVENTORY_LIST:
            {
                var text   = "Quản lý kho hàng";
                var newTab = isExitTabPage(text);

                if (newTab == null)
                {
                    newTab            = new TabPage(text);
                    newTab.AutoScroll = true;
                    var store = new InventoryList();
                    store.Dock = DockStyle.Fill;
                    newTab.Controls.Add(store);

                    tabControl.TabPages.Add(newTab);
                }
                tabControl.SelectedTab = newTab;
                break;
            }

            case eTabType.VENDOR_ORDER_TAB:
            {
                var vendorOrder = new CreateVendorOrderForm();
                var result      = vendorOrder.ShowDialog();
                if (result == DialogResult.OK)
                {
                    var text   = "Giao dịch đơn hàng " + vendorOrder.DocumentKey;
                    var newTab = isExitTabPage(text);

                    if (newTab == null)
                    {
                        newTab            = new TabPage(text);
                        newTab.AutoScroll = true;
                        var order = new VendorOrderDetailForm(vendorOrder.OrderId);
                        order.Dock = DockStyle.Top;
                        newTab.Controls.Add(order);

                        tabControl.TabPages.Add(newTab);
                    }
                    tabControl.SelectedTab = newTab;
                }
                else if (result == DialogResult.Retry)
                {
                    createNewTab(eTabType.VENDOR_TAB);
                }
                break;
            }

            case eTabType.VENDOR_ORDER_LIST_TAB:
            {
                var selectForm = new SelectVendorOrderForm();
                var result     = selectForm.ShowDialog();

                if (result == DialogResult.OK)
                {
                    var text   = "Đơn hàng " + selectForm.DocumentKey;
                    var newTab = isExitTabPage(text);

                    if (newTab == null)
                    {
                        newTab            = new TabPage(text);
                        newTab.AutoScroll = true;
                        var order = new VendorOrderDetail(selectForm.OrderId);
                        order.DocumentKey = selectForm.DocumentKey;
                        order.Dock        = DockStyle.Fill;
                        newTab.Controls.Add(order);

                        tabControl.TabPages.Add(newTab);
                    }
                    tabControl.SelectedTab = newTab;
                }
                break;
            }

            case eTabType.REVENUE_REPORT_TAB:
            {
                var text   = "Báo cáo doanh thu";
                var newTab = isExitTabPage(text);

                if (newTab == null)
                {
                    newTab            = new TabPage(text);
                    newTab.AutoScroll = true;
                    var report = new RevenueReport();
                    report.Dock = DockStyle.Fill;
                    newTab.Controls.Add(report);

                    tabControl.TabPages.Add(newTab);
                }
                tabControl.SelectedTab = newTab;
                break;
            }

            case eTabType.CUSTOMER_REPORT_TAB:
            {
                var text   = "Báo cáo tình hình khách hàng";
                var newTab = isExitTabPage(text);

                if (newTab == null)
                {
                    newTab            = new TabPage(text);
                    newTab.AutoScroll = true;
                    var report = new CustomerReport();
                    report.Dock = DockStyle.Top;
                    newTab.Controls.Add(report);

                    tabControl.TabPages.Add(newTab);
                }
                tabControl.SelectedTab = newTab;
                break;
            }

            case eTabType.CREATE_BUSINESS_REPORT_TAB:
            {
                var dialogCreate = new CreateReportForm();
                var r            = dialogCreate.ShowDialog();

                if (r == DialogResult.OK)
                {
                    var text   = "Báo cáo chi phí bán hàng";
                    var newTab = isExitTabPage(text);

                    if (newTab == null)
                    {
                        newTab            = new TabPage(text);
                        newTab.AutoScroll = true;
                        var report = new CreateBusinessFee(dialogCreate.DocumentId, true);
                        report.Dock = DockStyle.Top;
                        newTab.Controls.Add(report);

                        tabControl.TabPages.Add(newTab);
                    }
                    tabControl.SelectedTab = newTab;
                }
                break;
            }

            case eTabType.VIEW_BUSINESS_REPORT_TAB:
            {
                var text   = "Xem cáo chi phí bán hàng";
                var newTab = isExitTabPage(text);

                if (newTab == null)
                {
                    newTab            = new TabPage(text);
                    newTab.AutoScroll = true;
                    var report = new ViewBusinessFee();
                    report.Dock = DockStyle.Top;
                    newTab.Controls.Add(report);

                    tabControl.TabPages.Add(newTab);
                }
                tabControl.SelectedTab = newTab;
                break;
            }

            case eTabType.INVENTORY_REPORT_TAB:
            {
                var text   = "Báo cáo tồn kho";
                var newTab = isExitTabPage(text);

                if (newTab == null)
                {
                    newTab            = new TabPage(text);
                    newTab.AutoScroll = true;
                    var report = new InventoryReport();
                    report.Dock = DockStyle.Fill;
                    newTab.Controls.Add(report);

                    tabControl.TabPages.Add(newTab);
                }
                tabControl.SelectedTab = newTab;
                break;
            }

            default:
                break;
            }
        }