Skip to content

Instantly share code, notes, and snippets.

@riccardopirani
Created April 11, 2018 07:22
Show Gist options
  • Select an option

  • Save riccardopirani/2e175c10cbea49098dd99fbffdf9c4d5 to your computer and use it in GitHub Desktop.

Select an option

Save riccardopirani/2e175c10cbea49098dd99fbffdf9c4d5 to your computer and use it in GitHub Desktop.
Asyc Await with Mssql
const DbConfig = require('../Config/DatabaseConfig.js');
const sql = require('mssql');
async function RicercaCantiere(NomeCantiere) {
var data=[];
await sql.connect(DbConfig.config);
const request = new sql.Request();
request.input('NomeCantiere', sql.VarChar, NomeCantiere);
const recordset=await request.query("select * from( (/* Cantieri Consuntivo con Filiale */ SELECT Cantiere.IdCantiere,Cantiere.IdCliente, FilialeCliente.Citta as Filiale, Cliente.RagioneSociale, Cantiere.NomeCantiere, Cantiere.DataCreazioneCantiere, 'Consuntivo' as Tipologia, IdUtenteCreazioneCantiere, StatoCantiere, StatoFatturazione FROM Cantiere inner join CantiereConsuntivo on CantiereConsuntivo.IdCantiereConsuntivo = Cantiere.IdCantiere inner join Cliente on Cliente.IdCliente = Cantiere.IdCliente inner join FilialeCliente on FilialeCliente.IdFilialeCliente = CantiereConsuntivo.IdFiliale) union ( /*Cantieri Consuntivo senza Filiale*/ SELECT Cantiere.IdCantiere,Cantiere.IdCliente, 'SEDE' as Filiale, Cliente.RagioneSociale, Cantiere.NomeCantiere, Cantiere.DataCreazioneCantiere, 'Consuntivo' as Tipologia, IdUtenteCreazioneCantiere, StatoCantiere, StatoFatturazione FROM Cantiere inner join CantiereConsuntivo on CantiereConsuntivo.IdCantiereConsuntivo = Cantiere.IdCantiere inner join Cliente on Cliente.IdCliente = Cantiere.IdCliente where CantiereConsuntivo.IdFiliale is null) union ( /*Cantieri a Preventivo con Filiale*/ SELECT Cantiere.IdCantiere,Preventivo.IdCliente, FilialeCliente.Citta as Filiale, Cliente.RagioneSociale, Preventivo.RiferimentoInterno, Cantiere.DataCreazioneCantiere, 'Preventivo' as Tipologia, IdUtenteCreazioneCantiere, StatoCantiere, StatoFatturazione FROM Cantiere inner join CantierePreventivo on CantierePreventivo.IdCantierePreventivo = Cantiere.IdCantiere inner join Cliente on Cliente.IdCliente = Cantiere.IdCliente inner join Preventivo on Preventivo.IdPreventivo = CantierePreventivo.IdPreventivo inner join FilialeCliente on FilialeCliente.IdFilialeCliente = Preventivo.IdFiliale ) union (/* Cantieri a Preventivo Senza Filiale */ SELECT Cantiere.IdCantiere,Preventivo.IdCliente, 'SEDE' as Filiale, Cliente.RagioneSociale, Preventivo.RiferimentoInterno, Cantiere.DataCreazioneCantiere, 'Preventivo' as Tipologia, IdUtenteCreazioneCantiere, StatoCantiere, StatoFatturazione FROM Cantiere inner join CantierePreventivo on CantierePreventivo.IdCantierePreventivo = Cantiere.IdCantiere inner join Cliente on Cliente.IdCliente = Cantiere.IdCliente inner join Preventivo on Preventivo.IdPreventivo = CantierePreventivo.IdPreventivo where IdFiliale is null ) )q where NomeCantiere like '%' + @NomeCantiere +'%' ");
for(var i=0; i<recordset.recordset.length; i++){
data.push({
IdCantiere: recordset.recordset[i].IdCantiere,
IdCliente: recordset.recordset[i].IdCliente,
Filiale: recordset.recordset[i].Filiale,
RagioneSociale: recordset.recordset[i].RagioneSociale,
NomeCantiere: recordset.recordset[i].NomeCantiere,
DataCreazioneCantiere: recordset.recordset[i].DataCreazioneCantiere,
Tipologia: recordset.recordset[i].Tipologia,
StatoCantiere: recordset.recordset[i].StatoCantiere,
StatoFatturazione: recordset.recordset[i].StatoFatturazione
})
}
await sql.close();
return data;
}
module.exports.RicercaCantiere = RicercaCantiere;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment