Untitled

mail@pastecode.io avatar
unknown
plain_text
2 months ago
2.2 kB
3
Indexable
Never
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)
}
Leave a Comment