using ApiSoftway.Models; using ApiSoftway.Models.Gesa_DbContext; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Microsoft.IdentityModel.Tokens; using System.Diagnostics; using System.IdentityModel.Tokens.Jwt; using System.Runtime.InteropServices; using System.Security.Claims; using System.Text; namespace ApiSoftway.Controllers { [Route("api/[controller]")] [ApiController] public class GiriController : ControllerBase { private readonly ILogger _logger; private readonly GESA_GIRI_DbContext _giri_context; private readonly GESA_GIRICONSEGNE_DbContext _giricons_context; private readonly GESA_DESTINAZIONI_DbContext _destinazioni_context; private readonly GESA_CONSEGNE_DbContext _consegne_context; private readonly GESA_GIRICONSEGNEVISTA_DbContext _consegnevista_context; private readonly GESA_SBR_ORD_DbContext _sbrord_context; private readonly GESA_PERSONALE_DbContext _personale_context; private readonly IConfiguration? _configuration; private DbSet? _giri; private DbSet? _giriCons; private DbSet? _giriConsView; private DbSet? _destinazioni; private DbSet? _consegne; private DbSet? _sbrord; private DbSet? _personale; public GiriController(ILogger logger, IConfiguration? configuration, GESA_GIRI_DbContext giri_context, GESA_DESTINAZIONI_DbContext destinazioni_context , 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) { _logger = logger; _configuration = configuration; _giri_context = giri_context; _destinazioni_context = destinazioni_context; _consegne_context = consegne_context; _giricons_context = giricons_context; _consegnevista_context = consegnevista_context; _sbrord_context = sbrord_context; _personale_context= personale_context; } [HttpGet("listaGiri")] public async Task>> listaGiri(string? autista, DateTime? data, bool aperto=true) { List lst = new List(); _giriConsView = _consegnevista_context.GiriView; var gc= aperto?await _giriConsView.Where(t=>t.DataChiusura==null).OrderByDescending(t => t.DataGiro).ToListAsync(): await _giriConsView.Where(t => t.DataChiusura != null).OrderByDescending(t => t.DataGiro).ToListAsync(); if(data!=null) { gc= gc.Where(t=>t.DataGiro!=null && t.DataGiro==data).ToList(); } if (!string.IsNullOrEmpty( autista)) { gc = gc.Where(t => t.CodAutista != null && t.CodAutista.Trim().Equals(autista.Trim())).ToList(); } return gc; } [HttpGet("listaAutisti")] public async Task>> listaAutisti() { _personale = _personale_context.Personale; var pers = await _personale.Where(t => t.Tcuser != null && t.Tcpwd != null && t.Tcruolo!=null && t.Tcruolo.Equals("AUT")).ToListAsync(); return pers; } /// Salva i dati della consegna [HttpPost] [Route("addGiro")] public async Task> 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> addGiro2([FromBody] GiriConsegnaView model) { 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 = model.CodAutista; gc.Pitbancar = model.BancaliCaricati; gc.Pidata = model.DataGiro; gc.Pisergir = newSer; gc.Pidarecu = model.ImportoDaRecuperare; 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(model.CodAutista) && t.DataCarico != null && t.DataCarico == model.DataGiro && 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("closeGiro")] public async Task> closeGiro(string? serialeGiro, int? bancaliRecuperati, decimal? importoRecuperato) { GiriConsegna_out tOut = new GiriConsegna_out(); //string usr = getClaimValueByToken(token, "codice"); try { //step 1 : calcolo il nuovo seriale _giriConsView = _consegnevista_context.GiriView; var giro = await _giriConsView.Where(t=>t.SerialeGiro!=null && t.SerialeGiro.Equals(serialeGiro)).FirstAsync(); GiriConsegna gc=new GiriConsegna(); gc.Pisergir = giro.SerialeGiro; gc.Pidarecu = giro.ImportoDaRecuperare; gc.Piautist = giro.CodAutista; gc.Pirecupe = importoRecuperato; gc.Pidata = giro.DataGiro; gc.Pidatchi = DateTime.Now; gc.Pitbancar = giro.BancaliCaricati; gc.Pitbanrec=bancaliRecuperati; using (var transactionGiri = _giricons_context.Database.BeginTransaction()) { _giricons_context.Entry(gc).State = EntityState.Modified; await _giricons_context.SaveChangesAsync(); transactionGiri.Commit(); } giro = await _giriConsView.Where(t => t.SerialeGiro != null && t.SerialeGiro.Equals(serialeGiro)).FirstAsync(); tOut.Pisergir = giro.SerialeGiro; tOut.Pirecupe = giro.ImportoRecuperato; tOut.Pidarecu=giro.ImportoDaRecuperare; tOut.Piautist=giro.CodAutista; tOut.Pidata = giro.DataGiro; tOut.Pidatchi = giro.DataChiusura; tOut.Pitbancar = giro.BancaliCaricati; tOut.Pitbanrec = giro.BancaliRecuperati; return StatusCode(StatusCodes.Status200OK, tOut); } 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("delGiro")] public async Task> delGiro(string? serialeGiro, string? autista, DateTime? data) { GiriConsegna_out tOut = new GiriConsegna_out(); //string usr = getClaimValueByToken(token, "codice"); try { //step 1 : controllo che si possa cancellare _destinazioni = _destinazioni_context.Destinazioni; var r = await _destinazioni.Where(t => t.CodAutista != null && t.CodAutista.Equals(autista) && t.DataCarico != null && t.DataCarico == data ).OrderByDescending(t => t.DataCarico).ToListAsync(); if (r.Count() > 0) { var destFatte = r.Where(x => x.consFattaSerial != null).ToList(); if (destFatte.Count > 0) { //messaggio di errore tOut.err_title = "Impossibile eliminare"; tOut.err_detail = "Impossibile eliminare il giro. Alcune consegne sono state già effettuate"; tOut.err_status_code = "500"; return StatusCode(StatusCodes.Status500InternalServerError, tOut); } else { //step 2 : aggiorno le destinazioni cancellando il seriale del giro 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 = null; using (var transactionDest = _sbrord_context.Database.BeginTransaction()) { _sbrord_context.Entry(sbr_Ord).State = EntityState.Modified; await _sbrord_context.SaveChangesAsync(); transactionDest.Commit(); } } //step 3 : cancello il giro GiriConsegna model=new GiriConsegna(); model.Pisergir = serialeGiro; using (var transaction = _giricons_context.Database.BeginTransaction()) { _giricons_context.Entry(model).State = EntityState.Deleted; await _giricons_context.SaveChangesAsync(); transaction.Commit(); } } } else { //il giro cretao non ha destinazioni associate. cancello solo il record detro pigircon GiriConsegna model = new GiriConsegna(); model.Pisergir = serialeGiro; using (var transaction = _giricons_context.Database.BeginTransaction()) { _giricons_context.Entry(model).State = EntityState.Deleted; await _giricons_context.SaveChangesAsync(); transaction.Commit(); } } return StatusCode(StatusCodes.Status200OK, tOut); } 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); } } [HttpGet("listaDestinazioni")] public async Task>> listaDestinazioni2(string token) { //step 1: ricavo la data a partire dal login string usr = getClaimValueByToken(token, "codice"); _giri = _giri_context.Giri; var g = await _giri.Where(t => t.Brautist != null && t.Brautist.Equals(usr)).OrderByDescending(t => t.Brdatcar).Take(1).ToListAsync(); DateTime? data = g.First().Brdatcar; List lst = new List(); _destinazioni = _destinazioni_context.Destinazioni; var r = await _destinazioni.Where(t => t.CodAutista != null && t.CodAutista.Equals(usr) && t.DataCarico != null && t.DataCarico == data).OrderByDescending(t => t.DataCarico).ToListAsync(); foreach (Destinazioni d in r) { Destinazioni_out o = new Destinazioni_out(); string _aut= !string.IsNullOrEmpty(d.Autista) ? d.Autista.Trim() : string.Empty; o.Autista = _aut; string _autCod = !string.IsNullOrEmpty(d.CodAutista) ? d.CodAutista.Trim() : string.Empty; o.CodAutista = _autCod; string _automezzo = !string.IsNullOrEmpty(d.DescAutomezzo) ? d.DescAutomezzo.Trim() : string.Empty; o.DescAutomezzo = _automezzo; string _automezzoCod = !string.IsNullOrEmpty(d.CodAutomezzo) ? d.CodAutomezzo.Trim() : string.Empty; o.CodAutomezzo = d.CodAutomezzo; o.DataCarico = d.DataCarico; o.Brserial = d.Brserial; o.Brmerce = d.Brmerce; o.Brnote = d.Brnote; o.Cproword = d.Cproword; o.Cprownum=d.Cprownum; string _sedeInd = !string.IsNullOrEmpty(d.IndirizzoSede) ? d.IndirizzoSede.Trim() : string.Empty; o.IndirizzoSede = _sedeInd; string _sede = !string.IsNullOrEmpty(d.Sede) ? d.Sede.Trim() : string.Empty; o.Sede = _sede; o.CodCommittente = d.CodCommittente; string _committente = !string.IsNullOrEmpty(d.Committente) ? d.Committente.Trim() : string.Empty; o.Committente = _committente; o.CodSede = d.CodSede; o.ItemList = formattaDestinazione(d); o.ImportoDaRitirare = d.ImportoDaRitirare; o.serialeGiro=d.serialeGiro; if (!string.IsNullOrEmpty(d.consFattaSerial)) { ConsegnaFatta cf=new ConsegnaFatta(); cf.consFattaSerial= d.consFattaSerial; cf.consFattaRow= d.consFattaRow; cf.consFattaAut= d.consFattaAut; cf.consFattaBanSca = d.consFattaBanSca; cf.consFattaBanCar= d.consFattaBanCar; string nota = !string.IsNullOrEmpty(d.consFattaNotBan) ? d.consFattaNotBan.Trim() : string.Empty; cf.consFattaNotBan= nota; cf.consFattaImpor=d.consFattaImpor; cf.consFattaMezzo= d.consFattaMezzo; string nota2 = !string.IsNullOrEmpty(d.consFattaNotImp) ? d.consFattaNotImp.Trim() : string.Empty; cf.consFattaNotImp=nota2; cf.consFattaFlagCons=d.consFattaFlagCons; o.ConsFatta=cf; } lst.Add(o); } return lst; } [HttpGet("listaDestinazioniByAutistaData")] public async Task>> listaDestinazioniByAutistaData(string autista, DateTime? dataGiro) { List lst = new List(); _destinazioni = _destinazioni_context.Destinazioni; var r = await _destinazioni.Where(t => t.CodAutista != null && t.CodAutista.Equals(autista) && t.DataCarico != null && t.DataCarico == dataGiro).OrderByDescending(t => t.DataCarico).ToListAsync(); foreach (Destinazioni d in r) { Destinazioni_out o = new Destinazioni_out(); string _aut = !string.IsNullOrEmpty(d.Autista) ? d.Autista.Trim() : string.Empty; o.Autista = _aut; string _autCod = !string.IsNullOrEmpty(d.CodAutista) ? d.CodAutista.Trim() : string.Empty; o.CodAutista = _autCod; string _automezzo = !string.IsNullOrEmpty(d.DescAutomezzo) ? d.DescAutomezzo.Trim() : string.Empty; o.DescAutomezzo = _automezzo; string _automezzoCod = !string.IsNullOrEmpty(d.CodAutomezzo) ? d.CodAutomezzo.Trim() : string.Empty; o.CodAutomezzo = d.CodAutomezzo; o.DataCarico = d.DataCarico; o.Brserial = d.Brserial; o.Brmerce = d.Brmerce; o.Brnote = d.Brnote; o.Cproword = d.Cproword; o.Cprownum = d.Cprownum; string _sedeInd = !string.IsNullOrEmpty(d.IndirizzoSede) ? d.IndirizzoSede.Trim() : string.Empty; o.IndirizzoSede = _sedeInd; string _sede = !string.IsNullOrEmpty(d.Sede) ? d.Sede.Trim() : string.Empty; o.Sede = _sede; o.CodCommittente = d.CodCommittente; string _committente = !string.IsNullOrEmpty(d.Committente) ? d.Committente.Trim() : string.Empty; o.Committente = _committente; o.CodSede = d.CodSede; o.ItemList = formattaDestinazione(d); o.ImportoDaRitirare = d.ImportoDaRitirare; o.serialeGiro = d.serialeGiro; if (!string.IsNullOrEmpty(d.consFattaSerial)) { ConsegnaFatta cf = new ConsegnaFatta(); cf.consFattaSerial = d.consFattaSerial; cf.consFattaRow = d.consFattaRow; cf.consFattaAut = d.consFattaAut; cf.consFattaBanSca = d.consFattaBanSca; cf.consFattaBanCar = d.consFattaBanCar; string nota = !string.IsNullOrEmpty(d.consFattaNotBan) ? d.consFattaNotBan.Trim() : string.Empty; cf.consFattaNotBan = nota; cf.consFattaImpor = d.consFattaImpor; cf.consFattaMezzo = d.consFattaMezzo; string nota2 = !string.IsNullOrEmpty(d.consFattaNotImp) ? d.consFattaNotImp.Trim() : string.Empty; cf.consFattaNotImp = nota2; cf.consFattaFlagCons = d.consFattaFlagCons; o.ConsFatta = cf; } lst.Add(o); } return lst; } /// Salva i dati della consegna [HttpPost] [Route("destinazione/salva")] public async Task> destinazione_salva([FromBody] Consegna model, string token) { Consegna_out tOut = new Consegna_out(); string usr = getClaimValueByToken(token, "codice"); try { //string tecnico = getClaimValueByToken(token, "tccodice"); if (await checkConsegnaPresente(token, model) == 0) { Consegna t = fillConsegna(model, token); using (var transaction = _consegne_context.Database.BeginTransaction()) { await _consegne_context.Cons.AddAsync(t); await _consegne_context.SaveChangesAsync(); transaction.Commit(); } tOut = fillConsegna_out(model, token); tOut.err_status_code = "200"; return StatusCode(StatusCodes.Status200OK, tOut); } else { return StatusCode(StatusCodes.Status500InternalServerError, "timbratura presente."); } //return tOut; } 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); } } /// Salva i dati della consegna [HttpPost] [Route("destinazione/non_effettuata")] public async Task> destinazione_non_effettuata([FromBody] Consegna model, string token) { Consegna_out tOut = new Consegna_out(); string usr = getClaimValueByToken(token, "codice"); try { //string tecnico = getClaimValueByToken(token, "tccodice"); if (await checkConsegnaPresente(token, model) == 0) { Consegna t = fillConsegnaNonEffettuata(model, token); using (var transaction = _consegne_context.Database.BeginTransaction()) { await _consegne_context.Cons.AddAsync(t); await _consegne_context.SaveChangesAsync(); transaction.Commit(); } tOut = fillConsegna_out(model, token); tOut.err_status_code = "200"; return StatusCode(StatusCodes.Status200OK, tOut); } else { return StatusCode(StatusCodes.Status500InternalServerError, "timbratura presente."); } //return tOut; } 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); } } private async Task checkConsegnaPresente(string token, Consegna model) { int trovati = 0; _consegne = _consegne_context.Cons; var ti = await _consegne.Where(t => t.Serial.Equals(model.Serial) && t.Cprownum == model.Cprownum ).ToListAsync(); if (ti.Any()) { trovati = ti.Count(); } return trovati; } private string getClaimValueByToken(string token, string claimName) { string t = string.Empty; var handler = new JwtSecurityTokenHandler(); var jwtSecurityToken = handler.ReadJwtToken(token); if (jwtSecurityToken != null) { var id = jwtSecurityToken.Claims.First(claim => claim.Type == claimName).Value; t = id; } return t; } private string formattaGiro(Giri g) { string item = string.Empty; if (g != null) { StringBuilder sb = new StringBuilder(); var dateString1 = g.Brdatcar.Value.ToString("dd-MM-yyyy"); sb.AppendLine("Giro del "+dateString1); sb.AppendLine("Assegnato a "+g.Autista); sb.AppendLine("Numero consegne " + g.num_dest.ToString()); item=sb.ToString(); sb = null; } return item; } private string formattaDestinazione(Destinazioni d) { string item = string.Empty; if (d != null) { StringBuilder sb = new StringBuilder(); //var dateString1 = d.DataCarico.Value.ToString("dd-MM-yyyy"); string comm = !string.IsNullOrEmpty(d.Committente) ? d.Committente.Trim() : string.Empty; sb.Append("Committente " + comm); sb.Append("
"); string sed = !string.IsNullOrEmpty(d.Sede) ? d.Sede.Trim() : string.Empty; sb.Append("Sede Consegna " + sed); sb.Append("
"); string ind = !string.IsNullOrEmpty(d.IndirizzoSede) ? d.IndirizzoSede.Trim() : string.Empty; sb.Append("Indirizzo " + ind); sb.Append("
"); item = sb.ToString(); sb = null; } return item; } private Consegna fillConsegna(Consegna i, string token) { Consegna r = new Consegna(); string usr = getClaimValueByToken(token, "codice"); r.Piautist = usr; r.Cprownum = i.Cprownum; r.Cprownum=i.Cprownum; r.Ccddd = i.Ccddd; r.cpccchk = i.cpccchk; r.Ccda = i.Ccda; r.Dcda = i.Dcda; r.Pinotban = i.Pinotban; r.Ccadd = i.Ccadd; r.Ccda = i.Ccda; r.Ccddd=i.Ccddd; r.Datdoc= DateTime.Now; r.Dcda=i.Dcda; r.Descb=i.Descb; r.Nbanc = i.Nbanc; r.Ndoc = i.Ndoc; r.Pibansca = i.Pibansca; r.Pinotban = i.Pinotban; r.Pinotimp = i.Pinotimp; r.Tipob1 = i.Tipob1; r.Tipob2 = i.Tipob2; r.Tipob =i.Tipob; r.Sdoc = i.Sdoc; r.Serial = i.Serial; //r.Tcda=i.Tcda; r.Tcda = "S"; r.Tca = i.Tca; r.Cca = i.Cca; r.Dca = i.Dca; r.Piconseg = i.Piconseg; r.Pimezzo = i.Pimezzo; r.Piimport= i.Piimport; return r; } private Consegna fillConsegnaNonEffettuata(Consegna i, string token) { Consegna r = new Consegna(); string usr = getClaimValueByToken(token, "codice"); r.Piautist = usr; r.Cprownum = i.Cprownum; r.Ccddd = i.Ccddd; r.cpccchk = i.cpccchk; r.Ccda = i.Ccda; r.Dcda = i.Dcda; r.Pinotban = i.Pinotban; r.Ccadd = i.Ccadd; r.Ccda = i.Ccda; r.Ccddd = i.Ccddd; r.Datdoc = DateTime.Now; r.Dcda = i.Dcda; r.Descb = "Consegna non effetuata"; r.Nbanc = i.Nbanc; r.Ndoc = i.Ndoc; r.Pibansca = i.Pibansca; r.Pinotban = i.Pinotban; r.Pinotimp = i.Pinotimp; r.Tipob1 = i.Tipob1; r.Tipob2 = i.Tipob2; r.Tipob = i.Tipob; r.Sdoc = i.Sdoc; r.Serial = i.Serial; //r.Tcda=i.Tcda; r.Tcda = "N"; r.Tca = i.Tca; r.Cca = i.Cca; r.Dca = i.Dca; r.Piconseg = i.Piconseg; r.Pimezzo = i.Pimezzo; r.Piimport = i.Piimport; return r; } private Consegna_out fillConsegna_out(Consegna i, string token) { Consegna_out r = new Consegna_out(); string usr = getClaimValueByToken(token, "codice"); r.Piautist = usr; r.Cprownum = i.Cprownum; r.Cprownum = i.Cprownum; r.Ccddd = i.Ccddd; r.cpccchk = i.cpccchk; r.Ccda = i.Ccda; r.Dcda = i.Dcda; r.Pinotban = i.Pinotban; r.Ccadd = i.Ccadd; r.Ccda = i.Ccda; r.Ccddd = i.Ccddd; r.Datdoc = i.Datdoc; r.Dcda = i.Dcda; r.Descb = i.Descb; r.Nbanc = i.Nbanc; r.Ndoc = i.Ndoc; r.Pibansca = i.Pibansca; r.Pinotban = i.Pinotban; r.Pinotimp = i.Pinotimp; r.Tipob1 = i.Tipob1; r.Tipob2 = i.Tipob2; r.Tipob = i.Tipob; r.Sdoc = i.Sdoc; r.Serial = i.Serial; r.Tcda = i.Tcda; r.Tca = i.Tca; r.Cca = i.Cca; r.Dca = i.Dca; r.Piconseg = i.Piconseg; r.Pimezzo = i.Pimezzo; r.Piimport = i.Piimport; return r; } private string calcolaNuovoSeriale(string ultSer) { string newSer = string.Empty; int ser=Convert.ToInt32(ultSer); ser++; newSer=Convert.ToString(ser); if (ser > 0) { newSer = newSer.PadLeft(10, '0'); } return newSer; } } }