From b83dff00a17f0a25270e297ccff78b35691c54c6 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Wed, 21 Sep 2016 18:22:16 +0200 Subject: [PATCH] inizio aggiunta vista stock detail da collegare x navigazione... --- .../Controllers/ItemFluxesController.cs | 140 ++++++++++++++++++ .../Controllers/ItemStocksController.cs | 136 +++++++++++++++++ StockManMVC/Controllers/ItemsController.cs | 127 ++++++++++++++++ StockManMVC/Models/ItemStockStatus.cs | 32 ++++ StockManMVC/Models/SMModel.Context.cs | 3 +- StockManMVC/Models/SMModel.edmx | 119 ++++++++++++--- StockManMVC/Models/SMModel.edmx.diagram | 15 +- StockManMVC/Models/vItemFlux2Save.cs | 1 + StockManMVC/StockManMVC.csproj | 21 +++ StockManMVC/Views/ItemFluxes/Create.cshtml | 104 +++++++++++++ StockManMVC/Views/ItemFluxes/Delete.cshtml | 104 +++++++++++++ StockManMVC/Views/ItemFluxes/Details.cshtml | 98 ++++++++++++ StockManMVC/Views/ItemFluxes/Edit.cshtml | 114 ++++++++++++++ StockManMVC/Views/ItemFluxes/Index.cshtml | 87 +++++++++++ StockManMVC/Views/ItemStocks/Create.cshtml | 72 +++++++++ StockManMVC/Views/ItemStocks/Delete.cshtml | 64 ++++++++ StockManMVC/Views/ItemStocks/Details.cshtml | 58 ++++++++ StockManMVC/Views/ItemStocks/Edit.cshtml | 74 +++++++++ StockManMVC/Views/ItemStocks/Index.cshtml | 57 +++++++ StockManMVC/Views/Items/Create.cshtml | 96 ++++++++++++ StockManMVC/Views/Items/Delete.cshtml | 88 +++++++++++ StockManMVC/Views/Items/Details.cshtml | 82 ++++++++++ StockManMVC/Views/Items/Edit.cshtml | 98 ++++++++++++ StockManMVC/Views/Items/Index.cshtml | 75 ++++++++++ StockManMVC/Views/Shared/_Layout.cshtml | 13 +- StockManMVC/bin/StockManMVC.dll | Bin 49152 -> 62464 bytes 26 files changed, 1846 insertions(+), 32 deletions(-) create mode 100644 StockManMVC/Controllers/ItemFluxesController.cs create mode 100644 StockManMVC/Controllers/ItemStocksController.cs create mode 100644 StockManMVC/Controllers/ItemsController.cs create mode 100644 StockManMVC/Models/ItemStockStatus.cs create mode 100644 StockManMVC/Views/ItemFluxes/Create.cshtml create mode 100644 StockManMVC/Views/ItemFluxes/Delete.cshtml create mode 100644 StockManMVC/Views/ItemFluxes/Details.cshtml create mode 100644 StockManMVC/Views/ItemFluxes/Edit.cshtml create mode 100644 StockManMVC/Views/ItemFluxes/Index.cshtml create mode 100644 StockManMVC/Views/ItemStocks/Create.cshtml create mode 100644 StockManMVC/Views/ItemStocks/Delete.cshtml create mode 100644 StockManMVC/Views/ItemStocks/Details.cshtml create mode 100644 StockManMVC/Views/ItemStocks/Edit.cshtml create mode 100644 StockManMVC/Views/ItemStocks/Index.cshtml create mode 100644 StockManMVC/Views/Items/Create.cshtml create mode 100644 StockManMVC/Views/Items/Delete.cshtml create mode 100644 StockManMVC/Views/Items/Details.cshtml create mode 100644 StockManMVC/Views/Items/Edit.cshtml create mode 100644 StockManMVC/Views/Items/Index.cshtml diff --git a/StockManMVC/Controllers/ItemFluxesController.cs b/StockManMVC/Controllers/ItemFluxesController.cs new file mode 100644 index 0000000..b130c08 --- /dev/null +++ b/StockManMVC/Controllers/ItemFluxesController.cs @@ -0,0 +1,140 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.Entity; +using System.Linq; +using System.Net; +using System.Web; +using System.Web.Mvc; +using StockManMVC.Models; + +namespace StockManMVC.Controllers +{ + public class ItemFluxesController : Controller + { + private StockManEntities db = new StockManEntities(); + + // GET: ItemFluxes + public ActionResult Index() + { + var itemFlux = db.ItemFlux.Include(i => i.Item).Include(i => i.Location).Include(i => i.MovType); + return View(itemFlux.ToList()); + } + + // GET: ItemFluxes/Details/5 + public ActionResult Details(int? id) + { + if (id == null) + { + return new HttpStatusCodeResult(HttpStatusCode.BadRequest); + } + ItemFlux itemFlux = db.ItemFlux.Find(id); + if (itemFlux == null) + { + return HttpNotFound(); + } + return View(itemFlux); + } + + // GET: ItemFluxes/Create + public ActionResult Create() + { + ViewBag.ItemID = new SelectList(db.Item, "ID", "Descr"); + ViewBag.LocationID = new SelectList(db.Location, "ID", "Descr"); + ViewBag.MovTypeID = new SelectList(db.MovType, "ID", "Descr"); + return View(); + } + + // POST: ItemFluxes/Create + // To protect from overposting attacks, please enable the specific properties you want to bind to, for + // more details see http://go.microsoft.com/fwlink/?LinkId=317598. + [HttpPost] + [ValidateAntiForgeryToken] + public ActionResult Create([Bind(Include = "ID,ItemID,LocationID,MovTypeID,ExtLocationID,dtMov,Qta,TotValue,UnitVal,Note,dtExport")] ItemFlux itemFlux) + { + if (ModelState.IsValid) + { + db.ItemFlux.Add(itemFlux); + db.SaveChanges(); + return RedirectToAction("Index"); + } + + ViewBag.ItemID = new SelectList(db.Item, "ID", "Descr", itemFlux.ItemID); + ViewBag.LocationID = new SelectList(db.Location, "ID", "Descr", itemFlux.LocationID); + ViewBag.MovTypeID = new SelectList(db.MovType, "ID", "Descr", itemFlux.MovTypeID); + return View(itemFlux); + } + + // GET: ItemFluxes/Edit/5 + public ActionResult Edit(int? id) + { + if (id == null) + { + return new HttpStatusCodeResult(HttpStatusCode.BadRequest); + } + ItemFlux itemFlux = db.ItemFlux.Find(id); + if (itemFlux == null) + { + return HttpNotFound(); + } + ViewBag.ItemID = new SelectList(db.Item, "ID", "Descr", itemFlux.ItemID); + ViewBag.LocationID = new SelectList(db.Location, "ID", "Descr", itemFlux.LocationID); + ViewBag.MovTypeID = new SelectList(db.MovType, "ID", "Descr", itemFlux.MovTypeID); + return View(itemFlux); + } + + // POST: ItemFluxes/Edit/5 + // To protect from overposting attacks, please enable the specific properties you want to bind to, for + // more details see http://go.microsoft.com/fwlink/?LinkId=317598. + [HttpPost] + [ValidateAntiForgeryToken] + public ActionResult Edit([Bind(Include = "ID,ItemID,LocationID,MovTypeID,ExtLocationID,dtMov,Qta,TotValue,UnitVal,Note,dtExport")] ItemFlux itemFlux) + { + if (ModelState.IsValid) + { + db.Entry(itemFlux).State = EntityState.Modified; + db.SaveChanges(); + return RedirectToAction("Index"); + } + ViewBag.ItemID = new SelectList(db.Item, "ID", "Descr", itemFlux.ItemID); + ViewBag.LocationID = new SelectList(db.Location, "ID", "Descr", itemFlux.LocationID); + ViewBag.MovTypeID = new SelectList(db.MovType, "ID", "Descr", itemFlux.MovTypeID); + return View(itemFlux); + } + + // GET: ItemFluxes/Delete/5 + public ActionResult Delete(int? id) + { + if (id == null) + { + return new HttpStatusCodeResult(HttpStatusCode.BadRequest); + } + ItemFlux itemFlux = db.ItemFlux.Find(id); + if (itemFlux == null) + { + return HttpNotFound(); + } + return View(itemFlux); + } + + // POST: ItemFluxes/Delete/5 + [HttpPost, ActionName("Delete")] + [ValidateAntiForgeryToken] + public ActionResult DeleteConfirmed(int id) + { + ItemFlux itemFlux = db.ItemFlux.Find(id); + db.ItemFlux.Remove(itemFlux); + db.SaveChanges(); + return RedirectToAction("Index"); + } + + protected override void Dispose(bool disposing) + { + if (disposing) + { + db.Dispose(); + } + base.Dispose(disposing); + } + } +} diff --git a/StockManMVC/Controllers/ItemStocksController.cs b/StockManMVC/Controllers/ItemStocksController.cs new file mode 100644 index 0000000..74431d1 --- /dev/null +++ b/StockManMVC/Controllers/ItemStocksController.cs @@ -0,0 +1,136 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.Entity; +using System.Linq; +using System.Net; +using System.Web; +using System.Web.Mvc; +using StockManMVC.Models; + +namespace StockManMVC.Controllers +{ + public class ItemStocksController : Controller + { + private StockManEntities db = new StockManEntities(); + + // GET: ItemStocks + public ActionResult Index() + { + var itemStock = db.ItemStock.Include(i => i.Item).Include(i => i.Location); + return View(itemStock.ToList()); + } + + // GET: ItemStocks/Details/5 + public ActionResult Details(int? id) + { + if (id == null) + { + return new HttpStatusCodeResult(HttpStatusCode.BadRequest); + } + ItemStock itemStock = db.ItemStock.Find(id); + if (itemStock == null) + { + return HttpNotFound(); + } + return View(itemStock); + } + + // GET: ItemStocks/Create + public ActionResult Create() + { + ViewBag.ItemID = new SelectList(db.Item, "ID", "Descr"); + ViewBag.LocationID = new SelectList(db.Location, "ID", "Descr"); + return View(); + } + + // POST: ItemStocks/Create + // To protect from overposting attacks, please enable the specific properties you want to bind to, for + // more details see http://go.microsoft.com/fwlink/?LinkId=317598. + [HttpPost] + [ValidateAntiForgeryToken] + public ActionResult Create([Bind(Include = "ID,ItemID,LocationID,QtyConf,Note,dtLastUpd")] ItemStock itemStock) + { + if (ModelState.IsValid) + { + db.ItemStock.Add(itemStock); + db.SaveChanges(); + return RedirectToAction("Index"); + } + + ViewBag.ItemID = new SelectList(db.Item, "ID", "Descr", itemStock.ItemID); + ViewBag.LocationID = new SelectList(db.Location, "ID", "Descr", itemStock.LocationID); + return View(itemStock); + } + + // GET: ItemStocks/Edit/5 + public ActionResult Edit(int? id) + { + if (id == null) + { + return new HttpStatusCodeResult(HttpStatusCode.BadRequest); + } + ItemStock itemStock = db.ItemStock.Find(id); + if (itemStock == null) + { + return HttpNotFound(); + } + ViewBag.ItemID = new SelectList(db.Item, "ID", "Descr", itemStock.ItemID); + ViewBag.LocationID = new SelectList(db.Location, "ID", "Descr", itemStock.LocationID); + return View(itemStock); + } + + // POST: ItemStocks/Edit/5 + // To protect from overposting attacks, please enable the specific properties you want to bind to, for + // more details see http://go.microsoft.com/fwlink/?LinkId=317598. + [HttpPost] + [ValidateAntiForgeryToken] + public ActionResult Edit([Bind(Include = "ID,ItemID,LocationID,QtyConf,Note,dtLastUpd")] ItemStock itemStock) + { + if (ModelState.IsValid) + { + db.Entry(itemStock).State = EntityState.Modified; + db.SaveChanges(); + return RedirectToAction("Index"); + } + ViewBag.ItemID = new SelectList(db.Item, "ID", "Descr", itemStock.ItemID); + ViewBag.LocationID = new SelectList(db.Location, "ID", "Descr", itemStock.LocationID); + return View(itemStock); + } + + // GET: ItemStocks/Delete/5 + public ActionResult Delete(int? id) + { + if (id == null) + { + return new HttpStatusCodeResult(HttpStatusCode.BadRequest); + } + ItemStock itemStock = db.ItemStock.Find(id); + if (itemStock == null) + { + return HttpNotFound(); + } + return View(itemStock); + } + + // POST: ItemStocks/Delete/5 + [HttpPost, ActionName("Delete")] + [ValidateAntiForgeryToken] + public ActionResult DeleteConfirmed(int id) + { + ItemStock itemStock = db.ItemStock.Find(id); + db.ItemStock.Remove(itemStock); + db.SaveChanges(); + return RedirectToAction("Index"); + } + + protected override void Dispose(bool disposing) + { + if (disposing) + { + db.Dispose(); + } + base.Dispose(disposing); + } + } +} diff --git a/StockManMVC/Controllers/ItemsController.cs b/StockManMVC/Controllers/ItemsController.cs new file mode 100644 index 0000000..88bf523 --- /dev/null +++ b/StockManMVC/Controllers/ItemsController.cs @@ -0,0 +1,127 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.Entity; +using System.Linq; +using System.Net; +using System.Web; +using System.Web.Mvc; +using StockManMVC.Models; + +namespace StockManMVC.Controllers +{ + public class ItemsController : Controller + { + private StockManEntities db = new StockManEntities(); + + // GET: Items + public ActionResult Index() + { + return View(db.Item.ToList()); + } + + // GET: Items/Details/5 + public ActionResult Details(int? id) + { + if (id == null) + { + return new HttpStatusCodeResult(HttpStatusCode.BadRequest); + } + Item item = db.Item.Find(id); + if (item == null) + { + return HttpNotFound(); + } + return View(item); + } + + // GET: Items/Create + public ActionResult Create() + { + return View(); + } + + // POST: Items/Create + // To protect from overposting attacks, please enable the specific properties you want to bind to, for + // more details see http://go.microsoft.com/fwlink/?LinkId=317598. + [HttpPost] + [ValidateAntiForgeryToken] + public ActionResult Create([Bind(Include = "ID,Descr,CodInt,Family,CodExt,DescrExt,QtaMin,QtaBatch,CurrValue")] Item item) + { + if (ModelState.IsValid) + { + db.Item.Add(item); + db.SaveChanges(); + return RedirectToAction("Index"); + } + + return View(item); + } + + // GET: Items/Edit/5 + public ActionResult Edit(int? id) + { + if (id == null) + { + return new HttpStatusCodeResult(HttpStatusCode.BadRequest); + } + Item item = db.Item.Find(id); + if (item == null) + { + return HttpNotFound(); + } + return View(item); + } + + // POST: Items/Edit/5 + // To protect from overposting attacks, please enable the specific properties you want to bind to, for + // more details see http://go.microsoft.com/fwlink/?LinkId=317598. + [HttpPost] + [ValidateAntiForgeryToken] + public ActionResult Edit([Bind(Include = "ID,Descr,CodInt,Family,CodExt,DescrExt,QtaMin,QtaBatch,CurrValue")] Item item) + { + if (ModelState.IsValid) + { + db.Entry(item).State = EntityState.Modified; + db.SaveChanges(); + return RedirectToAction("Index"); + } + return View(item); + } + + // GET: Items/Delete/5 + public ActionResult Delete(int? id) + { + if (id == null) + { + return new HttpStatusCodeResult(HttpStatusCode.BadRequest); + } + Item item = db.Item.Find(id); + if (item == null) + { + return HttpNotFound(); + } + return View(item); + } + + // POST: Items/Delete/5 + [HttpPost, ActionName("Delete")] + [ValidateAntiForgeryToken] + public ActionResult DeleteConfirmed(int id) + { + Item item = db.Item.Find(id); + db.Item.Remove(item); + db.SaveChanges(); + return RedirectToAction("Index"); + } + + protected override void Dispose(bool disposing) + { + if (disposing) + { + db.Dispose(); + } + base.Dispose(disposing); + } + } +} diff --git a/StockManMVC/Models/ItemStockStatus.cs b/StockManMVC/Models/ItemStockStatus.cs new file mode 100644 index 0000000..582a6dd --- /dev/null +++ b/StockManMVC/Models/ItemStockStatus.cs @@ -0,0 +1,32 @@ +//------------------------------------------------------------------------------ +// +// This code was generated from a template. +// +// Manual changes to this file may cause unexpected behavior in your application. +// Manual changes to this file will be overwritten if the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace StockManMVC.Models +{ + using System; + using System.Collections.Generic; + + public partial class ItemStockStatus + { + public int ItemID { get; set; } + public string Descr { get; set; } + public string CodInt { get; set; } + public string Family { get; set; } + public string CodExt { get; set; } + public string DescrExt { get; set; } + public int QtaMin { get; set; } + public int QtaBatch { get; set; } + public int QtyConf { get; set; } + public decimal ValConf { get; set; } + public Nullable QtaPend { get; set; } + public Nullable ValPend { get; set; } + public Nullable QtaNew { get; set; } + public Nullable ValNew { get; set; } + } +} diff --git a/StockManMVC/Models/SMModel.Context.cs b/StockManMVC/Models/SMModel.Context.cs index 6f24c0e..ca219ec 100644 --- a/StockManMVC/Models/SMModel.Context.cs +++ b/StockManMVC/Models/SMModel.Context.cs @@ -31,7 +31,8 @@ namespace StockManMVC.Models public virtual DbSet Location { get; set; } public virtual DbSet LocType { get; set; } public virtual DbSet MovType { get; set; } - public virtual DbSet vItemFlux2Save { get; set; } public virtual DbSet vLocationVal { get; set; } + public virtual DbSet vItemFlux2Save { get; set; } + public virtual DbSet ItemStockStatus { get; set; } } } diff --git a/StockManMVC/Models/SMModel.edmx b/StockManMVC/Models/SMModel.edmx index 94c4878..aa23d9c 100644 --- a/StockManMVC/Models/SMModel.edmx +++ b/StockManMVC/Models/SMModel.edmx @@ -78,10 +78,32 @@ warning 6002: The table/view 'StockMan.dbo.vItemFlux2Save' does not have a prima + + + + + + + + + + + + + + + + + + + + + @@ -172,9 +194,28 @@ warning 6002: The table/view 'StockMan.dbo.vLocationVal' does not have a primary SELECT [vItemFlux2Save].[ItemID] AS [ItemID], + [vItemFlux2Save].[NumMov] AS [NumMov], [vItemFlux2Save].[TotQta] AS [TotQta], [vItemFlux2Save].[TotVal] AS [TotVal] FROM [dbo].[vItemFlux2Save] AS [vItemFlux2Save] + + + SELECT + [vItemStockStatus].[ItemID] AS [ItemID], + [vItemStockStatus].[Descr] AS [Descr], + [vItemStockStatus].[CodInt] AS [CodInt], + [vItemStockStatus].[Family] AS [Family], + [vItemStockStatus].[CodExt] AS [CodExt], + [vItemStockStatus].[DescrExt] AS [DescrExt], + [vItemStockStatus].[QtaMin] AS [QtaMin], + [vItemStockStatus].[QtaBatch] AS [QtaBatch], + [vItemStockStatus].[QtyConf] AS [QtyConf], + [vItemStockStatus].[ValConf] AS [ValConf], + [vItemStockStatus].[QtaPend] AS [QtaPend], + [vItemStockStatus].[ValPend] AS [ValPend], + [vItemStockStatus].[QtaNew] AS [QtaNew], + [vItemStockStatus].[ValNew] AS [ValNew] + FROM [dbo].[vItemStockStatus] AS [vItemStockStatus] SELECT @@ -218,7 +259,6 @@ warning 6002: The table/view 'StockMan.dbo.vLocationVal' does not have a primary - @@ -244,6 +284,8 @@ warning 6002: The table/view 'StockMan.dbo.vLocationVal' does not have a primary + + @@ -323,14 +365,6 @@ warning 6002: The table/view 'StockMan.dbo.vLocationVal' does not have a primary - - - - - - - - @@ -410,6 +444,34 @@ warning 6002: The table/view 'StockMan.dbo.vLocationVal' does not have a primary + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -488,15 +550,6 @@ warning 6002: The table/view 'StockMan.dbo.vLocationVal' does not have a primary - - - - - - - - - @@ -505,6 +558,36 @@ warning 6002: The table/view 'StockMan.dbo.vLocationVal' does not have a primary + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/StockManMVC/Models/SMModel.edmx.diagram b/StockManMVC/Models/SMModel.edmx.diagram index cf8331c..ec1380b 100644 --- a/StockManMVC/Models/SMModel.edmx.diagram +++ b/StockManMVC/Models/SMModel.edmx.diagram @@ -5,13 +5,12 @@ - - - - - - - + + + + + + @@ -19,6 +18,8 @@ + + diff --git a/StockManMVC/Models/vItemFlux2Save.cs b/StockManMVC/Models/vItemFlux2Save.cs index 82d0184..2de5837 100644 --- a/StockManMVC/Models/vItemFlux2Save.cs +++ b/StockManMVC/Models/vItemFlux2Save.cs @@ -15,6 +15,7 @@ namespace StockManMVC.Models public partial class vItemFlux2Save { public int ItemID { get; set; } + public Nullable NumMov { get; set; } public Nullable TotQta { get; set; } public Nullable TotVal { get; set; } } diff --git a/StockManMVC/StockManMVC.csproj b/StockManMVC/StockManMVC.csproj index 5e1e15e..78231f9 100644 --- a/StockManMVC/StockManMVC.csproj +++ b/StockManMVC/StockManMVC.csproj @@ -153,6 +153,9 @@ + + + @@ -169,6 +172,9 @@ SMModel.tt + + SMModel.tt + SMModel.tt @@ -288,6 +294,21 @@ + + + + + + + + + + + + + + + diff --git a/StockManMVC/Views/ItemFluxes/Create.cshtml b/StockManMVC/Views/ItemFluxes/Create.cshtml new file mode 100644 index 0000000..3929892 --- /dev/null +++ b/StockManMVC/Views/ItemFluxes/Create.cshtml @@ -0,0 +1,104 @@ +@model StockManMVC.Models.ItemFlux + +@{ + ViewBag.Title = "Create"; +} + +

Create

+ + +@using (Html.BeginForm()) +{ + @Html.AntiForgeryToken() + +
+

ItemFlux

+
+ @Html.ValidationSummary(true, "", new { @class = "text-danger" }) +
+ @Html.LabelFor(model => model.ItemID, "ItemID", htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.DropDownList("ItemID", null, htmlAttributes: new { @class = "form-control" }) + @Html.ValidationMessageFor(model => model.ItemID, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.LocationID, "LocationID", htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.DropDownList("LocationID", null, htmlAttributes: new { @class = "form-control" }) + @Html.ValidationMessageFor(model => model.LocationID, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.MovTypeID, "MovTypeID", htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.DropDownList("MovTypeID", null, htmlAttributes: new { @class = "form-control" }) + @Html.ValidationMessageFor(model => model.MovTypeID, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.ExtLocationID, htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.EditorFor(model => model.ExtLocationID, new { htmlAttributes = new { @class = "form-control" } }) + @Html.ValidationMessageFor(model => model.ExtLocationID, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.dtMov, htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.EditorFor(model => model.dtMov, new { htmlAttributes = new { @class = "form-control" } }) + @Html.ValidationMessageFor(model => model.dtMov, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.Qta, htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.EditorFor(model => model.Qta, new { htmlAttributes = new { @class = "form-control" } }) + @Html.ValidationMessageFor(model => model.Qta, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.TotValue, htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.EditorFor(model => model.TotValue, new { htmlAttributes = new { @class = "form-control" } }) + @Html.ValidationMessageFor(model => model.TotValue, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.Note, htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.EditorFor(model => model.Note, new { htmlAttributes = new { @class = "form-control" } }) + @Html.ValidationMessageFor(model => model.Note, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.dtExport, htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.EditorFor(model => model.dtExport, new { htmlAttributes = new { @class = "form-control" } }) + @Html.ValidationMessageFor(model => model.dtExport, "", new { @class = "text-danger" }) +
+
+ +
+
+ +
+
+
+} + +
+ @Html.ActionLink("Back to List", "Index") +
+ +@section Scripts { + @Scripts.Render("~/bundles/jqueryval") +} diff --git a/StockManMVC/Views/ItemFluxes/Delete.cshtml b/StockManMVC/Views/ItemFluxes/Delete.cshtml new file mode 100644 index 0000000..7e2f4e3 --- /dev/null +++ b/StockManMVC/Views/ItemFluxes/Delete.cshtml @@ -0,0 +1,104 @@ +@model StockManMVC.Models.ItemFlux + +@{ + ViewBag.Title = "Delete"; +} + +

Delete

+ +

Are you sure you want to delete this?

+
+

ItemFlux

+
+
+
+ @Html.DisplayNameFor(model => model.ExtLocationID) +
+ +
+ @Html.DisplayFor(model => model.ExtLocationID) +
+ +
+ @Html.DisplayNameFor(model => model.dtMov) +
+ +
+ @Html.DisplayFor(model => model.dtMov) +
+ +
+ @Html.DisplayNameFor(model => model.Qta) +
+ +
+ @Html.DisplayFor(model => model.Qta) +
+ +
+ @Html.DisplayNameFor(model => model.TotValue) +
+ +
+ @Html.DisplayFor(model => model.TotValue) +
+ +
+ @Html.DisplayNameFor(model => model.UnitVal) +
+ +
+ @Html.DisplayFor(model => model.UnitVal) +
+ +
+ @Html.DisplayNameFor(model => model.Note) +
+ +
+ @Html.DisplayFor(model => model.Note) +
+ +
+ @Html.DisplayNameFor(model => model.dtExport) +
+ +
+ @Html.DisplayFor(model => model.dtExport) +
+ +
+ @Html.DisplayNameFor(model => model.Item.Descr) +
+ +
+ @Html.DisplayFor(model => model.Item.Descr) +
+ +
+ @Html.DisplayNameFor(model => model.Location.Descr) +
+ +
+ @Html.DisplayFor(model => model.Location.Descr) +
+ +
+ @Html.DisplayNameFor(model => model.MovType.Descr) +
+ +
+ @Html.DisplayFor(model => model.MovType.Descr) +
+ +
+ + @using (Html.BeginForm()) { + @Html.AntiForgeryToken() + +
+ | + @Html.ActionLink("Back to List", "Index") +
+ } +
diff --git a/StockManMVC/Views/ItemFluxes/Details.cshtml b/StockManMVC/Views/ItemFluxes/Details.cshtml new file mode 100644 index 0000000..7cd16cd --- /dev/null +++ b/StockManMVC/Views/ItemFluxes/Details.cshtml @@ -0,0 +1,98 @@ +@model StockManMVC.Models.ItemFlux + +@{ + ViewBag.Title = "Details"; +} + +

Details

+ +
+

ItemFlux

+
+
+
+ @Html.DisplayNameFor(model => model.ExtLocationID) +
+ +
+ @Html.DisplayFor(model => model.ExtLocationID) +
+ +
+ @Html.DisplayNameFor(model => model.dtMov) +
+ +
+ @Html.DisplayFor(model => model.dtMov) +
+ +
+ @Html.DisplayNameFor(model => model.Qta) +
+ +
+ @Html.DisplayFor(model => model.Qta) +
+ +
+ @Html.DisplayNameFor(model => model.TotValue) +
+ +
+ @Html.DisplayFor(model => model.TotValue) +
+ +
+ @Html.DisplayNameFor(model => model.UnitVal) +
+ +
+ @Html.DisplayFor(model => model.UnitVal) +
+ +
+ @Html.DisplayNameFor(model => model.Note) +
+ +
+ @Html.DisplayFor(model => model.Note) +
+ +
+ @Html.DisplayNameFor(model => model.dtExport) +
+ +
+ @Html.DisplayFor(model => model.dtExport) +
+ +
+ @Html.DisplayNameFor(model => model.Item.Descr) +
+ +
+ @Html.DisplayFor(model => model.Item.Descr) +
+ +
+ @Html.DisplayNameFor(model => model.Location.Descr) +
+ +
+ @Html.DisplayFor(model => model.Location.Descr) +
+ +
+ @Html.DisplayNameFor(model => model.MovType.Descr) +
+ +
+ @Html.DisplayFor(model => model.MovType.Descr) +
+ +
+
+

+ @Html.ActionLink("Edit", "Edit", new { id = Model.ID }) | + @Html.ActionLink("Back to List", "Index") +

diff --git a/StockManMVC/Views/ItemFluxes/Edit.cshtml b/StockManMVC/Views/ItemFluxes/Edit.cshtml new file mode 100644 index 0000000..8f6d80a --- /dev/null +++ b/StockManMVC/Views/ItemFluxes/Edit.cshtml @@ -0,0 +1,114 @@ +@model StockManMVC.Models.ItemFlux + +@{ + ViewBag.Title = "Edit"; +} + +

Edit

+ + +@using (Html.BeginForm()) +{ + @Html.AntiForgeryToken() + +
+

ItemFlux

+
+ @Html.ValidationSummary(true, "", new { @class = "text-danger" }) + @Html.HiddenFor(model => model.ID) + +
+ @Html.LabelFor(model => model.ItemID, "ItemID", htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.DropDownList("ItemID", null, htmlAttributes: new { @class = "form-control" }) + @Html.ValidationMessageFor(model => model.ItemID, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.LocationID, "LocationID", htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.DropDownList("LocationID", null, htmlAttributes: new { @class = "form-control" }) + @Html.ValidationMessageFor(model => model.LocationID, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.MovTypeID, "MovTypeID", htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.DropDownList("MovTypeID", null, htmlAttributes: new { @class = "form-control" }) + @Html.ValidationMessageFor(model => model.MovTypeID, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.ExtLocationID, htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.EditorFor(model => model.ExtLocationID, new { htmlAttributes = new { @class = "form-control" } }) + @Html.ValidationMessageFor(model => model.ExtLocationID, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.dtMov, htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.EditorFor(model => model.dtMov, new { htmlAttributes = new { @class = "form-control" } }) + @Html.ValidationMessageFor(model => model.dtMov, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.Qta, htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.EditorFor(model => model.Qta, new { htmlAttributes = new { @class = "form-control" } }) + @Html.ValidationMessageFor(model => model.Qta, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.TotValue, htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.EditorFor(model => model.TotValue, new { htmlAttributes = new { @class = "form-control" } }) + @Html.ValidationMessageFor(model => model.TotValue, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.UnitVal, htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.EditorFor(model => model.UnitVal, new { htmlAttributes = new { @class = "form-control" } }) + @Html.ValidationMessageFor(model => model.UnitVal, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.Note, htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.EditorFor(model => model.Note, new { htmlAttributes = new { @class = "form-control" } }) + @Html.ValidationMessageFor(model => model.Note, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.dtExport, htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.EditorFor(model => model.dtExport, new { htmlAttributes = new { @class = "form-control" } }) + @Html.ValidationMessageFor(model => model.dtExport, "", new { @class = "text-danger" }) +
+
+ +
+
+ +
+
+
+} + +
+ @Html.ActionLink("Back to List", "Index") +
+ +@section Scripts { + @Scripts.Render("~/bundles/jqueryval") +} diff --git a/StockManMVC/Views/ItemFluxes/Index.cshtml b/StockManMVC/Views/ItemFluxes/Index.cshtml new file mode 100644 index 0000000..3306c75 --- /dev/null +++ b/StockManMVC/Views/ItemFluxes/Index.cshtml @@ -0,0 +1,87 @@ +@model IEnumerable + +@{ + ViewBag.Title = "Index"; +} + +

Index

+ +

+ @Html.ActionLink("Create New", "Create") +

+ + + + + + + + + + + + + + + +@foreach (var item in Model) { + + + + + + + + + + + + + +} + +
+ @Html.DisplayNameFor(model => model.ExtLocationID) + + @Html.DisplayNameFor(model => model.dtMov) + + @Html.DisplayNameFor(model => model.Qta) + + @Html.DisplayNameFor(model => model.TotValue) + + @Html.DisplayNameFor(model => model.UnitVal) + + @Html.DisplayNameFor(model => model.Note) + + @Html.DisplayNameFor(model => model.dtExport) + + @Html.DisplayNameFor(model => model.Item.Descr) + + @Html.DisplayNameFor(model => model.Location.Descr) + + @Html.DisplayNameFor(model => model.MovType.Descr) +
+ @Html.DisplayFor(modelItem => item.ExtLocationID) + + @Html.DisplayFor(modelItem => item.dtMov) + + @Html.DisplayFor(modelItem => item.Qta) + + @Html.DisplayFor(modelItem => item.TotValue) + + @Html.DisplayFor(modelItem => item.UnitVal) + + @Html.DisplayFor(modelItem => item.Note) + + @Html.DisplayFor(modelItem => item.dtExport) + + @Html.DisplayFor(modelItem => item.Item.Descr) + + @Html.DisplayFor(modelItem => item.Location.Descr) + + @Html.DisplayFor(modelItem => item.MovType.Descr) + + @Html.ActionLink("Edit", "Edit", new { id=item.ID }) | + @Html.ActionLink("Details", "Details", new { id=item.ID }) | + @Html.ActionLink("Delete", "Delete", new { id=item.ID }) +
diff --git a/StockManMVC/Views/ItemStocks/Create.cshtml b/StockManMVC/Views/ItemStocks/Create.cshtml new file mode 100644 index 0000000..09e8632 --- /dev/null +++ b/StockManMVC/Views/ItemStocks/Create.cshtml @@ -0,0 +1,72 @@ +@model StockManMVC.Models.ItemStock + +@{ + ViewBag.Title = "Create"; +} + +

Create

+ + +@using (Html.BeginForm()) +{ + @Html.AntiForgeryToken() + +
+

ItemStock

+
+ @Html.ValidationSummary(true, "", new { @class = "text-danger" }) +
+ @Html.LabelFor(model => model.ItemID, "ItemID", htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.DropDownList("ItemID", null, htmlAttributes: new { @class = "form-control" }) + @Html.ValidationMessageFor(model => model.ItemID, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.LocationID, "LocationID", htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.DropDownList("LocationID", null, htmlAttributes: new { @class = "form-control" }) + @Html.ValidationMessageFor(model => model.LocationID, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.QtyConf, htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.EditorFor(model => model.QtyConf, new { htmlAttributes = new { @class = "form-control" } }) + @Html.ValidationMessageFor(model => model.QtyConf, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.Note, htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.EditorFor(model => model.Note, new { htmlAttributes = new { @class = "form-control" } }) + @Html.ValidationMessageFor(model => model.Note, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.dtLastUpd, htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.EditorFor(model => model.dtLastUpd, new { htmlAttributes = new { @class = "form-control" } }) + @Html.ValidationMessageFor(model => model.dtLastUpd, "", new { @class = "text-danger" }) +
+
+ +
+
+ +
+
+
+} + +
+ @Html.ActionLink("Back to List", "Index") +
+ +@section Scripts { + @Scripts.Render("~/bundles/jqueryval") +} diff --git a/StockManMVC/Views/ItemStocks/Delete.cshtml b/StockManMVC/Views/ItemStocks/Delete.cshtml new file mode 100644 index 0000000..782cc17 --- /dev/null +++ b/StockManMVC/Views/ItemStocks/Delete.cshtml @@ -0,0 +1,64 @@ +@model StockManMVC.Models.ItemStock + +@{ + ViewBag.Title = "Delete"; +} + +

Delete

+ +

Are you sure you want to delete this?

+
+

ItemStock

+
+
+
+ @Html.DisplayNameFor(model => model.QtyConf) +
+ +
+ @Html.DisplayFor(model => model.QtyConf) +
+ +
+ @Html.DisplayNameFor(model => model.Note) +
+ +
+ @Html.DisplayFor(model => model.Note) +
+ +
+ @Html.DisplayNameFor(model => model.dtLastUpd) +
+ +
+ @Html.DisplayFor(model => model.dtLastUpd) +
+ +
+ @Html.DisplayNameFor(model => model.Item.Descr) +
+ +
+ @Html.DisplayFor(model => model.Item.Descr) +
+ +
+ @Html.DisplayNameFor(model => model.Location.Descr) +
+ +
+ @Html.DisplayFor(model => model.Location.Descr) +
+ +
+ + @using (Html.BeginForm()) { + @Html.AntiForgeryToken() + +
+ | + @Html.ActionLink("Back to List", "Index") +
+ } +
diff --git a/StockManMVC/Views/ItemStocks/Details.cshtml b/StockManMVC/Views/ItemStocks/Details.cshtml new file mode 100644 index 0000000..f0d2f99 --- /dev/null +++ b/StockManMVC/Views/ItemStocks/Details.cshtml @@ -0,0 +1,58 @@ +@model StockManMVC.Models.ItemStock + +@{ + ViewBag.Title = "Details"; +} + +

Details

+ +
+

ItemStock

+
+
+
+ @Html.DisplayNameFor(model => model.QtyConf) +
+ +
+ @Html.DisplayFor(model => model.QtyConf) +
+ +
+ @Html.DisplayNameFor(model => model.Note) +
+ +
+ @Html.DisplayFor(model => model.Note) +
+ +
+ @Html.DisplayNameFor(model => model.dtLastUpd) +
+ +
+ @Html.DisplayFor(model => model.dtLastUpd) +
+ +
+ @Html.DisplayNameFor(model => model.Item.Descr) +
+ +
+ @Html.DisplayFor(model => model.Item.Descr) +
+ +
+ @Html.DisplayNameFor(model => model.Location.Descr) +
+ +
+ @Html.DisplayFor(model => model.Location.Descr) +
+ +
+
+

+ @Html.ActionLink("Edit", "Edit", new { id = Model.ID }) | + @Html.ActionLink("Back to List", "Index") +

diff --git a/StockManMVC/Views/ItemStocks/Edit.cshtml b/StockManMVC/Views/ItemStocks/Edit.cshtml new file mode 100644 index 0000000..8338779 --- /dev/null +++ b/StockManMVC/Views/ItemStocks/Edit.cshtml @@ -0,0 +1,74 @@ +@model StockManMVC.Models.ItemStock + +@{ + ViewBag.Title = "Edit"; +} + +

Edit

+ + +@using (Html.BeginForm()) +{ + @Html.AntiForgeryToken() + +
+

ItemStock

+
+ @Html.ValidationSummary(true, "", new { @class = "text-danger" }) + @Html.HiddenFor(model => model.ID) + +
+ @Html.LabelFor(model => model.ItemID, "ItemID", htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.DropDownList("ItemID", null, htmlAttributes: new { @class = "form-control" }) + @Html.ValidationMessageFor(model => model.ItemID, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.LocationID, "LocationID", htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.DropDownList("LocationID", null, htmlAttributes: new { @class = "form-control" }) + @Html.ValidationMessageFor(model => model.LocationID, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.QtyConf, htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.EditorFor(model => model.QtyConf, new { htmlAttributes = new { @class = "form-control" } }) + @Html.ValidationMessageFor(model => model.QtyConf, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.Note, htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.EditorFor(model => model.Note, new { htmlAttributes = new { @class = "form-control" } }) + @Html.ValidationMessageFor(model => model.Note, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.dtLastUpd, htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.EditorFor(model => model.dtLastUpd, new { htmlAttributes = new { @class = "form-control" } }) + @Html.ValidationMessageFor(model => model.dtLastUpd, "", new { @class = "text-danger" }) +
+
+ +
+
+ +
+
+
+} + +
+ @Html.ActionLink("Back to List", "Index") +
+ +@section Scripts { + @Scripts.Render("~/bundles/jqueryval") +} diff --git a/StockManMVC/Views/ItemStocks/Index.cshtml b/StockManMVC/Views/ItemStocks/Index.cshtml new file mode 100644 index 0000000..dc71a39 --- /dev/null +++ b/StockManMVC/Views/ItemStocks/Index.cshtml @@ -0,0 +1,57 @@ +@model IEnumerable + +@{ + ViewBag.Title = "Index"; +} + +

Index

+ +

+ @Html.ActionLink("Create New", "Create") +

+ + + + + + + + + + +@foreach (var item in Model) { + + + + + + + + +} + +
+ @Html.DisplayNameFor(model => model.QtyConf) + + @Html.DisplayNameFor(model => model.Note) + + @Html.DisplayNameFor(model => model.dtLastUpd) + + @Html.DisplayNameFor(model => model.Item.Descr) + + @Html.DisplayNameFor(model => model.Location.Descr) +
+ @Html.DisplayFor(modelItem => item.QtyConf) + + @Html.DisplayFor(modelItem => item.Note) + + @Html.DisplayFor(modelItem => item.dtLastUpd) + + @Html.DisplayFor(modelItem => item.Item.Descr) + + @Html.DisplayFor(modelItem => item.Location.Descr) + + @Html.ActionLink("Edit", "Edit", new { id=item.ID }) | + @Html.ActionLink("Details", "Details", new { id=item.ID }) | + @Html.ActionLink("Delete", "Delete", new { id=item.ID }) +
diff --git a/StockManMVC/Views/Items/Create.cshtml b/StockManMVC/Views/Items/Create.cshtml new file mode 100644 index 0000000..2e478c2 --- /dev/null +++ b/StockManMVC/Views/Items/Create.cshtml @@ -0,0 +1,96 @@ +@model StockManMVC.Models.Item + +@{ + ViewBag.Title = "Create"; +} + +

Create

+ + +@using (Html.BeginForm()) +{ + @Html.AntiForgeryToken() + +
+

Item

+
+ @Html.ValidationSummary(true, "", new { @class = "text-danger" }) +
+ @Html.LabelFor(model => model.Descr, htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.EditorFor(model => model.Descr, new { htmlAttributes = new { @class = "form-control" } }) + @Html.ValidationMessageFor(model => model.Descr, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.CodInt, htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.EditorFor(model => model.CodInt, new { htmlAttributes = new { @class = "form-control" } }) + @Html.ValidationMessageFor(model => model.CodInt, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.Family, htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.EditorFor(model => model.Family, new { htmlAttributes = new { @class = "form-control" } }) + @Html.ValidationMessageFor(model => model.Family, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.CodExt, htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.EditorFor(model => model.CodExt, new { htmlAttributes = new { @class = "form-control" } }) + @Html.ValidationMessageFor(model => model.CodExt, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.DescrExt, htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.EditorFor(model => model.DescrExt, new { htmlAttributes = new { @class = "form-control" } }) + @Html.ValidationMessageFor(model => model.DescrExt, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.QtaMin, htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.EditorFor(model => model.QtaMin, new { htmlAttributes = new { @class = "form-control" } }) + @Html.ValidationMessageFor(model => model.QtaMin, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.QtaBatch, htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.EditorFor(model => model.QtaBatch, new { htmlAttributes = new { @class = "form-control" } }) + @Html.ValidationMessageFor(model => model.QtaBatch, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.CurrValue, htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.EditorFor(model => model.CurrValue, new { htmlAttributes = new { @class = "form-control" } }) + @Html.ValidationMessageFor(model => model.CurrValue, "", new { @class = "text-danger" }) +
+
+ +
+
+ +
+
+
+} + +
+ @Html.ActionLink("Back to List", "Index") +
+ +@section Scripts { + @Scripts.Render("~/bundles/jqueryval") +} diff --git a/StockManMVC/Views/Items/Delete.cshtml b/StockManMVC/Views/Items/Delete.cshtml new file mode 100644 index 0000000..49152f6 --- /dev/null +++ b/StockManMVC/Views/Items/Delete.cshtml @@ -0,0 +1,88 @@ +@model StockManMVC.Models.Item + +@{ + ViewBag.Title = "Delete"; +} + +

Delete

+ +

Are you sure you want to delete this?

+
+

Item

+
+
+
+ @Html.DisplayNameFor(model => model.Descr) +
+ +
+ @Html.DisplayFor(model => model.Descr) +
+ +
+ @Html.DisplayNameFor(model => model.CodInt) +
+ +
+ @Html.DisplayFor(model => model.CodInt) +
+ +
+ @Html.DisplayNameFor(model => model.Family) +
+ +
+ @Html.DisplayFor(model => model.Family) +
+ +
+ @Html.DisplayNameFor(model => model.CodExt) +
+ +
+ @Html.DisplayFor(model => model.CodExt) +
+ +
+ @Html.DisplayNameFor(model => model.DescrExt) +
+ +
+ @Html.DisplayFor(model => model.DescrExt) +
+ +
+ @Html.DisplayNameFor(model => model.QtaMin) +
+ +
+ @Html.DisplayFor(model => model.QtaMin) +
+ +
+ @Html.DisplayNameFor(model => model.QtaBatch) +
+ +
+ @Html.DisplayFor(model => model.QtaBatch) +
+ +
+ @Html.DisplayNameFor(model => model.CurrValue) +
+ +
+ @Html.DisplayFor(model => model.CurrValue) +
+ +
+ + @using (Html.BeginForm()) { + @Html.AntiForgeryToken() + +
+ | + @Html.ActionLink("Back to List", "Index") +
+ } +
diff --git a/StockManMVC/Views/Items/Details.cshtml b/StockManMVC/Views/Items/Details.cshtml new file mode 100644 index 0000000..8d45914 --- /dev/null +++ b/StockManMVC/Views/Items/Details.cshtml @@ -0,0 +1,82 @@ +@model StockManMVC.Models.Item + +@{ + ViewBag.Title = "Details"; +} + +

Details

+ +
+

Item

+
+
+
+ @Html.DisplayNameFor(model => model.Descr) +
+ +
+ @Html.DisplayFor(model => model.Descr) +
+ +
+ @Html.DisplayNameFor(model => model.CodInt) +
+ +
+ @Html.DisplayFor(model => model.CodInt) +
+ +
+ @Html.DisplayNameFor(model => model.Family) +
+ +
+ @Html.DisplayFor(model => model.Family) +
+ +
+ @Html.DisplayNameFor(model => model.CodExt) +
+ +
+ @Html.DisplayFor(model => model.CodExt) +
+ +
+ @Html.DisplayNameFor(model => model.DescrExt) +
+ +
+ @Html.DisplayFor(model => model.DescrExt) +
+ +
+ @Html.DisplayNameFor(model => model.QtaMin) +
+ +
+ @Html.DisplayFor(model => model.QtaMin) +
+ +
+ @Html.DisplayNameFor(model => model.QtaBatch) +
+ +
+ @Html.DisplayFor(model => model.QtaBatch) +
+ +
+ @Html.DisplayNameFor(model => model.CurrValue) +
+ +
+ @Html.DisplayFor(model => model.CurrValue) +
+ +
+
+

+ @Html.ActionLink("Edit", "Edit", new { id = Model.ID }) | + @Html.ActionLink("Back to List", "Index") +

diff --git a/StockManMVC/Views/Items/Edit.cshtml b/StockManMVC/Views/Items/Edit.cshtml new file mode 100644 index 0000000..c8dabf0 --- /dev/null +++ b/StockManMVC/Views/Items/Edit.cshtml @@ -0,0 +1,98 @@ +@model StockManMVC.Models.Item + +@{ + ViewBag.Title = "Edit"; +} + +

Edit

+ + +@using (Html.BeginForm()) +{ + @Html.AntiForgeryToken() + +
+

Item

+
+ @Html.ValidationSummary(true, "", new { @class = "text-danger" }) + @Html.HiddenFor(model => model.ID) + +
+ @Html.LabelFor(model => model.Descr, htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.EditorFor(model => model.Descr, new { htmlAttributes = new { @class = "form-control" } }) + @Html.ValidationMessageFor(model => model.Descr, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.CodInt, htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.EditorFor(model => model.CodInt, new { htmlAttributes = new { @class = "form-control" } }) + @Html.ValidationMessageFor(model => model.CodInt, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.Family, htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.EditorFor(model => model.Family, new { htmlAttributes = new { @class = "form-control" } }) + @Html.ValidationMessageFor(model => model.Family, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.CodExt, htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.EditorFor(model => model.CodExt, new { htmlAttributes = new { @class = "form-control" } }) + @Html.ValidationMessageFor(model => model.CodExt, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.DescrExt, htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.EditorFor(model => model.DescrExt, new { htmlAttributes = new { @class = "form-control" } }) + @Html.ValidationMessageFor(model => model.DescrExt, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.QtaMin, htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.EditorFor(model => model.QtaMin, new { htmlAttributes = new { @class = "form-control" } }) + @Html.ValidationMessageFor(model => model.QtaMin, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.QtaBatch, htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.EditorFor(model => model.QtaBatch, new { htmlAttributes = new { @class = "form-control" } }) + @Html.ValidationMessageFor(model => model.QtaBatch, "", new { @class = "text-danger" }) +
+
+ +
+ @Html.LabelFor(model => model.CurrValue, htmlAttributes: new { @class = "control-label col-md-2" }) +
+ @Html.EditorFor(model => model.CurrValue, new { htmlAttributes = new { @class = "form-control" } }) + @Html.ValidationMessageFor(model => model.CurrValue, "", new { @class = "text-danger" }) +
+
+ +
+
+ +
+
+
+} + +
+ @Html.ActionLink("Back to List", "Index") +
+ +@section Scripts { + @Scripts.Render("~/bundles/jqueryval") +} diff --git a/StockManMVC/Views/Items/Index.cshtml b/StockManMVC/Views/Items/Index.cshtml new file mode 100644 index 0000000..96babb8 --- /dev/null +++ b/StockManMVC/Views/Items/Index.cshtml @@ -0,0 +1,75 @@ +@model IEnumerable + +@{ + ViewBag.Title = "Anagrafica Articoli"; +} + +

Anagrafica Articoli

+ +

+ @Html.ActionLink("Create New", "Create") +

+ + + + + + + + + + + + + +@foreach (var item in Model) { + + + + + + + + + + + +} + +
+ @Html.DisplayNameFor(model => model.Descr) + + @Html.DisplayNameFor(model => model.CodInt) + + @Html.DisplayNameFor(model => model.Family) + + @Html.DisplayNameFor(model => model.CodExt) + + @Html.DisplayNameFor(model => model.DescrExt) + + @Html.DisplayNameFor(model => model.QtaMin) + + @Html.DisplayNameFor(model => model.QtaBatch) + + @Html.DisplayNameFor(model => model.CurrValue) +
+ @Html.DisplayFor(modelItem => item.Descr) + + @Html.DisplayFor(modelItem => item.CodInt) + + @Html.DisplayFor(modelItem => item.Family) + + @Html.DisplayFor(modelItem => item.CodExt) + + @Html.DisplayFor(modelItem => item.DescrExt) + + @Html.DisplayFor(modelItem => item.QtaMin) + + @Html.DisplayFor(modelItem => item.QtaBatch) + + @Html.DisplayFor(modelItem => item.CurrValue) + + @Html.ActionLink("Edit", "Edit", new { id=item.ID }) | + @Html.ActionLink("Details", "Details", new { id=item.ID }) | + @Html.ActionLink("Delete", "Delete", new { id=item.ID }) +
diff --git a/StockManMVC/Views/Shared/_Layout.cshtml b/StockManMVC/Views/Shared/_Layout.cshtml index b53a7d5..59858a7 100644 --- a/StockManMVC/Views/Shared/_Layout.cshtml +++ b/StockManMVC/Views/Shared/_Layout.cshtml @@ -23,12 +23,13 @@
  • @Html.ActionLink("Home", "Index", "Home")
  • @*
  • @Html.ActionLink("About", "About", "Home")
  • @Html.ActionLink("Contact", "Contact", "Home")
  • *@ -
  • @Html.ActionLink("Items", "Index", "Items")
  • -
  • @Html.ActionLink("Stock", "Index", "ItemStocks")
  • -
  • @Html.ActionLink("Flux", "Index", "ItemFluxs")
  • -
  • @Html.ActionLink("Locations", "Index", "Locations")
  • -
  • @Html.ActionLink("Location Type", "Index", "LocTypes")
  • -
  • @Html.ActionLink("Move Type", "Index", "MovTypes")
  • +
  • @Html.ActionLink("Articoli", "Index", "Items")
  • +
  • @Html.ActionLink("Magazzino Articoli", "Index", "ItemStockStatus")
  • + @*
  • @Html.ActionLink("Stock", "Index", "ItemStocks")
  • +
  • @Html.ActionLink("Flux", "Index", "ItemFluxes")
  • *@ +
  • @Html.ActionLink("Posizioni", "Index", "Locations")
  • +
  • @Html.ActionLink("Tipo Posizioni", "Index", "LocTypes")
  • +
  • @Html.ActionLink("Tipo Movimenti", "Index", "MovTypes")
  • diff --git a/StockManMVC/bin/StockManMVC.dll b/StockManMVC/bin/StockManMVC.dll index 5625de43acfff2f1807a6c603c55aa331d047d32..9cefc676eb6b90a235c619dfc7f866c9935dcaf5 100644 GIT binary patch literal 62464 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 RpXlPqROTQ5N86TX{2#s_bvFP2