115 lines
4.4 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|