Facebook
From Sole Lemur, 1 Year ago, written in C#.
This paste is a reply to sssssssss from ssssss - go back
Embed
Viewing differences between sssssssss and Re: sssssssss
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;


namespace POS_v1.FORMS
{
    public partial class frmPOS : Form
    {
        public frmPOS()
        {
            InitializeComponent();

        }


        void FillCBxPay()
        {
            using (var DB = new DBEntities())
            {
                CmbPAY.DataSource = DB.TBL_PAY.Select(x => new { x.ID, x.PAY_DESC }).ToList();
                CmbPAY.DisplayMember = "PAY_DESC";
                CmbPAY.ValueMember = "ID";
            }

        }
        private void frmPOS_Load(object sender, EventArgs e)
        {

            FillCBxPay();
            fillingCategory();
            //PRDPNL.Controls.Clear();
            Prodcuts();
            DgVPRD.CellValueChanged += DgVPRD_CellValueChanged;

        }

        private void DgVPRD_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            double totalx = 0;
            for (int i = 0; i <= DgVPRD.Rows.Count - 1; i++)
            {
                totalx += Convert.ToDouble(DgVPRD.Rows[i].Cells["TotalAmount"].Value);
            }
            TXTTOTAL.Text = Math.Round(totalx, 2).ToString();

        }

        void fillingCategory()
        {
            CatPNL.Controls.Clear();
            DBEntities DBs = new DBEntities();
            var PrdCat = DBs.TBL_PRODUCT_CAT.Select(s => new { s.ID, s.PRD_DESC }).ToList();
            foreach (var x in PrdCat)
            {
                Button btn = new Button();
                btn.BackColor = Color.FromArgb(46, 134, 222);
                btn.Size = new Size(110, 62);
                btn.ForeColor = Color.White;
                btn.FlatStyle = FlatStyle.Flat;
                btn.FlatAppearance.BorderSize = 0;
                btn.Tag = x.ID;
                btn.Text = x.PRD_DESC;
                CatPNL.Controls.Add(btn);
                btn.Click += new EventHandler(Clickss);
            }
        }

        private void Clickss(object sender, EventArgs e)
        {
            Button btn = ((Button)sender);

            foreach (var prd in PRDPNL.Controls)
            {
                var prdct = (UserControlProducts)prd;
                prdct.Visible = prdct.PRDCat.ToLower().Contains(btn.Text.Trim().ToLower());
            }
        }
        void AddProdeuct(string Id, string PrdName, string PrdPrice, Image image, string PRDCategory)
        {
            var UC = new UserControlProducts()
            {
                Id = Convert.ToInt32(Id),
                PRDname = PrdName,
                PRDCat = PRDCategory,
                Price = PrdPrice,
                pRdimage = image
            };
            PRDPNL.Controls.Add(UC);
            UC.Select += (ss, ee) =>
             {
                 var prd = (UserControlProducts)ss;
                 try
                 {
                     double x = 0;
                     double.TryParse(TxtPay.Text, out x);
                     if (x == 0)
                     {
                         x = 1;
                     }
                     foreach (DataGridViewRow prdcts in DgVPRD.Rows)
                     {
                         if (Convert.ToInt32(prdcts.Cells["ID"].Value) == prd.Id)
                         {
                             prdcts.Cells["Qty"].Value = Convert.ToString(x + Convert.ToInt16(prdcts.Cells["Qty"].Value));
                             prdcts.Cells["TotalAmount"].Value = Convert.ToDouble(prdcts.Cells["Qty"].Value) * Convert.ToDouble(prdcts.Cells["PRD_PRICE"].Value);
                             return;
                         }
                     }


                     DgVPRD.Rows.Add(new object[] { 0, prd.Id, prd.PRDname, x, prd.Price, prd.Price });
                     TxtPay.Text = "1";
                 }
                 catch (Exception) { }
                 try
                 {
                     Total();
                 }
                 catch (Exception) { }
             };

        }
        void Total()
        {
            double totals = 0;
            for (int i = 0; i <= DgVPRD.Rows.Count - 1; i++)
            {
                totals += Convert.ToDouble(DgVPRD.Rows[i].Cells["TotalAmount"].Value);
                DgVPRD.ClearSelection();
                DgVPRD.FirstDisplayedScrollingRowIndex = DgVPRD.Rows.Count - 1;
                DgVPRD.Rows[DgVPRD.Rows.Count - 1].Selected = true;
            }
            TXTTOTAL.Text = totals.ToString();
        }
        private void Prodcuts()
        {
            DBEntities DB1 = new DBEntities();
            var query = from a in DB1.TBL_PRODUCT
                        join c in DB1.TBL_PRODUCT_CAT on a.PRD_CATEGORY_ID equals c.ID
                        select new
                        {
                            a.ID,
                            a.PRD_IMAGE,
                            a.PRD_PRICE,
                            a.PRD_NAME,
                            c.PRD_DESC
                        }
                        ;

            foreach (var x in query)
            {
                AddProdeuct(Convert.ToString(x.ID),
                    x.PRD_NAME, Convert.ToString(x.PRD_PRICE),
                    GetImageFromByteArray(x.PRD_IMAGE), x.PRD_DESC);
            }
        }
        Image GetImageFromByteArray(Byte[] ByteArray)
        {
            Image img;
            try
            {
                Byte[] imgbyte = ByteArray;
                MemoryStream stream = new MemoryStream(imgbyte, false);
                img = Image.FromStream(stream);
            }
            catch { img = null; }
            return img;
        }

        private void DgVPRD_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {
            foreach (var prd in PRDPNL.Controls)
            {
                var prdct = (UserControlProducts)prd;
                prdct.Visible = prdct.PRDname.ToLower().Contains(textBox2.Text.Trim().ToLower());
            }
        }

        private void DgVPRD_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
        {
            int count = 0;
            foreach (DataGridViewRow dgv in DgVPRD.Rows)
            {
                count++;
                dgv.Cells[0].Value = count;
            }
        }

        #region buttons 

        #endregion

        private void BtnDelete_Click(object sender, EventArgs e)
        {
            if (DgVPRD.Rows.Count > 0)
            {
                DgVPRD.Rows.Remove(DgVPRD.CurrentRow);
                Total();
            }
        }

        private void BtnClear_Click(object sender, EventArgs e)
        {
            DgVPRD.Rows.Clear();
            Total();
        }

        private void BtnClose_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void Clear()
        {
            TXTTOTAL.Text = "0";
            TxtPay.Text = "0";
            TxtPayed.Text = "0";
            DgVPRD.Rows.Clear();
        }
        private void BtnNew_Click(object sender, EventArgs e)
        {
            Clear();

            //SrDgv = 0;
        }



        private void BtnC_Click(object sender, EventArgs e)
        {
            TxtPay.Text = "0";
        }

        private void BTN7_Click(object sender, EventArgs e)
        {
            Button b = (Button)sender;
            if (TxtPay.Text == "0")
                TxtPay.Clear();

            TxtPay.Text = TxtPay.Text + b.Text;
            if (TxtPay.Text == "." && b.Text == ".")
            {
                TxtPay.Text = "0.";
            }
        }

        private void SaveBill()
        {
            double Txttotal = 0;
            double totalPay = 0;
            double.TryParse(TXTTOTAL.Text, out Txttotal);
            double.TryParse(TxtPay.Text, out totalPay);

            if (Txttotal == 0)
            {
                MessageBox.Show("Cant Save Empty Bill");
                return;
            }
            if (totalPay == 0)
            {
                MessageBox.Show("Cant Pay Without Money");
                return;
            }
            if (totalPay < Txttotal)
            {
                MessageBox.Show("The Payment Not Enough");
                return;
            }

            TxtPayed.Text = totalPay.ToString();
            TxtChange.Text = (totalPay - Txttotal).ToString();
            DBEntities DBsx = new DBEntities();
            try
            {
                TBL_BILL tblBill = new TBL_BILL();
                tblBill.PAY_DATE = DateTime.Now;
                tblBill.UserID = Declaration.UserID;
                tblBill.TotalAmount = Convert.ToDecimal(TXTTOTAL.Text);
                tblBill.STATUS = "Close";
                List list = new List();
                for (int i = 0; i < DgVPRD.Rows.Count; i++)
                {
                    TBL_PRODUCT_BILL PRDBILLDB = new TBL_PRODUCT_BILL();
                    PRDBILLDB.PRD_ID = int.Parse(DgVPRD.Rows[i].Cells["ID"].Value.ToString());
                    PRDBILLDB.QTY = int.Parse(DgVPRD.Rows[i].Cells["Qty"].Value.ToString());
                    PRDBILLDB.PRICE = Convert.ToDecimal(DgVPRD.Rows[i].Cells["PRD_PRICE"].Value);
                    PRDBILLDB.TOTAL_PRICE = Convert.ToDecimal(DgVPRD.Rows[i].Cells["TotalAmount"].Value);
                    list.Add(PRDBILLDB);
                }
                List list2 = new List();
                try
                {
                    TBL_BILL_PAY tblBillPay = new TBL_BILL_PAY();
                    tblBillPay.PAY_ID = Convert.ToInt32(CmbPAY.SelectedValue);
                    tblBillPay.PAY_VALUE = Convert.ToDecimal(TxtPayed.Text);
                    list2.Add(tblBillPay);
                }
                catch (Exception) { }

                tblBill.TBL_PRODUCT_BILL = list;
                tblBill.TBL_BILL_PAY = list2;
                DBsx.TBL_BILL.Add(tblBill);
                DBsx.SaveChanges();
                MessageBox.Show("Save Successfully");

            }
            catch (Exception) { throw; }
        }

        private void SavePRDBILL()
        {
            try
            {


            }
            catch (Exception)
            {

                throw;
            }
        }
        private void SavePRDPAY()
        {

        }

        private void BtnPrint_Click(object sender, EventArgs e)
        {
            SaveBill();
        }

        private void TxtPayed_TextChanged(object sender, EventArgs e)
        {
            TxtPay.Text = TxtPayed.Text;
        }
    }
}
captcha