Fix su calcolo qta in DialogInputQuantity
This commit is contained in:
parent
8124382b8b
commit
3d895cae66
@ -1200,6 +1200,12 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
||||
dto.setCanPartitaMagBeChanged(false);
|
||||
dto.setCanDataScadBeChanged(false);
|
||||
|
||||
} else {
|
||||
dto.setNumCnf(item.getNumCnfCollo() != null ? item.getNumCnfCollo().intValue() : item.getNumCnfOrd().intValue());
|
||||
|
||||
if(dto.getNumCnf() != null && dto.getQtaTot() != null && dto.getNumCnf() > 0 && dto.getQtaTot().compareTo(BigDecimal.ZERO) > 0) {
|
||||
dto.setQtaCnf(dto.getQtaTot().divide(new BigDecimal(dto.getNumCnf()), 3, RoundingMode.HALF_EVEN));
|
||||
}
|
||||
}
|
||||
|
||||
boolean canOverflowQuantity = SettingsManager.iDB().isFlagCanAddExtraQuantitySpedizione();
|
||||
|
||||
@ -28,6 +28,7 @@ import android.widget.EditText;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.GregorianCalendar;
|
||||
@ -288,17 +289,24 @@ public class DialogInputQuantity {
|
||||
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
|
||||
imm.showSoftInput(editTextToFocus, InputMethodManager.SHOW_IMPLICIT);
|
||||
|
||||
|
||||
|
||||
currentBinding.saveBtn.setOnClickListener(view -> onConfirm(context, currentQuantityDto, dialogCallback, false));
|
||||
currentBinding.abortBtn.setOnClickListener(view -> { if(onAbort != null) onAbort.run(); });
|
||||
|
||||
currentBinding.closeLuBtn.setVisibility(showCloseUL ? View.VISIBLE : View.INVISIBLE);
|
||||
currentBinding.closeLuBtn.setOnClickListener(view -> onConfirm(context, currentQuantityDto, dialogCallback, true));
|
||||
}, 100);
|
||||
|
||||
});
|
||||
|
||||
currentBinding.saveBtn.setOnClickListener(view -> {
|
||||
onConfirm(context, currentQuantityDto, dialogCallback, false);
|
||||
currentDialog.dismiss();
|
||||
});
|
||||
currentBinding.abortBtn.setOnClickListener(view -> {
|
||||
if(onAbort != null) onAbort.run();
|
||||
currentDialog.dismiss();
|
||||
});
|
||||
|
||||
currentBinding.closeLuBtn.setVisibility(showCloseUL ? View.VISIBLE : View.INVISIBLE);
|
||||
currentBinding.closeLuBtn.setOnClickListener(view -> {
|
||||
onConfirm(context, currentQuantityDto, dialogCallback, true);
|
||||
currentDialog.dismiss();
|
||||
});
|
||||
|
||||
initDatePicker(context, currentQuantityDto, currentBinding.getRoot().findViewById(R.id.input_data_scad));
|
||||
|
||||
@ -328,8 +336,18 @@ public class DialogInputQuantity {
|
||||
quantityDTO.batchLot.set(dto.batchLot);
|
||||
if(quantityDTO.qtaCnf.get(false) == null) {
|
||||
if(dto.getQtaCnf() != null) {
|
||||
|
||||
quantityDTO.qtaCnf.set(dto.getQtaCnf().floatValue());
|
||||
|
||||
} else if(dto.numCnf != null && dto.qtaTot != null &&
|
||||
dto.numCnf > 0 && dto.qtaTot.compareTo(BigDecimal.ZERO) > 0) {
|
||||
|
||||
quantityDTO.qtaCnfNotificationEnabled = false;
|
||||
quantityDTO.qtaCnf.set(dto.qtaTot.divide(new BigDecimal(dto.numCnf), RoundingMode.HALF_EVEN).floatValue());
|
||||
quantityDTO.qtaCnfNotificationEnabled = true;
|
||||
|
||||
} else {
|
||||
|
||||
quantityDTO.qtaCnf.set(dto.mtbAart.getQtaCnf().floatValue());
|
||||
|
||||
if(dto.getMtbAart().isFlagQtaCnfFissa()) {
|
||||
@ -526,7 +544,9 @@ public class DialogInputQuantity {
|
||||
if (!quantityDTO.blockedQtaTot.get()) {
|
||||
|
||||
quantityDTO.qtaTotNotificationEnabled = false;
|
||||
quantityDTO.qtaTot.set((float) Math.round(quantityDTO.qtaCnf.get(true) * quantityDTO.numCnf.get(true) * 1000) / 1000);
|
||||
float qtaTot = (float) Math.round(quantityDTO.qtaCnf.get(true) * quantityDTO.numCnf.get(true) * 1000) / 1000;
|
||||
if(qtaTot > quantityDTO.maxQta.get() && !quantityDTO.canOverflowQuantity) qtaTot = quantityDTO.maxQta.get();
|
||||
quantityDTO.qtaTot.set(qtaTot);
|
||||
quantityDTO.qtaTotNotificationEnabled = true;
|
||||
|
||||
} else if (!quantityDTO.blockedNumDiCnf.get()) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user