COMPLETATO SPOSTAMENTO (anche parziale!!!) x MOVE...

This commit is contained in:
Samuele E. Locatelli (WEB DEV)
2016-09-29 23:03:16 +02:00
parent a2638f2b98
commit 7ba4cfda07
20 changed files with 135 additions and 110 deletions
+19 -28
View File
@@ -52,37 +52,16 @@ namespace StockManMVC.Controllers
// GET: MagStatus/MoveConfirm
public ActionResult MoveConfirm(int ID, string LocationID, string LocationIDTo)
{
var CurrStock = db.ItemStock
.Where(s => s.ID == ID)
.Include(v => v.Location)
.Include(s => s.Item);
ItemStock itemStock = db.ItemStock.Find(ID);
ViewBag.LocationID = LocationID;
ViewBag.LocationIDTo = LocationIDTo;
return PartialView("_confirmMove", CurrStock.ToList());
return PartialView("_confirmMove", itemStock);
}
// GET: MagStatus/StockByLocationAjax
[HttpGet]
public ActionResult StockByLocationAjax(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());
}
public ActionResult Move(int ID, string LocationID, string LocationIDTo, int QtyConf)
[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);
@@ -93,10 +72,22 @@ namespace StockManMVC.Controllers
}
// chiamo la stored x il move
int rowMod = 0;
using (var ctx = new StockManEntities())
{
// esegue stored procedure come function, SE id == 0 processa TUTTI...
int rowMod = ctx.stp_ItemStockMove(ID, LocationID, LocationIDTo, currOperID);
// 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
+3 -3
View File
@@ -1,9 +1,9 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Codice generato da un modello.
// This code was generated from a template.
//
// Le modifiche manuali a questo file potrebbero causare un comportamento imprevisto dell'applicazione.
// Se il codice viene rigenerato, le modifiche manuali al file verranno sovrascritte.
// 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.
// </auto-generated>
//------------------------------------------------------------------------------
+3 -3
View File
@@ -1,9 +1,9 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Codice generato da un modello.
// This code was generated from a template.
//
// Le modifiche manuali a questo file potrebbero causare un comportamento imprevisto dell'applicazione.
// Se il codice viene rigenerato, le modifiche manuali al file verranno sovrascritte.
// 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.
// </auto-generated>
//------------------------------------------------------------------------------
+3 -3
View File
@@ -1,9 +1,9 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Codice generato da un modello.
// This code was generated from a template.
//
// Le modifiche manuali a questo file potrebbero causare un comportamento imprevisto dell'applicazione.
// Se il codice viene rigenerato, le modifiche manuali al file verranno sovrascritte.
// 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.
// </auto-generated>
//------------------------------------------------------------------------------
+3 -3
View File
@@ -1,9 +1,9 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Codice generato da un modello.
// This code was generated from a template.
//
// Le modifiche manuali a questo file potrebbero causare un comportamento imprevisto dell'applicazione.
// Se il codice viene rigenerato, le modifiche manuali al file verranno sovrascritte.
// 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.
// </auto-generated>
//------------------------------------------------------------------------------
+3 -3
View File
@@ -1,9 +1,9 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Codice generato da un modello.
// This code was generated from a template.
//
// Le modifiche manuali a questo file potrebbero causare un comportamento imprevisto dell'applicazione.
// Se il codice viene rigenerato, le modifiche manuali al file verranno sovrascritte.
// 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.
// </auto-generated>
//------------------------------------------------------------------------------
+3 -3
View File
@@ -1,9 +1,9 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Codice generato da un modello.
// This code was generated from a template.
//
// Le modifiche manuali a questo file potrebbero causare un comportamento imprevisto dell'applicazione.
// Se il codice viene rigenerato, le modifiche manuali al file verranno sovrascritte.
// 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.
// </auto-generated>
//------------------------------------------------------------------------------
+3 -3
View File
@@ -1,9 +1,9 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Codice generato da un modello.
// This code was generated from a template.
//
// Le modifiche manuali a questo file potrebbero causare un comportamento imprevisto dell'applicazione.
// Se il codice viene rigenerato, le modifiche manuali al file verranno sovrascritte.
// 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.
// </auto-generated>
//------------------------------------------------------------------------------
+3 -3
View File
@@ -1,9 +1,9 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Codice generato da un modello.
// This code was generated from a template.
//
// Le modifiche manuali a questo file potrebbero causare un comportamento imprevisto dell'applicazione.
// Se il codice viene rigenerato, le modifiche manuali al file verranno sovrascritte.
// 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.
// </auto-generated>
//------------------------------------------------------------------------------
+28 -3
View File
@@ -1,9 +1,9 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Codice generato da un modello.
// This code was generated from a template.
//
// Le modifiche manuali a questo file potrebbero causare un comportamento imprevisto dell'applicazione.
// Se il codice viene rigenerato, le modifiche manuali al file verranno sovrascritte.
// 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.
// </auto-generated>
//------------------------------------------------------------------------------
@@ -85,5 +85,30 @@ namespace StockManMVC.Models
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("stp_ItemStockMove", stockIDParameter, locationID_FROMParameter, locationID_TOParameter, operatorIDParameter);
}
public virtual int stp_ItemStockMove_New(Nullable<int> stockID, string locationID_FROM, string locationID_TO, string operatorID, Nullable<int> qtyMov)
{
var stockIDParameter = stockID.HasValue ?
new ObjectParameter("StockID", stockID) :
new ObjectParameter("StockID", typeof(int));
var locationID_FROMParameter = locationID_FROM != null ?
new ObjectParameter("LocationID_FROM", locationID_FROM) :
new ObjectParameter("LocationID_FROM", typeof(string));
var locationID_TOParameter = locationID_TO != null ?
new ObjectParameter("LocationID_TO", locationID_TO) :
new ObjectParameter("LocationID_TO", typeof(string));
var operatorIDParameter = operatorID != null ?
new ObjectParameter("OperatorID", operatorID) :
new ObjectParameter("OperatorID", typeof(string));
var qtyMovParameter = qtyMov.HasValue ?
new ObjectParameter("QtyMov", qtyMov) :
new ObjectParameter("QtyMov", typeof(int));
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("stp_ItemStockMove_New", stockIDParameter, locationID_FROMParameter, locationID_TOParameter, operatorIDParameter, qtyMovParameter);
}
}
}
+9 -9
View File
@@ -1,10 +1,10 @@
// Generazione del codice predefinita abilitata per il modello 'C:\Users\samuele.STEAMWAREWIN\Documents\VisualStudioProjects\StockMan\StockManMVC\Models\SMModel.edmx'.
// Per abilitare la generazione del codice legacy, modificare il valore della proprietà della finestra di progettazione 'Strategia di generazione del codice
// su 'Legacy ObjectContext'. Questa proprietà è disponibile nella finestra Proprietà quando il modello è
// aperto nella finestra di progettazione.
// T4 code generation is enabled for model 'C:\Users\samuele\Documents\Visual Studio 2015\Projects\StockMan\StockManMVC\Models\SMModel.edmx'.
// To enable legacy code generation, change the value of the 'Code Generation Strategy' designer
// property to 'Legacy ObjectContext'. This property is available in the Properties Window when the model
// is open in the designer.
// La mancata generazione di classi contesto ed entità può essere dovuta al fatto che è stato creato un modello vuoto, ma
// non è ancora stata scelta la versione di Entity Framework da utilizzare. Per generare una classe contesto e classi entità
// per il modello, aprire il modello nella finestra di progettazione, fare clic con il pulsante destro del mouse nell'area di progettazione e
// selezionare 'Aggiorna modello da database...', 'Genera database da modello...' o 'Aggiungi elemento di generazione
// codice...'.
// If no context and entity classes have been generated, it may be because you created an empty model but
// have not yet chosen which version of Entity Framework to use. To generate a context class and entity
// classes for your model, open the model in the designer, right-click on the designer surface, and
// select 'Update Model from Database...', 'Generate Database from Model...', or 'Add Code Generation
// Item...'.
+3 -3
View File
@@ -1,9 +1,9 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Codice generato da un modello.
// This code was generated from a template.
//
// Le modifiche manuali a questo file potrebbero causare un comportamento imprevisto dell'applicazione.
// Se il codice viene rigenerato, le modifiche manuali al file verranno sovrascritte.
// 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.
// </auto-generated>
//------------------------------------------------------------------------------
+19 -4
View File
@@ -92,8 +92,8 @@
<Property Name="LastName" Type="nvarchar" MaxLength="50" Nullable="false" />
<Property Name="FirstName" Type="nvarchar" MaxLength="50" Nullable="false" />
</EntityType>
<!--Errori trovati durante la generazione:
avviso 6002: Nessuna chiave primaria definita per la tabella/visualizzazione 'StockMan.dbo.vItemFlux2Save'. La chiave è stata dedotta e la definizione è stata creata come tabella/visualizzazione di sola lettura.-->
<!--Errors Found During Generation:
warning 6002: The table/view 'StockMan.dbo.vItemFlux2Save' does not have a primary key defined. The key has been inferred and the definition was created as a read-only table/view.-->
<EntityType Name="vItemFlux2Save">
<Key>
<PropertyRef Name="ItemID" />
@@ -104,8 +104,8 @@ avviso 6002: Nessuna chiave primaria definita per la tabella/visualizzazione 'St
<Property Name="TotValCar" Type="decimal" Precision="38" Scale="6" />
<Property Name="TotQtaCar" Type="int" />
</EntityType>
<!--Errori trovati durante la generazione:
avviso 6002: Nessuna chiave primaria definita per la tabella/visualizzazione 'StockMan.dbo.vLocationVal'. La chiave è stata dedotta e la definizione è stata creata come tabella/visualizzazione di sola lettura.-->
<!--Errors Found During Generation:
warning 6002: The table/view 'StockMan.dbo.vLocationVal' does not have a primary key defined. The key has been inferred and the definition was created as a read-only table/view.-->
<EntityType Name="vLocationVal">
<Key>
<PropertyRef Name="LocationID" />
@@ -235,6 +235,13 @@ avviso 6002: Nessuna chiave primaria definita per la tabella/visualizzazione 'St
<Parameter Name="LocationID_TO" Type="nvarchar" Mode="In" />
<Parameter Name="OperatorID" Type="nvarchar" Mode="In" />
</Function>
<Function Name="stp_ItemStockMove_New" Aggregate="false" BuiltIn="false" NiladicFunction="false" IsComposable="false" ParameterTypeSemantics="AllowImplicitConversion" Schema="dbo">
<Parameter Name="StockID" Type="int" Mode="In" />
<Parameter Name="LocationID_FROM" Type="nvarchar" Mode="In" />
<Parameter Name="LocationID_TO" Type="nvarchar" Mode="In" />
<Parameter Name="OperatorID" Type="nvarchar" Mode="In" />
<Parameter Name="QtyMov" Type="int" Mode="In" />
</Function>
<EntityContainer Name="StockManModelStoreContainer">
<EntitySet Name="Item" EntityType="Self.Item" Schema="dbo" store:Type="Tables" />
<EntitySet Name="ItemFamily" EntityType="Self.ItemFamily" Schema="dbo" store:Type="Tables" />
@@ -486,6 +493,13 @@ avviso 6002: Nessuna chiave primaria definita per la tabella/visualizzazione 'St
<Parameter Name="LocationID_TO" Mode="In" Type="String" />
<Parameter Name="OperatorID" Mode="In" Type="String" />
</FunctionImport>
<FunctionImport Name="stp_ItemStockMove_New">
<Parameter Name="StockID" Mode="In" Type="Int32" />
<Parameter Name="LocationID_FROM" Mode="In" Type="String" />
<Parameter Name="LocationID_TO" Mode="In" Type="String" />
<Parameter Name="OperatorID" Mode="In" Type="String" />
<Parameter Name="QtyMov" Mode="In" Type="Int32" />
</FunctionImport>
</EntityContainer>
<EntityType Name="ItemFamily">
<Key>
@@ -779,6 +793,7 @@ avviso 6002: Nessuna chiave primaria definita per la tabella/visualizzazione 'St
</EntitySetMapping>
<FunctionImportMapping FunctionImportName="stp_ItemStockMove" FunctionName="StockManModel.Store.stp_ItemStockMove">
</FunctionImportMapping>
<FunctionImportMapping FunctionImportName="stp_ItemStockMove_New" FunctionName="StockManModel.Store.stp_ItemStockMove_New" />
</EntityContainerMapping>
</Mapping>
</edmx:Mappings>
@@ -1,9 +1,9 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Codice generato da un modello.
// This code was generated from a template.
//
// Le modifiche manuali a questo file potrebbero causare un comportamento imprevisto dell'applicazione.
// Se il codice viene rigenerato, le modifiche manuali al file verranno sovrascritte.
// 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.
// </auto-generated>
//------------------------------------------------------------------------------
@@ -1,9 +1,9 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Codice generato da un modello.
// This code was generated from a template.
//
// Le modifiche manuali a questo file potrebbero causare un comportamento imprevisto dell'applicazione.
// Se il codice viene rigenerato, le modifiche manuali al file verranno sovrascritte.
// 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.
// </auto-generated>
//------------------------------------------------------------------------------
+3 -3
View File
@@ -1,9 +1,9 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Codice generato da un modello.
// This code was generated from a template.
//
// Le modifiche manuali a questo file potrebbero causare un comportamento imprevisto dell'applicazione.
// Se il codice viene rigenerato, le modifiche manuali al file verranno sovrascritte.
// 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.
// </auto-generated>
//------------------------------------------------------------------------------
+3 -3
View File
@@ -1,9 +1,9 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Codice generato da un modello.
// This code was generated from a template.
//
// Le modifiche manuali a questo file potrebbero causare un comportamento imprevisto dell'applicazione.
// Se il codice viene rigenerato, le modifiche manuali al file verranno sovrascritte.
// 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.
// </auto-generated>
//------------------------------------------------------------------------------
+2 -2
View File
@@ -114,8 +114,8 @@
function refreshSelectedData() {
var LocationIdSx = $("#LocationID_SX").val();
var LocationIdDx = $("#LocationID_DX").val();
$("#divLocationSX").load('@(Url.Action("StockByLocationAjax", "MagStatus",null, Request.Url.Scheme))?LocationId=' + LocationIdSx + '&LocationIdTo=' + LocationIdDx + '&ShowMove=true');
$("#divLocationDX").load('@(Url.Action("StockByLocationAjax", "MagStatus",null, Request.Url.Scheme))?LocationId=' + LocationIdDx + '&LocationIdTo=' + LocationIdSx + '&ShowMove=false');
$("#divLocationSX").load('@(Url.Action("StockByLocation", "MagStatus",null, Request.Url.Scheme))?LocationId=' + LocationIdSx + '&LocationIdTo=' + LocationIdDx + '&ShowMove=true');
$("#divLocationDX").load('@(Url.Action("StockByLocation", "MagStatus",null, Request.Url.Scheme))?LocationId=' + LocationIdDx + '&LocationIdTo=' + LocationIdSx + '&ShowMove=false');
// modifico URL!
history.replaceState('LocationID_SX=' + LocationIdSx + '&LocationID_DX=' + LocationIdDx, 'MagStatus', 'http://localhost:4539/MagStatus?LocationID_SX=' + LocationIdSx + '&LocationID_DX=' + LocationIdDx)
+19 -25
View File
@@ -1,28 +1,22 @@
@model IEnumerable<StockManMVC.Models.ItemStock>
@model StockManMVC.Models.ItemStock
<form>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="row well well-sm">
@foreach (var item in Model)
{
<div class="col-xs-4">
Da:
@Html.DisplayFor(modelItem => item.Location.Descr)
a:
@ViewBag.LocationIdTo
</div>
<div class="col-xs-4">
@Html.EditorFor(modelItem => item.QtyConf, new { htmlAttributes = new { min = 0, max = item.QtyConf } }) pz.
</div>
<div class="col-xs-2">
<a href="@Url.Action("", "MagStatus", new { LocationID_SX = ViewBag.LocationId, LocationID_DX = ViewBag.LocationIdTo })" class="btn btn-success form-control">Salva <i class="glyphicon glyphicon-ok-circle"></i></a>
</div>
<div class="col-xs-2">
<a href="@Url.Action("", "MagStatus", new { LocationID_SX = ViewBag.LocationId, LocationID_DX = ViewBag.LocationIdTo })" class="btn btn-danger form-control">Annulla <i class="glyphicon glyphicon-remove-circle"></i></a>
</div>
}
@*<div class="modal-footer">
<button type="button" class="btn btn-primary" data-dismiss="modal">Close</button>
</div>*@
<div class="col-xs-6">
Converma spostamento di @Html.EditorFor(m => m.QtyConf, new { htmlAttributes = new { min = 0, max = Model.QtyConf } }) pz.
@Html.ValidationMessageFor(model => model.QtyConf, "", new { @class = "text-danger" })
</div>
<div class="col-xs-3">
<button type="submit" class="btn btn-success form-control">Sposta <i class="glyphicon glyphicon-ok-circle"></i></button>
</div>
<div class="col-xs-3">
<a href="@Url.Action("", "MagStatus", new { LocationID_SX = ViewBag.LocationId, LocationID_DX = ViewBag.LocationIdTo })" class="btn btn-danger form-control">Annulla <i class="glyphicon glyphicon-remove-circle"></i></a>
</div>
</div>
</form>
}
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
Binary file not shown.