This commit is contained in:
Marco Audiffredi 2025-01-14 16:38:23 +01:00
parent fff3c273d7
commit cb9ce2e0ff
12 changed files with 204 additions and 115 deletions

View File

@ -30,7 +30,7 @@ namespace ApiSoftway.Controllers
{
List<Clienti> listClienti = new List<Clienti>();
_clienti = _dbClientiContext.Cli;
var lista = await _clienti.Where(x => x.Antipcon.Equals("C")).ToListAsync();
var lista = await _clienti.Where(x => x.Antipcon.Equals("C")).OrderBy(x => x.Andescri).ToListAsync();
foreach (var client in lista)
{

View File

@ -9,6 +9,7 @@ using Microsoft.IdentityModel.Tokens;
using System;
using System.Diagnostics;
using System.IdentityModel.Tokens.Jwt;
using System.Linq;
using System.Runtime.InteropServices;
using System.Security.Claims;
using System.Text;
@ -34,6 +35,7 @@ namespace ApiSoftway.Controllers
private readonly GESA_PI_GIRI_SERIALI_DbContext _giriseriali_context;
private readonly GESA_GIRICONSEGNEDACREARE_DESTINAZIONI_DbContext _daCreareDest_context;
private readonly GESA_DESTINAZIONI_WEB_DbContext _destinazioni_web_context;
private readonly GESA_GIRI_TESTATE_DbContext _giri_testate_context;
private DbSet<Giri>? _giri;
private DbSet<GiriConsegna>? _giriCons;
@ -50,7 +52,7 @@ namespace ApiSoftway.Controllers
, GESA_CONSEGNE_DbContext consegne_context, GESA_GIRICONSEGNE_DbContext giricons_context, GESA_GIRICONSEGNEVISTA_DbContext consegnevista_context, GESA_SBR_ORD_DbContext sbrord_context
, GESA_PERSONALE_DbContext personale_context, GESA_AUTOMEZZI_DbContext automezzi_context, GESA_GIRICONSEGNEDACREARE_DbContext daCreare_context
, GESA_CONSEGNE_M_DbContext consegne_m_context, GESA_PI_GIRI_SERIALI_DbContext giriseriali_context, GESA_GIRICONSEGNEDACREARE_DESTINAZIONI_DbContext daCreareDest_context
, GESA_DESTINAZIONI_WEB_DbContext destinazioni_web_context)
, GESA_DESTINAZIONI_WEB_DbContext destinazioni_web_context,GESA_GIRI_TESTATE_DbContext giri_testate_context)
{
_logger = logger;
_configuration = configuration;
@ -67,6 +69,7 @@ namespace ApiSoftway.Controllers
_giriseriali_context = giriseriali_context;
_daCreareDest_context = daCreareDest_context;
_destinazioni_web_context = destinazioni_web_context;
_giri_testate_context = giri_testate_context;
}
[HttpGet("listaGiri")]
@ -125,65 +128,73 @@ namespace ApiSoftway.Controllers
var aut = await _automezzi.ToListAsync();
return aut;
}
/// <summary>Salva i dati della consegna</summary>
[HttpPost]
[Route("addGiro")]
public async Task<ActionResult<GiriConsegna_out>> addGiro(string? autista,int? bancali, decimal? importo, DateTime? data)
[HttpGet("brogliaccio")]
public async Task<ActionResult<IEnumerable<Sbr_ord>>> brogliaccio()
{
GiriConsegna_out tOut = new GiriConsegna_out();
//string usr = getClaimValueByToken(token, "codice");
try
{
//step 1 : calcolo il nuovo seriale
_giriConsView = _consegnevista_context.GiriView;
var ser= await _giriConsView.Take(1).OrderByDescending(t => t.SerialeGiro).ToListAsync();
string ultSer = ser.First().SerialeGiro;
string newSer = calcolaNuovoSeriale(ultSer);
//step 2 : inserisco in PIGIRCON
GiriConsegna gc=new GiriConsegna();
gc.Piautist = autista;
gc.Pitbancar = bancali;
gc.Pidata = data;
gc.Pisergir = newSer;
gc.Pidarecu = importo;
using (var transactionGiri = _giricons_context.Database.BeginTransaction())
{
await _giricons_context.GiriCons.AddAsync(gc);
await _giricons_context.SaveChangesAsync();
transactionGiri.Commit();
}
//step 3 aggiorno con il seriale le righe delle destinazioni
_destinazioni = _destinazioni_context.Destinazioni;
var dest = await _destinazioni.Where(t => t.CodAutista != null && t.CodAutista.Equals(autista) && t.DataCarico != null && t.DataCarico == data && t.serialeGiro==null).OrderByDescending(t => t.DataCarico).ToListAsync();
foreach(Destinazioni d in dest)
{
Sbr_ord sbr_Ord = new Sbr_ord();
sbr_Ord.Brserial = d.Brserial;
sbr_Ord.Pisergir = newSer;
using (var transactionDest = _sbrord_context.Database.BeginTransaction())
{
_sbrord_context.Entry(sbr_Ord).State = EntityState.Modified;
await _sbrord_context.SaveChangesAsync();
transactionDest.Commit();
}
}
var giro = await _giriConsView.Where(t=>t.SerialeGiro.Equals(newSer)).ToListAsync();
return StatusCode(StatusCodes.Status200OK, giro.First());
}
catch (Exception ex)
{
string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
tOut.err_title = ex.Message;
tOut.err_detail = errmsg;
tOut.err_status_code = "500";
return StatusCode(StatusCodes.Status500InternalServerError, tOut);
}
_sbrord = _sbrord_context.Cons;
var bro = await _sbrord.ToListAsync();
return bro;
}
///// <summary>Salva i dati della consegna</summary>
//[HttpPost]
//[Route("addGiro")]
//public async Task<ActionResult<GiriConsegna_out>> addGiro(string? autista,int? bancali, decimal? importo, DateTime? data)
//{
// GiriConsegna_out tOut = new GiriConsegna_out();
// //string usr = getClaimValueByToken(token, "codice");
// try
// {
// //step 1 : calcolo il nuovo seriale
// _giriConsView = _consegnevista_context.GiriView;
// var ser= await _giriConsView.Take(1).OrderByDescending(t => t.SerialeGiro).ToListAsync();
// string ultSer = ser.First().SerialeGiro;
// string newSer = calcolaNuovoSeriale(ultSer);
// //step 2 : inserisco in PIGIRCON
// GiriConsegna gc=new GiriConsegna();
// gc.Piautist = autista;
// gc.Pitbancar = bancali;
// gc.Pidata = data;
// gc.Pisergir = newSer;
// gc.Pidarecu = importo;
// using (var transactionGiri = _giricons_context.Database.BeginTransaction())
// {
// await _giricons_context.GiriCons.AddAsync(gc);
// await _giricons_context.SaveChangesAsync();
// transactionGiri.Commit();
// }
// //step 3 aggiorno con il seriale le righe delle destinazioni
// _destinazioni = _destinazioni_context.Destinazioni;
// var dest = await _destinazioni.Where(t => t.CodAutista != null && t.CodAutista.Equals(autista) && t.DataCarico != null && t.DataCarico == data && t.serialeGiro==null).OrderByDescending(t => t.DataCarico).ToListAsync();
// foreach(Destinazioni d in dest)
// {
// Sbr_ord sbr_Ord = new Sbr_ord();
// sbr_Ord.Brserial = d.Brserial;
// sbr_Ord.Pisergir = newSer;
// using (var transactionDest = _sbrord_context.Database.BeginTransaction())
// {
// _sbrord_context.Entry(sbr_Ord).State = EntityState.Modified;
// await _sbrord_context.SaveChangesAsync();
// transactionDest.Commit();
// }
// }
// var giro = await _giriConsView.Where(t=>t.SerialeGiro.Equals(newSer)).ToListAsync();
// return StatusCode(StatusCodes.Status200OK, giro.First());
// }
// catch (Exception ex)
// {
// string errmsg = ex.InnerException != null ? ex.InnerException.Message : ex.Message;
// tOut.err_title = ex.Message;
// tOut.err_detail = errmsg;
// tOut.err_status_code = "500";
// return StatusCode(StatusCodes.Status500InternalServerError, tOut);
// }
//}
[HttpPost]
[Route("addGiro2")]
public async Task<ActionResult<GiriConsegna_out>> addGiro2([FromBody] GiriConsegnaView model)
@ -297,6 +308,7 @@ namespace ApiSoftway.Controllers
gc.Pidatchi = DateTime.Now;
gc.Pitbancar = giro.BancaliCaricati;
gc.Pitbanrec=bancaliRecuperati;
gc.Pimezzo = giro.CodMezzo;
using (var transactionGiri = _giricons_context.Database.BeginTransaction())
@ -821,78 +833,107 @@ namespace ApiSoftway.Controllers
Destinazioni_out lst = new Destinazioni_out();
_destinazioni = _destinazioni_context.Destinazioni;
var r = await _destinazioni.Where(t => t.Brserial != null && t.Brserial.Equals(seriale)).OrderByDescending(t => t.DataCarico).ThenBy(t => t.Seq).FirstAsync();
//var r = await _destinazioni.Where(t => t.Brserial != null && t.Brserial.Equals(seriale)).OrderByDescending(t => t.DataCarico).ThenBy(t => t.Seq).FirstAsync();
Destinazioni_out o = new Destinazioni_out();
string _aut = !string.IsNullOrEmpty(r.Autista) ? r.Autista.Trim() : string.Empty;
var r = await _destinazioni.Where(t => t.Brserial != null && t.Brserial.Equals(seriale)).OrderByDescending(t => t.DataCarico).ThenBy(t => t.Seq).ToListAsync();
Destinazioni_out o = new Destinazioni_out();
if (r!=null && r.Count()>0)
{
string _aut = !string.IsNullOrEmpty(r.First().Autista) ? r.First().Autista.Trim() : string.Empty;
o.Autista = _aut;
string _autCod = !string.IsNullOrEmpty(r.CodAutista) ? r.CodAutista.Trim() : string.Empty;
string _autCod = !string.IsNullOrEmpty(r.First().CodAutista) ? r.First().CodAutista.Trim() : string.Empty;
o.CodAutista = _autCod;
string _automezzo = !string.IsNullOrEmpty(r.DescAutomezzo) ? r.DescAutomezzo.Trim() : string.Empty;
string _automezzo = !string.IsNullOrEmpty(r.First().DescAutomezzo) ? r.First().DescAutomezzo.Trim() : string.Empty;
o.DescAutomezzo = _automezzo;
string _automezzoCod = !string.IsNullOrEmpty(r.CodAutomezzo) ? r.CodAutomezzo.Trim() : string.Empty;
o.CodAutomezzo = r.CodAutomezzo;
string _automezzoCod = !string.IsNullOrEmpty(r.First().CodAutomezzo) ? r.First().CodAutomezzo.Trim() : string.Empty;
o.CodAutomezzo = _automezzoCod;
o.DataCarico = r.DataCarico;
o.Brserial = r.Brserial;
o.Brmerce = r.Brmerce;
o.Brnote = r.Brnote;
o.Cproword = r.Cproword;
o.Cprownum = r.Cprownum;
o.DataCarico = r.First().DataCarico;
o.Brserial = r.First().Brserial;
o.Brmerce = r.First().Brmerce;
o.Brnote = r.First().Brnote;
o.Cproword = r.First().Cproword;
o.Cprownum = r.First().Cprownum;
string _sedeInd = !string.IsNullOrEmpty(r.IndirizzoSede) ? r.IndirizzoSede.Trim() : string.Empty;
string _sedeInd = !string.IsNullOrEmpty(r.First().IndirizzoSede) ? r.First().IndirizzoSede.Trim() : string.Empty;
o.IndirizzoSede = _sedeInd;
string _sede = !string.IsNullOrEmpty(r.Sede) ? r.Sede.Trim() : string.Empty;
string _sede = !string.IsNullOrEmpty(r.First().Sede) ? r.First().Sede.Trim() : string.Empty;
o.Sede = _sede;
o.CodCommittente = r.CodCommittente;
o.CodCommittente = r.First().CodCommittente;
string _committente = !string.IsNullOrEmpty(r.Committente) ? r.Committente.Trim() : string.Empty;
string _committente = !string.IsNullOrEmpty(r.First().Committente) ? r.First().Committente.Trim() : string.Empty;
o.Committente = _committente;
o.CodSede = r.CodSede;
o.ItemList = formattaDestinazione(r);
o.ImportoDaRitirare = r.ImportoDaRitirare;
o.serialeGiro = r.serialeGiro;
o.Casse = r.Casse;
o.Trasf = r.Trasf;
o.Colli = r.Colli;
o.num_cons = r.num_cons;
o.Uova = r.Uova;
o.Cist = r.Cist;
o.Note = r.Note;
o.Seq = r.Seq;
o.Prog=r.Prog;
o.CodSede = r.First().CodSede;
o.ItemList = formattaDestinazione(r.First());
o.ImportoDaRitirare = r.First().ImportoDaRitirare;
o.serialeGiro = r.First().serialeGiro;
o.Casse = r.First().Casse;
o.Trasf = r.First().Trasf;
o.Colli = r.First().Colli;
o.num_cons = r.First().num_cons;
o.Uova = r.First().Uova;
o.Cist = r.First().Cist;
o.Note = r.First().Note;
o.Seq = r.First().Seq;
o.Prog = r.First().Prog;
if (!string.IsNullOrEmpty(r.consFattaSerial))
if (!string.IsNullOrEmpty(r.First().consFattaSerial))
{
ConsegnaFatta cf = new ConsegnaFatta();
cf.consFattaSerial = r.consFattaSerial;
cf.consFattaRow = r.consFattaRow;
cf.consFattaAut = r.consFattaAut;
cf.consFattaBanSca = r.consFattaBanSca;
cf.consFattaBanCar = r.consFattaBanCar;
string nota = !string.IsNullOrEmpty(r.consFattaNotBan) ? r.consFattaNotBan.Trim() : string.Empty;
cf.consFattaSerial = r.First().consFattaSerial;
cf.consFattaRow = r.First().consFattaRow;
cf.consFattaAut = r.First().consFattaAut;
cf.consFattaBanSca = r.First().consFattaBanSca;
cf.consFattaBanCar = r.First().consFattaBanCar;
string nota = !string.IsNullOrEmpty(r.First().consFattaNotBan) ? r.First().consFattaNotBan.Trim() : string.Empty;
cf.consFattaNotBan = nota;
cf.consFattaImpor = r.consFattaImpor;
cf.consFattaMezzo = r.consFattaMezzo;
string nota2 = !string.IsNullOrEmpty(r.consFattaNotImp) ? r.consFattaNotImp.Trim() : string.Empty;
cf.consFattaImpor = r.First().consFattaImpor;
cf.consFattaMezzo = r.First().consFattaMezzo;
string nota2 = !string.IsNullOrEmpty(r.First().consFattaNotImp) ? r.First().consFattaNotImp.Trim() : string.Empty;
cf.consFattaNotImp = nota2;
cf.consFattaFlagCons = r.consFattaFlagCons;
cf.consFattaDataOra = r.consFattaDataOra;
cf.consFattaFlagCons = r.First().consFattaFlagCons;
cf.consFattaDataOra = r.First().consFattaDataOra;
o.ConsFatta = cf;
o.ConsFatta = cf;
}
}
return o;
}
[HttpGet("listaGiriTestataByAutistaDataMezzo")]
public async Task<ActionResult<IEnumerable<GiriConsegna_out>>> listaGiriTestataByAutistaDataMezzo(string autista, DateTime? dataGiro, string mezzo)
{
List<GiriConsegna_out> lst = new List<GiriConsegna_out>();
_giriCons = _giri_testate_context.Giri;
var r = await _giriCons.Where(t => t.Piautist != null && t.Piautist.Equals(autista) && t.Pidata != null && t.Pidata == dataGiro && t.Pimezzo != null && t.Pimezzo.Equals(mezzo)).OrderByDescending(t => t.Pidata).ThenBy(t => t.Pisergir).ToListAsync();
foreach (GiriConsegna d in r)
{
GiriConsegna_out o = new GiriConsegna_out();
o.Pisergir = d.Pisergir;
o.Pidata = d.Pidata;
o.Piautist = d.Piautist;
o.Pitbancar = d.Pitbancar;
o.Pitbanrec = d.Pitbanrec;
o.Pidarecu=d.Pidarecu;
o.Pidatchi = d.Pidatchi;
o.Pimezzo = d.Pimezzo;
lst.Add(o);
}
return lst;
}
/// <summary>Salva i dati della consegna</summary>
[HttpPost]
[Route("destinazione/salva")]
@ -920,7 +961,7 @@ namespace ApiSoftway.Controllers
string _cliFatturazione = ti.CliFatt;
string _codSede = ti.CodSede;
string _pisergir = ti.serialeGiro;
int _seque = ti.Seq.Value;
int _seque = ti.Cprownum.Value;
t.Cca = _committente;
t.Ccda=_cliFatturazione;
t.Cprownum = _seque;
@ -1000,7 +1041,7 @@ namespace ApiSoftway.Controllers
string _cliFatturazione = ti.CliFatt;
string _codSede = ti.CodSede;
string _pisergir = ti.serialeGiro;
int _seque = ti.Seq.Value;
int _seque = ti.Cprownum.Value;
t.Cca = _committente;
t.Ccda = _cliFatturazione;
t.Cprownum = _seque;

View File

@ -75,6 +75,7 @@ namespace ApiSoftway.Controllers
gc.Picist = model.Picist;
gc.Piseq = model.Piseq;
gc.Pinote = model.Pinote;
gc.Pisergirold = model.Pisergirold;
using (var transactionGiri = _modgiri_context.Database.BeginTransaction())
{

View File

@ -0,0 +1,16 @@
using Microsoft.EntityFrameworkCore;
namespace ApiSoftway.Models.Gesa_DbContext
{
public class GESA_GIRI_TESTATE_DbContext:DbContext
{
public DbSet<GiriConsegna>? Giri { get; set; }
public GESA_GIRI_TESTATE_DbContext(DbContextOptions<GESA_GIRI_TESTATE_DbContext> options) : base(options)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<GiriConsegna>().ToView("API_GIRI_TESTATE");
}
}
}

View File

@ -14,10 +14,7 @@ namespace ApiSoftway.Models.Gesa_DbContext
/// <summary></summary>
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Sbr_ord>().ToTable("GESASBR_ORD");
modelBuilder.Entity<Sbr_ord>().HasKey(table => new {
table.Brserial
});
modelBuilder.Entity<Sbr_ord>().ToView("API_BROGLIACCIO");
}
}
}

View File

@ -18,7 +18,7 @@ namespace ApiSoftway.Models
public decimal? Pirecupe { get; set; }
public DateTime? Pidatchi { get; set; }
public string? Pinote { get; set; }
public string? Pimezzo { get; set; }
}

View File

@ -24,5 +24,7 @@ namespace ApiSoftway.Models
public string? err_detail { get; set; }
/// <summary>errore status code (200, 500)</summary>
public string? err_status_code { get; set; }
public string? Pimezzo { get; set; }
public string? Pinote { get; set; }
}
}

View File

@ -24,5 +24,6 @@ namespace ApiSoftway.Models
public decimal? Picist { get; set; }
public int? Piseq { get; set; }
public string? Pinote { get; set; }
public string? Pisergirold { get; set; }
}
}

View File

@ -23,6 +23,7 @@ namespace ApiSoftway.Models
public decimal? Picist { get; set; }
public int? Piseq { get; set; }
public string? Pinote { get; set; }
public string? Pisergirold { get; set; }

View File

@ -6,10 +6,36 @@ namespace ApiSoftway.Models
{
[Key]
public string? Brserial { get; set; }
public string? Pisergir { get; set; }
public string? Brcodcom { get; set; }
public string? Brclifat { get; set; }
public int? Brnumseq { get; set; }
public string? Brcodsed { get; set; }
public DateTime? Brdatcar { get; set; }
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? Brqtacol { get; set; }
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? Brqtavol { get; set; }
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 4)")]
public decimal? Brcolprev { get; set; }
public int? Brconspr { get; set; }
public int? Bruovapr { get; set; }
public int? Brcistpr { get; set; }
public string? Brnote { get; set; }
//BRTARTRA,BRAUTIST, CATNOME, CAUDESC
public string? Brtartra { get; set; }
public string? Brautist { get; set; }
//Autista
public string? Catnome { get; set; }
//Mezzo
public string? Caudesc { get; set; }
//non usata
public string? Pisergir { get; set; }
}
}

View File

@ -64,6 +64,9 @@ builder.Services.AddDbContext<GESA_GIRICONSEGNEDACREARE_DESTINAZIONI_DbContext>(
builder.Services.AddDbContext<GESA_DESTINAZIONI_WEB_DbContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("GESA")
, options => { options.CommandTimeout(commandTimeoutInSeconds); }
));
builder.Services.AddDbContext<GESA_GIRI_TESTATE_DbContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("GESA")
, options => { options.CommandTimeout(commandTimeoutInSeconds); }
));
#endregion
@ -105,5 +108,5 @@ app.UseAuthorization();
app.MapControllers();
app.Run();
//app.Run("http://localhost:6000");
//app.Run();
app.Run("http://localhost:6000");

View File

@ -8,9 +8,10 @@
"AllowedHosts": "*",
"ConnectionStrings": {
"GESA": "Data Source=windowstest.polo;Initial Catalog=AHRGESA;User Id=sa; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
//"GESA": "Data Source=windowstest.polo;Initial Catalog=AHRGESA;User Id=sa; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
"GESA": "Data Source=172.25.30.152;Initial Catalog=AHRGESA_20241016;User Id=sa; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"
//"GESA": "Data Source=10.0.0.10;Initial Catalog=AHR80_GESA;User Id=sa; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
"ApiStr": "Data Source=windowstest.polo;Initial Catalog=API_POLO;User Id=sa; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"
//"ApiStr": "Data Source=windowstest.polo;Initial Catalog=API_POLO;User Id=sa; Password=p0l01nf.;Integrated Security=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"
},
"JWT": {
"ValidAudience": "http://localhost:4200",