private void GenerateCode(Digital_AppEntities posContext)
        {
            var purchaseTransactions = posContext.ItemPurchaseMsts;

            if (purchaseTransactions.Count() == 0)
            {
                txtGRNO.Text = "GRN-" + DateTime.Now.Year.ToString() + "-" + "1".PadLeft(6, '0');
            }
            else
            {
                ItemPurchaseMst itemPurchaseMst = purchaseTransactions.OrderByDescending(id => id.ID).Take(1).Single();
                if (itemPurchaseMst.CreatedDate.Value.Year == DateTime.Now.Year)
                {
                    var a = Convert.ToInt16(itemPurchaseMst.GRN.Replace("GRN-" + DateTime.Now.Year.ToString() + "-", ""));
                    txtGRNO.Text = "GRN-" + DateTime.Now.Year.ToString() + "-" + (Convert.ToInt16(itemPurchaseMst.GRN.Replace("GRN-" + DateTime.Now.Year.ToString() + "-", "")) + 1).ToString().PadLeft(6, '0');
                }
                else
                {
                    txtGRNO.Text = "GRN-" + DateTime.Now.Year.ToString() + "-" + "1".PadLeft(6, '0');
                }
            }
            txtPO.Text = txtGRNO.Text.Replace("GRN-", "PO-");
        }
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (dgvItemPurchaseDetail.Rows.Count <= 0)
            {
                MessageBox.Show("Please Iput Purchase Item..!!", Global.ApplicationNameWithVersion, MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            ItemPurchaseMst itemPurchaseMst;

            using (var posContext = new Digital_AppEntities())
            {
                if (itemPurchaseMstID == 0)
                {
                    itemPurchaseMst              = new ItemPurchaseMst();
                    itemPurchaseMst.GRN          = txtGRNO.Text;
                    itemPurchaseMst.ReceivedDate = Convert.ToDateTime(dtpGRNODate.Value.ToShortDateString() + " " + DateTime.Now.TimeOfDay.ToString());
                    itemPurchaseMst.PO           = txtPO.Text;
                    itemPurchaseMst.PODate       = Convert.ToDateTime(dtpGRNODate.Value.ToShortDateString() + " " + DateTime.Now.TimeOfDay.ToString());
                    itemPurchaseMst.ChallanNo    = txtChallanNo.Text;
                    itemPurchaseMst.ChallanDate  = Convert.ToDateTime(dtpGRNODate.Value.ToShortDateString() + " " + DateTime.Now.TimeOfDay.ToString());
                    if (cmbSupplier.SelectedValue != null)
                    {
                        itemPurchaseMst.SupplierID = Convert.ToInt16(cmbSupplier.SelectedValue);
                    }
                    itemPurchaseMst.Currency         = "BD";
                    itemPurchaseMst.Total            = Convert.ToDecimal(lblTotalData.Text);
                    itemPurchaseMst.Remarks          = txtRemarks.Text;
                    itemPurchaseMst.CreatedBy        = Global.LoggedInUser.ID;
                    itemPurchaseMst.CreatedDate      = DateTime.Now;
                    itemPurchaseMst.discount         = Convert.ToDecimal(txtDiscount.Text);
                    itemPurchaseMst.carriage_charge  = Convert.ToDecimal(txtCarriageCharg.Text);
                    itemPurchaseMst.labure_charge    = Convert.ToDecimal(txtLabureCharge.Text);
                    itemPurchaseMst.SupplierMobileNo = txtMobileNo.Text;

                    posContext.ItemPurchaseMsts.Add(itemPurchaseMst);

                    posContext.SaveChanges();

                    int id = itemPurchaseMst.ID;

                    itemPurchaseMstID = Convert.ToInt16(itemPurchaseMst.ID);
                    SupplierID        = Convert.ToInt16(cmbSupplier.SelectedValue);
                    TotalAmount       = Convert.ToDecimal(lblTotalData.Text);
                    Discount          = Convert.ToDecimal(txtDiscount.Text);

                    ItemPurchaseDtl itemPurchaseDtl;
                    decimal         totqty = 0;
                    foreach (DataGridViewRow row in dgvItemPurchaseDetail.Rows)
                    {
                        itemPurchaseDtl = new ItemPurchaseDtl();
                        itemPurchaseDtl.ItemPurchaseMstID = id;
                        itemPurchaseDtl.ItemID            = Convert.ToInt32(row.Cells["colItemID"].Value);
                        //itemPurchaseDtl.BatchNo = (row.Cells["BatchNo"].Value).ToString();
                        itemPurchaseDtl.BatchNo        = "0";
                        itemPurchaseDtl.ExpireDate     = Convert.ToDateTime(row.Cells["ColExpireDate"].Value);
                        itemPurchaseDtl.UnitPrice      = Convert.ToDecimal(row.Cells["colUnitPrice"].Value);
                        itemPurchaseDtl.Quantity       = Convert.ToDecimal(row.Cells["colQuantity"].Value);
                        itemPurchaseDtl.ReturnQuantity = Convert.ToDecimal(row.Cells["colQuantity"].Value);
                        itemPurchaseDtl.Total          = Convert.ToDecimal(row.Cells["colTotal"].Value);
                        totqty += Convert.ToDecimal(itemPurchaseDtl.Quantity);
                        posContext.ItemPurchaseDtls.Add(itemPurchaseDtl);
                    }
                    posContext.SaveChanges();

                    try
                    {
                        if (chkSentSMS.Checked)
                        {
                            if (!string.IsNullOrEmpty(txtMobileNo.Text) && txtMobileNo.Text.Length > 10)
                            {
                                string Year         = DateTime.Now.Year.ToString("");
                                string TotalAmount2 = (itemPurchaseMst.Total * 1 + 0).ToString().Replace(" ", "").Replace(",", "");
                                string Invoice      = "Dear Sir/Madam " + cmbSupplier.Text + ", Your Receipt No:" + itemPurchaseMst.PO + " Quantity :" + totqty.ToString() + " Amount :" + TotalAmount2 + " Thank's you for with us. For any query:01996513255";
                                //  string Text = "Dear Sir/Madam,Thanks for shopping with Dorjibari.Invoice:" + invoiceNumber.Replace("INV-" + Year + "-", "") + ", Qty:" + totalSaleQuantity.ToString() + ",Amt:" + TotalAmount + ", Visit our online shop www.dorjibari.com.bd, For any query:01708449690";
                                int          ln      = (int)Text.Length;
                                DialogResult values1 = MessageBox.Show("Are you want To Sent SMS!!", "",
                                                                       MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
                                SMSGEtwayCode aSMSGEtwayCode = new SMSGEtwayCode();
                                if (values1.ToString() == "Yes")
                                {
                                    aSMSGEtwayCode.SampleTestHttpApi(txtMobileNo.Text, Invoice, "userName", "Password");
                                }
                            }
                        }
                    }
                    catch
                    {
                    }
                    MessageBox.Show("Save SuccessFully", Global.ApplicationNameWithVersion, MessageBoxButtons.OK, MessageBoxIcon.Information);

                    //var categoryid = (from cats in posContext.ItemPurchaseMsts.LastOrDefaul() select cats.id).SingleOrDefault();
                }
                else
                {
                    itemPurchaseMst              = posContext.ItemPurchaseMsts.Single(s => s.ID == itemPurchaseMstID);
                    itemPurchaseMst.GRN          = txtGRNO.Text;
                    itemPurchaseMst.ReceivedDate = Convert.ToDateTime(dtpGRNODate.Value.ToShortDateString() + " " + DateTime.Now.TimeOfDay.ToString());
                    itemPurchaseMst.PO           = txtPO.Text;
                    itemPurchaseMst.PODate       = Convert.ToDateTime(dtpGRNODate.Value.ToShortDateString() + " " + DateTime.Now.TimeOfDay.ToString());
                    itemPurchaseMst.ChallanNo    = txtChallanNo.Text;
                    itemPurchaseMst.ChallanDate  = Convert.ToDateTime(dtpGRNODate.Value.ToShortDateString() + " " + DateTime.Now.TimeOfDay.ToString());
                    if (cmbSupplier.SelectedValue != null)
                    {
                        itemPurchaseMst.SupplierID = Convert.ToInt16(cmbSupplier.SelectedValue);
                    }
                    itemPurchaseMst.Currency         = "BD";
                    itemPurchaseMst.Total            = Convert.ToDecimal(lblTotalData.Text);
                    itemPurchaseMst.Remarks          = txtRemarks.Text;
                    itemPurchaseMst.ModifiedBy       = Global.LoggedInUser.ID;
                    itemPurchaseMst.ModifiedDate     = DateTime.Now;
                    itemPurchaseMst.discount         = Convert.ToDecimal(txtDiscount.Text);
                    itemPurchaseMst.carriage_charge  = Convert.ToDecimal(txtCarriageCharg.Text);
                    itemPurchaseMst.labure_charge    = Convert.ToDecimal(txtLabureCharge.Text);
                    itemPurchaseMst.SupplierMobileNo = txtMobileNo.Text;
                    posContext.SaveChanges();

                    int id = itemPurchaseMst.ID;

                    foreach (ItemPurchaseDtl item in posContext.ItemPurchaseMsts.Single(s => s.ID == itemPurchaseMstID).ItemPurchaseDtls.ToList())
                    {
                        posContext.ItemPurchaseDtls.Remove(item);
                    }
                    posContext.SaveChanges();
                    ItemPurchaseDtl itemPurchaseDtl;

                    foreach (DataGridViewRow row in dgvItemPurchaseDetail.Rows)
                    {
                        itemPurchaseDtl = new ItemPurchaseDtl();
                        itemPurchaseDtl.ItemPurchaseMstID = id;
                        itemPurchaseDtl.ItemID            = Convert.ToInt32(row.Cells["colItemID"].Value);
                        itemPurchaseDtl.BatchNo           = "0";
                        //(row.Cells["BatchNo"].Value).ToString();
                        itemPurchaseDtl.ExpireDate     = Convert.ToDateTime(row.Cells["ColExpireDate"].Value);
                        itemPurchaseDtl.UnitPrice      = Convert.ToDecimal(row.Cells["colUnitPrice"].Value);
                        itemPurchaseDtl.Quantity       = Convert.ToDecimal(row.Cells["colQuantity"].Value);
                        itemPurchaseDtl.ReturnQuantity = Convert.ToDecimal(row.Cells["colQuantity"].Value);
                        itemPurchaseDtl.Total          = Convert.ToDecimal(row.Cells["colTotal"].Value);
                        posContext.ItemPurchaseDtls.Add(itemPurchaseDtl);
                    }
                    posContext.SaveChanges();
                    MessageBox.Show("Update Successfully", Global.ApplicationNameWithVersion, MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                // this.ClearForm();
                this.btnSave.Enabled = false;
            }
        }