/**
* 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 java.util.HashMap;
import java.util.Map;
import com.axelor.apps.account.db.InvoiceBatch;
import com.axelor.apps.account.db.repo.InvoiceBatchRepository;
import com.axelor.apps.account.service.invoice.InvoiceBatchService;
import com.axelor.apps.account.service.invoice.generator.batch.BatchWkf;
import com.axelor.apps.base.db.Batch;
import com.axelor.exception.AxelorException;
import com.axelor.rpc.ActionRequest;
import com.axelor.rpc.ActionResponse;
import com.axelor.rpc.Context;
import com.google.inject.Inject;
public class InvoiceBatchController {
@Inject
private InvoiceBatchService invoiceBatchService;
@Inject
private InvoiceBatchRepository invoiceBatchRepo;
/**
* Lancer le batch de mise à jour de statut.
*
* @param request
* @param response
* @throws AxelorException
*/
public void actionStatus(ActionRequest request, ActionResponse response) throws AxelorException{
InvoiceBatch invoiceBatch = request.getContext().asType(InvoiceBatch.class);
Batch batch = invoiceBatchService.wkf(invoiceBatchRepo.find(invoiceBatch.getId()));
response.setFlash(batch.getComments());
response.setReload(true);
}
/**
* Lancer le batch à travers un web service.
*
* @param request
* @param response
* @throws AxelorException
*/
public void run(ActionRequest request, ActionResponse response) throws AxelorException{
Context context = request.getContext();
Batch batch = invoiceBatchService.run((String) context.get("code"));
Map<String,Object> mapData = new HashMap<String,Object>();
mapData.put("anomaly", batch.getAnomaly());
response.setData(mapData);
}
/**
* Appliquer le domaine à la liste de facture à ventiler ou valider.
*
* @param request
* @param response
*/
public void invoiceSetDomain(ActionRequest request, ActionResponse response){
InvoiceBatch invoiceBatch = request.getContext().asType(InvoiceBatch.class);
switch (invoiceBatch.getActionSelect()) {
case 1:
response.setAttr("invoiceSet", "domain", BatchWkf.invoiceQuery(invoiceBatch, true));
break;
default:
response.setAttr("invoiceSet", "domain", BatchWkf.invoiceQuery(invoiceBatch, false));
break;
}
}
}