public int InsertSaleOrderItem(JobCardQCParam objJobCardQCParam, IDbConnection connection, IDbTransaction trn)
        {
            try
            {
                string sql = @"INSERT INTO JobCardQCParam(QCParamId,JobCardQCId,QCParamValue,OrganizationId) VALUES(@QCParamId,@JobCardQCId,@QCParamValue,@OrganizationId);
                       
                SELECT CAST(SCOPE_IDENTITY() as int)";


                var id = connection.Query <int>(sql, objJobCardQCParam, trn).Single();
                return(id);
            }
            catch (Exception)
            {
                throw;
            }
        }
        public ActionResult Print(int Id)
        {
            ReportDocument rd = new ReportDocument();

            rd.Load(Path.Combine(Server.MapPath("~/Reports"), "JobCardQC.rpt"));

            DataSet ds = new DataSet();

            ds.Tables.Add("Head");

            ds.Tables.Add("Items");

            //-------HEAD
            ds.Tables["Head"].Columns.Add("JobCardQCNoDate");
            ds.Tables["Head"].Columns.Add("JobCardNoDate");
            //ds.Tables["Head"].Columns.Add("JobCardQCRefNo");
            //ds.Tables["Head"].Columns.Add("JobCardNo");
            //ds.Tables["Head"].Columns.Add("JcDate");
            //ds.Tables["Head"].Columns.Add("JobCardQCDate");
            ds.Tables["Head"].Columns.Add("Customer");
            ds.Tables["Head"].Columns.Add("VehicleModel");
            ds.Tables["Head"].Columns.Add("EmployeeName");
            ds.Tables["Head"].Columns.Add("Status");
            ds.Tables["Head"].Columns.Add("DoorNo");
            ds.Tables["Head"].Columns.Add("Street");
            ds.Tables["Head"].Columns.Add("State");
            ds.Tables["Head"].Columns.Add("Country");
            ds.Tables["Head"].Columns.Add("Phone");
            ds.Tables["Head"].Columns.Add("Fax");
            ds.Tables["Head"].Columns.Add("Email");
            ds.Tables["Head"].Columns.Add("ContactPerson");
            ds.Tables["Head"].Columns.Add("Zip");
            ds.Tables["Head"].Columns.Add("OrganizationName");
            ds.Tables["Head"].Columns.Add("Image1");

            //-------DT
            ds.Tables["Items"].Columns.Add("ParaName");
            ds.Tables["Items"].Columns.Add("QCParamName");
            ds.Tables["Items"].Columns.Add("QCParamValue");


            JobCardQCRepository repo = new JobCardQCRepository();
            var Head = repo.GetJobCardQCHDPrint(Id, OrganizationId);

            DataRow dr = ds.Tables["Head"].NewRow();

            dr["JobCardQCNoDate"] = Head.JobCardQCNoDate;
            dr["JobCardNoDate"]   = Head.JobCardNoDate;
            // dr["JcDate"] = Head.JcDate.ToString("dd-MMM-yyyy"); ;
            // dr["JobCardQCDate"] = Head.JobCardQCDate.ToString("dd-MMM-yyyy"); ;
            dr["Customer"]      = Head.Customer;
            dr["VehicleModel"]  = Head.VehicleModel;
            dr["EmployeeName"]  = Head.EmployeeName;
            dr["Status"]        = Head.QCPassed;
            dr["DoorNo"]        = Head.DoorNo;
            dr["Street"]        = Head.Street;
            dr["State"]         = Head.State;
            dr["Country"]       = Head.CountryName;
            dr["Phone"]         = Head.Phone;
            dr["Fax"]           = Head.Fax;
            dr["Email"]         = Head.Email;
            dr["ContactPerson"] = Head.ContactPerson;
            dr["Zip"]           = Head.Zip;
            //  dr["CurrencyName"] = Head.CurrencyName;
            dr["OrganizationName"] = Head.OrganizationName;
            dr["Image1"]           = Head.Image1;

            ds.Tables["Head"].Rows.Add(dr);

            JobCardQCParamRepository repo1 = new JobCardQCParamRepository();
            var Items = repo1.GetJobCardQCParamDtPrint(Id);

            foreach (var item in Items)
            {
                var pritem = new JobCardQCParam
                {
                    ParaName     = item.ParaName,
                    QCParamName  = item.QCParamName,
                    QCParamValue = item.QCParamValue,
                };


                DataRow dri = ds.Tables["Items"].NewRow();
                dri["ParaName"]     = pritem.ParaName;
                dri["QCParamName"]  = pritem.QCParamName;
                dri["QCParamValue"] = pritem.QCParamValue;
                ds.Tables["Items"].Rows.Add(dri);
            }

            ds.WriteXml(Path.Combine(Server.MapPath("~/XML"), "JobCardQC.xml"), XmlWriteMode.WriteSchema);

            rd.SetDataSource(ds);

            Response.Buffer = false;
            Response.ClearContent();
            Response.ClearHeaders();


            try
            {
                Stream stream = rd.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
                stream.Seek(0, SeekOrigin.Begin);
                return(File(stream, "application/pdf", String.Format("JobCardQC{0}.pdf", Id.ToString())));
            }
            catch (Exception ex)
            {
                throw;
            }
        }