// GET: StockReport
        public ActionResult Index()
        {
            //StockReportRepository repo = new StockReportRepository();
            //return View(repo.GetStockReport());
            FillItemCategory();
            FillItemGroup();
            FillItemSubGroup();
            //FillWarehouse();
            StockReportSummary stk = new StockReportSummary();

            stk.ItemId      = 0;
            stk.itmGrpId    = 0;
            stk.itmSubGrpId = 0;
            return(View(stk));
        }
        public ActionResult Print(string itmid = "", string PartNo = "")
        {
            ReportDocument rd = new ReportDocument();

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

            DataSet ds = new DataSet();

            ds.Tables.Add("Head");
            ds.Tables.Add("Items");

            //    //-------HEAD

            ds.Tables["Head"].Columns.Add("OrganizationName");
            ds.Tables["Head"].Columns.Add("Image1");
            ds.Tables["Head"].Columns.Add("Item");
            ds.Tables["Head"].Columns.Add("PartNo");

            //-------DT

            ds.Tables["Items"].Columns.Add("Item");
            ds.Tables["Items"].Columns.Add("IN");
            ds.Tables["Items"].Columns.Add("OUT");
            ds.Tables["Items"].Columns.Add("Balance");
            ds.Tables["Items"].Columns.Add("PartNum");


            OrganizationRepository repo = new OrganizationRepository();
            var Head = repo.GetOrganization(OrganizationId);

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

            dr["OrganizationName"] = Head.OrganizationName;
            dr["Image1"]           = Server.MapPath("~/App_images/") + Head.Image1;
            dr["Item"]             = itmid;
            dr["PartNo"]           = PartNo;
            ds.Tables["Head"].Rows.Add(dr);


            StockReportRepository repo1 = new StockReportRepository();
            //var Items = repo1.GetSOVarianceDataDTPrint(from, to, itmid, itmName, SupId, SupName);
            var Items = repo1.GetStockReportDTPrint(itmid, PartNo);

            foreach (var item in Items)
            {
                var SupplyOrderRegItem = new StockReportSummary
                {
                    ItemName    = item.ItemName,
                    InQuantity  = item.InQuantity,
                    OutQuantity = item.OutQuantity,
                    Balance     = item.Balance,
                    PartNo      = item.PartNo,
                };

                DataRow dri = ds.Tables["Items"].NewRow();
                dri["Item"]    = SupplyOrderRegItem.ItemName;
                dri["IN"]      = SupplyOrderRegItem.InQuantity;
                dri["OUT"]     = SupplyOrderRegItem.OutQuantity;
                dri["Balance"] = SupplyOrderRegItem.Balance;
                dri["PartNum"] = SupplyOrderRegItem.PartNo;
                ds.Tables["Items"].Rows.Add(dri);
            }

            ds.WriteXml(Path.Combine(Server.MapPath("~/XML"), "StockSummary.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("StockSummary.pdf")));
            }
            catch (Exception ex)
            {
                throw;
            }
        }