using SteamWare; using System; using System.Web; namespace Data { /// /// Base class for action-enabled user controls /// It is not meant to be be used directly. /// public class ActionUserControl : System.Web.UI.UserControl { protected int _idxRichiesta = 0; /// /// Richiesta di cui mostrare la history /// public int idxRichiesta { get { int answ = 0; int.TryParse(Request.QueryString["idxRichiesta"], out answ); return answ; } } /// /// Pagina corrente x redirect /// string currPage { get { return HttpContext.Current.Request.Url.PathAndQuery; } } /// /// Record della richiesta corrente /// protected DS_app.ElencolRichRow ER_curr { get { DS_app.ElencolRichRow answ = null; try { answ = DtProxy.man.taElRich.getByKey(idxRichiesta)[0]; } catch { } return answ; } } /// /// Restituisce il record dati del fornitore richiesto /// /// /// 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; } /// /// Esegue l'azione richiesta e salva/invia email secondo parametri /// /// /// /// /// Nuovo stato da assegnare alla richiesta (se -9999 = NON FA NULLA) /// 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); } /// /// Gestione azione RICHIESTA PREVENTIVO /// 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 = "Richiesta PREVENTIVO

" + "Buongiorno " + rigaForn.nome + "
" + "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.
" + "Il condominio interessato è {0}, pregasi contattare {1} al numero {2}.
La richiesta indicata è la seguente:
{3}

" + "Seguire il link seguente per maggiori informazioni."; string codAzione = "QuoteReq"; eseguiAzione(oggetto, bodyTpl, codAzione, 23, true); } } } /// /// Gestione azione INVIO SOLLECITO /// 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 = "SOLLECITO risposta

" + "Buongiorno " + rigaForn.nome + "
" + "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.
" + "Il condominio interessato è {0}, pregasi contattare {1} al numero {2}.
La richiesta indicata è la seguente:
{3}

" + "Seguire il link seguente per maggiori informazioni."; string codAzione = "SendRem"; eseguiAzione(oggetto, bodyTpl, codAzione, 20, true); } } } /// /// Gestione azione REIMPOSTA SCADENZA /// /// /// 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 = "CAMBIO SCADENZA

" + "Buongiorno " + rigaForn.nome + "
" + "Ti è stata assegnata una richiesta di intervento da b2bcondomini.it di cui è stata variata la scadenza, ora impostata a " + dataScadNew.ToString("ddd dd.MM.yyyy HH:mm") + ".
" + "Il condominio interessato è {0}, pregasi contattare {1} al numero {2}.
La richiesta indicata è la seguente:
{3}

" + "Seguire il link seguente per maggiori informazioni."; string codAzione = "SetDDate"; eseguiAzione(oggetto, bodyTpl, codAzione, -9999, true); } } } /// /// Gestione azione CAMBIO PRIORITA /// /// 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 = "CAMBIO PRIORITA' e SCADENZA

" + "Buongiorno " + rigaForn.nome + "
" + "Ti è stata assegnata una richiesta di intervento da b2bcondomini.it di cui è stata variata la priorità che ora è " + descrPriorita + " e la scadenza, ora impostata a " + dataScadNew.ToString("ddd dd.MM.yyyy HH:mm") + ".
" + "Il condominio interessato è {0}, pregasi contattare {1} al numero {2}.
" + "La richiesta indicata è la seguente:
{3}

" + "Seguire il link seguente per maggiori informazioni."; string codAzione = "PrioMod"; eseguiAzione(oggetto, bodyTpl, codAzione, -9999, true); } } } /// /// Gestione Azione ANNULLAMENTO e RIASSEGNAZIONE FORNITORE /// /// /// 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 = "ANNULLAMENTO RICHIESTA di intervento

" + "Buongiorno " + rigaForn.nome + "
" + "E' stata annullata l'assegnazione alla tua azienda di una richiesta di intervento da b2bcondomini.it.
" + "Il condominio interessato era {0}.
" + "La richiesta indicata era la seguente:
{3}

" + "Seguire il link seguente 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 = "ASSEGNAZIONE INTERVENTO

" + "Buongiorno " + rigaForn.nome + "
" + "Ti è stata assegnata una nuova richiesta di intervento da b2bcondomini.it.
" + "Il condominio interessato è {0}, pregasi contattare {1} al numero {2}.
" + "La richiesta indicata è la seguente:
{3}

" + "Seguire il link seguente per maggiori informazioni."; codAzione = "SetSupp"; eseguiAzione(oggetto, bodyTpl, codAzione, -9999, true); } } } /// /// Gestione azione MODIFICA MESSAGGIO /// 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 = "AGGIORNAMENTO MESSAGGIO

" + "Buongiorno " + rigaForn.nome + "
" + "Il testo della richiesta di intervento è stato modificato, ora è:
" + "" + messaggio + "

" + "Il condominio interessato è {0}, pregasi contattare {1} al numero {2}.
La richiesta indicata è la seguente:
{3}

" + "Seguire il link seguente per maggiori informazioni."; string codAzione = "MessMod"; DtProxy.man.taElRich.UpdateText(idxRichiesta, messaggio, riga.note); eseguiAzione(oggetto, bodyTpl, codAzione, -9999, true); } } } /// /// Gestione azione AGGIUNTA NOTE /// 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 = "AGGIORNAMENTO NOTE

" + "Buongiorno " + rigaForn.nome + "
" + "E' stata aggiunta la seguente nota per l'intervento in oggetto:
" + "" + note + "

" + "Il condominio interessato è {0}, pregasi contattare {1} al numero {2}.
La richiesta indicata è la seguente:
{3}

" + "Seguire il link seguente per maggiori informazioni."; string codAzione = "NoteAdd"; DtProxy.man.taElRich.UpdateText(idxRichiesta, riga.messaggio, riga.note + "
" + note); eseguiAzione(oggetto, bodyTpl, codAzione, -9999, true); } } } /// /// modalità edit corrente /// public ER_EditMode currMode { get { return (ER_EditMode)memLayer.ML.objSessionObj("ER_EditMode"); } set { memLayer.ML.setSessionVal("ER_EditMode", value); } } } }