use of com.axelor.apps.bankpayment.db.BankOrderFileFormat in project axelor-open-suite by axelor.
the class BankOrderServiceImpl method generateFile.
@Override
public File generateFile(BankOrder bankOrder) throws JAXBException, IOException, AxelorException, DatatypeConfigurationException {
if (bankOrder.getBankOrderLineList() == null || bankOrder.getBankOrderLineList().isEmpty()) {
return null;
}
bankOrder.setFileGenerationDateTime(LocalDateTime.now());
BankOrderFileFormat bankOrderFileFormat = bankOrder.getBankOrderFileFormat();
File file = null;
switch(bankOrderFileFormat.getOrderFileFormatSelect()) {
case BankOrderFileFormatRepository.FILE_FORMAT_PAIN_001_001_02_SCT:
file = new BankOrderFile00100102Service(bankOrder).generateFile();
break;
case BankOrderFileFormatRepository.FILE_FORMAT_PAIN_001_001_03_SCT:
file = new BankOrderFile00100103Service(bankOrder).generateFile();
break;
case BankOrderFileFormatRepository.FILE_FORMAT_PAIN_XXX_CFONB320_XCT:
file = new BankOrderFileAFB320XCTService(bankOrder).generateFile();
break;
case BankOrderFileFormatRepository.FILE_FORMAT_PAIN_XXX_CFONB160_ICT:
file = new BankOrderFileAFB160ICTService(bankOrder).generateFile();
break;
case BankOrderFileFormatRepository.FILE_FORMAT_PAIN_008_001_01_SDD:
file = new BankOrderFile00800101Service(bankOrder, BankOrderFile008Service.SEPA_TYPE_CORE).generateFile();
break;
case BankOrderFileFormatRepository.FILE_FORMAT_PAIN_008_001_01_SBB:
file = new BankOrderFile00800101Service(bankOrder, BankOrderFile008Service.SEPA_TYPE_SBB).generateFile();
break;
case BankOrderFileFormatRepository.FILE_FORMAT_PAIN_008_001_02_SDD:
file = new BankOrderFile00800102Service(bankOrder, BankOrderFile008Service.SEPA_TYPE_CORE).generateFile();
break;
case BankOrderFileFormatRepository.FILE_FORMAT_PAIN_008_001_02_SBB:
file = new BankOrderFile00800102Service(bankOrder, BankOrderFile008Service.SEPA_TYPE_SBB).generateFile();
break;
default:
throw new AxelorException(bankOrder, TraceBackRepository.CATEGORY_INCONSISTENCY, I18n.get(IExceptionMessage.BANK_ORDER_FILE_UNKNOWN_FORMAT));
}
if (file == null) {
throw new AxelorException(bankOrder, TraceBackRepository.CATEGORY_INCONSISTENCY, I18n.get(IExceptionMessage.BANK_ORDER_ISSUE_DURING_FILE_GENERATION), bankOrder.getBankOrderSeq());
}
MetaFiles metaFiles = Beans.get(MetaFiles.class);
try (InputStream is = new FileInputStream(file)) {
metaFiles.attach(is, file.getName(), bankOrder);
bankOrder.setGeneratedMetaFile(metaFiles.upload(file));
}
return file;
}
use of com.axelor.apps.bankpayment.db.BankOrderFileFormat in project axelor-open-suite by axelor.
the class EbicsController method sendFULRequest.
public void sendFULRequest(ActionRequest request, ActionResponse response) {
EbicsUser ebicsUser = Beans.get(EbicsUserRepository.class).find(request.getContext().asType(EbicsUser.class).getId());
try {
MetaFile testDataMetaFile = ebicsUser.getTestDataFile();
MetaFile testSignatureMetaFile = ebicsUser.getTestSignatureFile();
BankOrderFileFormat bankOrderFileFormat = ebicsUser.getTestBankOrderFileFormat();
if (testDataMetaFile != null && bankOrderFileFormat != null) {
File testSignatureFile = null;
if (ebicsUser.getEbicsPartner().getEbicsTypeSelect() == EbicsPartnerRepository.EBICS_TYPE_TS && testSignatureMetaFile != null) {
testSignatureFile = MetaFiles.getPath(testSignatureMetaFile).toFile();
}
Beans.get(EbicsService.class).sendFULRequest(ebicsUser, ebicsUser.getTestSignatoryEbicsUser(), null, MetaFiles.getPath(testDataMetaFile).toFile(), bankOrderFileFormat, testSignatureFile);
} else {
response.setFlash(I18n.get(IExceptionMessage.EBICS_TEST_MODE_NOT_ENABLED));
}
} catch (Exception e) {
response.setFlash(stripClass(e.getLocalizedMessage()));
}
response.setReload(true);
}
use of com.axelor.apps.bankpayment.db.BankOrderFileFormat in project axelor-open-suite by axelor.
the class BankOrderCreateService method createBankOrder.
/**
* Créer un ordre bancaire avec tous les paramètres
*
* @param
* @return
* @throws AxelorException
*/
public BankOrder createBankOrder(PaymentMode paymentMode, Integer partnerType, LocalDate bankOrderDate, Company senderCompany, BankDetails senderBankDetails, Currency currency, String senderReference, String senderLabel, int technicalOriginSelect) throws AxelorException {
BankOrderFileFormat bankOrderFileFormat = paymentMode.getBankOrderFileFormat();
BankOrder bankOrder = new BankOrder();
bankOrder.setOrderTypeSelect(paymentMode.getOrderTypeSelect());
bankOrder.setPaymentMode(paymentMode);
bankOrder.setPartnerTypeSelect(partnerType);
if (!bankOrderFileFormat.getIsMultiDate()) {
bankOrder.setBankOrderDate(bankOrderDate);
}
bankOrder.setStatusSelect(BankOrderRepository.STATUS_DRAFT);
bankOrder.setRejectStatusSelect(BankOrderRepository.REJECT_STATUS_NOT_REJECTED);
bankOrder.setSenderCompany(senderCompany);
bankOrder.setSenderBankDetails(senderBankDetails);
EbicsUser signatoryEbicsUser = bankOrderService.getDefaultEbicsUserFromBankDetails(senderBankDetails);
User signatoryUser = null;
if (signatoryEbicsUser != null) {
signatoryUser = signatoryEbicsUser.getAssociatedUser();
bankOrder.setSignatoryEbicsUser(signatoryEbicsUser);
}
if (signatoryUser != null) {
bankOrder.setSignatoryUser(signatoryUser);
}
if (!bankOrderFileFormat.getIsMultiCurrency()) {
bankOrder.setBankOrderCurrency(currency);
}
bankOrder.setCompanyCurrency(senderCompany.getCurrency());
bankOrder.setSenderReference(senderReference);
bankOrder.setSenderLabel(senderLabel);
bankOrder.setBankOrderLineList(new ArrayList<BankOrderLine>());
bankOrder.setBankOrderFileFormat(bankOrderFileFormat);
bankOrder.setTechnicalOriginSelect(technicalOriginSelect);
return bankOrder;
}
Aggregations