From b99fbbd77f362c106df74927daf0eecbce3ea35f Mon Sep 17 00:00:00 2001 From: michele Date: Thu, 13 Feb 2025 16:13:40 +0100 Subject: [PATCH] Articoli: model + controller con metodi CRUD + pagine web + aggiunto link Articoli in layout area riservata --- Controllers/ArticoliController.cs | 344 +++++++++++++++++++++++ Models/Articoli.cs | 67 +++++ Views/Articoli/Create.cshtml | 140 +++++++++ Views/Articoli/Delete.cshtml | 81 ++++++ Views/Articoli/Details.cshtml | 75 +++++ Views/Articoli/Edit.cshtml | 146 ++++++++++ Views/Articoli/Index.cshtml | 271 ++++++++++++++++++ Views/Shared/_LayoutAreaRiservata.cshtml | 1 + 8 files changed, 1125 insertions(+) create mode 100644 Controllers/ArticoliController.cs create mode 100644 Models/Articoli.cs create mode 100644 Views/Articoli/Create.cshtml create mode 100644 Views/Articoli/Delete.cshtml create mode 100644 Views/Articoli/Details.cshtml create mode 100644 Views/Articoli/Edit.cshtml create mode 100644 Views/Articoli/Index.cshtml diff --git a/Controllers/ArticoliController.cs b/Controllers/ArticoliController.cs new file mode 100644 index 0000000..7338141 --- /dev/null +++ b/Controllers/ArticoliController.cs @@ -0,0 +1,344 @@ +using Microsoft.AspNetCore.Mvc; +using Newtonsoft.Json; +using System.Diagnostics; +using System.Text; +using VirtualTask.Models; +using X.PagedList; + +namespace VirtualTask.Controllers +{ + public class ArticoliController : Controller + { + + string apiUrl = string.Empty; + string urlBase = string.Empty; + string token = string.Empty; + string tenant = string.Empty; + string errMes = string.Empty; + string admin = string.Empty; + string time_sheet = string.Empty; + HttpClient client; + + private readonly IConfiguration _configuration; + + public ArticoliController(IConfiguration configuration) + { + client = new HttpClient(); + _configuration = configuration; + var key = _configuration["ApplicationInsights:rootUrlApi"]; + apiUrl = key; + } + + #region INDEX + + public IActionResult Index(string searchString, int? page = 1) + { + SessionHelper helper = new SessionHelper(this); + + token = helper.GetStringValue("tok"); + + if (string.IsNullOrEmpty(token)) + { + return RedirectToAction("Login2", "Login"); + } + + apiUrl = helper.GetStringValue("apiUrl"); + admin = helper.GetStringValue("admin"); + ViewBag.Admin = admin; + + urlBase = apiUrl + "articoliList"; + urlBase = urlBase + "?token=" + token; + Uri baseAddress = new Uri(urlBase); + client = new HttpClient(); + client.BaseAddress = baseAddress; + + List modelList = new List(); + HttpResponseMessage response = client.GetAsync(baseAddress).Result; + + if (response.IsSuccessStatusCode) + { + string data = response.Content.ReadAsStringAsync().Result; + modelList = JsonConvert.DeserializeObject>(data); + //modelList = modelList.Where(x => x.tcdatobs == null).ToList(); + + if (!string.IsNullOrEmpty(searchString)) + { + modelList = modelList.Where(s => s.ArDesArt.ToUpper().Contains(searchString.ToUpper())).ToList(); + + ViewData["CurrentFilter"] = searchString; + } + else + ViewData["CurrentFilter"] = null; + + if (page != null && page < 1) + { + page = 1; + } + + var pageSize = 10; + + var shortLinks = modelList + .OrderByDescending(s => s.SlCodice) + .ToPagedList(page ?? 1, pageSize); + + return View(shortLinks); + } + else + { + errMes = response.Content.ReadAsStringAsync().Result; + helper.SetStringValue("errMsg", errMes); + return RedirectToAction("Error"); + } + } + + #endregion INDEX + + #region CREATE + public IActionResult Create() + { + SessionHelper helper = new SessionHelper(this); + admin = helper.GetStringValue("admin"); + ViewBag.Admin = admin; + + return View(); + } + + [HttpPost] + public IActionResult Create(Articoli model) + { + SessionHelper helper = new SessionHelper(this); + + token = helper.GetStringValue("tok"); + tenant = helper.GetStringValue("tenant"); + + if (string.IsNullOrEmpty(token)) + { + return RedirectToAction("Login2", "Login"); + } + + model.Azienda = tenant; + apiUrl = helper.GetStringValue("apiUrl"); + admin = helper.GetStringValue("admin"); + ViewBag.Admin = admin; + urlBase = apiUrl + "articolo/add"; + urlBase = urlBase + "?token=" + token; + Uri baseAddress = new Uri(urlBase); + client = new HttpClient(); + client.BaseAddress = baseAddress; + + string data = JsonConvert.SerializeObject(model); + StringContent content = new StringContent(data, Encoding.UTF8, "application/json"); + HttpResponseMessage response = client.PostAsync(baseAddress, content).Result; + + if (response.IsSuccessStatusCode) + { + return RedirectToAction("Index"); + } + else + { + errMes = response.Content.ReadAsStringAsync().Result; + helper.SetStringValue("errMsg", errMes); + return RedirectToAction("Error"); + } + } + + #endregion CREATE + + #region DETAIL + + public IActionResult Details(string id) + { + SessionHelper helper = new SessionHelper(this); + + token = helper.GetStringValue("tok"); + + apiUrl = helper.GetStringValue("apiUrl"); + admin = helper.GetStringValue("admin"); + ViewBag.Admin = admin; + urlBase = apiUrl + "articoliList"; + urlBase = urlBase + "?token=" + token; + Uri baseAddress = new Uri(urlBase); + client = new HttpClient(); + client.BaseAddress = baseAddress; + + Articoli chiusura = new Articoli(); + + List modelList = new List(); + + HttpResponseMessage response = client.GetAsync(baseAddress).Result; + + if (response.IsSuccessStatusCode) + { + string data = response.Content.ReadAsStringAsync().Result; + modelList = JsonConvert.DeserializeObject>(data); + chiusura = modelList.Where(x => x.SlCodice.Equals(id)).First(); + } + else + { + errMes = response.Content.ReadAsStringAsync().Result; + helper.SetStringValue("errMsg", errMes); + return RedirectToAction("Error"); + } + + return View(chiusura); + } + + #endregion DETAIL + + #region EDIT + + public IActionResult Edit(string id) + { + SessionHelper helper = new SessionHelper(this); + + token = helper.GetStringValue("tok"); + + apiUrl = helper.GetStringValue("apiUrl"); + admin = helper.GetStringValue("admin"); + ViewBag.Admin = admin; + urlBase = apiUrl + "articoliList"; + urlBase = urlBase + "?token=" + token; + Uri baseAddress = new Uri(urlBase); + client = new HttpClient(); + client.BaseAddress = baseAddress; + + Articoli ele = new Articoli(); + + List modelList = new List(); + + HttpResponseMessage response = client.GetAsync(baseAddress).Result; + + if (response.IsSuccessStatusCode) + { + string data = response.Content.ReadAsStringAsync().Result; + modelList = JsonConvert.DeserializeObject>(data); + var el = modelList.Where(t => t.SlCodice.Equals(id)).First(); + ele = el; + } + else + { + errMes = response.Content.ReadAsStringAsync().Result; + helper.SetStringValue("errMsg", errMes); + return RedirectToAction("Error"); + } + + return View(ele); + } + + [HttpPost] + public IActionResult Edit(Articoli model) + { + SessionHelper helper = new SessionHelper(this); + + token = helper.GetStringValue("tok"); + tenant = helper.GetStringValue("tenant"); + if (string.IsNullOrEmpty(token)) + { + return RedirectToAction("Index", "Login"); + } + model.Azienda = tenant; + apiUrl = helper.GetStringValue("apiUrl"); + urlBase = apiUrl + "articolo/mod"; + urlBase = urlBase + "?token=" + token; + Uri baseAddress = new Uri(urlBase); + client = new HttpClient(); + client.BaseAddress = baseAddress; + + string data = JsonConvert.SerializeObject(model); + StringContent content = new StringContent(data, Encoding.UTF8, "application/json"); + HttpResponseMessage response = client.PostAsync(baseAddress, content).Result; + if (response.IsSuccessStatusCode) + { + return RedirectToAction("Index"); + } + else + { + errMes = response.Content.ReadAsStringAsync().Result; + helper.SetStringValue("errMsg", errMes); + return RedirectToAction("Error"); + } + } + + #endregion EDIT + + #region DELETE + + [HttpGet] + public IActionResult Delete(string id) + { + SessionHelper helper = new SessionHelper(this); + + token = helper.GetStringValue("tok"); + + apiUrl = helper.GetStringValue("apiUrl"); + admin = helper.GetStringValue("admin"); + ViewBag.Admin = admin; + urlBase = apiUrl + "articoliList"; + urlBase = urlBase + "?token=" + token; + Uri baseAddress = new Uri(urlBase); + client = new HttpClient(); + client.BaseAddress = baseAddress; + + Articoli elem = new Articoli(); + List modelList = new List(); + HttpResponseMessage response = client.GetAsync(baseAddress).Result; + + if (response.IsSuccessStatusCode) + { + string data = response.Content.ReadAsStringAsync().Result; + modelList = JsonConvert.DeserializeObject>(data); + elem = modelList.Where(t => t.SlCodice.Equals(id)).First(); + return View(elem); + } + else + { + errMes = response.Content.ReadAsStringAsync().Result; + helper.SetStringValue("errMsg", errMes); + return RedirectToAction("Error"); + } + } + + [HttpPost, ActionName("DeleteConfirmed")] + public IActionResult DeleteConfirmed(string id) + { + SessionHelper helper = new SessionHelper(this); + + token = helper.GetStringValue("tok"); + + apiUrl = helper.GetStringValue("apiUrl"); + admin = helper.GetStringValue("admin"); + ViewBag.Admin = admin; + urlBase = apiUrl + "articolo/del?" + "artcodice=" + id + "&"; + urlBase = urlBase + "token=" + token; + Uri baseAddress = new Uri(urlBase); + client = new HttpClient(); + client.BaseAddress = baseAddress; + + string data = JsonConvert.SerializeObject(id); + StringContent content = new StringContent(data, Encoding.UTF8, "application/json"); + + HttpResponseMessage response = client.PostAsync(baseAddress, content).Result; + + if (response.IsSuccessStatusCode) + { + return RedirectToAction("Index"); + } + else + { + errMes = response.Content.ReadAsStringAsync().Result; + helper.SetStringValue("errMsg", errMes); + return RedirectToAction("Error"); + } + } + + #endregion DELETE + + [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] + public IActionResult Error() + { + SessionHelper helper = new SessionHelper(this); + string e = helper.GetStringValue("errMsg"); + return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier, ErrMsg = e }); + } + } +} diff --git a/Models/Articoli.cs b/Models/Articoli.cs new file mode 100644 index 0000000..2cd955f --- /dev/null +++ b/Models/Articoli.cs @@ -0,0 +1,67 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace VirtualTask.Models +{ + public class Articoli + { + [Display(Name = "Azienda")] + public string Azienda { get; set; } + + [Display(Name = "Cod. Articolo")] + public string SlCodice { get; set; } + + [Display(Name = "Descrizione")] + public string? ArDesArt { get; set; } + + [Display(Name = "Magazzino")] + public string? SlCodMag { get; set; } + + [Display(Name = "Quantità")] + [Column(TypeName = "decimal(13,3)")] + public decimal? SlQtAper { get; set; } + + public string? AmCodice { get; set; } + + public string? LoCodice { get; set; } + + public string? LiCodLis { get; set; } + + public string? LiCodArt { get; set; } + + public DateTime? LiDatAtt { get; set; } + + [Column(TypeName = "decimal(12,3)")] + public decimal? LiQuanti { get; set; } + + [Display(Name = "Prezzo")] + [Column(TypeName = "decimal(18,5)")] + public decimal? LiPrezzo { get; set; } + + [Display(Name = "Sconto 1")] + [Column(TypeName = "decimal(6,2)")] + public decimal? LiScont1 { get; set; } + + [Display(Name = "Sconto 2")] + [Column(TypeName = "decimal(6,2)")] + public decimal? LiScont2 { get; set; } + + + [Display(Name = "Sconto 3")] + [Column(TypeName = "decimal(6,2)")] + public decimal? LiScont3 { get; set; } + + [Display(Name = "Sconto 4")] + [Column(TypeName = "decimal(6,2)")] + public decimal? LiScont4 { get; set; } + + [Display(Name = "Gestione matricole")] + public string? Gest_Matr { get; set; } + + [Display(Name = "Gestione Lotti")] + public string? Gest_Lotti { get; set; } + + [Display(Name = "Descrizione suppl.")] + public string? Desc_sup { get; set; } + } +} diff --git a/Views/Articoli/Create.cshtml b/Views/Articoli/Create.cshtml new file mode 100644 index 0000000..94593b4 --- /dev/null +++ b/Views/Articoli/Create.cshtml @@ -0,0 +1,140 @@ +@model VirtualTask.Models.Articoli + +@{ + ViewData["Title"] = "Nuovo articolo"; + Layout = "~/Views/Shared/_LayoutAreaRiservata.cshtml"; +} + +
+
+
+
+
+
+
+
 
+ @Html.HiddenFor(x => x.Azienda) +
 
+
+
+ + +
+
 
+
+
+ + +
+
 
+
+
+ + +
+
 
+
+
+ + +
+
 
+
+
+ + +
+
 
+
+
+ + +
+
 
+
+
+ + +
+
 
+
+
+ + +
+
 
+
+
+ + +
+
 
+
+
+ + +
+
 
+
+
+ + +
+
 
+
+
+ + +
+
 
+
+
+ + +
+
 
+
+
+ + +
+
 
+
+
+ + +
+
 
+
+
+ + +
+
 
+
+
+ + +
+
 
+
+
+ + +
+
 
+ +
+
+
+ @section Scripts { + @{ + await Html.RenderPartialAsync("_ValidationScriptsPartial"); + } + } +
+
+
diff --git a/Views/Articoli/Delete.cshtml b/Views/Articoli/Delete.cshtml new file mode 100644 index 0000000..89f51af --- /dev/null +++ b/Views/Articoli/Delete.cshtml @@ -0,0 +1,81 @@ +@model VirtualTask.Models.Articoli + +@{ + ViewData["Title"] = "Elimina"; + Layout = "~/Views/Shared/_LayoutAreaRiservata.cshtml"; +} + + +
+
+
+
+
+
+ @Html.DisplayNameFor(model => model.Azienda)   @Html.DisplayFor(model => model.Azienda) +
+
+ @Html.DisplayNameFor(model => model.SlCodice)   @Html.DisplayFor(model => model.SlCodice) +
+
+ @Html.DisplayNameFor(model => model.ArDesArt)   @Html.DisplayFor(model => model.ArDesArt) +
+
+ @Html.DisplayNameFor(model => model.SlCodMag)   @Html.DisplayFor(model => model.SlCodMag) +
+
+ @Html.DisplayNameFor(model => model.AmCodice)   @Html.DisplayFor(model => model.AmCodice) +
+
+ @Html.DisplayNameFor(model => model.LoCodice)   @Html.DisplayFor(model => model.LoCodice) +
+
+ @Html.DisplayNameFor(model => model.LiCodLis)   @Html.DisplayFor(model => model.LiCodLis) +
+
+ @Html.DisplayNameFor(model => model.LiCodArt)   @Html.DisplayFor(model => model.LiCodArt) +
+
+ @Html.DisplayNameFor(model => model.LiDatAtt)   @Html.DisplayFor(model => model.LiDatAtt) +
+
+ @Html.DisplayNameFor(model => model.LiQuanti)   @Html.DisplayFor(model => model.LiQuanti) +
+
+ @Html.DisplayNameFor(model => model.LiPrezzo)   @Html.DisplayFor(model => model.LiPrezzo) +
+
+ @Html.DisplayNameFor(model => model.LiScont1)   @Html.DisplayFor(model => model.LiScont1) +
+
+ @Html.DisplayNameFor(model => model.LiScont2)   @Html.DisplayFor(model => model.LiScont2) +
+
+ @Html.DisplayNameFor(model => model.LiScont3)   @Html.DisplayFor(model => model.LiScont3) +
+
+ @Html.DisplayNameFor(model => model.LiScont4)   @Html.DisplayFor(model => model.LiScont4) +
+
+ @Html.DisplayNameFor(model => model.Gest_Matr)   @Html.DisplayFor(model => model.Gest_Matr) +
+
+ @Html.DisplayNameFor(model => model.Gest_Lotti)   @Html.DisplayFor(model => model.Gest_Lotti) +
+
+ @Html.DisplayNameFor(model => model.Desc_sup)   @Html.DisplayFor(model => model.Desc_sup) +
+ +
+
 
+
+
+ + model.SlCodice) name="id" /> + Torna alla lista +
+
+
+
+
+
diff --git a/Views/Articoli/Details.cshtml b/Views/Articoli/Details.cshtml new file mode 100644 index 0000000..70bf598 --- /dev/null +++ b/Views/Articoli/Details.cshtml @@ -0,0 +1,75 @@ +@model VirtualTask.Models.Articoli + +@{ + ViewData["Title"] = "Dettaglio articolo"; + Layout = "~/Views/Shared/_LayoutAreaRiservata.cshtml"; +} + +
+
+
+
+
+ @Html.DisplayNameFor(model => model.Azienda) @Html.DisplayFor(model => model.Azienda) +
+
+ @Html.DisplayNameFor(model => model.SlCodice) @Html.DisplayFor(model => model.SlCodice) +
+
+ @Html.DisplayNameFor(model => model.ArDesArt) @Html.DisplayFor(model => model.ArDesArt) +
+
+ @Html.DisplayNameFor(model => model.SlCodMag) @Html.DisplayFor(model => model.SlCodMag) +
+
+ @Html.DisplayNameFor(model => model.SlQtAper) @Html.DisplayFor(model => model.SlQtAper) +
+
+ @Html.DisplayNameFor(model => model.AmCodice) @Html.DisplayFor(model => model.AmCodice) +
+
+ @Html.DisplayNameFor(model => model.LoCodice) @Html.DisplayFor(model => model.LoCodice) +
+
+ @Html.DisplayNameFor(model => model.LiCodLis) @Html.DisplayFor(model => model.LiCodLis) +
+
+ @Html.DisplayNameFor(model => model.LiCodArt) @Html.DisplayFor(model => model.LiCodArt) +
+
+ @Html.DisplayNameFor(model => model.LiDatAtt) @Html.DisplayFor(model => model.LiDatAtt) +
+
+ @Html.DisplayNameFor(model => model.LiQuanti) @Html.DisplayFor(model => model.LiQuanti) +
+
+ @Html.DisplayNameFor(model => model.LiPrezzo) @Html.DisplayFor(model => model.LiPrezzo) +
+
+ @Html.DisplayNameFor(model => model.LiScont1) @Html.DisplayFor(model => model.LiScont1) +
+
+ @Html.DisplayNameFor(model => model.LiScont2) @Html.DisplayFor(model => model.LiScont2) +
+
+ @Html.DisplayNameFor(model => model.LiScont3) @Html.DisplayFor(model => model.LiScont3) +
+
+ @Html.DisplayNameFor(model => model.LiScont4) @Html.DisplayFor(model => model.LiScont4) +
+
+ @Html.DisplayNameFor(model => model.Gest_Matr) @Html.DisplayFor(model => model.Gest_Matr) +
+
+ @Html.DisplayNameFor(model => model.Gest_Lotti) @Html.DisplayFor(model => model.Gest_Lotti) +
+
+ @Html.DisplayNameFor(model => model.Desc_sup) @Html.DisplayFor(model => model.Desc_sup) +
+ +
+
+
+
diff --git a/Views/Articoli/Edit.cshtml b/Views/Articoli/Edit.cshtml new file mode 100644 index 0000000..7acccac --- /dev/null +++ b/Views/Articoli/Edit.cshtml @@ -0,0 +1,146 @@ +@model VirtualTask.Models.Articoli + +@{ + ViewData["Title"] = "Modifica articolo"; + Layout = "~/Views/Shared/_LayoutAreaRiservata.cshtml"; +} + +
+
+
+
+
+
+ @Html.HiddenFor(x => x.Azienda) +
 
+
+
+ + +
+
 
+
+
+ + +
+
 
+
+
+ + +
+
 
+
+
+ + +
+
 
+
+
+ + +
+
 
+
+
+ + +
+
 
+
+
+ + +
+
 
+
+
+ + +
+
 
+
+
+ + +
+
 
+
+
+ + +
+
 
+
+
+ + +
+
 
+
+
+ + +
+
 
+
+
+ + +
+
 
+
+
+ + +
+
 
+
+
+ + +
+
 
+
+
+ + +
+
 
+
+
+ + +
+
 
+
+
+ + +
+ +
 
+ +
+
+
+
+
+ +@* +@section Scripts { + @{ + await Html.RenderPartialAsync("_ValidationScriptsPartial"); + } +} *@ + + diff --git a/Views/Articoli/Index.cshtml b/Views/Articoli/Index.cshtml new file mode 100644 index 0000000..787fe06 --- /dev/null +++ b/Views/Articoli/Index.cshtml @@ -0,0 +1,271 @@ +@using X.PagedList.Mvc.Core; +@using X.PagedList.Web.Common; +@using X.PagedList; +@model IPagedList + + +@{ + ViewData["Title"] = "Articoli"; + Layout = "~/Views/Shared/_LayoutAreaRiservata.cshtml"; +} + +
+
+
+

+ Crea un nuovo elemento +

+ + @using (Html.BeginForm()) + { +
+
Ricerca
+ + + + + + + +
+ @Html.TextBox("SearchString", null, new { placeholder = "Cerca per descrizione", @class = "agy-form-field require" }) + +   + +
+
+ } + +
+   +
+ +
+
Articoli
+
+ + + + + + + + + + + + + @foreach (var item in Model) + { + + + + + + @Html.HiddenFor(modelItem => item.Azienda) + @Html.HiddenFor(modelItem => item.SlCodMag) + @Html.HiddenFor(modelItem => item.AmCodice) + @Html.HiddenFor(modelItem => item.LoCodice) + @Html.HiddenFor(modelItem => item.LiCodLis) + @Html.HiddenFor(modelItem => item.LiCodArt) + @Html.HiddenFor(modelItem => item.LiDatAtt) + @Html.HiddenFor(modelItem => item.LiQuanti) + @Html.HiddenFor(modelItem => item.LiScont1) + @Html.HiddenFor(modelItem => item.LiScont2) + @Html.HiddenFor(modelItem => item.LiScont3) + @Html.HiddenFor(modelItem => item.LiScont4) + @Html.HiddenFor(modelItem => item.Gest_Matr) + @Html.HiddenFor(modelItem => item.Gest_Lotti) + @Html.HiddenFor(modelItem => item.Desc_sup) + + + + + } + +
Cod. ArticoloDescrizioneQuantitàPrezzo
+ @Html.DisplayFor(modelItem => item.SlCodice) + + @Html.DisplayFor(modelItem => item.ArDesArt) + + @Html.DisplayFor(modelItem => item.SlQtAper) + + @Html.DisplayFor(modelItem => item.LiPrezzo) + + + Modifica + + | + + Dettaglio + + | + + Elimina + +
+
+
+ +
+ +
+
+
+@* @model IEnumerable + +@{ + ViewData["Title"] = "Index"; +} + +

Index

+ +

+ Create New +

+ + + + + + + + + + + + + + + + + + + + + + + + + + +@foreach (var item in Model) { + + + + + + + + + + + + + + + + + + + + + + +} + +
+ @Html.DisplayNameFor(model => model.Azienda) + + @Html.DisplayNameFor(model => model.SlCodice) + + @Html.DisplayNameFor(model => model.ArDesArt) + + @Html.DisplayNameFor(model => model.SlCodMag) + + @Html.DisplayNameFor(model => model.SlQtAper) + + @Html.DisplayNameFor(model => model.AmCodice) + + @Html.DisplayNameFor(model => model.LoCodice) + + @Html.DisplayNameFor(model => model.LiCodLis) + + @Html.DisplayNameFor(model => model.LiCodArt) + + @Html.DisplayNameFor(model => model.LiDatAtt) + + @Html.DisplayNameFor(model => model.LiQuanti) + + @Html.DisplayNameFor(model => model.LiPrezzo) + + @Html.DisplayNameFor(model => model.LiScont1) + + @Html.DisplayNameFor(model => model.LiScont2) + + @Html.DisplayNameFor(model => model.LiScont3) + + @Html.DisplayNameFor(model => model.LiScont4) + + @Html.DisplayNameFor(model => model.Gest_Matr) + + @Html.DisplayNameFor(model => model.Gest_Lotti) + + @Html.DisplayNameFor(model => model.Desc_sup) +
+ @Html.DisplayFor(modelItem => item.Azienda) + + @Html.DisplayFor(modelItem => item.SlCodice) + + @Html.DisplayFor(modelItem => item.ArDesArt) + + @Html.DisplayFor(modelItem => item.SlCodMag) + + @Html.DisplayFor(modelItem => item.SlQtAper) + + @Html.DisplayFor(modelItem => item.AmCodice) + + @Html.DisplayFor(modelItem => item.LoCodice) + + @Html.DisplayFor(modelItem => item.LiCodLis) + + @Html.DisplayFor(modelItem => item.LiCodArt) + + @Html.DisplayFor(modelItem => item.LiDatAtt) + + @Html.DisplayFor(modelItem => item.LiQuanti) + + @Html.DisplayFor(modelItem => item.LiPrezzo) + + @Html.DisplayFor(modelItem => item.LiScont1) + + @Html.DisplayFor(modelItem => item.LiScont2) + + @Html.DisplayFor(modelItem => item.LiScont3) + + @Html.DisplayFor(modelItem => item.LiScont4) + + @Html.DisplayFor(modelItem => item.Gest_Matr) + + @Html.DisplayFor(modelItem => item.Gest_Lotti) + + @Html.DisplayFor(modelItem => item.Desc_sup) + + @Html.ActionLink("Edit", "Edit", new { /* id=item.PrimaryKey */ }) | + @Html.ActionLink("Details", "Details", new { /* id=item.PrimaryKey */ }) | + @Html.ActionLink("Delete", "Delete", new { /* id=item.PrimaryKey */ }) +
+ *@ \ No newline at end of file diff --git a/Views/Shared/_LayoutAreaRiservata.cshtml b/Views/Shared/_LayoutAreaRiservata.cshtml index 580fa83..8eae6a6 100644 --- a/Views/Shared/_LayoutAreaRiservata.cshtml +++ b/Views/Shared/_LayoutAreaRiservata.cshtml @@ -171,6 +171,7 @@ Purchase:
  • Tipi intervento
  • Clienti
  • Impianti
  • +
  • Articoli
  • Buono intervento
  • Chiamate
  • Progressivi