cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Refresh receipt payments CCO

matteogiacon
Explorer
355

Hi all,

we need to add a card payment in the receipt via plugin and we have done it like this:

String err = null;
try {
\\ADD THE PAYMENT

	PaymentItemEntity payment = new PaymentItemEntity();
	CDBSession session = CDBSessionFactory.instance.createSession();
	PaymentCardManager pm = new PaymentCardManager(session);
	PaymentCardManager pcm = new PaymentCardManager(session);

	PaymentItemPosService ps = ServiceFactory.INSTANCE.getOrCreateServiceInstance(PaymentItemPosService.class, session);
	PaymentCardEntity pc = pm.getPaymentCard("11");

	payment.setCreditCardTypeCode(pc.getTypeCode());
	payment.setCreditCardErpTypeCode(pc.getTypeCodeErp());
	payment.setPaymentFormCode("02");
	payment.setBusinessTransactionAmount(amount);
	payment.setOriginalBusinessTransactionAmount(amount);
	payment.setNote("PAYMENT");
	payment.setMarkChanged(true);
	payment.setExternalId(Integer.toString(receipt.getPaymentItems().size()));
	payment.fillPosition();
	ps.addPaymentItems(receipt, payment);
	pcm.update(pc);


\\REFRESH THE RECEIPT

	CalculationPosService calculationPosService = ServiceFactory.INSTANCE.getOrCreateServiceInstance(CalculationPosService.class, session);
	calculationPosService.recalculateReceipt(receipt);
	ReceiptManager rm = new ReceiptManager(session);
	rm.update(receipt);

}catch(Exception e){
	err = e.getMessage();
}
finally{
	session.closeDBSession();
}

 UIEventDispatcher.INSTANCE.dispatchAction(CConst.UIEventsIds.RECEIPT_REFRESH,null, receipt);

This work, but the payments area doesn't show the payment added after the refresh.
What I'm doing wrong?

Thanks in advance.

Accepted Solutions (0)

Answers (0)