Files
b2bcondomini.it/Data/ActionUserControl.cs
T
2018-08-08 15:35:53 +02:00

349 lines
14 KiB
C#

using SteamWare;
using System;
using System.Web;
namespace Data
{
/// <summary>
/// Base class for action-enabled user controls
/// It is not meant to be be used directly.
/// </summary>
public class ActionUserControl : System.Web.UI.UserControl
{
protected int _idxRichiesta = 0;
/// <summary>
/// Richiesta di cui mostrare la history
/// </summary>
public int idxRichiesta
{
get
{
int answ = 0;
int.TryParse(Request.QueryString["idxRichiesta"], out answ);
return answ;
}
}
/// <summary>
/// Pagina corrente x redirect
/// </summary>
string currPage
{
get
{
return HttpContext.Current.Request.Url.PathAndQuery;
}
}
/// <summary>
/// Record della richiesta corrente
/// </summary>
protected DS_app.ElencolRichRow ER_curr
{
get
{
DS_app.ElencolRichRow answ = null;
try
{
answ = DtProxy.man.taElRich.getByKey(idxRichiesta)[0];
}
catch
{ }
return answ;
}
}
/// <summary>
/// Restituisce il record dati del fornitore richiesto
/// </summary>
/// <param name="idxFornitore"></param>
/// <returns></returns>
protected DS_app.AnagFornitoriRow rigaFornitore(int idxFornitore)
{
// recupero dati della richiesta corrente
var riga = ER_curr;
DS_app.AnagFornitoriRow answ = null;
try
{
answ = DtProxy.man.taAF.getByKey(idxFornitore)[0];
}
catch
{ }
return answ;
}
/// <summary>
/// Esegue l'azione richiesta e salva/invia email secondo parametri
/// </summary>
/// <param name="oggetto"></param>
/// <param name="bodyTpl"></param>
/// <param name="codAzione"></param>
/// <param name="idxStato">Nuovo stato da assegnare alla richiesta (se -9999 = NON FA NULLA)</param>
/// <param name="doRedirect"></param>
public void eseguiAzione(string oggetto, string bodyTpl, string codAzione, int idxStato, bool doRedirect)
{
// recupero dati della richiesta corrente
var riga = ER_curr;
// invio email SOLLECITO al fornitore...
string destinatario = "";
try
{
destinatario = DtProxy.man.taAF.getByKey(riga.idxFornitore)[0].indirizzo_email;
}
catch
{
destinatario = memLayer.ML.CRS("_adminEmail");
}
string corpo = string.Format(bodyTpl, riga.nom_cond, riga.genContatto, riga.telContatto, riga.messaggio);
// salvo azione
DtProxy.man.taER_Acts.InsertQuery(idxRichiesta, DateTime.Now, codAzione, devicesAuthProxy.stObj.utente, corpo);
// invio!
utils.inviaEmail(destinatario, oggetto, corpo, 3); //!!!HARD CODED a 3 tutto
// cambio stato (se > -9999)
if (idxStato > -9999)
{
DtProxy.man.taElRich.UpdateStato(idxRichiesta, idxStato);
}
// se richiesto redireziona...
if (doRedirect) Response.Redirect(currPage);
}
/// <summary>
/// Gestione azione RICHIESTA PREVENTIVO
/// </summary>
public void doQuoteReq()
{
// recupero dati della richiesta corrente
var riga = ER_curr;
if (riga != null)
{
// recupero fornitore...
var rigaForn = rigaFornitore(riga.idxFornitore);
if (rigaForn != null)
{
string oggetto = "RICHIESTA PREVENTIVO intervento " + idxRichiesta.ToString();
string bodyTpl =
"<b>Richiesta PREVENTIVO</b><br><br>" +
"Buongiorno <b>" + rigaForn.nome + "</b><br>" +
"Ti è stata assegnata una richiesta di intervento da b2bcondomini.it per la quale è stato deciso di procedere con preventivo e relativa approvazione. Ti cheidiamo di predisporlo ed inviarlo sulla piattaforma al più presto.<br/>" +
"Il condominio interessato è <b>{0}</b>, pregasi contattare <b>{1}</b> al numero <b>{2}</b>.<br/>La richiesta indicata è la seguente:<br/>{3}<br/><br/>" +
"Seguire il <a href=\"http://www.b2bcondomini.it/PAZ/DettaglioIntervento?idxRichiesta=" + idxRichiesta + "\"> link seguente</a> per maggiori informazioni.";
string codAzione = "QuoteReq";
eseguiAzione(oggetto, bodyTpl, codAzione, 23, true);
}
}
}
/// <summary>
/// Gestione azione INVIO SOLLECITO
/// </summary>
public void doSendRem()
{
// recupero dati della richiesta corrente
var riga = ER_curr;
if (riga != null)
{
// recupero fornitore...
var rigaForn = rigaFornitore(riga.idxFornitore);
if (rigaForn != null)
{
string oggetto = "SOLLECITO intervento " + idxRichiesta.ToString();
string bodyTpl =
"<b>SOLLECITO risposta</b><br><br>" +
"Buongiorno <b>" + rigaForn.nome + "</b><br>" +
"Ti è stata assegnata una richiesta di intervento da b2bcondomini.it e non hai ancora risposto entro i termini del servizio. Ti ricordiamo che se non lo farai al più presto la richiesta potrebbe venire riassegnata ad un altro fornitore.<br/>" +
"Il condominio interessato è <b>{0}</b>, pregasi contattare <b>{1}</b> al numero <b>{2}</b>.<br/>La richiesta indicata è la seguente:<br/>{3}<br/><br/>" +
"Seguire il <a href=\"http://www.b2bcondomini.it/PAZ/DettaglioIntervento?idxRichiesta=" + idxRichiesta + "\"> link seguente</a> per maggiori informazioni.";
string codAzione = "SendRem";
eseguiAzione(oggetto, bodyTpl, codAzione, 20, true);
}
}
}
/// <summary>
/// Gestione azione REIMPOSTA SCADENZA
/// </summary>
/// <param name="dataScad"></param>
/// <param name="oraScad"></param>
public void doSetDDate(string dataScad, string oraScad)
{ // recupero dati della richiesta corrente
var riga = ER_curr;
if (riga != null)
{
// recupero fornitore...
var rigaForn = rigaFornitore(riga.idxFornitore);
if (rigaForn != null)
{
DateTime dataScadNew = DateTime.Now.Date;
TimeSpan oraScadNew = DateTime.Now.TimeOfDay;
try
{
DateTime.TryParse(dataScad, out dataScadNew);
TimeSpan.TryParse(oraScad, out oraScadNew);
// sommo...
dataScadNew = dataScadNew.Add(oraScadNew);
// salvo nuova data scadenza...
DtProxy.man.taElRich.UpdateScad(idxRichiesta, dataScadNew);
}
catch
{ }
string oggetto = "CAMBIO SCADENZA intervento " + idxRichiesta.ToString();
string bodyTpl =
"<b>CAMBIO SCADENZA</b><br><br>" +
"Buongiorno <b>" + rigaForn.nome + "</b><br>" +
"Ti è stata assegnata una richiesta di intervento da b2bcondomini.it di cui è stata variata la scadenza, ora impostata a <b>" + dataScadNew.ToString("ddd dd.MM.yyyy HH:mm") + "</b>.<br/>" +
"Il condominio interessato è <b>{0}</b>, pregasi contattare <b>{1}</b> al numero <b>{2}</b>.<br/>La richiesta indicata è la seguente:<br/>{3}<br/><br/>" +
"Seguire il <a href=\"http://www.b2bcondomini.it/PAZ/DettaglioIntervento?idxRichiesta=" + idxRichiesta + "\"> link seguente</a> per maggiori informazioni.";
string codAzione = "SetDDate";
eseguiAzione(oggetto, bodyTpl, codAzione, -9999, true);
}
}
}
/// <summary>
/// Gestione azione CAMBIO PRIORITA
/// </summary>
/// <param name="idxPrior"></param>
public void doPrioMod(int idxPrior)
{ // recupero dati della richiesta corrente
var riga = ER_curr;
if (riga != null)
{
// recupero fornitore...
var rigaForn = rigaFornitore(riga.idxFornitore);
if (rigaForn != null)
{
DateTime dataScadNew = DateTime.Now;
string descrPriorita = "";
try
{
var rigaPrio = DtProxy.man.taAP.getByKey(idxPrior)[0];
// sommo priorità ad adesso...
dataScadNew = dataScadNew.AddHours(rigaPrio.scadenzaGg * 24);
descrPriorita = rigaPrio.descrPriorita;
// salvo nuova data scadenza...
DtProxy.man.taElRich.UpdatePrior(idxRichiesta, idxPrior, dataScadNew);
}
catch
{ }
string oggetto = "CAMBIO PRIORITA' e SCADENZA intervento " + idxRichiesta.ToString();
string bodyTpl =
"<b>CAMBIO PRIORITA' e SCADENZA</b><br><br>" +
"Buongiorno <b>" + rigaForn.nome + "</b><br>" +
"Ti è stata assegnata una richiesta di intervento da b2bcondomini.it di cui è stata variata la priorità che ora è <b>" + descrPriorita + "</b> e la scadenza, ora impostata a <b>" + dataScadNew.ToString("ddd dd.MM.yyyy HH:mm") + "</b>.<br/>" +
"Il condominio interessato è <b>{0}</b>, pregasi contattare <b>{1}</b> al numero <b>{2}</b>.<br/>" +
"La richiesta indicata è la seguente:<br/>{3}<br/><br/>" +
"Seguire il <a href=\"http://www.b2bcondomini.it/PAZ/DettaglioIntervento?idxRichiesta=" + idxRichiesta + "\"> link seguente</a> per maggiori informazioni.";
string codAzione = "PrioMod";
eseguiAzione(oggetto, bodyTpl, codAzione, -9999, true);
}
}
}
/// <summary>
/// Gestione Azione ANNULLAMENTO e RIASSEGNAZIONE FORNITORE
/// </summary>
/// <param name="idxArea"></param>
/// <param name="idxForn"></param>
public void doRemSetSupp(int idxArea, int idxForn)
{
// recupero dati della richiesta corrente
var riga = ER_curr;
if (riga != null)
{
// recupero fornitore...
var rigaForn = rigaFornitore(riga.idxFornitore);
if (rigaForn != null)
{
// STEP 1: scrivo al VECCHIO per notificare FINE ASSEGNAZIONE
string oggetto = "ANNULLAMENTO RICHIESTA intervento " + idxRichiesta.ToString();
string bodyTpl =
"<b>ANNULLAMENTO RICHIESTA di intervento</b><br><br>" +
"Buongiorno <b>" + rigaForn.nome + "</b><br>" +
"E' stata annullata l'assegnazione alla tua azienda di una richiesta di intervento da b2bcondomini.it.<br/>" +
"Il condominio interessato era <b>{0}</b>.<br/>" +
"La richiesta indicata era la seguente:<br/>{3}<br/><br/>" +
"Seguire il <a href=\"http://www.b2bcondomini.it/PAZ/DettaglioIntervento?idxRichiesta=" + idxRichiesta + "\"> link seguente</a> per maggiori informazioni.";
string codAzione = "RemSupp";
eseguiAzione(oggetto, bodyTpl, codAzione, -9999, false);
rigaForn = rigaFornitore(idxForn);
// STEP 2: scrivo al NUOVO fornitore... salvo nuova data scadenza...
DtProxy.man.taElRich.UpdateForn(idxRichiesta, idxArea, idxForn);
oggetto = "NUOVA RICHIESTA intervento " + idxRichiesta.ToString();
bodyTpl =
"<b>ASSEGNAZIONE INTERVENTO</b><br><br>" +
"Buongiorno <b>" + rigaForn.nome + "</b><br>" +
"Ti è stata assegnata una nuova richiesta di intervento da b2bcondomini.it.<br/>" +
"Il condominio interessato è <b>{0}</b>, pregasi contattare <b>{1}</b> al numero <b>{2}</b>.<br/>" +
"La richiesta indicata è la seguente:<br/>{3}<br/><br/>" +
"Seguire il <a href=\"http://www.b2bcondomini.it/PAZ/DettaglioIntervento?idxRichiesta=" + idxRichiesta + "\"> link seguente</a> per maggiori informazioni.";
codAzione = "SetSupp";
eseguiAzione(oggetto, bodyTpl, codAzione, -9999, true);
}
}
}
/// <summary>
/// Gestione azione MODIFICA MESSAGGIO
/// </summary>
public void doUpdateMess(string messaggio)
{
// recupero dati della richiesta corrente
var riga = ER_curr;
if (riga != null)
{
// recupero fornitore...
var rigaForn = rigaFornitore(riga.idxFornitore);
if (rigaForn != null)
{
string oggetto = "AGGIORNAMENTO MESSAGGIO intervento " + idxRichiesta.ToString();
string bodyTpl =
"<b>AGGIORNAMENTO MESSAGGIO</b><br><br>" +
"Buongiorno <b>" + rigaForn.nome + "</b><br>" +
"Il testo della richiesta di intervento è stato modificato, ora è:<br/>" +
"<i>" + messaggio + "</i><br/><br/>" +
"Il condominio interessato è <b>{0}</b>, pregasi contattare <b>{1}</b> al numero <b>{2}</b>.<br/>La richiesta indicata è la seguente:<br/>{3}<br/><br/>" +
"Seguire il <a href=\"http://www.b2bcondomini.it/PAZ/DettaglioIntervento?idxRichiesta=" + idxRichiesta + "\"> link seguente</a> per maggiori informazioni.";
string codAzione = "MessMod";
DtProxy.man.taElRich.UpdateText(idxRichiesta, messaggio, riga.note);
eseguiAzione(oggetto, bodyTpl, codAzione, -9999, true);
}
}
}
/// <summary>
/// Gestione azione AGGIUNTA NOTE
/// </summary>
public void doAddNote(string note)
{
// recupero dati della richiesta corrente
var riga = ER_curr;
if (riga != null)
{
// recupero fornitore...
var rigaForn = rigaFornitore(riga.idxFornitore);
if (rigaForn != null)
{
string oggetto = "AGGIORNAMENTO NOTE intervento " + idxRichiesta.ToString();
string bodyTpl =
"<b>AGGIORNAMENTO NOTE</b><br><br>" +
"Buongiorno <b>" + rigaForn.nome + "</b><br>" +
"E' stata aggiunta la seguente nota per l'intervento in oggetto:<br/>" +
"<i>" + note + "</i><br/><br/>" +
"Il condominio interessato è <b>{0}</b>, pregasi contattare <b>{1}</b> al numero <b>{2}</b>.<br/>La richiesta indicata è la seguente:<br/>{3}<br/><br/>" +
"Seguire il <a href=\"http://www.b2bcondomini.it/PAZ/DettaglioIntervento?idxRichiesta=" + idxRichiesta + "\"> link seguente</a> per maggiori informazioni.";
string codAzione = "NoteAdd";
DtProxy.man.taElRich.UpdateText(idxRichiesta, riga.messaggio, riga.note + "<hr/>" + note);
eseguiAzione(oggetto, bodyTpl, codAzione, -9999, true);
}
}
}
/// <summary>
/// modalità edit corrente
/// </summary>
public ER_EditMode currMode
{
get
{
return (ER_EditMode)memLayer.ML.objSessionObj("ER_EditMode");
}
set
{
memLayer.ML.setSessionVal("ER_EditMode", value);
}
}
}
}