Files
2017-01-13 10:42:17 +01:00

115 lines
4.4 KiB
C#

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;
using System.Threading.Tasks;
using System.Web.Configuration;
namespace StockManMVC.Controllers
{
public class MagStatusController : Controller
{
private StockManEntities db = new StockManEntities();
// GET: MagStatus
public ActionResult Index(string LocationID_SX, string LocationID_DX)
{
var vLocationVal = db.vLocationVal.Include(v => v.Location);
if (LocationID_SX == null) LocationID_SX = "";
if (LocationID_DX == null) LocationID_DX = "";
ViewBag.SelSX = LocationID_SX;
ViewBag.SelDX = LocationID_DX;
// i 2 selettori...
ViewBag.LocationID_SX = new SelectList(db.Location.Where(o => o.LocType.IsStock), "ID", "Descr", LocationID_SX);
ViewBag.LocationID_DX = new SelectList(db.Location.Where(o => o.LocType.IsStock), "ID", "Descr", LocationID_DX);
// url del report...
ViewBag.UrlReportGiacenza = string.Format("{0}{1}", WebConfigurationManager.AppSettings["RepServUrl"], WebConfigurationManager.AppSettings["UrlGiacMag"]);
ViewBag.UrlReportOut = string.Format("{0}{1}", WebConfigurationManager.AppSettings["RepServUrl"], WebConfigurationManager.AppSettings["UrlOutMag"]);
ViewBag.UrlReportMov = string.Format("{0}{1}", WebConfigurationManager.AppSettings["RepServUrl"], WebConfigurationManager.AppSettings["UrlMovMag"]);
return View(vLocationVal.ToList());
}
// GET: MagStatus/StockByLocation
public ActionResult StockByLocation(string LocationID, string LocationIDTo, bool? ShowMove)
{
var CurrStock = db.ItemStock
.Where(s => s.QtyConf > 0 && s.LocationID == LocationID)
.Include(v => v.Location)
.Include(s => s.Item);
if (ShowMove == null) ShowMove = false;
ViewBag.LocationID = LocationID;
ViewBag.LocationIDTo = LocationIDTo;
ViewBag.ShowMove = ShowMove;
return PartialView("_StockByLocation", CurrStock.ToList());
}
[HttpGet]
// GET: MagStatus/MoveConfirm
public ActionResult MoveConfirm(int ID, string LocationID, string LocationIDTo)
{
ItemStock itemStock = db.ItemStock.Find(ID);
ViewBag.LocationID = LocationID;
ViewBag.LocationIDTo = LocationIDTo;
return PartialView("_confirmMove", itemStock);
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult MoveConfirm(int ID, string LocationID, string LocationIDTo, [Bind(Include = "QtyConf")] ItemStock itemSt)
{
// recupero operatore...
IEnumerable<Operator> listOper = OperatorsController.Select(User.Identity.Name);
string currOperID = "ND";
if (listOper.Count() == 1)
{
currOperID = listOper.First().ID;
}
// chiamo la stored x il move
int rowMod = 0;
using (var ctx = new StockManEntities())
{
// recupero itemStock riferimento
ItemStock itmStock = ctx.ItemStock.Find(ID);
// se ho quantità != completa --> uso altra stored...
if (itemSt.QtyConf != itmStock.QtyConf)
{
// esegue stored procedure come function che cambia e sposta qta paziali
rowMod = ctx.stp_ItemStockMove_New(ID, LocationID, LocationIDTo, currOperID, itemSt.QtyConf);
}
else
{
// esegue stored procedure come function, sposta TUTTO
rowMod = ctx.stp_ItemStockMove(ID, LocationID, LocationIDTo, currOperID);
}
}
// appoggio variabili
string SelSX = LocationID;
string SelDX = LocationIDTo;
// restituisco la view principale...
return RedirectToAction("Index", new { LocationID_SX = SelSX, LocationID_DX = SelDX });
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
db.Dispose();
}
base.Dispose(disposing);
}
}
}