Rimappatura di consegne dopo master/detail.
Filtro destinazioni per esporre un giro alla volta
This commit is contained in:
parent
86d7c6349e
commit
8ab01eb1bd
@ -36,7 +36,7 @@ namespace ApiSoftway.Controllers
|
|||||||
private DbSet<GiriConsegna>? _giriCons;
|
private DbSet<GiriConsegna>? _giriCons;
|
||||||
private DbSet<GiriConsegnaView>? _giriConsView;
|
private DbSet<GiriConsegnaView>? _giriConsView;
|
||||||
private DbSet<Destinazioni>? _destinazioni;
|
private DbSet<Destinazioni>? _destinazioni;
|
||||||
private DbSet<Consegna>? _consegne;
|
private DbSet<ConsegnaTable>? _consegne;
|
||||||
private DbSet<Sbr_ord>? _sbrord;
|
private DbSet<Sbr_ord>? _sbrord;
|
||||||
private DbSet<Personale>? _personale;
|
private DbSet<Personale>? _personale;
|
||||||
private DbSet<Automezzi>? _automezzi;
|
private DbSet<Automezzi>? _automezzi;
|
||||||
@ -431,9 +431,23 @@ namespace ApiSoftway.Controllers
|
|||||||
List<Destinazioni_out> lst = new List<Destinazioni_out>();
|
List<Destinazioni_out> lst = new List<Destinazioni_out>();
|
||||||
_destinazioni = _destinazioni_context.Destinazioni;
|
_destinazioni = _destinazioni_context.Destinazioni;
|
||||||
var r = await _destinazioni.Where(t => t.CodAutista != null && t.CodAutista.Equals(usr) && t.DataCarico != null && t.DataCarico == data
|
var r = await _destinazioni.Where(t => t.CodAutista != null && t.CodAutista.Equals(usr) && t.DataCarico != null && t.DataCarico == data
|
||||||
//&& !string.IsNullOrEmpty(t.serialeGiro)
|
&& !string.IsNullOrEmpty(t.serialeGiro)
|
||||||
).OrderByDescending(t => t.DataCarico).ToListAsync();
|
).OrderBy(t => t.serialeGiro).ToListAsync();
|
||||||
|
|
||||||
|
|
||||||
|
//2024-07-29: se un autista ha due o più giri da fare nello stesso giorno li devo separare. li ho ordinati per seriale giro e gli do quelli del primo
|
||||||
|
// giro disponibile che non sia chiuso (PIDATCHI di GESAPIGIRCON deve essere nulla)
|
||||||
|
int giro = 0;
|
||||||
|
string seriale_attuale = string.Empty;
|
||||||
foreach (Destinazioni d in r)
|
foreach (Destinazioni d in r)
|
||||||
|
{
|
||||||
|
if(giro==0)
|
||||||
|
{
|
||||||
|
seriale_attuale = d.serialeGiro;
|
||||||
|
}
|
||||||
|
giro++;
|
||||||
|
|
||||||
|
if(d.serialeGiro.Equals(seriale_attuale))
|
||||||
{
|
{
|
||||||
Destinazioni_out o = new Destinazioni_out();
|
Destinazioni_out o = new Destinazioni_out();
|
||||||
string _aut= !string.IsNullOrEmpty(d.Autista) ? d.Autista.Trim() : string.Empty;
|
string _aut= !string.IsNullOrEmpty(d.Autista) ? d.Autista.Trim() : string.Empty;
|
||||||
@ -500,6 +514,7 @@ namespace ApiSoftway.Controllers
|
|||||||
|
|
||||||
lst.Add(o);
|
lst.Add(o);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return lst;
|
return lst;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -668,13 +683,13 @@ namespace ApiSoftway.Controllers
|
|||||||
string usr = getClaimValueByToken(token, "codice");
|
string usr = getClaimValueByToken(token, "codice");
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
ConsegnaTable ct = fillConsegna(model, token,DateTime.Now);
|
||||||
//string tecnico = getClaimValueByToken(token, "tccodice");
|
//string tecnico = getClaimValueByToken(token, "tccodice");
|
||||||
if (await checkConsegnaPresente(token, model) == 0)
|
if (await checkConsegnaPresente(token, ct) == 0)
|
||||||
{
|
{
|
||||||
|
|
||||||
DateTime dateTime = DateTime.Now;
|
DateTime dateTime = DateTime.Now;
|
||||||
Consegna t = fillConsegna(model, token, dateTime);
|
ConsegnaTable t = fillConsegna(model, token, dateTime);
|
||||||
//Step 1: mi calcolo il nuovo seriale
|
//Step 1: mi calcolo il nuovo seriale
|
||||||
|
|
||||||
_consegne = _consegne_context.Cons;
|
_consegne = _consegne_context.Cons;
|
||||||
@ -693,10 +708,12 @@ namespace ApiSoftway.Controllers
|
|||||||
var ti = await _sbrord.Where(t => t.Brserial.Equals(model.Serial)).FirstAsync();
|
var ti = await _sbrord.Where(t => t.Brserial.Equals(model.Serial)).FirstAsync();
|
||||||
string _committente = ti.Brcodcom;
|
string _committente = ti.Brcodcom;
|
||||||
string _cliFatturazione = ti.Brclifat;
|
string _cliFatturazione = ti.Brclifat;
|
||||||
|
int seque = ti.Brnumseq.Value;
|
||||||
t.Cca = _committente;
|
t.Cca = _committente;
|
||||||
t.Ccda=_cliFatturazione;
|
t.Ccda=_cliFatturazione;
|
||||||
t.Tcda = "C";
|
t.Cprownum = seque;
|
||||||
t.Tca = "C";
|
|
||||||
|
|
||||||
|
|
||||||
//Step 3 : testata
|
//Step 3 : testata
|
||||||
Consegna_m m = new Consegna_m();
|
Consegna_m m = new Consegna_m();
|
||||||
@ -749,10 +766,49 @@ namespace ApiSoftway.Controllers
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|
||||||
|
ConsegnaTable ct = fillConsegna(model, token, DateTime.Now);
|
||||||
//string tecnico = getClaimValueByToken(token, "tccodice");
|
//string tecnico = getClaimValueByToken(token, "tccodice");
|
||||||
if (await checkConsegnaPresente(token, model) == 0)
|
if (await checkConsegnaPresente(token, ct) == 0)
|
||||||
{
|
{
|
||||||
Consegna t = fillConsegnaNonEffettuata(model, token);
|
DateTime dateTime = DateTime.Now;
|
||||||
|
ConsegnaTable t = fillConsegnaNonEffettuata(model, token);
|
||||||
|
|
||||||
|
//Step 1: mi calcolo il nuovo seriale
|
||||||
|
_consegne = _consegne_context.Cons;
|
||||||
|
var ser = await _consegne.Take(1).OrderByDescending(t => t.Pisergir).ToListAsync();
|
||||||
|
string ultSer = "0";
|
||||||
|
if (ser != null && ser.Count > 0)
|
||||||
|
{
|
||||||
|
ultSer = ser.First().Pisergir;
|
||||||
|
}
|
||||||
|
|
||||||
|
string newSer = calcolaNuovoSeriale(ultSer);
|
||||||
|
t.Pisergir = newSer;
|
||||||
|
|
||||||
|
//Steo 2: mi ricavo i dati da inserire i GESASMOVIB. Li leggo dalla GESASBR_ORD
|
||||||
|
_sbrord = _sbrord_context.Cons;
|
||||||
|
var ti = await _sbrord.Where(t => t.Brserial.Equals(model.Serial)).FirstAsync();
|
||||||
|
string _committente = ti.Brcodcom;
|
||||||
|
string _cliFatturazione = ti.Brclifat;
|
||||||
|
int seque = ti.Brnumseq.Value;
|
||||||
|
t.Cca = _committente;
|
||||||
|
t.Ccda = _cliFatturazione;
|
||||||
|
t.Cprownum = seque;
|
||||||
|
|
||||||
|
|
||||||
|
//Step 3 : testata
|
||||||
|
Consegna_m m = new Consegna_m();
|
||||||
|
m.Pisergir = t.Pisergir;
|
||||||
|
m.Data = dateTime;
|
||||||
|
m.Cpccchk = getCpccchk(10);
|
||||||
|
using (var transactionM = _consegne_m_context.Database.BeginTransaction())
|
||||||
|
{
|
||||||
|
await _consegne_m_context.Cons.AddAsync(m);
|
||||||
|
await _consegne_m_context.SaveChangesAsync();
|
||||||
|
transactionM.Commit();
|
||||||
|
}
|
||||||
|
|
||||||
|
//step 4 : riga (è sempre e solo una)
|
||||||
using (var transaction = _consegne_context.Database.BeginTransaction())
|
using (var transaction = _consegne_context.Database.BeginTransaction())
|
||||||
{
|
{
|
||||||
await _consegne_context.Cons.AddAsync(t);
|
await _consegne_context.Cons.AddAsync(t);
|
||||||
@ -782,7 +838,7 @@ namespace ApiSoftway.Controllers
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private async Task<int> checkConsegnaPresente(string token, Consegna model)
|
private async Task<int> checkConsegnaPresente(string token, ConsegnaTable model)
|
||||||
{
|
{
|
||||||
int trovati = 0;
|
int trovati = 0;
|
||||||
_consegne = _consegne_context.Cons;
|
_consegne = _consegne_context.Cons;
|
||||||
@ -884,9 +940,9 @@ namespace ApiSoftway.Controllers
|
|||||||
|
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
private Consegna fillConsegna(Consegna i, string token, DateTime d)
|
private ConsegnaTable fillConsegna(Consegna i, string token, DateTime d)
|
||||||
{
|
{
|
||||||
Consegna r = new Consegna();
|
ConsegnaTable r = new ConsegnaTable();
|
||||||
|
|
||||||
string usr = getClaimValueByToken(token, "codice");
|
string usr = getClaimValueByToken(token, "codice");
|
||||||
|
|
||||||
@ -894,7 +950,7 @@ namespace ApiSoftway.Controllers
|
|||||||
r.Cprownum = i.Cprownum;
|
r.Cprownum = i.Cprownum;
|
||||||
r.Cprownum=i.Cprownum;
|
r.Cprownum=i.Cprownum;
|
||||||
r.Ccddd = i.Ccddd;
|
r.Ccddd = i.Ccddd;
|
||||||
r.cpccchk = i.cpccchk;
|
r.cpccchk = getCpccchk(10);
|
||||||
r.Ccda = i.Ccda;
|
r.Ccda = i.Ccda;
|
||||||
r.Dcda = i.Dcda;
|
r.Dcda = i.Dcda;
|
||||||
r.Pinotban = i.Pinotban;
|
r.Pinotban = i.Pinotban;
|
||||||
@ -913,8 +969,8 @@ namespace ApiSoftway.Controllers
|
|||||||
r.Tipob2 = i.Tipob2;
|
r.Tipob2 = i.Tipob2;
|
||||||
r.Tipob =i.Tipob;
|
r.Tipob =i.Tipob;
|
||||||
r.Sdoc = i.Sdoc;
|
r.Sdoc = i.Sdoc;
|
||||||
r.Pisergir = i.Pisergir;
|
r.Pisergir = i.Serial;
|
||||||
r.Tcda=i.Tcda;
|
r.Tcda="S";
|
||||||
r.Tca = i.Tca;
|
r.Tca = i.Tca;
|
||||||
r.Cca = i.Cca;
|
r.Cca = i.Cca;
|
||||||
r.Dca = i.Dca;
|
r.Dca = i.Dca;
|
||||||
@ -927,16 +983,16 @@ namespace ApiSoftway.Controllers
|
|||||||
|
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
private Consegna fillConsegnaNonEffettuata(Consegna i, string token)
|
private ConsegnaTable fillConsegnaNonEffettuata(Consegna i, string token)
|
||||||
{
|
{
|
||||||
Consegna r = new Consegna();
|
ConsegnaTable r = new ConsegnaTable();
|
||||||
|
|
||||||
string usr = getClaimValueByToken(token, "codice");
|
string usr = getClaimValueByToken(token, "codice");
|
||||||
|
|
||||||
r.Piautist = usr;
|
r.Piautist = usr;
|
||||||
r.Cprownum = i.Cprownum;
|
r.Cprownum = i.Cprownum;
|
||||||
r.Ccddd = i.Ccddd;
|
r.Ccddd = i.Ccddd;
|
||||||
r.cpccchk = i.cpccchk;
|
r.cpccchk = getCpccchk(10);
|
||||||
r.Ccda = i.Ccda;
|
r.Ccda = i.Ccda;
|
||||||
r.Dcda = i.Dcda;
|
r.Dcda = i.Dcda;
|
||||||
r.Pinotban = i.Pinotban;
|
r.Pinotban = i.Pinotban;
|
||||||
@ -955,7 +1011,7 @@ namespace ApiSoftway.Controllers
|
|||||||
r.Tipob2 = i.Tipob2;
|
r.Tipob2 = i.Tipob2;
|
||||||
r.Tipob = i.Tipob;
|
r.Tipob = i.Tipob;
|
||||||
r.Sdoc = i.Sdoc;
|
r.Sdoc = i.Sdoc;
|
||||||
r.Pisergir = i.Pisergir;
|
r.Pisergir = i.Serial;
|
||||||
//r.Tcda=i.Tcda;
|
//r.Tcda=i.Tcda;
|
||||||
r.Tcda = "N";
|
r.Tcda = "N";
|
||||||
r.Tca = i.Tca;
|
r.Tca = i.Tca;
|
||||||
@ -964,6 +1020,7 @@ namespace ApiSoftway.Controllers
|
|||||||
r.Piconseg = i.Piconseg;
|
r.Piconseg = i.Piconseg;
|
||||||
r.Pimezzo = i.Pimezzo;
|
r.Pimezzo = i.Pimezzo;
|
||||||
r.Piimport = i.Piimport;
|
r.Piimport = i.Piimport;
|
||||||
|
r.Serial=i.Serial;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -998,7 +1055,7 @@ namespace ApiSoftway.Controllers
|
|||||||
r.Tipob2 = i.Tipob2;
|
r.Tipob2 = i.Tipob2;
|
||||||
r.Tipob = i.Tipob;
|
r.Tipob = i.Tipob;
|
||||||
r.Sdoc = i.Sdoc;
|
r.Sdoc = i.Sdoc;
|
||||||
r.Pisergir = i.Pisergir;
|
r.Pisergir = i.Serial;
|
||||||
r.Tcda = i.Tcda;
|
r.Tcda = i.Tcda;
|
||||||
r.Tca = i.Tca;
|
r.Tca = i.Tca;
|
||||||
r.Cca = i.Cca;
|
r.Cca = i.Cca;
|
||||||
|
|||||||
@ -4,10 +4,8 @@ namespace ApiSoftway.Models
|
|||||||
{
|
{
|
||||||
public class Consegna
|
public class Consegna
|
||||||
{
|
{
|
||||||
[Key]
|
//versione iniziale
|
||||||
public string? Pisergir { get; set; }
|
public string? Serial { get; set; }
|
||||||
|
|
||||||
[Key]
|
|
||||||
public int? Cprownum { get; set; }
|
public int? Cprownum { get; set; }
|
||||||
public string? Tcda { get; set; }
|
public string? Tcda { get; set; }
|
||||||
public string? Ccda { get; set; }
|
public string? Ccda { get; set; }
|
||||||
@ -35,7 +33,5 @@ namespace ApiSoftway.Models
|
|||||||
public decimal? Piimport { get; set; }
|
public decimal? Piimport { get; set; }
|
||||||
public string? Pinotimp { get; set; }
|
public string? Pinotimp { get; set; }
|
||||||
public string? Pinotban { get; set; }
|
public string? Pinotban { get; set; }
|
||||||
public string? Serial { get; set; }
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
40
Models/ConsegnaTable.cs
Normal file
40
Models/ConsegnaTable.cs
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace ApiSoftway.Models
|
||||||
|
{
|
||||||
|
public class ConsegnaTable
|
||||||
|
{
|
||||||
|
[Key]
|
||||||
|
public string? Pisergir { get; set; }
|
||||||
|
|
||||||
|
[Key]
|
||||||
|
public int? Cprownum { get; set; }
|
||||||
|
public string? Tcda { get; set; }
|
||||||
|
public string? Ccda { get; set; }
|
||||||
|
public string? Dcda { get; set; }
|
||||||
|
public string? Tca { get; set; }
|
||||||
|
public string? Cca { get; set; }
|
||||||
|
public string? Dca { get; set; }
|
||||||
|
public string? Tipob { get; set; }
|
||||||
|
public int? Nbanc { get; set; }
|
||||||
|
public string? Descb { get; set; }
|
||||||
|
public string? Tipob1 { get; set; }
|
||||||
|
public string? Tipob2 { get; set; }
|
||||||
|
public string? Ccddd { get; set; }
|
||||||
|
public string? Ccadd { get; set; }
|
||||||
|
public string? Ndoc { get; set; }
|
||||||
|
public string? Sdoc { get; set; }
|
||||||
|
public DateTime? Datdoc { get; set; }
|
||||||
|
public string? cpccchk { get; set; }
|
||||||
|
public string? Piconseg { get; set; }
|
||||||
|
public string? Pimezzo { get; set; }
|
||||||
|
public string? Piautist { get; set; }
|
||||||
|
public int? Pibansca { get; set; }
|
||||||
|
|
||||||
|
[System.ComponentModel.DataAnnotations.Schema.Column(TypeName = "decimal(18, 5)")]
|
||||||
|
public decimal? Piimport { get; set; }
|
||||||
|
public string? Pinotimp { get; set; }
|
||||||
|
public string? Pinotban { get; set; }
|
||||||
|
public string? Serial { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -5,7 +5,7 @@ namespace ApiSoftway.Models.Gesa_DbContext
|
|||||||
public class GESA_CONSEGNE_DbContext : DbContext
|
public class GESA_CONSEGNE_DbContext : DbContext
|
||||||
{
|
{
|
||||||
/// <summary></summary>
|
/// <summary></summary>
|
||||||
public DbSet<Consegna>? Cons { get; set; }
|
public DbSet<ConsegnaTable>? Cons { get; set; }
|
||||||
|
|
||||||
/// <summary></summary>
|
/// <summary></summary>
|
||||||
public GESA_CONSEGNE_DbContext(DbContextOptions<GESA_CONSEGNE_DbContext> options) : base(options)
|
public GESA_CONSEGNE_DbContext(DbContextOptions<GESA_CONSEGNE_DbContext> options) : base(options)
|
||||||
@ -15,8 +15,8 @@ namespace ApiSoftway.Models.Gesa_DbContext
|
|||||||
/// <summary></summary>
|
/// <summary></summary>
|
||||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||||
{
|
{
|
||||||
modelBuilder.Entity<Consegna>().ToTable("GESASMOVIB");
|
modelBuilder.Entity<ConsegnaTable>().ToTable("GESASMOVIB");
|
||||||
modelBuilder.Entity<Consegna>().HasKey(table => new {
|
modelBuilder.Entity<ConsegnaTable>().HasKey(table => new {
|
||||||
table.Pisergir,
|
table.Pisergir,
|
||||||
table.Cprownum
|
table.Cprownum
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user