articoli operazioni crud + db context e model

This commit is contained in:
michele 2025-02-13 09:07:15 +01:00
parent 88b42381a9
commit ba1bce42e6
3 changed files with 119 additions and 13 deletions

View File

@ -385,7 +385,6 @@ namespace ApiPolo.Controllers
#region VT - Tecnici
private readonly VT_TECNICI_TABLE_DbContext _VT_tectable;
private readonly VT_TECNICI_DbContext _VT_tec;
private readonly VT_ARTICOLI_TABLE_DbContext _vt_artTable;
#endregion
#region VT - anagrafiche
@ -455,6 +454,10 @@ namespace ApiPolo.Controllers
private readonly VT_TIMBRATURE_DbContext _VT_timbr;
#endregion
#region VT-ARTICOLI
private readonly VT_ARTICOLI_TABLE_DbContext _VT_articoliTable;
#endregion
#region Commesse desc
private readonly SIET_COMMESSE_DESC_DbContext _Siet_commDesc;
private readonly MARRO_COMMESSE_TABLE_DbContext _Marro_commDesc;
@ -505,6 +508,7 @@ namespace ApiPolo.Controllers
private DbSet<Rapportino>? _VT_rapport;
private DbSet<Buoni>? _VT_buo;
private DbSet<Rapp_New_View>? _rapp_new_view;
private DbSet<Articoli>? _articoliTable;
private DbSet<CommessaDesc>? _commDesc;
private DbSet<CommessaDescSiet>? _commDescSiet;
@ -873,11 +877,9 @@ namespace ApiPolo.Controllers
VT_RAPPORTINI_DbContext VT_Rapportini,
VT_Buoni_DbContext VT_Buoni,
VT_STO_RAPP_DbContext VT_StoRapp,
VT_TIMBRATURE_DbContext VT_timbr
VT_TIMBRATURE_DbContext VT_timbr,
VT_ARTICOLI_TABLE_DbContext VT_artTable
#endregion
)
{
_configuration = configuration;
@ -1221,7 +1223,7 @@ namespace ApiPolo.Controllers
_VT_Rapportini = VT_Rapportini;
_VT_Buoni = VT_Buoni;
_VT_StoRapp = VT_StoRapp;
_VT_articoliTable = VT_artTable;
#endregion
#region Commesse desc
@ -15297,6 +15299,111 @@ namespace ApiPolo.Controllers
}
}
/// <summary>VIRTUAL TASK: lista articoli per azienda</summary>
[HttpGet("articoliList")]
public async Task<ActionResult<IEnumerable<Articoli>>> ArticoliList(string token)
{
try
{
List<Articoli> alist = new List<Articoli>();
string ten = getClaimValueByToken(token, "tenant2");
string tecnico = getClaimValueByToken(token, "tccodice");
_articoliTable = _VT_articoliTable.Articoli;
var art = await _articoliTable.Where(x => x.Azienda.Equals(ten)).ToListAsync();
foreach (Articoli a in art)
{
alist.Add(a);
}
return StatusCode(StatusCodes.Status200OK, alist);
}
catch (Exception ex)
{
string err = "Errore: " + ex.Message;
return StatusCode(StatusCodes.Status500InternalServerError, err); ;
}
}
///<summary> VIRTUAL TASK : crea nuovo articolo return: ActionResult</summary>
[HttpPost]
[Route("articolo/add")]
public async Task<ActionResult<Articoli>> addArticolo([FromBody] Articoli model, string token)
{
string ten = getClaimValueByToken(token, "tenant2");
model.Azienda = ten;
try
{
using (var transaction = _VT_articoliTable.Database.BeginTransaction())
{
await _VT_articoliTable.Articoli.AddAsync(model);
await _VT_articoliTable.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); ;
}
}
///<summary> VIRTUAL TASK : modifica articolo return: ActionResult</summary>
[HttpPost]
[Route("articolo/mod")]
public async Task<ActionResult<Articoli>> modArticolo([FromBody] Articoli model, string token)
{
string ten = getClaimValueByToken(token, "tenant2");
model.Azienda = ten;
try
{
using (var transaction = _VT_articoliTable.Database.BeginTransaction())
{
_VT_articoliTable.Entry(model).State = EntityState.Modified;
await _VT_articoliTable.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);
}
}
/// <summary>VIRTUAL TASK: cancella un articolo return:ActionResult</summary>
[HttpPost]
[Route("articolo/del")]
public async Task<ActionResult<Articoli>> delArticolo(string artcodice, string token)
{
string ten = getClaimValueByToken(token, "tenant2");
_articoliTable = _VT_articoliTable.Articoli;
var art = await _articoliTable.Where(a => a.SlCodice.Equals(artcodice) && a.Azienda.Equals(ten)).ToListAsync();
Articoli model = art.First();
//model.dataCanc = DateTime.Now;
try
{
using (var transaction = _VT_articoliTable.Database.BeginTransaction())
{
_VT_articoliTable.Entry(model).State = EntityState.Modified;
await _VT_articoliTable.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

View File

@ -29,8 +29,8 @@ namespace ApiPolo.Models
public decimal? LiScont3 { get; set; }
[Column(TypeName = "decimal(6,2)")]
public decimal? LiScont4 { get; set; }
public string? GestMatr { get; set; }
public string? GestLotti { get; set; }
public string? DescSup { get; set; }
public string? GEST_MATR { get; set; }
public string? GEST_LOTTI { get; set; }
public string? DESC_SUP { get; set; }
}
}

View File

@ -16,14 +16,13 @@ namespace ApiPolo.Models.VT_dbcontext
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Articoli>().ToTable("Articoli");
modelBuilder.Entity<Articoli>().ToTable("ARTICOLI");
modelBuilder.Entity<Articoli>().HasKey(Table => new
{
Table.Azienda,
Table.Azienda,
Table.SlCodice
}); // Definizione della chiave primaria composta
base.OnModelCreating(modelBuilder);
//base.OnModelCreating(modelBuilder);
}
}