Completati primi test di calcoli qta da evadere

This commit is contained in:
Giuseppe Scorrano 2020-03-30 11:49:13 +02:00
parent cbce52fd83
commit f619dece3b
12 changed files with 218 additions and 67 deletions

View File

@ -115,7 +115,7 @@ public class Converters {
view.addTextChangedListener(watcher); view.addTextChangedListener(watcher);
} }
BigDecimal newValue = observableBigDecimal.get(); BigDecimal newValue = observableBigDecimal.get();
BigDecimal viewValue = view.getText().toString().trim().length() > 0 ? new BigDecimal(view.getText().toString()) : BigDecimal.ZERO; BigDecimal viewValue = view.getText().toString().trim().length() > 0 ? new BigDecimal(view.getText().toString()) : null;
if(!UtilityBigDecimal.equalsTo(viewValue, newValue)) { if(!UtilityBigDecimal.equalsTo(viewValue, newValue)) {
view.setText(UtilityNumber.decimalToString(newValue)); view.setText(UtilityNumber.decimalToString(newValue));

View File

@ -23,6 +23,7 @@ public class PermissionsHelper {
List<String> permissionsToAsk = new ArrayList<>(); List<String> permissionsToAsk = new ArrayList<>();
permissionsToAsk.add(Manifest.permission.READ_EXTERNAL_STORAGE); permissionsToAsk.add(Manifest.permission.READ_EXTERNAL_STORAGE);
permissionsToAsk.add(Manifest.permission.WRITE_EXTERNAL_STORAGE); permissionsToAsk.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);
permissionsToAsk.add(Manifest.permission.CAMERA);
//permissionsToAsk.add(Manifest.permission.INTERNET); //permissionsToAsk.add(Manifest.permission.INTERNET);
//permissionsToAsk.add(Manifest.permission.ACCESS_WIFI_STATE); //permissionsToAsk.add(Manifest.permission.ACCESS_WIFI_STATE);
@ -49,12 +50,9 @@ public class PermissionsHelper {
onPermissionsConfirmed.run(); onPermissionsConfirmed.run();
} else { } else {
boolean anyPermDeny = shouldShowRequestPermissionRationale( activity, permissions ); boolean anyPermDeny = shouldShowRequestPermissionRationale( activity, permissions );
onPermissionsDenied.run(anyPermDeny); onPermissionsDenied.run(anyPermDeny);
} }
return; return;
} }

View File

@ -12,6 +12,7 @@ public class UtilityBigDecimal {
} }
public static boolean equalsTo(BigDecimal input, BigDecimal toCompareWith) { public static boolean equalsTo(BigDecimal input, BigDecimal toCompareWith) {
if(input == null && toCompareWith == null) return true;
if(input == null) return false; if(input == null) return false;
if(toCompareWith == null) return false; if(toCompareWith == null) return false;
@ -32,4 +33,22 @@ public class UtilityBigDecimal {
return lowerThan(input1, input2) ? input1 : input2; return lowerThan(input1, input2) ? input1 : input2;
} }
public static BigDecimal divide(BigDecimal input1, BigDecimal divisor) {
if(divisor == null || equalsTo(divisor, BigDecimal.ZERO)) return null;
return input1.divide(divisor, 3, BigDecimal.ROUND_HALF_EVEN);
}
public static BigDecimal divideToInteger(BigDecimal input1, BigDecimal divisor) {
if(divisor == null || equalsTo(divisor, BigDecimal.ZERO)) return null;
return new BigDecimal(input1.divide(divisor,3, BigDecimal.ROUND_HALF_EVEN).intValue());
}
public static BigDecimal multiply(BigDecimal input1, BigDecimal multiplier) {
return input1.multiply(multiplier);
}
} }

View File

@ -20,6 +20,12 @@ public class UtilityDialog {
dialog.getDialog().getWindow().setLayout(width, LinearLayout.LayoutParams.WRAP_CONTENT); dialog.getDialog().getWindow().setLayout(width, LinearLayout.LayoutParams.WRAP_CONTENT);
} }
public static void setTo95PercentWidth(Context context, DialogFragment dialog) {
int width = (int)(context.getResources().getDisplayMetrics().widthPixels*0.95);
dialog.getDialog().getWindow().setLayout(width, LinearLayout.LayoutParams.WRAP_CONTENT);
}
// public static void setTo90PercentHeight(Context context, Dialog dialog) { // public static void setTo90PercentHeight(Context context, Dialog dialog) {
// int height = (int)(context.getResources().getDisplayMetrics().heightPixels*0.90); // int height = (int)(context.getResources().getDisplayMetrics().heightPixels*0.90);
// //

View File

@ -9,6 +9,7 @@ import java.io.StringWriter;
import java.net.SocketException; import java.net.SocketException;
import java.net.SocketTimeoutException; import java.net.SocketTimeoutException;
import it.integry.integrywmsnative.BuildConfig;
import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.expansion.RunnableArgs;
@ -41,7 +42,7 @@ public class UtilityLogger {
} }
public static void errorMe(Exception ex, String additionalText, Runnable onComplete, RunnableArgs<Exception> onFailed) { public static void errorMe(Exception ex, String additionalText, Runnable onComplete, RunnableArgs<Exception> onFailed) {
FirebaseCrashlytics.getInstance().recordException(ex); if(!BuildConfig.DEBUG) FirebaseCrashlytics.getInstance().recordException(ex);
// if ((!(ex instanceof SocketTimeoutException) && !(ex.getCause() instanceof SocketTimeoutException)) || // if ((!(ex instanceof SocketTimeoutException) && !(ex.getCause() instanceof SocketTimeoutException)) ||
// (!(ex instanceof SocketException) && !(ex.getCause() instanceof SocketException)) || // (!(ex instanceof SocketException) && !(ex.getCause() instanceof SocketException)) ||

View File

@ -1,5 +1,7 @@
package it.integry.integrywmsnative.gest.spedizione_new; package it.integry.integrywmsnative.gest.spedizione_new;
import android.os.Handler;
import androidx.databinding.ObservableArrayList; import androidx.databinding.ObservableArrayList;
import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.MutableLiveData;
@ -113,18 +115,28 @@ public class SpedizioneViewModel {
.toList(); .toList();
ArticoloRESTConsumer.getByCodMart(codMarts, listMtbAarts -> { ArticoloRESTConsumer.getByCodMart(codMarts, listMtbAarts -> {
onComplete.run(Stream.of(sitArtOrdList) List<PickingObjectDTO> pickingList = Stream.of(sitArtOrdList)
.map(sitArtOrdDTO -> { .map(sitArtOrdDTO -> {
MtbAart mtbAart = null;
MtbAart mtbAart = Stream.of(listMtbAarts) for (MtbAart mtbAartItem : listMtbAarts) {
.filter(x -> x.getCodMart().equalsIgnoreCase(sitArtOrdDTO.getCodMart())) if (mtbAartItem.getCodMart().equalsIgnoreCase(sitArtOrdDTO.getCodMart())) {
.single(); mtbAart = mtbAartItem;
break;
}
}
return new PickingObjectDTO() return new PickingObjectDTO()
.setSitArtOrdDTO(sitArtOrdDTO) .setSitArtOrdDTO(sitArtOrdDTO)
.setMtbAart(mtbAart); .setMtbAart(mtbAart);
}) })
.toList()); .toList();
new Handler()
.postDelayed(() -> {
onComplete.run(pickingList);
}, 1);
// onComplete.run(pickingList);
}, this::sendError); }, this::sendError);
} }
@ -534,7 +546,7 @@ public class SpedizioneViewModel {
}) })
.toList(); .toList();
for(PickingObjectDTO pickingObjectDTO : matchPickingObject) { for (PickingObjectDTO pickingObjectDTO : matchPickingObject) {
pickingObjectDTO.setTempPickData(pickData); pickingObjectDTO.setTempPickData(pickData);
} }
@ -602,7 +614,7 @@ public class SpedizioneViewModel {
if (mtbColrToDispatch != null) { if (mtbColrToDispatch != null) {
if(UtilityBigDecimal.lowerThan(mtbColrToDispatch.getQtaCol(), qtaDaEvadere)) { if (UtilityBigDecimal.lowerThan(mtbColrToDispatch.getQtaCol(), qtaDaEvadere)) {
numCnfDaPrelevare = mtbColrToDispatch.getNumCnf(); numCnfDaPrelevare = mtbColrToDispatch.getNumCnf();
qtaColDaPrelevare = mtbColrToDispatch.getQtaCol(); qtaColDaPrelevare = mtbColrToDispatch.getQtaCol();
qtaCnfDaPrelevare = mtbColrToDispatch.getQtaCnf(); qtaCnfDaPrelevare = mtbColrToDispatch.getQtaCnf();
@ -624,7 +636,30 @@ public class SpedizioneViewModel {
if (UtilityBigDecimal.lowerThan(qtaColDaPrelevare, BigDecimal.ZERO)) if (UtilityBigDecimal.lowerThan(qtaColDaPrelevare, BigDecimal.ZERO))
qtaColDaPrelevare = BigDecimal.ZERO; qtaColDaPrelevare = BigDecimal.ZERO;
} //Oppure le info del barcode scansionato } else if (pickingObjectDTO.getTempPickData() != null && pickingObjectDTO.getTempPickData().getManualPickDTO() != null) {
//Oppure le info del barcode scansionato
PickDataDTO.ManualPickDTO manualPickDTO = pickingObjectDTO.getTempPickData().getManualPickDTO();
MtbAart mtbAart = pickingObjectDTO.getMtbAart();
qtaColDaPrelevare = manualPickDTO.getQtaTot();
numCnfDaPrelevare = manualPickDTO.getNumCnf();
if (mtbAart.isFlagQtaCnfFissaBoolean()) {
qtaCnfDaPrelevare = mtbAart.getQtaCnf();
} else if (qtaColDaPrelevare != null && numCnfDaPrelevare != null) {
qtaCnfDaPrelevare = UtilityBigDecimal.divide(qtaColDaPrelevare, numCnfDaPrelevare);
}
if (qtaColDaPrelevare != null && numCnfDaPrelevare == null) {
numCnfDaPrelevare = UtilityBigDecimal.divideToInteger(qtaColDaPrelevare, mtbAart.getQtaCnf());
qtaCnfDaPrelevare = UtilityBigDecimal.divide(qtaColDaPrelevare, numCnfDaPrelevare);
} else if (numCnfDaPrelevare != null && qtaColDaPrelevare == null) {
qtaCnfDaPrelevare = mtbAart.getQtaCnf();
qtaColDaPrelevare = UtilityBigDecimal.multiply(numCnfDaPrelevare, qtaCnfDaPrelevare);
}
}
this.sendOnItemDispatched( this.sendOnItemDispatched(
pickingObjectDTO.getMtbAart(), pickingObjectDTO.getMtbAart(),

View File

@ -49,11 +49,17 @@ public class PickDataDTO {
manualPickDTO.setMtbPartitaMag(mtbPartitaMag); manualPickDTO.setMtbPartitaMag(mtbPartitaMag);
} }
if (ean128Model.Count != null && ean128Model.Count > 0) { if (ean128Model.Count != null && ean128Model.Count > 0 && (ean128Model.NetWeightKg == null || ean128Model.NetWeightKg == 0)) {
manualPickDTO.setNumCnf(new BigDecimal(ean128Model.Count)); manualPickDTO.setQtaTot(new BigDecimal(ean128Model.Count));
} }
if (ean128Model.NetWeightKg != null && ean128Model.NetWeightKg > 0) { if (ean128Model.NetWeightKg != null && ean128Model.NetWeightKg > 0 && (ean128Model.Count == null || ean128Model.Count == 0)) {
manualPickDTO.setQtaTot(new BigDecimal(ean128Model.NetWeightKg));
manualPickDTO.setEanPeso(true);
}
if(ean128Model.NetWeightKg != null && ean128Model.NetWeightKg > 0 && ean128Model.Count != null && ean128Model.Count > 0) {
manualPickDTO.setNumCnf(new BigDecimal(ean128Model.Count));
manualPickDTO.setQtaTot(new BigDecimal(ean128Model.NetWeightKg)); manualPickDTO.setQtaTot(new BigDecimal(ean128Model.NetWeightKg));
manualPickDTO.setEanPeso(true); manualPickDTO.setEanPeso(true);
} }

View File

@ -53,7 +53,7 @@ public class DialogCameraBarcodeReader extends DialogFragment implements Barcode
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
mBindings = DataBindingUtil.inflate(inflater, R.layout.dialog_camera_barcode_reader, container, false); mBindings = DataBindingUtil.inflate(inflater, R.layout.dialog_camera_barcode_reader, container, false);
UtilityDialog.setTo90PercentWidth(mContext, this); UtilityDialog.setTo95PercentWidth(mContext, this);
getDialog().setCanceledOnTouchOutside(false); getDialog().setCanceledOnTouchOutside(false);
getDialog().setCancelable(false); getDialog().setCancelable(false);
@ -68,6 +68,11 @@ public class DialogCameraBarcodeReader extends DialogFragment implements Barcode
return mBindings.getRoot(); return mBindings.getRoot();
} }
@Override
public void onStop() {
super.onStop();
this.mBindings.bcode.unbind();
}
private void initBarcodeView() { private void initBarcodeView() {
List<BarcodeFormat> availableBarcodeFormats = new ArrayList<>(); List<BarcodeFormat> availableBarcodeFormats = new ArrayList<>();
@ -98,21 +103,28 @@ public class DialogCameraBarcodeReader extends DialogFragment implements Barcode
switch (result.getBarcodeFormat()) { switch (result.getBarcodeFormat()) {
case CODE_128: case CODE_128:
type = BarcodeType.CODE128; type = BarcodeType.CODE128;
break;
case CODE_39: case CODE_39:
type = BarcodeType.CODE39; type = BarcodeType.CODE39;
break;
case EAN_13: case EAN_13:
type = BarcodeType.EAN13; type = BarcodeType.EAN13;
break;
case EAN_8: case EAN_8:
type = BarcodeType.EAN8; type = BarcodeType.EAN8;
break;
case UPC_A: case UPC_A:
type = BarcodeType.UPCA; type = BarcodeType.UPCA;
break;
case UPC_E: case UPC_E:
type = BarcodeType.UPCE; type = BarcodeType.UPCE;
break;
default: default:
Logger.e("Barcode not recognized", "Barcode type " + result.getBarcodeFormat().toString() + " was not mapped in DialogCameraBarcodeReader.java"); Logger.e("Barcode type " + result.getBarcodeFormat().toString() + " was not mapped in DialogCameraBarcodeReader.java");
type = null; type = null;
break;
} }
barcodeScanDTO.setType(type); barcodeScanDTO.setType(type);

View File

@ -9,19 +9,31 @@ import android.view.ViewGroup;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.databinding.DataBindingUtil; import androidx.databinding.DataBindingUtil;
import androidx.databinding.ObservableField;
import androidx.fragment.app.DialogFragment; import androidx.fragment.app.DialogFragment;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import java.math.BigDecimal;
import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.model.MtbUntMis; import it.integry.integrywmsnative.core.model.MtbUntMis;
import it.integry.integrywmsnative.core.utility.UtilityObservable;
import it.integry.integrywmsnative.databinding.DialogInputQuantityV2Binding; import it.integry.integrywmsnative.databinding.DialogInputQuantityV2Binding;
public class DialogInputQuantityV2 extends DialogFragment { public class DialogInputQuantityV2 extends DialogFragment implements DialogInputQuantityV2ViewModel.Listener {
private DialogInputQuantityV2ViewModel mViewModel; private DialogInputQuantityV2ViewModel mViewModel;
private DialogInputQuantityV2DTO mDialogInputQuantityV2DTO; private DialogInputQuantityV2DTO mDialogInputQuantityV2DTO;
public ObservableField<BigDecimal> currentNumCnf = new ObservableField<>();
public ObservableField<BigDecimal> currentQtaCnf = new ObservableField<>();
public ObservableField<BigDecimal> currentQtaTot = new ObservableField<>();
private boolean mEnableDataCallback = true;
public static DialogInputQuantityV2 newInstance(@NotNull DialogInputQuantityV2DTO dialogInputQuantityV2DTO) { public static DialogInputQuantityV2 newInstance(@NotNull DialogInputQuantityV2DTO dialogInputQuantityV2DTO) {
return new DialogInputQuantityV2(dialogInputQuantityV2DTO); return new DialogInputQuantityV2(dialogInputQuantityV2DTO);
} }
@ -56,7 +68,7 @@ public class DialogInputQuantityV2 extends DialogFragment {
.setCanOverflowOrderQuantity(mDialogInputQuantityV2DTO.isCanOverflowOrderQuantity()) .setCanOverflowOrderQuantity(mDialogInputQuantityV2DTO.isCanOverflowOrderQuantity())
.setQtaCnfAvailable(mDialogInputQuantityV2DTO.getQtaCnfAvailable()); .setQtaCnfAvailable(mDialogInputQuantityV2DTO.getQtaCnfAvailable());
bindings.setView(this);
bindings.setViewmodel(this.mViewModel); bindings.setViewmodel(this.mViewModel);
MtbUntMis mtbUntMis = mDialogInputQuantityV2DTO.getMtbAart().getMtbUntMis() != null && mDialogInputQuantityV2DTO.getMtbAart().getMtbUntMis().size() > 0 ? mDialogInputQuantityV2DTO.getMtbAart().getMtbUntMis().get(0) : null; MtbUntMis mtbUntMis = mDialogInputQuantityV2DTO.getMtbAart().getMtbUntMis() != null && mDialogInputQuantityV2DTO.getMtbAart().getMtbUntMis().size() > 0 ? mDialogInputQuantityV2DTO.getMtbAart().getMtbUntMis().get(0) : null;
@ -70,6 +82,40 @@ public class DialogInputQuantityV2 extends DialogFragment {
@Override @Override
public void onStart() { public void onStart() {
super.onStart(); super.onStart();
this.init();
this.mViewModel.setListener(this);
this.mViewModel.init(); this.mViewModel.init();
} }
private void init() {
UtilityObservable.addPropertyChanged(this.currentNumCnf, (value) -> {
if(this.mEnableDataCallback) {
this.mViewModel.setNumCnf(value);
}
});
UtilityObservable.addPropertyChanged(this.currentQtaCnf, (value) -> {
if(this.mEnableDataCallback) {
this.mViewModel.setQtaCnf(value);
}
});
UtilityObservable.addPropertyChanged(this.currentQtaTot, (value) -> {
if(this.mEnableDataCallback) {
this.mViewModel.setQtaTot(value);
}
});
}
@Override
public void onDataChanged() {
this.mEnableDataCallback = false;
this.currentNumCnf.set(this.mViewModel.getNumCnf());
this.currentQtaCnf.set(this.mViewModel.getQtaCnf());
this.currentQtaTot.set(this.mViewModel.getQtaTot());
this.mEnableDataCallback = true;
}
} }

View File

@ -24,32 +24,46 @@ public class DialogInputQuantityV2ViewModel {
public BigDecimal totalNumCnfAvailable; public BigDecimal totalNumCnfAvailable;
public BigDecimal qtaCnfAvailable; public BigDecimal qtaCnfAvailable;
public ObservableField<BigDecimal> currentNumCnf = new ObservableField<>(); private BigDecimal internalNumCnf;
public ObservableField<BigDecimal> currentQtaCnf = new ObservableField<>(); private BigDecimal internalQtaCnf;
public ObservableField<BigDecimal> currentQtaTot = new ObservableField<>(); private BigDecimal internalQtaTot;
private boolean canOverflowOrderQuantity; private boolean canOverflowOrderQuantity;
private Listener mListener;
public void init() { public void init() {
//Quando ho un barcode peso devo calcolare numCnf dal peso medio if (totalQtaToBeTaken != null) {
this.internalNumCnf = totalNumCnfToBeTaken;
this.internalQtaCnf = qtaCnfToBeTaken;
this.internalQtaTot = totalQtaToBeTaken;
this.currentNumCnf.set(totalNumCnfToBeTaken != null ? totalNumCnfToBeTaken : BigDecimal.ONE); } else if (UtilityBigDecimal.lowerThan(totalQtaAvailable, totalQtaOrd)) {
UtilityObservable.addPropertyChanged(this.currentNumCnf, this::onCurrentNumCnfChanged); this.internalNumCnf = totalNumCnfAvailable;
this.internalQtaCnf = qtaCnfAvailable;
this.internalQtaTot = totalQtaAvailable;
this.currentQtaCnf.set(qtaCnfToBeTaken != null ? qtaCnfToBeTaken : this.mtbAart.get().getQtaCnf());
UtilityObservable.addPropertyChanged(this.currentQtaCnf, this::onCurrentQtaCnfChanged);
this.currentQtaTot.set(totalQtaToBeTaken != null ? totalQtaToBeTaken : this.mtbAart.get().getQtaCnf());
UtilityObservable.addPropertyChanged(this.currentQtaTot, this::onCurrentQtaTotChanged);
} else {
this.internalNumCnf = totalNumCnfOrd;
this.internalQtaCnf = qtaCnfOrd;
this.internalQtaTot = totalQtaOrd;
}
this.mListener.onDataChanged();
} }
public BigDecimal getNumCnf() {
return this.internalNumCnf;
}
public BigDecimal getQtaCnf() {
return this.internalQtaCnf;
}
public BigDecimal getQtaTot() {
return this.internalQtaTot;
}
public DialogInputQuantityV2ViewModel setMtbAart(MtbAart mtbAart) { public DialogInputQuantityV2ViewModel setMtbAart(MtbAart mtbAart) {
this.mtbAart.set(mtbAart); this.mtbAart.set(mtbAart);
@ -107,50 +121,59 @@ public class DialogInputQuantityV2ViewModel {
} }
public void setNumCnf(BigDecimal newValue) {
this.internalNumCnf = newValue;
if (newValue == null) return;
if (UtilityBigDecimal.greaterThan(newValue, totalNumCnfAvailable))
newValue = totalNumCnfAvailable;
this.internalQtaTot = UtilityBigDecimal.multiply(newValue, this.internalQtaCnf);
this.mListener.onDataChanged();
private void onCurrentNumCnfChanged(BigDecimal newValue) {
if(newValue == null) return;
if(UtilityBigDecimal.greaterThan(newValue, totalNumCnfAvailable)) newValue = totalNumCnfAvailable;
this.currentQtaTot.set(newValue.multiply(this.currentQtaCnf.get()));
} }
private void onCurrentQtaCnfChanged(BigDecimal newValue) { public void setQtaCnf(BigDecimal newValue) {
this.internalQtaCnf = newValue;
String a = ""; String a = "";
this.mListener.onDataChanged();
} }
private void onCurrentQtaTotChanged(BigDecimal newValue) { public void setQtaTot(BigDecimal newValue) {
if(newValue == null) return; this.internalQtaTot = newValue;
if (newValue == null) return;
newValue = UtilityBigDecimal.getLowerBetween(newValue, totalNumCnfAvailable); newValue = UtilityBigDecimal.getLowerBetween(newValue, totalQtaAvailable);
//Se è piu' grande della qta da prelevare e non posso aggiungere qta extra allora ricalcolo //Se è piu' grande della qta da prelevare e non posso aggiungere qta extra allora ricalcolo
if(UtilityBigDecimal.greaterThan(newValue, totalQtaOrd) && !canOverflowOrderQuantity) { if (UtilityBigDecimal.greaterThan(newValue, totalQtaOrd) && !canOverflowOrderQuantity) {
if(mtbAart.get().isFlagQtaCnfFissaBoolean()) { if (mtbAart.get().isFlagQtaCnfFissaBoolean()) {
//Ricalcolo num cnf //Ricalcolo num cnf
this.internalNumCnf = UtilityBigDecimal.divide(totalQtaOrd, internalQtaCnf);
} else { } else {
//Ricalcolo qta cnf //Ricalcolo qta cnf
this.internalQtaCnf = UtilityBigDecimal.divide(totalQtaOrd, internalNumCnf);
} }
} else { } else {
if(mtbAart.get().isFlagQtaCnfFissaBoolean()) { if (mtbAart.get().isFlagQtaCnfFissaBoolean()) {
//Ricalcolo num cnf //Ricalcolo num cnf
this.internalNumCnf = UtilityBigDecimal.divide(newValue, internalQtaCnf);
} else { } else {
//Ricalcolo qta cnf //Ricalcolo qta cnf
this.internalQtaCnf = UtilityBigDecimal.divide(newValue, internalNumCnf);
} }
} }
this.mListener.onDataChanged();
} }
public void setListener(Listener listener) {
this.mListener = listener;
}
public interface Listener {
// private BigDecimal retrieveCorrectQtaCnf() { void onDataChanged();
// if(UtilityBigDecimal.greaterThan(totalNumCnfAvailable, BigDecimal.ZERO) && UtilityBigDecimal.greaterThan(totalQtaAvailable, BigDecimal.ZERO)) { }
//
// }
// }
} }

View File

@ -16,6 +16,9 @@
<variable <variable
name="viewmodel" name="viewmodel"
type="it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2ViewModel" /> type="it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2ViewModel" />
<variable
name="view"
type="it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2" />
</data> </data>
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
@ -382,7 +385,7 @@
<com.google.android.material.textfield.TextInputEditText <com.google.android.material.textfield.TextInputEditText
android:id="@+id/input_num_cnf_text" android:id="@+id/input_num_cnf_text"
style="@style/TextInputEditText.OutlinePrimary" style="@style/TextInputEditText.OutlinePrimary"
app:binding="@{viewmodel.currentNumCnf}" app:binding="@{view.currentNumCnf}"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:hint="@string/num_pcks" android:hint="@string/num_pcks"
@ -406,7 +409,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:hint="@string/qty_x_pck" android:hint="@string/qty_x_pck"
android:inputType="numberDecimal" android:inputType="numberDecimal"
app:binding="@{viewmodel.currentQtaCnf}" /> app:binding="@{view.currentQtaCnf}" />
</com.google.android.material.textfield.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
@ -421,7 +424,7 @@
<com.google.android.material.textfield.TextInputEditText <com.google.android.material.textfield.TextInputEditText
android:id="@+id/input_qta_tot_text" android:id="@+id/input_qta_tot_text"
style="@style/TextInputEditText.OutlinePrimary" style="@style/TextInputEditText.OutlinePrimary"
app:binding="@{viewmodel.currentQtaTot}" app:binding="@{view.currentQtaTot}"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:hint="@string/tot_qty" android:hint="@string/tot_qty"

View File

@ -38,20 +38,22 @@ internal class BarcodeAnalyzer(
return return
} }
val data = ByteArray(byteBuffer.remaining()).also { byteBuffer.get(it) } var data = ByteArray(byteBuffer.remaining()).also { byteBuffer.get(it) }
var width = image.width var width = image.width
var height = image.height var height = image.height
val rotatedData = ByteArray(data.size) // val rotatedData = ByteArray(data.size)
for (y in 0 until height) { // for (y in 0 until height) {
for (x in 0 until width) rotatedData[x * height + height - y - 1] = data[x + y * width] // for (x in 0 until width) rotatedData[x * height + height - y - 1] = data[x + y * width]
} // }
val tmp = width //
width = height // data = rotatedData
height = tmp // val tmp = width
// width = height
// height = tmp
val source = PlanarYUVLuminanceSource(rotatedData, width, height, 0, 0, width, height, false).let { val source = PlanarYUVLuminanceSource(data, width, height, 0, 0, width, height, false).let {
if (inverted) it.invert() else it if (inverted) it.invert() else it
} }
val bitmap = BinaryBitmap(HybridBinarizer(source)) val bitmap = BinaryBitmap(HybridBinarizer(source))