protected void btnSaveAllReturn_Click(object sender, EventArgs e)
        {
            if (ddlReasonCode.SelectedValue.Trim().ToString() == "210" || ddlReasonCode.SelectedValue.Trim().ToString() == "165")
            {
                string idSLR      = Return_Header.GetLastSLRNumber(oCon);
                string SLR_Number = "";
                if (idSLR == "")
                {
                    idSLR = "SLR000000";
                }
                idSLR = idSLR.Substring(3);
                int idSLR_ = int.Parse(idSLR) + 1;

                SLR_Number = "SLR" + idSLR_.ToString("000000");

                string isreplacement = "";
                isreplacement = "Y";

                Return_Header_Model rhm = new Return_Header_Model
                {
                    SLR_Number      = SLR_Number,
                    SO_Number       = txtSONumber.Text,
                    Customer_Code   = txtCustomerCode.Text,
                    Auth_Number     = txtAuthorizationNumber.Text,
                    isReplacement   = isreplacement,
                    Document_Number = txtInvoiceNumber.Text,
                    Site            = ddlSite.SelectedValue,
                    Reason_Code     = ddlReasonCode.SelectedValue,
                    Date_Returned   = DateTime.Parse(txtReturnDate.Text),
                    Remarks         = txtSRERemarks.Text
                };
                int ReturnHeaderid = Return_Header.Save(oCon, rhm);

                DataSet ReturnDataSet = (DataSet)Session["ReturnDataSet"];

                foreach (GridViewRow row in grvItemDetails.Rows)
                {
                    string    tablename     = "Rep" + row.RowIndex.ToString() + "-" + row.Cells[2].Text;
                    DataTable dtReplacement = ReturnDataSet.Tables[tablename];
                    string    tablename2    = row.RowIndex.ToString() + "-" + row.Cells[2].Text;
                    DataTable dtUpload      = ReturnDataSet.Tables[tablename];

                    if (ReturnHeaderid != 0)
                    {
                        Return_Detail_Model rdm = new Return_Detail_Model
                        {
                            idReturnHeader = ReturnHeaderid,
                            idItem         = Convert.ToInt32(row.Cells[0].Text),
                            Returned_Qty   = Convert.ToInt32(dtUpload.Rows.Count),
                            Returned_Cost  = Convert.ToDecimal(row.Cells[4].Text)
                        };
                        int returnDetailId = Return_Detail.Save(oCon, rdm);

                        if (returnDetailId != 0)
                        {
                            for (var y = 0; y <= dtUpload.Rows.Count - 1; y++)
                            {
                                Item_Serial.ReturnStock(oCon, Convert.ToInt32(row.Cells[0].Text), dtUpload.Rows[y][0].ToString(), dtReplacement.Rows[y][0].ToString());

                                Return_Serial_Model rsm = new Return_Serial_Model
                                {
                                    idReturnDetail     = returnDetailId,
                                    Serial_No          = dtUpload.Rows[y][0].ToString(),
                                    Replacement_Serial = dtReplacement.Rows[y][0].ToString()
                                };
                                bool saveValue = Return_Serial.Save(oCon, rsm);

                                if (saveValue == true)
                                {
                                    Trans_History_Model trans_History_Model = new Trans_History_Model
                                    {
                                        Trans_Code   = "SRE",
                                        Item_Number  = row.Cells[2].Text,
                                        Site         = ddlSite.SelectedItem.Text,
                                        UM           = "UT",
                                        Doc_No       = SLR_Number,
                                        Serial_No    = dtUpload.Rows[y][0].ToString(),
                                        Reason_Code  = ddlReasonCode.SelectedValue.ToString(),
                                        Trans_Date   = DateTime.Now,
                                        Order_No     = txtSONumber.Text,
                                        Invoice_No   = txtInvoiceNumber.Text,
                                        Reference_No = txtAuthorizationNumber.Text,
                                        Trans_Qty    = 1,
                                        Trans_Amt    = Convert.ToDecimal(row.Cells[4].Text),
                                        Remarks      = txtSRERemarks.Text,
                                        user_domain  = Session["User_Domain"].ToString()
                                    };
                                    Trans_History.Save(oCon, trans_History_Model);
                                }
                            }
                        }
                    }
                }

                Item_Master.InventoryCheckForError(oCon);

                clearReturns();

                Response.Write("<script>window.open('/Forms/DownloadReports/DownloadSalesReturn.aspx?SLR_Number=" + SLR_Number + "','_blank');</script>");
            }
            else if (ddlReasonCode.SelectedValue.Trim().ToString() == "169")
            {
                string idSLR      = Return_Header.GetLastSLRNumber(oCon);
                string SLR_Number = "";
                if (idSLR == "")
                {
                    idSLR = "SLR000000";
                }
                idSLR = idSLR.Substring(3);
                int idSLR_ = int.Parse(idSLR) + 1;

                SLR_Number = "SLR" + idSLR_.ToString("000000");

                string isreplacement = "";
                isreplacement = "N";

                Return_Header_Model rhm = new Return_Header_Model
                {
                    SLR_Number      = SLR_Number,
                    SO_Number       = txtSONumber.Text,
                    Customer_Code   = txtCustomerCode.Text,
                    Auth_Number     = txtAuthorizationNumber.Text,
                    isReplacement   = isreplacement,
                    Document_Number = txtInvoiceNumber.Text,
                    Site            = ddlSite.SelectedValue,
                    Reason_Code     = ddlReasonCode.SelectedValue,
                    Date_Returned   = DateTime.Parse(txtReturnDate.Text),
                    Remarks         = txtSRERemarks.Text
                };
                int ReturnHeaderid = Return_Header.Save(oCon, rhm);

                DataSet ReturnDataSet = (DataSet)Session["ReturnDataSet"];

                foreach (GridViewRow row in grvItemDetails.Rows)
                {
                    string    tablename = row.RowIndex.ToString() + "-" + row.Cells[2].Text;
                    DataTable dtUpload  = ReturnDataSet.Tables[tablename];

                    if (ReturnHeaderid != 0)
                    {
                        Return_Detail_Model rdm = new Return_Detail_Model
                        {
                            idReturnHeader = ReturnHeaderid,
                            idItem         = Convert.ToInt32(row.Cells[0].Text),
                            Returned_Qty   = Convert.ToInt32(dtUpload.Rows.Count),
                            Returned_Cost  = Convert.ToDecimal(row.Cells[4].Text)
                        };
                        int returnDetailId = Return_Detail.Save(oCon, rdm);

                        if (returnDetailId != 0)
                        {
                            for (var y = 0; y <= dtUpload.Rows.Count - 1; y++)
                            {
                                Item_Serial.ReturnStock(oCon, dtUpload.Rows[y][0].ToString(), row.Cells[2].Text);

                                Return_Serial_Model rsm = new Return_Serial_Model
                                {
                                    idReturnDetail     = returnDetailId,
                                    Serial_No          = dtUpload.Rows[y][0].ToString(),
                                    Replacement_Serial = ""
                                };
                                bool saveValue = Return_Serial.Save(oCon, rsm);

                                if (saveValue == true)
                                {
                                    Trans_History_Model trans_History_Model = new Trans_History_Model
                                    {
                                        Trans_Code   = "SRE",
                                        Item_Number  = row.Cells[2].Text,
                                        Site         = ddlSite.SelectedValue.ToString(),
                                        UM           = "UT",
                                        Doc_No       = SLR_Number,
                                        Serial_No    = dtUpload.Rows[y][0].ToString(),
                                        Reason_Code  = ddlReasonCode.SelectedValue.ToString(),
                                        Trans_Date   = DateTime.Now,
                                        Order_No     = txtSONumber.Text,
                                        Invoice_No   = txtInvoiceNumber.Text,
                                        Reference_No = txtAuthorizationNumber.Text,
                                        Trans_Qty    = 1,
                                        Trans_Amt    = Convert.ToDecimal(row.Cells[4].Text),
                                        Remarks      = txtSRERemarks.Text,
                                        user_domain  = Session["User_Domain"].ToString()
                                    };
                                    Trans_History.Save(oCon, trans_History_Model);
                                }
                            }
                        }
                    }
                }

                Item_Master.InventoryCheckForError(oCon);

                clearReturns();

                Response.Write("<script>window.open('/Forms/DownloadReports/DownloadSalesReturn.aspx?SLR_Number=" + SLR_Number + "','_blank');</script>");
            }
            else
            {
                string idSLR      = Return_Header.GetLastSLRNumber(oCon);
                string SLR_Number = "";
                if (idSLR == "")
                {
                    idSLR = "SLR000000";
                }
                idSLR = idSLR.Substring(3);
                int idSLR_ = int.Parse(idSLR) + 1;

                SLR_Number = "SLR" + idSLR_.ToString("000000");

                string isreplacement = "";
                isreplacement = "N";

                Return_Header_Model rhm = new Return_Header_Model
                {
                    SLR_Number      = SLR_Number,
                    SO_Number       = txtSONumber.Text,
                    Customer_Code   = txtCustomerCode.Text,
                    Auth_Number     = txtAuthorizationNumber.Text,
                    isReplacement   = isreplacement,
                    Document_Number = txtInvoiceNumber.Text,
                    Site            = ddlSite.SelectedValue,
                    Reason_Code     = ddlReasonCode.SelectedValue,
                    Date_Returned   = DateTime.Parse(txtReturnDate.Text),
                    Remarks         = txtSRERemarks.Text
                };
                int ReturnHeaderid = Return_Header.Save(oCon, rhm);

                DataSet ReturnDataSet = (DataSet)Session["ReturnDataSet"];

                foreach (GridViewRow row in grvItemDetails.Rows)
                {
                    string    tablename = row.RowIndex.ToString() + "-" + row.Cells[2].Text;
                    DataTable dtUpload  = ReturnDataSet.Tables[tablename];

                    if (ReturnHeaderid != 0)
                    {
                        Return_Detail_Model rdm = new Return_Detail_Model
                        {
                            idReturnHeader = ReturnHeaderid,
                            idItem         = Convert.ToInt32(row.Cells[0].Text),
                            Returned_Qty   = Convert.ToInt32(dtUpload.Rows.Count),
                            Returned_Cost  = Convert.ToDecimal(row.Cells[4].Text)
                        };
                        int returnDetailId = Return_Detail.Save(oCon, rdm);

                        if (returnDetailId != 0)
                        {
                            for (var y = 0; y <= dtUpload.Rows.Count - 1; y++)
                            {
                                Item_Serial.ReturnStock(oCon, Convert.ToInt32(row.Cells[0].Text), dtUpload.Rows[y][0].ToString());

                                Return_Serial_Model rsm = new Return_Serial_Model
                                {
                                    idReturnDetail     = returnDetailId,
                                    Serial_No          = dtUpload.Rows[y][0].ToString(),
                                    Replacement_Serial = ""
                                };
                                bool saveValue = Return_Serial.Save(oCon, rsm);

                                if (saveValue == true)
                                {
                                    Trans_History_Model trans_History_Model = new Trans_History_Model
                                    {
                                        Trans_Code   = "SRE",
                                        Item_Number  = row.Cells[2].Text,
                                        Site         = ddlSite.SelectedValue.ToString(),
                                        UM           = "UT",
                                        Doc_No       = SLR_Number,
                                        Serial_No    = dtUpload.Rows[y][0].ToString(),
                                        Reason_Code  = ddlReasonCode.SelectedValue.ToString(),
                                        Trans_Date   = DateTime.Now,
                                        Order_No     = txtSONumber.Text,
                                        Invoice_No   = txtInvoiceNumber.Text,
                                        Reference_No = txtAuthorizationNumber.Text,
                                        Trans_Qty    = 1,
                                        Trans_Amt    = Convert.ToDecimal(row.Cells[4].Text),
                                        Remarks      = txtSRERemarks.Text,
                                        user_domain  = Session["User_Domain"].ToString()
                                    };
                                    Trans_History.Save(oCon, trans_History_Model);
                                }
                            }
                        }
                    }
                }

                Item_Master.InventoryCheckForError(oCon);

                clearReturns();

                Response.Write("<script>window.open('/Forms/DownloadReports/DownloadSalesReturn.aspx?SLR_Number=" + SLR_Number + "','_blank');</script>");
            }
        }