/**
* Axelor Business Solutions
*
* Copyright (C) 2016 Axelor (<http://axelor.com>).
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License, version 3,
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.axelor.apps.account.web;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.axelor.apps.ReportFactory;
import com.axelor.apps.account.db.Irrecoverable;
import com.axelor.apps.account.db.repo.IrrecoverableRepository;
import com.axelor.apps.account.exception.IExceptionMessage;
import com.axelor.apps.account.report.IReport;
import com.axelor.apps.account.service.IrrecoverableService;
import com.axelor.exception.AxelorException;
import com.axelor.exception.service.TraceBackService;
import com.axelor.i18n.I18n;
import com.axelor.meta.schema.actions.ActionView;
import com.axelor.rpc.ActionRequest;
import com.axelor.rpc.ActionResponse;
import com.google.inject.Inject;
public class IrrecoverableController {
private final Logger logger = LoggerFactory.getLogger(getClass());
@Inject
private IrrecoverableService irrecoverableService;
@Inject
private IrrecoverableRepository irrecoverableRepo;
public void getIrrecoverable(ActionRequest request, ActionResponse response) {
Irrecoverable irrecoverable = request.getContext().asType(Irrecoverable.class);
irrecoverable = irrecoverableRepo.find(irrecoverable.getId());
try {
irrecoverableService.getIrrecoverable(irrecoverable);
response.setReload(true);
}
catch(Exception e) { TraceBackService.trace(response, e); }
}
public void createIrrecoverableReport(ActionRequest request, ActionResponse response) {
Irrecoverable irrecoverable = request.getContext().asType(Irrecoverable.class);
irrecoverable = irrecoverableRepo.find(irrecoverable.getId());
try {
irrecoverableService.createIrrecoverableReport(irrecoverable);
response.setReload(true);
}
catch(Exception e) { TraceBackService.trace(response, e); }
}
public void passInIrrecoverable(ActionRequest request, ActionResponse response) {
Irrecoverable irrecoverable = request.getContext().asType(Irrecoverable.class);
irrecoverable = irrecoverableRepo.find(irrecoverable.getId());
try {
int anomaly = irrecoverableService.passInIrrecoverable(irrecoverable);
response.setReload(true);
response.setFlash(I18n.get(IExceptionMessage.IRRECOVERABLE_5)+" - "+anomaly+" "+I18n.get(IExceptionMessage.IRRECOVERABLE_6));
}
catch(Exception e) { TraceBackService.trace(response, e); }
}
public void printIrrecoverable(ActionRequest request, ActionResponse response) throws AxelorException {
Irrecoverable irrecoverable = request.getContext().asType(Irrecoverable.class);
if(irrecoverable.getExportTypeSelect() == null) {
response.setFlash(I18n.get(IExceptionMessage.IRRECOVERABLE_7));
}
else {
String name = I18n.get("Irrecouverable reporting")+" "+irrecoverable.getName();
String fileLink = ReportFactory.createReport(IReport.IRRECOVERABLE, name+"-${date}")
.addParam("IrrecoverableID", irrecoverable.getId())
.addFormat(irrecoverable.getExportTypeSelect())
.toAttach(irrecoverable)
.generate()
.getFileLink();
logger.debug("Printing "+name);
response.setView(ActionView
.define(name)
.add("html", fileLink).map());
}
}
}