diff --git a/ApiPolo/Controllers/PoloController.cs b/ApiPolo/Controllers/PoloController.cs index f17caa9..faf6e77 100644 --- a/ApiPolo/Controllers/PoloController.cs +++ b/ApiPolo/Controllers/PoloController.cs @@ -464,6 +464,10 @@ namespace ApiPolo.Controllers private readonly VT_MAG_NEW_DbContext _VT_MagNew; #endregion + #region VT-MAGAZZINI + private readonly VT_MAGAZZINI_DbContext _VT_Magazzini; + #endregion + #region Commesse desc private readonly SIET_COMMESSE_DESC_DbContext _Siet_commDesc; private readonly MARRO_COMMESSE_TABLE_DbContext _Marro_commDesc; @@ -517,6 +521,7 @@ namespace ApiPolo.Controllers private DbSet? _rapp_new_view; private DbSet? _articoliTable; private DbSet? _magNewVT; + private DbSet? _magazziniVT; private DbSet? _commDesc; private DbSet? _commDescSiet; @@ -887,7 +892,8 @@ namespace ApiPolo.Controllers VT_STO_RAPP_DbContext VT_StoRapp, VT_TIMBRATURE_DbContext VT_timbr, VT_ARTICOLI_TABLE_DbContext VT_artTable, - VT_MAG_NEW_DbContext VT_MagNew + VT_MAG_NEW_DbContext VT_MagNew, + VT_MAGAZZINI_DbContext VT_Magazzini #endregion @@ -1236,6 +1242,7 @@ namespace ApiPolo.Controllers _VT_StoRapp = VT_StoRapp; _VT_articoliTable = VT_artTable; _VT_MagNew = VT_MagNew; + _VT_Magazzini = VT_Magazzini; #endregion #region Commesse desc @@ -3861,8 +3868,7 @@ namespace ApiPolo.Controllers [HttpGet("magazzini")] public async Task>> magazzini(string token) { - - List < Magazzini > lst= new List(); + List lst= new List(); string ten = getClaimValueByToken(token, "tenant"); string ten2 = getClaimValueByToken(token, "tenant2"); string tenAdhoc = getClaimValueByToken(token, "tenantConfigurazioni"); @@ -3874,6 +3880,19 @@ namespace ApiPolo.Controllers if (ten.Equals(Clienti.VT)) { + _magazziniVT = _VT_Magazzini.Magazzini; + + List magaVTList = new List(); + magaVTList = await _magazziniVT.Where(x => x.Azienda.Equals(ten2)).ToListAsync(); + + foreach (var magVT in magaVTList) + { + Magazzini maga = new Magazzini(); + maga.mgcodmag = magVT.Mgcodmag.TrimEnd(); + maga.mgdesmag = magVT.Mgdesmag.TrimEnd(); + + lst.Add(maga); + } return lst; } else @@ -6350,7 +6369,6 @@ namespace ApiPolo.Controllers } } break; - case Clienti.VT: using (var transactionVT = _VT_rapptable.Database.BeginTransaction()) { @@ -8832,15 +8850,14 @@ namespace ApiPolo.Controllers { Saldiart saldo = new Saldiart(); - saldo.slcodice = a.SlCodice; - saldo.slcodice = a.SlCodice; - saldo.ardesart = a.ArDesArt; - saldo.slcodmag = a.SlCodMag; + saldo.slcodice = a.SlCodice.TrimEnd(); + saldo.ardesart = a.ArDesArt.TrimEnd(); + saldo.slcodmag = a.SlCodMag.TrimEnd(); saldo.slqtaper = a.SlQtAper; - saldo.amcodice = a.AmCodice; - saldo.locodice = a.LoCodice; - saldo.licodlis = a.LiCodLis; - saldo.licodart = a.LiCodArt; + saldo.amcodice = a.AmCodice.TrimEnd(); + saldo.locodice = a.LoCodice.TrimEnd(); + saldo.licodlis = a.LiCodLis.TrimEnd(); + saldo.licodart = a.LiCodArt.TrimEnd(); saldo.lidatatt = a.LiDatAtt; saldo.liquanti = a.LiQuanti; saldo.liprezzo = a.LiPrezzo; @@ -8848,10 +8865,10 @@ namespace ApiPolo.Controllers saldo.liscont2 = a.LiScont2; saldo.liscont3 = a.LiScont3; saldo.liscont4 = a.LiScont4; - saldo.gest_matr = a.Gest_Matr; - saldo.gest_lotti = a.Gest_Lotti; - saldo.desc_sup = a.Desc_sup; - + saldo.gest_matr = a.Gest_Matr.TrimEnd(); + saldo.gest_lotti = a.Gest_Lotti.TrimEnd(); + saldo.desc_sup = a.Desc_sup.TrimEnd(); + listaSaldiArt.Add(saldo); } @@ -15793,6 +15810,110 @@ namespace ApiPolo.Controllers } } + /// VIRTUAL TASK: lista Magazzini per azienda + [HttpGet("magazziniVTList")] + public async Task>> MagazziniVTList(string token) + { + try + { + List maglist = new List(); + string ten = getClaimValueByToken(token, "tenant2"); + string tecnico = getClaimValueByToken(token, "tccodice"); + _magazziniVT = _VT_Magazzini.Magazzini; + + var magazziniList = await _magazziniVT.Where(x => x.Azienda.Equals(ten)).ToListAsync(); + foreach (MagazziniVT magaz in magazziniList) + { + maglist.Add(magaz); + } + return StatusCode(StatusCodes.Status200OK, maglist); + } + catch (Exception ex) + { + string err = "Errore: " + ex.Message; + return StatusCode(StatusCodes.Status500InternalServerError, err); ; + } + } + + /// VIRTUAL TASK : crea nuovo magazzino return: ActionResult + [HttpPost] + [Route("magazziniVT/add")] + public async Task> addMagazzinoVT([FromBody] MagazziniVT model, string token) + { + string ten = getClaimValueByToken(token, "tenant2"); + model.Azienda = ten; + try + { + using (var transaction = _VT_Magazzini.Database.BeginTransaction()) + { + await _VT_Magazzini.Magazzini.AddAsync(model); + await _VT_Magazzini.SaveChangesAsync(); + transaction.Commit(); + } + return StatusCode(StatusCodes.Status200OK, model); + + } + catch (Exception ex) + { + string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message; + return StatusCode(StatusCodes.Status500InternalServerError, errmsg); ; + } + } + + /// VIRTUAL TASK : modifica magazzino return: ActionResult + [HttpPost] + [Route("magazziniVT/mod")] + public async Task> modMagazzino([FromBody] MagazziniVT model, string token) + { + string ten = getClaimValueByToken(token, "tenant2"); + model.Azienda = ten; + + try + { + using (var transaction = _VT_Magazzini.Database.BeginTransaction()) + { + _VT_Magazzini.Entry(model).State = EntityState.Modified; + await _VT_Magazzini.SaveChangesAsync(); + transaction.Commit(); + } + return StatusCode(StatusCodes.Status200OK, model); + } + catch (Exception ex) + { + string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message; + return StatusCode(StatusCodes.Status500InternalServerError, errmsg); + } + } + + /// VIRTUAL TASK: cancella un magazzino return:ActionResult + [HttpPost] + [Route("magazziniVT/del")] + public async Task> delMagazzino(string magCodice, string token) + { + string ten = getClaimValueByToken(token, "tenant2"); + _magazziniVT = _VT_Magazzini.Magazzini; + var art = await _magazziniVT.Where(a => a.Mgcodmag.Equals(magCodice) && a.Azienda.Equals(ten)).ToListAsync(); + + MagazziniVT model = art.First(); + model.DataObso = DateTime.Now; + + try + { + using (var transaction = _VT_Magazzini.Database.BeginTransaction()) + { + _VT_Magazzini.Entry(model).State = EntityState.Modified; + await _VT_Magazzini.SaveChangesAsync(); + transaction.Commit(); + } + return StatusCode(StatusCodes.Status200OK, model); + } + catch (Exception ex) + { + string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message; + return StatusCode(StatusCodes.Status500InternalServerError, errmsg); + } + } + #endregion #region Logging diff --git a/ApiPolo/Models/MagazziniVT.cs b/ApiPolo/Models/MagazziniVT.cs new file mode 100644 index 0000000..a989d50 --- /dev/null +++ b/ApiPolo/Models/MagazziniVT.cs @@ -0,0 +1,29 @@ +using System.ComponentModel.DataAnnotations; + +namespace ApiPolo.Models +{ + public class MagazziniVT + { + /// + /// Azienda + /// + [Key] + public string? Azienda { get; set; } + + /// + /// codice magazzino + /// + [Key] + public string? Mgcodmag { get; set; } + + /// + /// descrizione + /// + public string? Mgdesmag { get; set; } + + /// + /// descrizione + /// + public DateTime? DataObso { get; set; } + } +} diff --git a/ApiPolo/Models/VT_dbcontext/VT_MAGAZZINI_DbContext.cs b/ApiPolo/Models/VT_dbcontext/VT_MAGAZZINI_DbContext.cs new file mode 100644 index 0000000..4b81a3e --- /dev/null +++ b/ApiPolo/Models/VT_dbcontext/VT_MAGAZZINI_DbContext.cs @@ -0,0 +1,25 @@ +using Microsoft.EntityFrameworkCore; + +namespace ApiPolo.Models.VT_dbcontext +{ + public class VT_MAGAZZINI_DbContext :DbContext + { + public DbSet Magazzini { get; set; } + + + public VT_MAGAZZINI_DbContext(DbContextOptions options) : base(options) + { + } + + protected override void OnModelCreating(ModelBuilder modelBuilder) + { + modelBuilder.Entity().ToTable("MAGAZZINI"); + modelBuilder.Entity().HasKey(Table => new + { + Table.Azienda, + Table.Mgcodmag + }); // Definizione della chiave primaria composta + //base.OnModelCreating(modelBuilder); + } + } +} diff --git a/ApiPolo/Startup.cs b/ApiPolo/Startup.cs index c20ac76..20d2a89 100644 --- a/ApiPolo/Startup.cs +++ b/ApiPolo/Startup.cs @@ -758,6 +758,9 @@ namespace ApiPolo services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("VIRTUAL_TASK") , options => { options.CommandTimeout(commandTimeoutInSeconds); } )); + services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("VIRTUAL_TASK") + , options => { options.CommandTimeout(commandTimeoutInSeconds); } + )); #endregion