Untitled
unknown
plain_text
2 years ago
2.2 kB
9
Indexable
public XSerializator ATM_AUT_Notes2Dispense_Currency(int montant, BigDecimal currencyId) {
// ... (existing code)
try {
// ... (existing code)
// Iterate through the cassettes
for (XterminalComponent cassette : this.terminalCassetsList) {
// Check if the cassette has the correct currency
if (cassette.getComponentCurrency() != null && cassette.getComponentCurrency().equals(currencyId)) {
// Check if the cassette has a positive value and is operational
if (cassette.getComponentValue() != null &&
cassette.getComponentValue().intValueExact() > 0 &&
cassette.getComponentOperationalValue() != null &&
cassette.getComponentOperationalValue().intValueExact() > 0) {
// Calculate the number of notes to dispense from this cassette
int lToDist = remainder / cassette.getComponentValue().intValueExact();
if (lToDist > cassette.getComponentOperationalValue().intValueExact()) {
lToDist = cassette.getComponentOperationalValue().intValueExact();
}
// Update cassette and remaining amount
cassette.setComponentOperationalValue(cassette.getComponentOperationalValue().subtract(BigDecimal.valueOf((long) lToDist)));
totalNotes += lToDist;
remainder -= lToDist * cassette.getComponentValue().intValueExact();
// Update response attributes
String cassetteName = String.format("CASSETTE_%d", cassette.getComponentSubType().intValueExact());
sr_out.setAttribut(cassetteName, String.format("%02d", lToDist));
// Break if the requested amount has been dispensed
if (remainder <= 0) {
break;
}
}
}
}
// ... (remaining code)
} catch (Throwable var17) {
// ... (existing code)
}
// ... (existing code)
}
Editor is loading...
Leave a Comment