public void Delete(BillDetails obj)
        {
            ClearParameter();


            AddParameter("@billid", obj.BillId);
            AddParameter("@menuitemid", obj.MenuItemId);

            FetchData("sp_Delete_TempBillDetails");
        }
        public void InsertOrUpdate(BillDetails obj)
        {
            ClearParameter();


            AddParameter("@billdetailid", obj.BillDetailId);
            AddParameter("@billid", obj.BillId);
            AddParameter("@menuitemid", obj.MenuItemId);
            AddParameter("@quantity", obj.Quantity);
            AddParameter("@unitprice", obj.UnitPrice);
            AddParameter("@isdiscountavailable", obj.IsDiscountAvailable);
            AddParameter("@totalprice", obj.TotalPrice);
            AddParameter("@receivedby", 1);

            FetchData("sp_InsertUpdate_BillDetails");
        }
        private void btnUpdate_Click(object sender, EventArgs e)
        {
            try
            {
                btnUpdate.Enabled = false;
                cmbMenuItem.Enabled = true;

                BillDetails billDetails = new BillDetails();
                billDetails.BillId = _billId;
                billDetails.MenuItemId = Convert.ToInt32(ListView1.FocusedItem.SubItems[1].Text);
                billDetails.Quantity = Convert.ToInt32(txtSaleQty.Text);
                billDetails.UnitPrice = Convert.ToDecimal(ListView1.FocusedItem.SubItems[3].Text);
                billDetails.IsDiscountAvailable = false;
                billDetails.TotalPrice = Convert.ToDecimal(txtTotalAmount.Text);
                billDetails.ReceivedBy = BaseObject.User_ID;
                billDetails.IsDeleted = false;

                new BllTempBillDetails().InsertOrUpdate(billDetails);

                for (int j = 0; j <= ListView1.Items.Count - 1; j++)
                {
                    if (ListView1.Items[j].SubItems[1].Text == ListView1.FocusedItem.SubItems[1].Text)
                    {
                        ListView1.Items[j].SubItems[3].Text = txtPrice.Text;
                        ListView1.Items[j].SubItems[4].Text = txtSaleQty.Text;
                        ListView1.Items[j].SubItems[5].Text = txtTotalAmount.Text;
                        txtSubTotal.Text = subtot().ToString();
                        Calculate();

                        BillInfo billInfo = createBillInfoObject();

                        new BllBillInfo().InsertOrUpdate(billInfo);

                        cmbMenuItem.Text = "";
                        txtPrice.Text = "";
                        txtSaleQty.Text = "";
                        txtTotalAmount.Text = "";

                        //cmbMenuItem.Focus();
                        txtMenuCode.Focus();
                        return;

                    }

                }

                
            }
            catch (Exception ex)
            {
                KryptonMessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (_billId == 0)
            {
                KryptonMessageBox.Show("Please select Menu item", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
 
            }

            if (ListView1.Items.Count == 0)
            {
                KryptonMessageBox.Show("Please select Menu item", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            if (txtDiscountPer.Text == "")
            {
                KryptonMessageBox.Show("Please insert Discount Percent", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                txtDiscountPer.Focus();
                return;
            }

            if (txtTaxPer.Text == "")
            {
                KryptonMessageBox.Show("Please insert Vat Percent", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                txtTaxPer.Focus();
                return;
            }

            if (txtServiceChargePer.Text == "")
            {
                KryptonMessageBox.Show("Please insert Service charge Percent", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                txtServiceChargePer.Focus();
                return;
            }

            int paymenttypeid = Convert.ToInt32(cmbPaymentType.SelectedValue);

            if (paymenttypeid == 4 || paymenttypeid == 5)
            {
                if (txtRemarks.Text.Trim() == "")
                {
                    KryptonMessageBox.Show("Please insert Remarks for Void/Complementary payment", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    txtRemarks.Focus();
                    return;
 
                }
            }

            int disPer = Convert.ToInt32(txtDiscountPer.Text);
            if (disPer > 0)
            {
                if (txtRemarks.Text.Trim() == "")
                {
                    KryptonMessageBox.Show("Please insert Remarks for Discount.", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    txtRemarks.Focus();
                    return;

                }
            }

            string msg = "You choose " + cmbPaymentType.Text.Trim() + " payment type.\n" + Messages.SaveConfirmation;
            DialogResult dr = KryptonMessageBox.Show(msg, Text, MessageBoxButtons.YesNo,
                                                     MessageBoxIcon.Question);
            if (dr == DialogResult.Yes)
            {
                BillInfo _billInfo = createBillInfoObject();
                _billInfo.BillId = _billId;
                _billInfo.BillNo = "B" + _billId;

                _billInfo.PaymentTypeId = paymenttypeid;
                _billInfo.IsClosed = true;

                for (int j = 0; j <= ListView1.Items.Count - 1; j++)
                {
                    BillDetails billDetails = new BillDetails();
                    billDetails.BillId = _billId;
                    billDetails.MenuItemId = Convert.ToInt32(cmbMenuItem.SelectedValue.ToString());
                    billDetails.Quantity = Convert.ToInt32(ListView1.Items[j].SubItems[4].Text);
                    billDetails.UnitPrice = Convert.ToDecimal(ListView1.Items[j].SubItems[3].Text);
                    billDetails.IsDiscountAvailable = false;
                    billDetails.TotalPrice = Convert.ToDecimal(ListView1.Items[j].SubItems[5].Text);
                    billDetails.ReceivedBy = BaseObject.User_ID;

                    new BllBillDetails().InsertOrUpdate(billDetails);
                }

                new BllBillInfo().InsertOrUpdate(_billInfo);

                btnSave.Enabled = false;
                btnPrintInvoice.Enabled = true;

                KryptonMessageBox.Show("Successfully completed", "Bill Payment", MessageBoxButtons.OK, MessageBoxIcon.Information);

                Reset();
            }
        }
        private void btnRemove_Click(object sender, EventArgs e)
        {
            try
            {
                if (ListView1.Items.Count == 0)
                {
                    KryptonMessageBox.Show("No items to remove", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else if (ListView1.Items.Count == 1)
                {
                    KryptonMessageBox.Show("You can not remove single item", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    int itmCnt = 0;
                    int i = 0;
                    int t = 0;


                    BillDetails billDetails = new BillDetails();
                    billDetails.BillId = _billId;
                    billDetails.MenuItemId = Convert.ToInt32(ListView1.FocusedItem.SubItems[1].Text);
                    billDetails.Quantity = Convert.ToInt32(ListView1.FocusedItem.SubItems[4].Text);
                    billDetails.UnitPrice = Convert.ToDecimal(ListView1.FocusedItem.SubItems[3].Text);
                    billDetails.IsDiscountAvailable = false;
                    billDetails.TotalPrice = Convert.ToDecimal(ListView1.FocusedItem.SubItems[5].Text);
                    billDetails.ReceivedBy = BaseObject.User_ID;
                    billDetails.IsDeleted = false;

                    new BllTempBillDetails().DeleteData(billDetails);

                    ListView1.FocusedItem.Remove();

                    itmCnt = ListView1.Items.Count;
                    t = 1;

                    for (i = 1; i <= itmCnt + 1; i++)
                    {
                        //Dim lst1 As New ListViewItem(i)
                        //ListView1.Items(i).SubItems(0).Text = t
                        t = t + 1;

                    }
                    txtSubTotal.Text = subtot().ToString();
                    Calculate();

                    BillInfo billInfo = createBillInfoObject();

                    new BllBillInfo().InsertOrUpdate(billInfo);
                }

                btnRemove.Enabled = false;
                if (ListView1.Items.Count == 0)
                {
                    txtSubTotal.Text = "";
                }
            }
            catch (Exception ex)
            {
                KryptonMessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        private void btnAddToCart_Click(object sender, EventArgs e)
        {
            try
            {
                if (cmbTableNo.Text == "")
                {
                    KryptonMessageBox.Show("Please select Table", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                if (cmbMenuItem.Text == "")
                {
                    KryptonMessageBox.Show("Please select product name", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                if (txtSaleQty.Text == "")
                {
                    KryptonMessageBox.Show("Please enter quantity", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    txtSaleQty.Focus();
                    return;
                }
                int SaleQty = Convert.ToInt32(txtSaleQty.Text);
                if (SaleQty == 0)
                {
                    KryptonMessageBox.Show("no. of quantity can not be zero", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    txtSaleQty.Focus();
                    return;
                }

                if (txtKotNo.Text.Trim() == "")
                {
                    KryptonMessageBox.Show("Please enter KOT No.", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    txtKotNo.Focus();
                    return;
                }

                int parsedValue;
                if (!int.TryParse(txtPax.Text, out parsedValue))
                {
                    KryptonMessageBox.Show("Please enter valid PAX.", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    txtPax.Focus();
                    return;
                }

                btnRemove.Enabled = false;
                //cmbMenuItem.Focus();
                txtMenuCode.Focus();

                if (ListView1.Items.Count == 0)
                {

                    ListViewItem lst = new ListViewItem();
                    lst.SubItems.Add(cmbMenuItem.SelectedValue.ToString());
                    lst.SubItems.Add(cmbMenuItem.Text);
                    lst.SubItems.Add(txtPrice.Text);
                    lst.SubItems.Add(txtSaleQty.Text);
                    lst.SubItems.Add(txtTotalAmount.Text);
                    ListView1.Items.Add(lst);
                    txtSubTotal.Text = subtot().ToString();

                    Calculate();

                    BillInfo billInfo = createBillInfoObject();

                    _billId = new BllBillInfo().InsertOrUpdate(billInfo);

                    txtBillNo.Text = "B" + _billId.ToString();

                    BillDetails billDetails = new BillDetails();
                    billDetails.BillId = _billId;
                    billDetails.MenuItemId = Convert.ToInt32(cmbMenuItem.SelectedValue.ToString());
                    billDetails.Quantity = Convert.ToInt32(txtSaleQty.Text);
                    billDetails.UnitPrice = Convert.ToDecimal(txtPrice.Text);
                    billDetails.IsDiscountAvailable = false;
                    billDetails.TotalPrice = Convert.ToDecimal(txtTotalAmount.Text);
                    billDetails.ReceivedBy = BaseObject.User_ID;
                    billDetails.IsDeleted = false;

                    new BllTempBillDetails().InsertOrUpdate(billDetails);



                    cmbMenuItem.Text = "";
                    txtPrice.Text = "";
                    txtSaleQty.Text = "";
                    txtTotalAmount.Text = "";

                    return;
                }

                for (int j = 0; j <= ListView1.Items.Count - 1; j++)
                {
                    if (ListView1.Items[j].SubItems[1].Text == cmbMenuItem.SelectedValue.ToString())
                    {
                        ListView1.Items[j].SubItems[1].Text = cmbMenuItem.SelectedValue.ToString();
                        ListView1.Items[j].SubItems[2].Text = cmbMenuItem.Text;
                        ListView1.Items[j].SubItems[3].Text = txtPrice.Text;
                        ListView1.Items[j].SubItems[4].Text = (Convert.ToInt32(ListView1.Items[j].SubItems[4].Text) + Convert.ToInt32(txtSaleQty.Text)).ToString();
                        ListView1.Items[j].SubItems[5].Text = (Convert.ToDecimal(ListView1.Items[j].SubItems[5].Text) + Convert.ToDecimal(txtTotalAmount.Text)).ToString();
                        txtSubTotal.Text = subtot().ToString();
                        Calculate();


                        BillDetails billDetails = new BillDetails();
                        billDetails.BillId = _billId;
                        billDetails.MenuItemId = Convert.ToInt32(cmbMenuItem.SelectedValue.ToString());
                        billDetails.Quantity = Convert.ToInt32(ListView1.Items[j].SubItems[4].Text);
                        billDetails.UnitPrice = Convert.ToDecimal(ListView1.Items[j].SubItems[3].Text);
                        billDetails.IsDiscountAvailable = false;
                        billDetails.TotalPrice = Convert.ToDecimal(ListView1.Items[j].SubItems[5].Text);
                        billDetails.ReceivedBy = BaseObject.User_ID;
                        billDetails.IsDeleted = false;

                        new BllTempBillDetails().InsertOrUpdate(billDetails);

                        BillInfo billInfo = createBillInfoObject();

                        new BllBillInfo().InsertOrUpdate(billInfo);


                        cmbMenuItem.Text = "";
                        txtPrice.Text = "";
                        txtSaleQty.Text = "";
                        txtTotalAmount.Text = "";
                        return;

                    }
                }

                ListViewItem lst1 = new ListViewItem();

                lst1.SubItems.Add(cmbMenuItem.SelectedValue.ToString());
                lst1.SubItems.Add(cmbMenuItem.Text);
                lst1.SubItems.Add(txtPrice.Text);
                lst1.SubItems.Add(txtSaleQty.Text);
                lst1.SubItems.Add(txtTotalAmount.Text);
                ListView1.Items.Add(lst1);
                txtSubTotal.Text = subtot().ToString();
                Calculate();

                BillDetails billDetails2 = new BillDetails();
                billDetails2.BillId = _billId;
                billDetails2.MenuItemId = Convert.ToInt32(cmbMenuItem.SelectedValue.ToString());
                billDetails2.Quantity = Convert.ToInt32(txtSaleQty.Text);
                billDetails2.UnitPrice = Convert.ToDecimal(txtPrice.Text);
                billDetails2.IsDiscountAvailable = false;
                billDetails2.TotalPrice = Convert.ToDecimal(txtTotalAmount.Text);
                billDetails2.ReceivedBy = BaseObject.User_ID;
                billDetails2.IsDeleted = false;

                new BllTempBillDetails().InsertOrUpdate(billDetails2);

                BillInfo billInfo2 = createBillInfoObject();

                new BllBillInfo().InsertOrUpdate(billInfo2);

                cmbMenuItem.Text = "";
                txtPrice.Text = "";
                txtSaleQty.Text = "";
                txtTotalAmount.Text = "";
                return;
            }
            catch (Exception ex)
            {
                KryptonMessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }