private void BtnSubmit_Click(object sender, EventArgs e)
        {
            tblVendorPayment tbv = new tblVendorPayment();

            tbv.VendorId        = Convert.ToInt32(cboVendor.SelectedValue.ToString());
            tbv.PaymentDate     = Convert.ToDateTime(dateTimePicker1.Value);
            tbv.TotalAmount     = Convert.ToDecimal(txtTotalAmount.Text);
            tbv.PaymentAmount   = Convert.ToDecimal(txtPaidAmount.Text);
            tbv.RemainingAmount = Convert.ToDecimal(txtRemainingAmount.Text);
            tbv.PaymentMode     = cboPaymentMode.Text;
            _db.tblVendorPayments.Add(tbv);
            if (_db.SaveChanges() > 0)
            {
                int vendorid = Convert.ToInt32(cboVendor.SelectedValue.ToString());
                var vendors  = _db.tblVendorPayments.Select(x => new { VendorId = x.VendorId, VendorName = x.tblVendor.Name, PaymentDate = x.PaymentDate, TotalAmount = x.TotalAmount, PaymentAmount = x.PaymentAmount, RemainingAmount = x.RemainingAmount }).Where(v => v.VendorId == vendorid).ToList();

                dataGridView1.DataSource = vendors;

                MessageBox.Show("Payment Done");
                cboVendor.SelectedIndex      = 0;
                txtPaidAmount.Text           = "";
                txtTotalAmount.Text          = "";
                txtRemainingAmount.Text      = "";
                cboPaymentMode.SelectedIndex = 0;
            }
        }
        private void BtnSave_Click(object sender, EventArgs e)
        {
            tblPurchaseInvoice tb = new tblPurchaseInvoice();

            tb.InvoiceNo   = txtInvoiceNo.Text;
            tb.InvoiceDate = Convert.ToDateTime(txtInvoiceDate.Text);
            tb.GrandTotal  = Convert.ToDecimal(txtGrandTotal.Text);
            tb.VendorId    = vendorid;
            db.tblPurchaseInvoices.Add(tb);
            db.SaveChanges();

            var tbv = db.tblVendorPayments.OrderByDescending(a => a.VendorPaymentId).Select(x => new { VendorId = x.VendorId, VendorName = x.tblVendor.Name, PaymentDate = x.PaymentDate, TotalAmount = x.TotalAmount, PaymentAmount = x.PaymentAmount, RemainingAmount = x.RemainingAmount }).Where(b => b.VendorId == vendorid).Take(1).FirstOrDefault();
            tblVendorPayment tbvenpay = new tblVendorPayment();

            if (tbv != null)
            {
                tbvenpay.VendorId        = vendorid;
                tbvenpay.PaymentDate     = Convert.ToDateTime(txtInvoiceDate.Text);
                tbvenpay.TotalAmount     = Convert.ToDecimal(txtGrandTotal.Text) + Convert.ToDecimal(tbv.RemainingAmount);
                tbvenpay.PaymentAmount   = Convert.ToDecimal(txtPaidAmount.Text);
                tbvenpay.RemainingAmount = (Convert.ToDecimal(txtGrandTotal.Text) + Convert.ToDecimal(tbv.RemainingAmount)) - Convert.ToDecimal(txtPaidAmount.Text);
            }
            else
            {
                tbvenpay.VendorId        = vendorid;
                tbvenpay.PaymentDate     = Convert.ToDateTime(txtInvoiceDate.Text);
                tbvenpay.TotalAmount     = Convert.ToDecimal(txtGrandTotal.Text);
                tbvenpay.PaymentAmount   = Convert.ToDecimal(txtPaidAmount.Text);
                tbvenpay.RemainingAmount = Convert.ToDecimal(txtRemainingAmount.Text);

                tbvenpay.PaymentMode = rbdCash.Checked ? "Cash" : "Cheque";
            }
            db.tblVendorPayments.Add(tbvenpay);

            if (db.SaveChanges() > 0)
            {
                foreach (DataGridViewRow dr in dataGridView1.Rows)
                {
                    tblPurchase pur = new tblPurchase();
                    pur.PurchaseInvoiceId = tb.PurchaseInvoiceId;
                    pur.ProductId         = Convert.ToInt32(dr.Cells["colProductId"].Value);

                    pur.Quantity     = Convert.ToInt32(dr.Cells["colQuantity"].Value);
                    pur.UnitPrice    = Convert.ToDecimal(dr.Cells["colUnitPrice"].Value);
                    pur.Total        = Convert.ToDecimal(dr.Cells["colTotal"].Value);
                    pur.PurchaseDate = Convert.ToDateTime(txtInvoiceDate.Text);
                    pur.Tax          = Convert.ToDecimal(dr.Cells["colTax"].Value);
                    db.tblPurchases.Add(pur);
                    if (db.SaveChanges() > 0)
                    {
                        tblStock tbst = db.tblStocks.Where(p => p.ProductId == pur.ProductId).FirstOrDefault();
                        if (tbst != null)
                        {
                            int puranoquantity = Convert.ToInt32(tbst.Quantity);
                            tbst.Quantity = puranoquantity + Convert.ToInt32(dr.Cells["colQuantity"].Value);
                            db.SaveChanges();
                        }
                        else
                        {
                            tblStock tbstock = new tblStock();
                            tbstock.ProductId = Convert.ToInt32(dr.Cells["colProductId"].Value);
                            tbstock.Quantity  = Convert.ToInt32(dr.Cells["colQuantity"].Value);
                            db.tblStocks.Add(tbstock);
                            db.SaveChanges();
                        }
                    }
                }
            }
            MessageBox.Show("Purchase Done");
        }