Respected to All Members I have already Developed. Code for Inserting the Data in Tally Using C# but No Idea about How To Alter the Particular Voucher Using Master ID Kindly Please Help For Insertion I have Attached Sample Code Code: using System; using System.Configuration; using System.Data; using System.Data.Odbc; using System.Data.SqlClient; using System.IO; using System.Net; using System.Net.Mail; using System.Text; using System.Web.UI; using System.Web.UI.WebControls; using System.Xml; namespace ABSOLUTE_SO_INTEGRATION { public partial class SO_CREATION : System.Web.UI.Page { decimal qty = 1; static string tally = ConfigurationManager.AppSettings["tally"]; private static OdbcConnection TallyCollectionConnection = new OdbcConnection(tally); SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["cn"].ToString()); decimal grandtotal = 0; // decimal totalvalue = 0; VCHDateHandler ho = new VCHDateHandler(); Post c = new Post(); string user; string voucherNum = ""; protected void Page_Load(object sender, EventArgs e) { PreviousOrderNum(); try { user = Session["id"].ToString(); } catch (Exception) { Response.Redirect("Login.aspx"); } if (!this.IsPostBack) { // this.ClientScript.RegisterStartupScript(this.GetType(), "SweetAlert", "swal('Oops!', 'Something went wrong on the page!', 'error');", true); txtQuantity.Text = qty.ToString(); txtVchDate.Text = System.DateTime.Now.ToString("yyyy-MM-dd"); txtDueOn.Text= System.DateTime.Now.ToString("yyyy-MM-dd"); DataTable dtitmdata = new DataTable(); dtitmdata.Columns.AddRange(new DataColumn[8] { new DataColumn("Sr"), new DataColumn("Name Of Item"), new DataColumn("Description"), new DataColumn("Due On"), new DataColumn("Quantity"), new DataColumn("Rate"), new DataColumn("Per"), new DataColumn("Amount") }); ViewState["item"] = dtitmdata; this.BindGrid(); } if (ddlPartyName.Items.Count == 0) { ddlPartyName.AppendDataBoundItems = true; ddlPartyName.Items.Add("---Select---"); DataTable ledger = Ledger(); foreach (DataRow r in ledger.Rows) { ddlPartyName.Items.Add(r["$Name"].ToString()); } DataTable Salesledger = SalesLed(); foreach (DataRow r in Salesledger.Rows) { ddlSalesLeder.Items.Add(r["$Name"].ToString()); } ddlStockName.AppendDataBoundItems = true; ddlStockName.Items.Add("---Select---"); DataTable item = Item(); foreach (DataRow r in item.Rows) { ddlStockName.Items.Add(r["$Name"].ToString()); } DataTable cmp = Company(); foreach (DataRow r in cmp.Rows) { lblCurrentCompany.Text = r["$Name"].ToString(); } DataTable cmpstate = CompanyState(); foreach (DataRow r in cmpstate.Rows) { lblCMPState.Text = r["$StateName"].ToString(); } } } public void PreviousOrderNum() { String myquery1 = "Select max(ORDERNO) From SO"; SqlCommand cmd1 = new SqlCommand(); cmd1.CommandText = myquery1; cmd1.Connection = con; SqlDataAdapter da1 = new SqlDataAdapter(); da1.SelectCommand = cmd1; DataSet ds1 = new DataSet(); da1.Fill(ds1); string s = txtOrderNo.Text = ds1.Tables[0].Rows[0][0].ToString(); } public static DataTable CompanyState() { TallyCollectionConnection.Open(); OdbcCommand TallyCommand = new OdbcCommand("SELECT $StateName FROM Company ", TallyCollectionConnection); OdbcDataAdapter TallyDataAdapter = new OdbcDataAdapter(TallyCommand); DataTable TallyDataSet = new DataTable(); TallyDataAdapter.Fill(TallyDataSet); TallyCollectionConnection.Close(); return TallyDataSet; } public static DataTable LedgerState(string LedgerStateFilt) { TallyCollectionConnection.Open(); // string sql = $"Select $LedStateName from CollSalPurchLed where $Name=" + "\"" + LedgerStateFilt + "\""; string sql = $"Select $LedStateName from CollSalPurchLed where $Name=" + "\"" + LedgerStateFilt + "\""; OdbcCommand TallyCommand = new OdbcCommand(sql, TallyCollectionConnection); OdbcDataAdapter TallyDataAdapter = new OdbcDataAdapter(TallyCommand); DataTable TallyDataSet = new DataTable(); TallyDataAdapter.Fill(TallyDataSet); TallyCollectionConnection.Close(); return TallyDataSet; } //Party Address Filter public static DataTable LedgerAddress(string LedgerAddressFilt) { TallyCollectionConnection.Open(); // string sql = $"Select $LedStateName from CollSalPurchLed where $Name=" + "\"" + LedgerStateFilt + "\""; string sql = $"Select $_Address1 from CollSalPurchLed where $Name=" + "\"" + LedgerAddressFilt + "\""; OdbcCommand TallyCommand = new OdbcCommand(sql, TallyCollectionConnection); OdbcDataAdapter TallyDataAdapter = new OdbcDataAdapter(TallyCommand); DataTable TallyDataSet = new DataTable(); TallyDataAdapter.Fill(TallyDataSet); TallyCollectionConnection.Close(); return TallyDataSet; } public static DataTable LedgerAddress2(string LedgerAddressFilt2) { TallyCollectionConnection.Open(); // string sql = $"Select $LedStateName from CollSalPurchLed where $Name=" + "\"" + LedgerStateFilt + "\""; string sql = $"Select $_Address2 from CollSalPurchLed where $Name=" + "\"" + LedgerAddressFilt2 + "\""; OdbcCommand TallyCommand = new OdbcCommand(sql, TallyCollectionConnection); OdbcDataAdapter TallyDataAdapter = new OdbcDataAdapter(TallyCommand); DataTable TallyDataSet = new DataTable(); TallyDataAdapter.Fill(TallyDataSet); TallyCollectionConnection.Close(); return TallyDataSet; } public static DataTable LedgerAddress3(string LedgerAddressFilt3) { TallyCollectionConnection.Open(); // string sql = $"Select $LedStateName from CollSalPurchLed where $Name=" + "\"" + LedgerStateFilt + "\""; string sql = $"Select $_Address3 from CollSalPurchLed where $Name=" + "\"" + LedgerAddressFilt3 + "\""; OdbcCommand TallyCommand = new OdbcCommand(sql, TallyCollectionConnection); OdbcDataAdapter TallyDataAdapter = new OdbcDataAdapter(TallyCommand); DataTable TallyDataSet = new DataTable(); TallyDataAdapter.Fill(TallyDataSet); TallyCollectionConnection.Close(); return TallyDataSet; } public static DataTable LedgerAddress4(string LedgerAddressFilt4) { TallyCollectionConnection.Open(); // string sql = $"Select $LedStateName from CollSalPurchLed where $Name=" + "\"" + LedgerStateFilt + "\""; string sql = $"Select $_Address4 from CollSalPurchLed where $Name=" + "\"" + LedgerAddressFilt4 + "\""; OdbcCommand TallyCommand = new OdbcCommand(sql, TallyCollectionConnection); OdbcDataAdapter TallyDataAdapter = new OdbcDataAdapter(TallyCommand); DataTable TallyDataSet = new DataTable(); TallyDataAdapter.Fill(TallyDataSet); TallyCollectionConnection.Close(); return TallyDataSet; } //PARTY COUNTRY FILTER public static DataTable LedgerCountry(string LedgerCountryFilt) { TallyCollectionConnection.Open(); // string sql = $"Select $LedStateName from CollSalPurchLed where $Name=" + "\"" + LedgerStateFilt + "\""; string sql = $"Select $CountryName from CollSalPurchLed where $Name=" + "\"" + LedgerCountryFilt + "\""; OdbcCommand TallyCommand = new OdbcCommand(sql, TallyCollectionConnection); OdbcDataAdapter TallyDataAdapter = new OdbcDataAdapter(TallyCommand); DataTable TallyDataSet = new DataTable(); TallyDataAdapter.Fill(TallyDataSet); TallyCollectionConnection.Close(); return TallyDataSet; } // PARTY GSTIN FILTER public static DataTable LedgerGSTIN(string LedgerGSTINFilt) { TallyCollectionConnection.Open(); // string sql = $"Select $LedStateName from CollSalPurchLed where $Name=" + "\"" + LedgerStateFilt + "\""; string sql = $"Select $PartyGSTIN from CollSalPurchLed where $Name=" + "\"" + LedgerGSTINFilt + "\""; OdbcCommand TallyCommand = new OdbcCommand(sql, TallyCollectionConnection); OdbcDataAdapter TallyDataAdapter = new OdbcDataAdapter(TallyCommand); DataTable TallyDataSet = new DataTable(); TallyDataAdapter.Fill(TallyDataSet); TallyCollectionConnection.Close(); return TallyDataSet; } public static DataTable LedgerEmail(string LedgerEmailFilt) { TallyCollectionConnection.Open(); // string sql = $"Select $LedStateName from CollSalPurchLed where $Name=" + "\"" + LedgerStateFilt + "\""; string sql = $"Select $EMail from CollSalPurchLed where $Name=" + "\"" + LedgerEmailFilt + "\""; OdbcCommand TallyCommand = new OdbcCommand(sql, TallyCollectionConnection); OdbcDataAdapter TallyDataAdapter = new OdbcDataAdapter(TallyCommand); DataTable TallyDataSet = new DataTable(); TallyDataAdapter.Fill(TallyDataSet); TallyCollectionConnection.Close(); return TallyDataSet; } // For Party A/C Name public static DataTable Ledger() { TallyCollectionConnection.Open(); OdbcCommand TallyCommand = new OdbcCommand("SELECT $Name FROM CollSalPurchLed", TallyCollectionConnection); OdbcDataAdapter TallyDataAdapter = new OdbcDataAdapter(TallyCommand); DataTable TallyDataSet = new DataTable(); TallyDataAdapter.Fill(TallyDataSet); TallyCollectionConnection.Close(); return TallyDataSet; } // For Sales Ledger public static DataTable SalesLed() { TallyCollectionConnection.Open(); OdbcCommand TallyCommand = new OdbcCommand("SELECT $Name FROM CollSalesLed", TallyCollectionConnection); OdbcDataAdapter TallyDataAdapter = new OdbcDataAdapter(TallyCommand); DataTable TallyDataSet = new DataTable(); TallyDataAdapter.Fill(TallyDataSet); TallyCollectionConnection.Close(); return TallyDataSet; } // For Stockitem Name public static DataTable Item() { TallyCollectionConnection.Open(); OdbcCommand TallyCommand = new OdbcCommand("SELECT $Name FROM StockItem", TallyCollectionConnection); OdbcDataAdapter TallyDataAdapter = new OdbcDataAdapter(TallyCommand); DataTable TallyDataSet = new DataTable(); TallyDataAdapter.Fill(TallyDataSet); TallyCollectionConnection.Close(); return TallyDataSet; } // Unit Filter public static DataTable StockUnit(string Unitfilt) { TallyCollectionConnection.Open(); string sql = "select $BaseUnits from StockItem where $Name=" + "\"" + Unitfilt + "\""; OdbcCommand TallyCommand = new OdbcCommand(sql, TallyCollectionConnection); OdbcDataAdapter TallyDataAdapter = new OdbcDataAdapter(TallyCommand); DataTable TallyDataSet = new DataTable(); TallyDataAdapter.Fill(TallyDataSet); TallyCollectionConnection.Close(); return TallyDataSet; } public void AmtSum() { decimal val1 = Convert.ToDecimal(txtRate.Text); decimal val2 = Convert.ToDecimal(txtQuantity.Text); decimal val3 = val1 * val2; txtAmount.Text = Convert.ToDecimal(val3).ToString(); } protected void ddlStockName_SelectedIndexChanged(object sender, EventArgs e) { DataTable Unitfilt = StockUnit(ddlStockName.SelectedItem.Text); foreach (DataRow r in Unitfilt.Rows) { txtPer.Text = r["$BaseUnits"].ToString(); } } protected void btnAddItem_Click(object sender, EventArgs e) { int rowsr = GVItem.Rows.Count + 1; DataTable dtitmdata = (DataTable)ViewState["item"]; string sr = rowsr.ToString(); string item = ddlStockName.Text; string desc = txtStockDescription.Text; string due = txtDueOn.Text; string itemqty = txtQuantity.Text; string itemrate = txtRate.Text; string unit = txtPer.Text; string itemgross = (Convert.ToDecimal(itemrate) * Convert.ToDecimal(itemqty)).ToString("F"); string[] row1 = { sr, item,desc,due, itemqty, itemrate,unit, itemgross }; dtitmdata.Rows.Add(row1); ViewState["item"] = dtitmdata; this.BindGrid(); GVItem.DataSource = dtitmdata; GVItem.DataBind(); calculateSum(); // InvCal(); txtRate.Text = string.Empty; txtAmount.Text = string.Empty; txtQuantity.Text = qty.ToString(); txtPer.Text = string.Empty; txtStockDescription.Text = string.Empty; lblGrossAmt.Visible = true; GrossAmt.Visible = true; txtTotalAmountWithGST.Visible = true; lblTotalAmtWithGST.Visible = true; if (lblCMPState.Text == lblPartyState.Text) { lblCGST.Visible = true; lblSGST.Visible = true; txtCGST.Visible = true; txtSGST.Visible = true; txtIGST.Visible = false; lblIGST.Visible = false; } else { lblIGST.Visible = true; txtIGST.Visible = true; txtSGST.Visible = false; txtCGST.Visible = false; lblCGST.Visible = false; lblSGST.Visible = false; } decimal total = 0; // decimal qtytotal = 0; double sgst = 0, cgst = 0, igst = 0, taxRate = 10; foreach (GridViewRow row in GVItem.Rows) { { // item ka index Konsa he taxRate = getgstrate(row.Cells[1].Text); // qtytotal += Convert.ToDecimal(row.Cells[5].Value.ToString()); total += Convert.ToDecimal(row.Cells[7].Text); double temp = Math.Round(Convert.ToDouble(row.Cells[7].Text), 2); temp = Math.Round(temp * taxRate / 100, 1); if (lblCMPState.Text.ToString() == lblPartyState.Text.ToString()) // cmpany state && partystate == { cgst += temp / 2; sgst += temp / 2; } else igst += temp; GrossAmt.Text = total.ToString(); // txtTotalQty.Text = qtytotal.ToString(); } } txtCGST.Text = String.Format("{00:00}", cgst); txtSGST.Text = String.Format("{00:00}", sgst); txtIGST.Text = String.Format("{00:00}", igst); GSTValue(); } public void GSTValue() // For Calculating GST Value { decimal cgst = string.IsNullOrEmpty(txtCGST.Text) ? 0 : Convert.ToDecimal(string.Format("{0:G29}", decimal.Parse(txtCGST.Text))); decimal sgst = string.IsNullOrEmpty(txtSGST.Text) ? 0 : Convert.ToDecimal(string.Format("{0:G29}", decimal.Parse(txtSGST.Text))); decimal igst = string.IsNullOrEmpty(txtIGST.Text) ? 0 : Convert.ToDecimal(string.Format("{0:G29}", decimal.Parse(txtIGST.Text))); decimal subtotal = string.IsNullOrEmpty(GrossAmt.Text) ? 0 : Convert.ToDecimal(string.Format("{0:G29}", decimal.Parse(GrossAmt.Text))); txtTotalAmountWithGST.Text = (cgst + sgst + igst + subtotal).ToString("N2"); } public static DataTable Company() { TallyCollectionConnection.Open(); OdbcCommand TallyCommand = new OdbcCommand("SELECT $Name FROM Company", TallyCollectionConnection); OdbcDataAdapter TallyDataAdapter = new OdbcDataAdapter(TallyCommand); DataTable TallyDataSet = new DataTable(); TallyDataAdapter.Fill(TallyDataSet); TallyCollectionConnection.Close(); return TallyDataSet; } private double getgstrate(string stk) { double val = 0; try { string vchxml = Resource1.GSTRATE.Replace("~CMP~", lblCurrentCompany.Text.ToString()).Replace("~STK~", stk); string res = c.SendReqst(vchxml); XmlDocument xml = new XmlDocument(); xml.LoadXml(res); XmlElement rootnode = xml.DocumentElement; XmlNodeList xmlist = rootnode.SelectNodes("//ENVELOPE//VATDETAIL//VATLEDGERS"); XmlNamespaceManager nsmanager = new XmlNamespaceManager(xml.NameTable); nsmanager.AddNamespace("UDF", "TallyUDF"); xml.PreserveWhitespace = false; foreach (XmlNode tallyMsg in xmlist) { string taxname = tallyMsg.SelectSingleNode("./LEDGER").InnerText.ToString(); double.TryParse(tallyMsg.SelectSingleNode("./TAX").InnerText.ToString(), out val); if (taxname.ToUpper().Contains("INTEGRATED")) break; } xml = null; } catch (Exception ex) { val = 10; } return val; } protected void BindGrid() { GVItem.DataSource = (DataTable)ViewState["item"]; GVItem.DataBind(); GVItem.Columns[1].ItemStyle.Width = 270; // GVItem.Columns[1].HeaderText = "Sr"; } private void calculateSum() { foreach (GridViewRow row in GVItem.Rows) { grandtotal = grandtotal + Convert.ToDecimal(row.Cells[7].Text); //Where Cells is the column. Just changed the index of cells } GVItem.FooterRow.Cells[1].Text = "Total(W/O GST)"; GVItem.FooterRow.Cells[7].Text = grandtotal.ToString(); } protected void GVItem_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) { GVItem.EditIndex = -1; BindGrid(); } protected void GVItem_RowDeleting(object sender, GridViewDeleteEventArgs e) { int index = Convert.ToInt32(e.RowIndex); DataTable dt = ViewState["item"] as DataTable; dt.Rows[index].Delete(); Console.WriteLine("onclick", "alert('Successfully Deleted " + "item" + "');", true); ViewState["item"] = dt; BindGrid(); lblGrossAmt.Visible = false; GrossAmt.Visible = false; txtTotalAmountWithGST.Text = ""; lblTotalAmtWithGST.Visible = false; txtTotalAmountWithGST.Visible = false; lblIGST.Visible = false; txtIGST.Text = ""; txtIGST.Visible = false; txtSGST.Text = ""; txtSGST.Visible = false; txtCGST.Text = ""; txtCGST.Visible = false; lblCGST.Visible = false; lblSGST.Visible = false; } protected void GVItem_RowEditing(object sender, GridViewEditEventArgs e) { GVItem.EditIndex = e.NewEditIndex; this.BindGrid(); } protected void GVItem_RowUpdating(object sender, GridViewUpdateEventArgs e) { int sr = Convert.ToInt32(GVItem.DataKeys[e.RowIndex].Value.ToString()); GridViewRow row = (GridViewRow)GVItem.Rows[e.RowIndex]; string ITEM = (row.Cells[1].Controls[0] as System.Web.UI.WebControls.TextBox).Text; string DESC= (row.Cells[2].Controls[0] as System.Web.UI.WebControls.TextBox).Text; string DUE= (row.Cells[3].Controls[0] as System.Web.UI.WebControls.TextBox).Text; string QTY = (row.Cells[4].Controls[0] as System.Web.UI.WebControls.TextBox).Text; string RATE = (row.Cells[5].Controls[0] as System.Web.UI.WebControls.TextBox).Text; string UNIT = (row.Cells[6].Controls[0] as System.Web.UI.WebControls.TextBox).Text; decimal amount = Convert.ToDecimal(QTY.ToString()) * Convert.ToDecimal(RATE.ToString()); DataTable dt = ViewState["item"] as DataTable; dt.Rows[row.RowIndex]["Name Of Item"] = ITEM; dt.Rows[row.RowIndex]["Description"] = DESC; dt.Rows[row.RowIndex]["Due On"] = DUE; dt.Rows[row.RowIndex]["Quantity"] = QTY; dt.Rows[row.RowIndex]["Rate"] = RATE; dt.Rows[row.RowIndex]["Per"] = UNIT; dt.Rows[row.RowIndex]["Amount"] = amount; ViewState["item"] = dt; GVItem.EditIndex = -1; this.BindGrid(); calculateSum(); decimal total = 0; double sgst = 0, cgst = 0, igst = 0, taxRate = 10; foreach (GridViewRow row1 in GVItem.Rows) { { // item ka index Konsa he taxRate = getgstrate(row1.Cells[1].Text); // qtytotal += Convert.ToDecimal(row.Cells[5].Value.ToString()); total += Convert.ToDecimal(row1.Cells[7].Text); double temp = Math.Round(Convert.ToDouble(row1.Cells[7].Text), 2); temp = Math.Round(temp * taxRate / 100, 1); if (lblCMPState.Text.ToString() == lblPartyState.Text.ToString()) // cmpany state && partystate == { cgst += temp / 2; sgst += temp / 2; } else igst += temp; GrossAmt.Text = total.ToString(); // txtTotalQty.Text = qtytotal.ToString(); } } txtCGST.Text = String.Format("{00:00}", cgst); txtSGST.Text = String.Format("{00:00}", sgst); txtIGST.Text = String.Format("{00:00}", igst); GSTValue(); } protected void ddlPartyName_SelectedIndexChanged(object sender, EventArgs e) { lblPartyState.Text = string.Empty; DataTable LedgerStateFilt = LedgerState(ddlPartyName.SelectedItem.Text); foreach (DataRow r in LedgerStateFilt.Rows) { // lblPartyState.Visible = true; lblPartyState.Text = (r["$LedStateName"].ToString()); } lblPartyAddress1.Text = string.Empty; DataTable LedgerAddressFilt = LedgerAddress(ddlPartyName.SelectedItem.Text); foreach (DataRow r in LedgerAddressFilt.Rows) { // lblPartyAddress1.Visible = true; lblPartyAddress1.Text = (r["$_Address1"].ToString()); } lblPartyAddress2.Text = string.Empty; DataTable LedgerAddressFilt2 = LedgerAddress2(ddlPartyName.SelectedItem.Text); foreach (DataRow r in LedgerAddressFilt2.Rows) { // lblPartyAddress2.Visible = true; lblPartyAddress2.Text = (r["$_Address2"].ToString()); } lblPartyAddress3.Text = string.Empty; DataTable LedgerAddressFilt3 = LedgerAddress3(ddlPartyName.SelectedItem.Text); foreach (DataRow r in LedgerAddressFilt3.Rows) { // lblPartyAddress3.Visible = true; lblPartyAddress3.Text = (r["$_Address3"].ToString()); } lblPartyAddress4.Text = string.Empty; DataTable LedgerAddressFilt4 = LedgerAddress4(ddlPartyName.SelectedItem.Text); foreach (DataRow r in LedgerAddressFilt4.Rows) { // lblPartyAddress4.Visible = true; lblPartyAddress4.Text = (r["$_Address4"].ToString()); } lblCountry.Text = string.Empty; DataTable LedgerCountryFilt = LedgerCountry(ddlPartyName.SelectedItem.Text); foreach (DataRow r in LedgerCountryFilt.Rows) { // lblCountry.Visible = true; lblCountry.Text = (r["$CountryName"].ToString()); } lblGSTIN.Text = string.Empty; DataTable LedgerGSTINFilt = LedgerGSTIN(ddlPartyName.SelectedItem.Text); foreach (DataRow r in LedgerGSTINFilt.Rows) { //lblGSTIN.Visible = true; lblGSTIN.Text = (r["$PartyGSTIN"].ToString()); } lblUserEmail.Text = string.Empty; DataTable LedgerEmailFilt = LedgerEmail(ddlPartyName.SelectedItem.Text); foreach (DataRow r in LedgerEmailFilt.Rows) { //lblGSTIN.Visible = true; lblUserEmail.Text = (r["$EMail"].ToString()); } } public void getOrderNo() { String myquery = "Select ORDERNO From SO"; SqlCommand cmd = new SqlCommand(); cmd.CommandText = myquery; cmd.Connection = con; SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = cmd; DataSet ds = new DataSet(); da.Fill(ds); con.Close(); if (ds.Tables[0].Rows.Count == 0) { // txtOrderNo.Text = "PO/20-21-20192020"; lblRunningOrderNumb.Text = "ABS/SO-21-22/0001"; } else { String myquery1 = "Select max(ORDERNO) From SO"; SqlCommand cmd1 = new SqlCommand(); cmd1.CommandText = myquery1; cmd1.Connection = con; SqlDataAdapter da1 = new SqlDataAdapter(); da1.SelectCommand = cmd1; DataSet ds1 = new DataSet(); da1.Fill(ds1); string s = lblRunningOrderNumb.Text = ds1.Tables[0].Rows[0][0].ToString(); int len = s.Length; string splitno = s.Substring(13, len - 13); int num = Convert.ToInt32(splitno); num++; lblRunningOrderNumb.Text = s.Substring(0, 13) + num.ToString("0000"); } } public void SendEmail() { if (!string.IsNullOrEmpty(lblUserEmail.Text)) { var HostAdd = ConfigurationManager.AppSettings["Host"].ToString(); var FromEmailid = ConfigurationManager.AppSettings["FromMail"].ToString(); var Pass = ConfigurationManager.AppSettings["Password"].ToString(); var port = ConfigurationManager.AppSettings["Port"].ToString(); var cc = ConfigurationManager.AppSettings["CC"].ToString(); var bcc = ConfigurationManager.AppSettings["BCC"].ToString(); MailMessage mailMessage = new MailMessage(); mailMessage.To.Add(lblUserEmail.Text); mailMessage.From = new MailAddress(FromEmailid, "ABSOLUTE NETWORKS PVT. LTD."); mailMessage.Subject = ddlPartyName.SelectedItem.ToString() + " - ORDER NO - " + lblRunningOrderNumb.Text.ToString(); mailMessage.Body = CreateBody(); mailMessage.IsBodyHtml = true; string[] Multi = lblUserEmail.Text.Split(','); foreach (string MultiEmailID in Multi) { mailMessage.To.Add(new MailAddress(MultiEmailID)); } string[] CCId = cc.Split(','); foreach (string CCEmail in CCId) { if (!string.IsNullOrWhiteSpace(cc)) { mailMessage.CC.Add(new MailAddress(CCEmail)); } } string[] bccid = cc.Split(','); foreach (string bccEmailId in bccid) { if (!string.IsNullOrWhiteSpace(bcc)) { mailMessage.CC.Add(new MailAddress(bccEmailId)); } } SmtpClient smtp = new SmtpClient(); smtp.Host = HostAdd; smtp.EnableSsl = true; smtp.UseDefaultCredentials = false; smtp.DeliveryMethod = SmtpDeliveryMethod.Network; smtp.Credentials = new NetworkCredential(FromEmailid, Pass); smtp.Port = Convert.ToInt32(port); smtp.Send(mailMessage); } } private string CreateBody() { string body = string.Empty; using (StreamReader reader = new StreamReader(Server.MapPath("Order.htm"))) { body = reader.ReadToEnd(); } using (StringWriter sw = new StringWriter()) { GVItem.Columns[8].Visible = false; HtmlTextWriter hw = new HtmlTextWriter(sw); GVItem.RenderControl(hw); body = body.Replace("{ReqNo}", lblRunningOrderNumb.Text); body = body.Replace("{ReqDate}", txtVchDate.Text); body = body.Replace("{Createdby}", user); body = body.Replace("{griddata}", sw.ToString()); return body; } } protected void btnSave_Click(object sender, EventArgs e) { try { getOrderNo(); StringBuilder builder = new StringBuilder(); builder.Append($@"<ENVELOPE> <HEADER> <TALLYREQUEST>Import Data</TALLYREQUEST> </HEADER> <BODY> <IMPORTDATA> <REQUESTDESC> <REPORTNAME>Vouchers</REPORTNAME> <STATICVARIABLES> <SVCURRENTCOMPANY>{lblCurrentCompany.Text}</SVCURRENTCOMPANY> </STATICVARIABLES> </REQUESTDESC> <REQUESTDATA> <TALLYMESSAGE> <VOUCHER> <ADDRESS.LIST> <ADDRESS>{lblPartyAddress1.Text}</ADDRESS> <ADDRESS>{lblPartyAddress2.Text}</ADDRESS> <ADDRESS>{lblPartyAddress3.Text}</ADDRESS> <ADDRESS>{lblPartyAddress4.Text}</ADDRESS> </ADDRESS.LIST> <BASICBUYERADDRESS.LIST> <BASICBUYERADDRESS>{lblPartyAddress1.Text}</BASICBUYERADDRESS> <BASICBUYERADDRESS>{lblPartyAddress2.Text}</BASICBUYERADDRESS> <BASICBUYERADDRESS>{lblPartyAddress3.Text}</BASICBUYERADDRESS> <BASICBUYERADDRESS>{lblPartyAddress4.Text}</BASICBUYERADDRESS> </BASICBUYERADDRESS.LIST> <BASICORDERTERMS.LIST> <BASICORDERTERMS>{txtTermsofDelivery.Text}</BASICORDERTERMS> </BASICORDERTERMS.LIST> <OLDAUDITENTRYIDS.LIST> <OLDAUDITENTRYIDS>-1</OLDAUDITENTRYIDS> </OLDAUDITENTRYIDS.LIST> <DATE>{ho.Cdate(txtVchDate.Text.ToString())}</DATE> <GSTREGISTRATIONTYPE>Regular</GSTREGISTRATIONTYPE> <VATDEALERTYPE>Regular</VATDEALERTYPE> <STATENAME>{lblPartyState.Text}</STATENAME> <NARRATION>{txtNarraion.Text}</NARRATION> <COUNTRYOFRESIDENCE>{lblCountry.Text}</COUNTRYOFRESIDENCE> <PARTYGSTIN>{lblGSTIN.Text}</PARTYGSTIN> <PLACEOFSUPPLY>{lblPartyState.Text}</PLACEOFSUPPLY> <PARTYNAME>{ddlPartyName.SelectedItem.ToString()}</PARTYNAME> <PARTYLEDGERNAME>{ddlPartyName.SelectedItem.ToString()}</PARTYLEDGERNAME> <VOUCHERTYPENAME>Sales Order</VOUCHERTYPENAME> <REFERENCE>{lblRunningOrderNumb.Text}</REFERENCE> <BASICBASEPARTYNAME>{ddlPartyName.SelectedItem.ToString()}</BASICBASEPARTYNAME> <CSTFORMISSUETYPE/> <CSTFORMRECVTYPE/> <FBTPAYMENTTYPE>Default</FBTPAYMENTTYPE> <PERSISTEDVIEW>Invoice Voucher View</PERSISTEDVIEW> <CONSIGNEEGSTIN>{lblGSTIN.Text}</CONSIGNEEGSTIN> <BASICBUYERNAME>{ddlPartyName.SelectedItem.ToString()}</BASICBUYERNAME> <BASICORDERREF>{txtOtherRef.Text}</BASICORDERREF> <BASICDUEDATEOFPYMT>{txtModeTermsofPayment.Text}</BASICDUEDATEOFPYMT> <PARTYMAILINGNAME>{ddlPartyName.SelectedItem.ToString()}</PARTYMAILINGNAME> <PARTYPINCODE></PARTYPINCODE> <CONSIGNEEMAILINGNAME>{ddlPartyName.SelectedItem.ToString()}</CONSIGNEEMAILINGNAME> <CONSIGNEECOUNTRYNAME>{lblCountry.Text}</CONSIGNEECOUNTRYNAME> <VCHGSTCLASS/> <BUYERPINNUMBER></BUYERPINNUMBER> <CONSIGNEEPINNUMBER></CONSIGNEEPINNUMBER> <CONSIGNEESTATENAME>{lblPartyState.Text}</CONSIGNEESTATENAME> <CONSIGNEEPINCODE></CONSIGNEEPINCODE> <DIFFACTUALQTY>No</DIFFACTUALQTY> <ISMSTFROMSYNC>No</ISMSTFROMSYNC> <ASORIGINAL>No</ASORIGINAL> <AUDITED>No</AUDITED> <FORJOBCOSTING>No</FORJOBCOSTING> <ISOPTIONAL>No</ISOPTIONAL> <EFFECTIVEDATE>{ho.Cdate(txtVchDate.Text.ToString())}</EFFECTIVEDATE> <USEFOREXCISE>No</USEFOREXCISE> <ISFORJOBWORKIN>No</ISFORJOBWORKIN> <ALLOWCONSUMPTION>No</ALLOWCONSUMPTION> <USEFORINTEREST>No</USEFORINTEREST> <USEFORGAINLOSS>No</USEFORGAINLOSS> <USEFORGODOWNTRANSFER>No</USEFORGODOWNTRANSFER> <USEFORCOMPOUND>No</USEFORCOMPOUND> <USEFORSERVICETAX>No</USEFORSERVICETAX> <ISDELETED>No</ISDELETED> <ISONHOLD>No</ISONHOLD> <ISBOENOTAPPLICABLE>No</ISBOENOTAPPLICABLE> <ISEXCISEVOUCHER>No</ISEXCISEVOUCHER> <EXCISETAXOVERRIDE>No</EXCISETAXOVERRIDE> <USEFORTAXUNITTRANSFER>No</USEFORTAXUNITTRANSFER> <IGNOREPOSVALIDATION>No</IGNOREPOSVALIDATION> <EXCISEOPENING>No</EXCISEOPENING> <USEFORFINALPRODUCTION>No</USEFORFINALPRODUCTION> <ISTDSOVERRIDDEN>No</ISTDSOVERRIDDEN> <ISTCSOVERRIDDEN>No</ISTCSOVERRIDDEN> <ISTDSTCSCASHVCH>No</ISTDSTCSCASHVCH> <INCLUDEADVPYMTVCH>No</INCLUDEADVPYMTVCH> <ISSUBWORKSCONTRACT>No</ISSUBWORKSCONTRACT> <ISVATOVERRIDDEN>No</ISVATOVERRIDDEN> <IGNOREORIGVCHDATE>No</IGNOREORIGVCHDATE> <ISVATPAIDATCUSTOMS>No</ISVATPAIDATCUSTOMS> <ISDECLAREDTOCUSTOMS>No</ISDECLAREDTOCUSTOMS> <ISSERVICETAXOVERRIDDEN>No</ISSERVICETAXOVERRIDDEN> <ISISDVOUCHER>No</ISISDVOUCHER> <ISEXCISEOVERRIDDEN>No</ISEXCISEOVERRIDDEN> <ISEXCISESUPPLYVCH>No</ISEXCISESUPPLYVCH> <ISGSTOVERRIDDEN>No</ISGSTOVERRIDDEN> <GSTNOTEXPORTED>No</GSTNOTEXPORTED> <IGNOREGSTINVALIDATION>No</IGNOREGSTINVALIDATION> <ISGSTREFUND>No</ISGSTREFUND> <ISGSTSECSEVENAPPLICABLE>No</ISGSTSECSEVENAPPLICABLE> <ISVATPRINCIPALACCOUNT>No</ISVATPRINCIPALACCOUNT> <IGNOREEINVVALIDATION>No</IGNOREEINVVALIDATION> <IRNJSONEXPORTED>No</IRNJSONEXPORTED> <IRNCANCELLED>No</IRNCANCELLED> <ISSHIPPINGWITHINSTATE>No</ISSHIPPINGWITHINSTATE> <ISOVERSEASTOURISTTRANS>No</ISOVERSEASTOURISTTRANS> <ISDESIGNATEDZONEPARTY>No</ISDESIGNATEDZONEPARTY> <ISCANCELLED>No</ISCANCELLED> <HASCASHFLOW>No</HASCASHFLOW> <ISPOSTDATED>No</ISPOSTDATED> <USETRACKINGNUMBER>No</USETRACKINGNUMBER> <ISINVOICE>No</ISINVOICE> <MFGJOURNAL>No</MFGJOURNAL> <HASDISCOUNTS>No</HASDISCOUNTS> <ASPAYSLIP>No</ASPAYSLIP> <ISCOSTCENTRE>No</ISCOSTCENTRE> <ISSTXNONREALIZEDVCH>No</ISSTXNONREALIZEDVCH> <ISEXCISEMANUFACTURERON>No</ISEXCISEMANUFACTURERON> <ISBLANKCHEQUE>No</ISBLANKCHEQUE> <ISVOID>No</ISVOID> <ORDERLINESTATUS>No</ORDERLINESTATUS> <VATISAGNSTCANCSALES>No</VATISAGNSTCANCSALES> <VATISPURCEXEMPTED>No</VATISPURCEXEMPTED> <ISVATRESTAXINVOICE>No</ISVATRESTAXINVOICE> <VATISASSESABLECALCVCH>No</VATISASSESABLECALCVCH> <ISVATDUTYPAID>Yes</ISVATDUTYPAID> <ISDELIVERYSAMEASCONSIGNEE>No</ISDELIVERYSAMEASCONSIGNEE> <ISDISPATCHSAMEASCONSIGNOR>No</ISDISPATCHSAMEASCONSIGNOR> <ISDELETEDVCHRETAINED>No</ISDELETEDVCHRETAINED> <CHANGEVCHMODE>No</CHANGEVCHMODE> <RESETIRNQRCODE>No</RESETIRNQRCODE>"); foreach (GridViewRow row in GVItem.Rows) { if (row.Cells[1].Text != null) { builder.Append($@" <ALLINVENTORYENTRIES.LIST> <STOCKITEMNAME>{row.Cells[1].Text.ToString().Trim()}</STOCKITEMNAME> <ISDEEMEDPOSITIVE>No</ISDEEMEDPOSITIVE> <ISLASTDEEMEDPOSITIVE>No</ISLASTDEEMEDPOSITIVE> <ISAUTONEGATE>No</ISAUTONEGATE> <ISCUSTOMSCLEARANCE>No</ISCUSTOMSCLEARANCE> <ISTRACKCOMPONENT>No</ISTRACKCOMPONENT> <ISTRACKPRODUCTION>No</ISTRACKPRODUCTION> <ISPRIMARYITEM>No</ISPRIMARYITEM> <ISSCRAP>No</ISSCRAP>"); if (!string.IsNullOrEmpty(row.Cells[2].Text) && row.Cells[2].Text.ToString() != " ") { builder.Append($@" <BASICUSERDESCRIPTION.LIST> <BASICUSERDESCRIPTION>{(row.Cells[2].Text.ToString()).Trim()}</BASICUSERDESCRIPTION> </BASICUSERDESCRIPTION.LIST>"); } builder.Append($@"<RATE>{Convert.ToDecimal(row.Cells[5].Text)}</RATE> <AMOUNT>{Convert.ToDecimal(row.Cells[7].Text)}</AMOUNT> <ACTUALQTY>{Convert.ToDecimal(row.Cells[4].Text)}</ACTUALQTY> <BILLEDQTY>{Convert.ToDecimal(row.Cells[4].Text)}</BILLEDQTY> <BATCHALLOCATIONS.LIST> <GODOWNNAME>Main Location</GODOWNNAME> <BATCHNAME>Primary Batch</BATCHNAME> <INDENTNO/> <ORDERNO>{lblRunningOrderNumb.Text.Trim()}</ORDERNO> <TRACKINGNUMBER/> <DYNAMICCSTISCLEARED>No</DYNAMICCSTISCLEARED> <AMOUNT>{Convert.ToDecimal(row.Cells[7].Text)}</AMOUNT> <ACTUALQTY>{Convert.ToDecimal(row.Cells[4].Text)}</ACTUALQTY> <BILLEDQTY>{Convert.ToDecimal(row.Cells[4].Text)}</BILLEDQTY> <ORDERDUEDATE>{ho.Cdate(row.Cells[3].Text.ToString().Trim())}</ORDERDUEDATE>"); builder.Append($@"</BATCHALLOCATIONS.LIST> <ACCOUNTINGALLOCATIONS.LIST> <LEDGERNAME>{ddlSalesLeder.SelectedItem.ToString()}</LEDGERNAME> <GSTCLASS/> <ISDEEMEDPOSITIVE>No</ISDEEMEDPOSITIVE> <LEDGERFROMITEM>No</LEDGERFROMITEM> <REMOVEZEROENTRIES>No</REMOVEZEROENTRIES> <ISPARTYLEDGER>No</ISPARTYLEDGER> <ISLASTDEEMEDPOSITIVE>No</ISLASTDEEMEDPOSITIVE> <ISCAPVATTAXALTERED>No</ISCAPVATTAXALTERED> <ISCAPVATNOTCLAIMED>No</ISCAPVATNOTCLAIMED> <AMOUNT>{Convert.ToDecimal(row.Cells[7].Text)}</AMOUNT> </ACCOUNTINGALLOCATIONS.LIST> </ALLINVENTORYENTRIES.LIST>"); } } builder.Append($@"<LEDGERENTRIES.LIST> <LEDGERNAME>{ddlPartyName.SelectedItem.ToString()}</LEDGERNAME> <GSTCLASS/> <ISDEEMEDPOSITIVE>Yes</ISDEEMEDPOSITIVE> <LEDGERFROMITEM>No</LEDGERFROMITEM> <ISPARTYLEDGER>No</ISPARTYLEDGER> <ISLASTDEEMEDPOSITIVE>Yes</ISLASTDEEMEDPOSITIVE> <ISCAPVATNOTCLAIMED>No</ISCAPVATNOTCLAIMED> <AMOUNT>-{txtTotalAmountWithGST.Text}</AMOUNT> <BILLALLOCATIONS.LIST> <NAME>{lblRunningOrderNumb.Text.Trim()}</NAME> <BILLTYPE>New Ref</BILLTYPE> <TDSDEDUCTEEISSPECIALRATE>No</TDSDEDUCTEEISSPECIALRATE> <AMOUNT>-{txtTotalAmountWithGST.Text}</AMOUNT> </BILLALLOCATIONS.LIST> </LEDGERENTRIES.LIST>"); if (lblCMPState.Text == lblPartyState.Text) { builder.Append($@"<LEDGERENTRIES.LIST> <ROUNDTYPE/> <LEDGERNAME>CGST</LEDGERNAME> <VOUCHERFBTCATEGORY/> <GSTCLASS/> <ISDEEMEDPOSITIVE>No</ISDEEMEDPOSITIVE> <LEDGERFROMITEM>No</LEDGERFROMITEM> <ISPARTYLEDGER>No</ISPARTYLEDGER> <ISLASTDEEMEDPOSITIVE>No</ISLASTDEEMEDPOSITIVE> <ISCAPVATNOTCLAIMED>No</ISCAPVATNOTCLAIMED> <AMOUNT>{Convert.ToDecimal(txtCGST.Text)}</AMOUNT> <VATEXPAMOUNT>{Convert.ToDecimal(txtCGST.Text)}</VATEXPAMOUNT> <GSTDUTYAMOUNT>{Convert.ToDecimal(txtCGST.Text)}</GSTDUTYAMOUNT> </LEDGERENTRIES.LIST> <LEDGERENTRIES.LIST> <ROUNDTYPE/> <LEDGERNAME>SGST</LEDGERNAME> <VOUCHERFBTCATEGORY/> <GSTCLASS/> <ISDEEMEDPOSITIVE>No</ISDEEMEDPOSITIVE> <LEDGERFROMITEM>No</LEDGERFROMITEM> <ISPARTYLEDGER>No</ISPARTYLEDGER> <ISLASTDEEMEDPOSITIVE>No</ISLASTDEEMEDPOSITIVE> <ISCAPVATNOTCLAIMED>No</ISCAPVATNOTCLAIMED> <AMOUNT>{Convert.ToDecimal(txtSGST.Text)}</AMOUNT> <VATEXPAMOUNT>{Convert.ToDecimal(txtSGST.Text)}</VATEXPAMOUNT> <GSTDUTYAMOUNT>{Convert.ToDecimal(txtSGST.Text)}</GSTDUTYAMOUNT> </LEDGERENTRIES.LIST>"); } else { builder.Append($@"<LEDGERENTRIES.LIST> <ROUNDTYPE/> <LEDGERNAME>IGST</LEDGERNAME> <VOUCHERFBTCATEGORY/> <GSTCLASS/> <ISDEEMEDPOSITIVE>No</ISDEEMEDPOSITIVE> <LEDGERFROMITEM>No</LEDGERFROMITEM> <ISPARTYLEDGER>No</ISPARTYLEDGER> <ISLASTDEEMEDPOSITIVE>No</ISLASTDEEMEDPOSITIVE> <ISCAPVATNOTCLAIMED>No</ISCAPVATNOTCLAIMED> <AMOUNT>{Convert.ToDecimal(txtIGST.Text)}</AMOUNT> <VATEXPAMOUNT>{Convert.ToDecimal(txtIGST.Text)}</VATEXPAMOUNT> <GSTDUTYAMOUNT>{Convert.ToDecimal(txtIGST.Text)}</GSTDUTYAMOUNT> </LEDGERENTRIES.LIST>"); } builder.Append($@" </VOUCHER> </TALLYMESSAGE> </REQUESTDATA> </IMPORTDATA> </BODY> </ENVELOPE>"); string innerString = builder.ToString(); // TextWriter textWriter = new StreamWriter("XML\\Post.xml"); string myTempFile = Path.Combine(Path.GetTempPath(), "Post.xml"); using (StreamWriter sw = new StreamWriter(myTempFile)) { sw.WriteLine("Something Went Wrong.."); } //var xmlDIR = Server.MapPath("~"); //xmlDIR = xmlDIR + "XML\\Post.xml"; // var path = @"E:\ABSOLUTE SALES ORDER\XML\Post.xml";//@"D:\ABS_XML\Post.xml"; // File.WriteAllText(path, innerString); File.WriteAllText(myTempFile, innerString); String res = c.SendReqst(innerString); XmlDocument xml = new XmlDocument(); xml.LoadXml(res); string lastvchid = xml.SelectSingleNode("//RESPONSE//LASTVCHID").InnerText; string created = xml.SelectSingleNode("//RESPONSE//CREATED").InnerText; if (Convert.ToInt32(lastvchid) > 0) { string vchxml = Resource1.LASTVCHNO.Replace("~CMP~", lblCurrentCompany.Text.ToString()).Replace("~MSTID~", lastvchid); res = c.SendReqst(vchxml); xml = new XmlDocument(); xml.LoadXml(res); voucherNum = xml.SelectSingleNode("//ENVELOPE//VATDETAIL//VATLEDGERS//LEDGER").InnerText; ItemDetails(lastvchid, voucherNum, innerString); SendEmail(); } } catch (Exception ae) { throw ae; } finally { //ScriptManager.RegisterStartupScript(this, GetType(), "Popup", "successalert();", true); // ShowNotification("Order Created Successfully!", WarningType.Success); Response.Redirect("SO_CREATION.aspx"); } } public override void VerifyRenderingInServerForm(System.Web.UI.Control control) { } private void ItemDetails(string mstid, string voucherNum, string xmlsave) { getOrderNo(); try { if (con.State == ConnectionState.Closed) con.Open(); string sid = ""; //25 SqlCommand com = new SqlCommand("Insert into SO(VOUCHERNUMBER,ORDERNO,ORDERDATE,PARTYNAME,PARTY_ADD1,PARTY_ADD2,PARTY_ADD3,PARTY_ADD4,MODE_TERMS_OF_PAYMENT,OTHER_REF,TERMS_OF_DEL,PARTY_STATE,PARTY_COUNTRY,PARTY_GSTIN,REFERENCE,SALESLEDGER,CGST,SGST,IGST,SUBTOTAL,AMOUNT,NARRATION,DCDATE,CREATEDBY,CREATEDON,XMLData) Values(@VOUCHERNUMBER,@ORDERNO,@ORDERDATE,@PARTYNAME,@PARTY_ADD1,@PARTY_ADD2,@PARTY_ADD3,@PARTY_ADD4,@MODE_TERMS_OF_PAYMENT,@OTHER_REF,@TERMS_OF_DEL,@PARTY_STATE,@PARTY_COUNTRY,@PARTY_GSTIN,@REFERENCE,@SALESLEDGER,@CGST,@SGST,@IGST,@SUBTOTAL,@AMOUNT,@NARRATION,@DCDATE,@CREATEDBY,@CREATEDON,@XMLData)", con); com.Parameters.AddWithValue("@VOUCHERNUMBER", voucherNum); com.Parameters.AddWithValue("@ORDERNO", lblRunningOrderNumb.Text.ToString()); com.Parameters.AddWithValue("@ORDERDATE", ho.Cdate(txtVchDate.Text.ToString())); com.Parameters.AddWithValue("@PARTYNAME", ddlPartyName.SelectedItem.ToString()); com.Parameters.AddWithValue("@PARTY_ADD1", lblPartyAddress1.Text.ToString()); com.Parameters.AddWithValue("@PARTY_ADD2", lblPartyAddress2.Text.ToString()); com.Parameters.AddWithValue("@PARTY_ADD3", lblPartyAddress3.Text.ToString()); com.Parameters.AddWithValue("@PARTY_ADD4", lblPartyAddress4.Text.ToString()); com.Parameters.AddWithValue("@MODE_TERMS_OF_PAYMENT", txtModeTermsofPayment.Text.ToString()); com.Parameters.AddWithValue("@OTHER_REF", txtOtherRef.Text.ToString()); com.Parameters.AddWithValue("@TERMS_OF_DEL", txtTermsofDelivery.Text.ToString()); com.Parameters.AddWithValue("@PARTY_STATE", lblPartyState.Text.ToString()); com.Parameters.AddWithValue("@PARTY_COUNTRY", lblCountry.Text.ToString()); com.Parameters.AddWithValue("@PARTY_GSTIN", lblGSTIN.Text.ToString()); com.Parameters.AddWithValue("@REFERENCE", lblRunningOrderNumb.Text.ToString()); double val = 0; double.TryParse(txtCGST.Text, out val); com.Parameters.AddWithValue("@CGST", val); double.TryParse(txtSGST.Text, out val); com.Parameters.AddWithValue("@SGST", val); double.TryParse(txtIGST.Text, out val); com.Parameters.AddWithValue("@IGST", val); //com.Parameters.AddWithValue("@CGST",Convert.ToDecimal(txtCGST.Text)); //com.Parameters.AddWithValue("@SGST", Convert.ToDecimal(txtSGST.Text)); //com.Parameters.AddWithValue("@IGST", Convert.ToDecimal(txtIGST.Text)); com.Parameters.AddWithValue("@SALESLEDGER", ddlSalesLeder.SelectedItem.ToString()); double.TryParse(GVItem.FooterRow.Cells[7].Text.ToString(), out val); com.Parameters.AddWithValue("@SUBTOTAL",val); // com.Parameters.AddWithValue("@SUBTOTAL", GVItem.FooterRow.Cells[7].Text.ToString()); double.TryParse(txtTotalAmountWithGST.Text.ToString(), out val); com.Parameters.AddWithValue("@AMOUNT", val); // com.Parameters.AddWithValue("@AMOUNT", ); com.Parameters.AddWithValue("@NARRATION", txtNarraion.Text.ToString()); com.Parameters.AddWithValue("@DCDATE", DateTime.Now.ToString("yyyyMMdd")); com.Parameters.AddWithValue("@CREATEDBY", user.ToString()); com.Parameters.AddWithValue("@CREATEDON", DateTime.Now); com.Parameters.AddWithValue("@XMLData", xmlsave); int rowsAffected = com.ExecuteNonQuery(); SqlCommand cmd = con.CreateCommand(); cmd.CommandType = CommandType.Text; cmd.CommandText = "SELECT TOP 1 * FROM SO ORDER BY SOID DESC"; cmd.ExecuteNonQuery(); DataTable dt = new DataTable(); SqlDataAdapter da = new SqlDataAdapter(cmd); da.Fill(dt); foreach (DataRow dr in dt.Rows) { sid = dr["SOID"].ToString(); } foreach (GridViewRow g1 in GVItem.Rows) { SqlCommand com2 = new SqlCommand("INSERT INTO SOITEM(SOID,STOCKITEM,DESCRIPTION,DUEON,QTY,RATE,PER,AMOUNT) values ('" + sid.ToString() + "','" + g1.Cells[1].Text + "','" + g1.Cells[2].Text.Replace(" ", string.Empty) + "','" + ho.Cdate(g1.Cells[3].Text) + "','" + g1.Cells[4].Text.Replace(" ", string.Empty) + "','" + g1.Cells[5].Text.Replace(" ", string.Empty) + "','" + g1.Cells[6].Text.Replace(" ", string.Empty) + "','" + g1.Cells[7].Text + "')", con); com2.ExecuteNonQuery(); } } catch (Exception ex) { throw ex; } finally { con.Close(); } } protected void BTNNewLed_Click(object sender, EventArgs e) { Response.Redirect("LEDGER_CREATION.aspx"); } } }