package it.agilis.mens.azzeroCO2.client.mvc.controllers; import com.extjs.gxt.ui.client.Registry; import com.extjs.gxt.ui.client.mvc.Controller; import com.google.gwt.core.client.GWT; import com.google.gwt.i18n.client.NumberFormat; import com.google.gwt.user.client.rpc.AsyncCallback; import it.agilis.mens.azzeroCO2.client.MyInfo; import it.agilis.mens.azzeroCO2.client.mvc.views.BaseView; import it.agilis.mens.azzeroCO2.client.services.AzzeroCO2Constants; import it.agilis.mens.azzeroCO2.client.services.HustonServiceAsync; import it.agilis.mens.azzeroCO2.shared.EMailVTO; import it.agilis.mens.azzeroCO2.shared.git.GitRepositoryStateModel; import it.agilis.mens.azzeroCO2.shared.model.OrdineModel; import it.agilis.mens.azzeroCO2.shared.model.RiepilogoModel; import it.agilis.mens.azzeroCO2.shared.model.amministrazione.CoefficienteModel; import it.agilis.mens.azzeroCO2.shared.model.amministrazione.ProgettoDiCompensazioneModel; import it.agilis.mens.azzeroCO2.shared.model.registrazione.UserInfoModel; import it.agilis.mens.azzeroCO2.shared.vto.OrdineVTO; import java.util.*; /** * Created by IntelliJ IDEA. * User: giovannilt * Date: 8/27/11 * Time: 3:40 PM * To change this template use File | Settings | File Templates. */ public abstract class BaseController extends Controller { private HustonServiceAsync hustonService = Registry.get(AzzeroCO2Constants.HUSTON_SERVICE); private UserInfoModel userInfoModel; private Map<String, CoefficienteModel> coefficientiMAP = new HashMap<String, CoefficienteModel>(); private List<ProgettoDiCompensazioneModel> progettiDiCompensazioneList = new ArrayList<ProgettoDiCompensazioneModel>(); private String info = ""; protected final NumberFormat number = NumberFormat.getFormat("0.00"); public UserInfoModel getUserInfoModel() { return userInfoModel; } public void setUserInfoModel(UserInfoModel userInfoModel) { this.userInfoModel = userInfoModel; } public HustonServiceAsync getHustonService() { return hustonService; } public void setHustonService(HustonServiceAsync hustonService) { this.hustonService = hustonService; } public void setCoefficienti() { AsyncCallback<Map<String, CoefficienteModel>> aCallback = new AsyncCallback<Map<String, CoefficienteModel>>() { public void onFailure(Throwable caught) { MyInfo.show("Error", "Errore impossibile connettersi al server", 7000); } @Override public void onSuccess(Map<String, CoefficienteModel> result) { coefficientiMAP.clear(); coefficientiMAP.putAll(result); } }; hustonService.getCoefficienti(aCallback); } public void setProgettiDiCompensazione() { AsyncCallback<List<ProgettoDiCompensazioneModel>> aCallback = new AsyncCallback<List<ProgettoDiCompensazioneModel>>() { public void onFailure(Throwable caught) { MyInfo.show("Error", "Errore impossibile connettersi al server", 7000); } @Override public void onSuccess(List<ProgettoDiCompensazioneModel> result) { progettiDiCompensazioneList.clear(); progettiDiCompensazioneList.addAll(result); } }; hustonService.getListOfProgettoDiCompensazione(false, aCallback); } public void setInfo() { AsyncCallback<GitRepositoryStateModel> aCallback = new AsyncCallback<GitRepositoryStateModel>() { public void onFailure(Throwable caught) { MyInfo.show("Error", "Errore impossibile connettersi al server", 7000); } @Override public void onSuccess(GitRepositoryStateModel result) { info = result.toString(); } }; hustonService.checkGitRevision(aCallback); } public Map<String, CoefficienteModel> getCoefficientiMAP() { return coefficientiMAP; } public void setCoefficientiMAP(Map<String, CoefficienteModel> coefficientiMAP) { this.coefficientiMAP = coefficientiMAP; } public List<ProgettoDiCompensazioneModel> getProgettiDiCompensazioneList() { return progettiDiCompensazioneList; } public void setProgettiDiCompensazioneList(List<ProgettoDiCompensazioneModel> progettiDiCompensazioneList) { this.progettiDiCompensazioneList = progettiDiCompensazioneList; } public String getInfo() { return info; } public void sentMail(OrdineVTO result) { EMailVTO data = new EMailVTO(); /*data.setBody(result.getNome() + " /n " + "" + GWT.getModuleBaseURL() + "downloadCertificato?certificato=" + result.getPagamentoModel().getCertificatoPDF() + ""); */ data.setBody("Ciao " + userInfoModel.getNome() + ",\n" + "\n" + "l'operazione di compensazione che hai richiesto è andata a buon fine.\n" + "Di seguito il riepilogo dei dati: \n" + "\n" + "Nome: " + userInfoModel.getNome() + "\n" + "Cognome: " + userInfoModel.getCognome() + "\n" + "Società: " + userInfoModel.getRagioneSociale() + "\n" + "Mail: " + userInfoModel.getEmail() + "\n" + "Indirizzo: " + userInfoModel.getIndirizzo() + "\n" + "CAP: " + userInfoModel.getCap() + "\n" + "Città: " + userInfoModel.getCitta() + "\n" + "Codice Fiscale: " + userInfoModel.getPivaCF() + "\n" + "Partita IVA: " + userInfoModel.getPivaCF() + "\n" + "\n" + "Progetto: " + result.getProgettoDiCompensazioneModel().getNome() + "\n" + "\n" + "Totale kgCO2*: " + result.getPagamentoModel().getKgCO2() + "\n" + "Crediti di emissione: " + result.getPagamentoModel().getKgCO2() / 1000 + "\n" + "Euro: " + result.getPagamentoModel().getIMPORTO() + "\n" + "\n" + "*La CO2 che viene presa in cosiderazione è CO2 equivalente (CO2eq), ovvero l'indice che rappresenta l'impatto in atmosfera di tutti i gas serra: quindi non solo il biossido di carbonio, ma anche il metano, i perfluorocarburi e l'ossido di diazoto.\n" + "\n" + "\n" + "Grazie e arrivederci!\n" + "-- \n" + "\n" + "AzzeroCO2 è una società di consulenza energetico-ambientale che offre ai suoi clienti la possibilità di ridurre le emissioni ottimizzando i costi di gestione e le risorse a disposizione. Per saperne di più visita il nostro sito: www.azzeroco2.it"); data.setFromUser("no-reply@azzeroco2.it"); data.setSubject("Conferma ordine compensazione: " + userInfoModel.getRagioneSociale()); data.setToUser(Arrays.asList("serena@mensagilis.it", "giovanni@mensagilis.it")); /** * • marketing@azzeroco2.it * • info@azzeroco2.it * */ AsyncCallback<Void> aCallback = new AsyncCallback<Void>() { public void onFailure(Throwable caught) { MyInfo.show("Error", "Errore impossibile connettersi al server.", 7000); } @Override public void onSuccess(Void aVoid) { MyInfo.show("Email Inviata Con successo."); } }; hustonService.sentMail(data, aCallback); } public static void openConfermaToAzzeroCO2_IT(OrdineModel ordine) { String url = GWT.getModuleBaseURL() + "azzeroCo2ITPutInfoServiceOK?idOrdine=" + ordine.getOrdineId(); com.google.gwt.user.client.Window.open(url, "AzzeroCO2", "menubar=no," + "location=false," + "resizable=yes," + "scrollbars=yes," + "status=no," + "dependent=true"); } public double getTotaleKgCO2(OrdineModel model, BaseView view) { List<RiepilogoModel> eventoRiepilogoModels = view.riepilogo(getCoefficientiMAP()); double totale = 0; for (RiepilogoModel r : eventoRiepilogoModels) { totale += r.getKgCO2(); } double ton= totale / 1000; if(ton>=0 && ton<0.999){ ton= 1; } else { ton= Math.round(ton); } totale = ton * 1000; return totale; } }