Implementato override del check della tracciabilità in Accettazione da bolla
This commit is contained in:
parent
1e129d1ea9
commit
d003a0322e
@ -68,6 +68,7 @@ public class DBSettingsModel {
|
|||||||
private boolean flagCanAddUnknownItemsAccettazioneBolla = false;
|
private boolean flagCanAddUnknownItemsAccettazioneBolla = false;
|
||||||
private boolean flagCanAddUnknownBarcodesAccettazioneBolla = false;
|
private boolean flagCanAddUnknownBarcodesAccettazioneBolla = false;
|
||||||
private boolean flagEnableFastPickAccettazioneBolla = false;
|
private boolean flagEnableFastPickAccettazioneBolla = false;
|
||||||
|
private boolean flagDisableMandatoryTracciabilitaAccettazioneBolla = false;
|
||||||
|
|
||||||
public boolean isFlagSpedizioneEnableFakeGiacenza() {
|
public boolean isFlagSpedizioneEnableFakeGiacenza() {
|
||||||
return flagSpedizioneEnableFakeGiacenza;
|
return flagSpedizioneEnableFakeGiacenza;
|
||||||
@ -546,4 +547,13 @@ public class DBSettingsModel {
|
|||||||
this.flagEnableFastPickAccettazioneBolla = flagEnableFastPickAccettazioneBolla;
|
this.flagEnableFastPickAccettazioneBolla = flagEnableFastPickAccettazioneBolla;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isFlagDisableMandatoryTracciabilitaAccettazioneBolla() {
|
||||||
|
return flagDisableMandatoryTracciabilitaAccettazioneBolla;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DBSettingsModel setFlagDisableMandatoryTracciabilitaAccettazioneBolla(boolean flagDisableMandatoryTracciabilitaAccettazioneBolla) {
|
||||||
|
this.flagDisableMandatoryTracciabilitaAccettazioneBolla = flagDisableMandatoryTracciabilitaAccettazioneBolla;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -464,6 +464,12 @@ public class SettingsManager {
|
|||||||
.setKeySection("FLAG_ENABLE_FAST_PICK")
|
.setKeySection("FLAG_ENABLE_FAST_PICK")
|
||||||
.setSetter(dbSettingsModelIstance::setFlagEnableFastPickAccettazioneBolla)
|
.setSetter(dbSettingsModelIstance::setFlagEnableFastPickAccettazioneBolla)
|
||||||
.setDefaultValue(false));
|
.setDefaultValue(false));
|
||||||
|
stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
|
||||||
|
.setGestName("PICKING")
|
||||||
|
.setSection("ACCETTAZIONE_BOLLA")
|
||||||
|
.setKeySection("FLAG_DISABLE_MANDATORY_TRACCIABILITA")
|
||||||
|
.setSetter(dbSettingsModelIstance::setFlagDisableMandatoryTracciabilitaAccettazioneBolla)
|
||||||
|
.setDefaultValue(false));
|
||||||
|
|
||||||
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
||||||
|
|
||||||
|
|||||||
@ -200,7 +200,7 @@ public class AccettazioneBollaPickingActivity extends BaseActivity implements Ac
|
|||||||
});
|
});
|
||||||
|
|
||||||
adapter.setOnItemClicked(clickedItem -> {
|
adapter.setOnItemClicked(clickedItem -> {
|
||||||
this.mViewModel.dispatchBollaRow(clickedItem);
|
this.mViewModel.manageDispatchBollaRow(clickedItem);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -491,7 +491,8 @@ public class AccettazioneBollaPickingActivity extends BaseActivity implements Ac
|
|||||||
.setDataScad(dataScad)
|
.setDataScad(dataScad)
|
||||||
.setCanPartitaMagBeChanged(canPartitaMagBeChanged)
|
.setCanPartitaMagBeChanged(canPartitaMagBeChanged)
|
||||||
.setCanLUBeClosed(true)
|
.setCanLUBeClosed(true)
|
||||||
.setCanOverflowOrderQuantity(canOverflowQuantity);
|
.setCanOverflowOrderQuantity(canOverflowQuantity)
|
||||||
|
.setDisableTracciabilitaCheck(SettingsManager.iDB().isFlagDisableMandatoryTracciabilitaAccettazioneBolla());
|
||||||
|
|
||||||
if (!mDialogInputQuantityV2View.isVisible())
|
if (!mDialogInputQuantityV2View.isVisible())
|
||||||
mDialogInputQuantityV2View
|
mDialogInputQuantityV2View
|
||||||
|
|||||||
@ -341,7 +341,7 @@ public class AccettazioneBollaPickingViewModel {
|
|||||||
if (matchedRows == null || matchedRows.size() == 0) {
|
if (matchedRows == null || matchedRows.size() == 0) {
|
||||||
manageNoArtFound(mtbAart);
|
manageNoArtFound(mtbAart);
|
||||||
} else if (matchedRows.size() == 1) {
|
} else if (matchedRows.size() == 1) {
|
||||||
this.dispatchBollaRow(matchedRows.get(0));
|
this.manageDispatchBollaRow(matchedRows.get(0));
|
||||||
} else {
|
} else {
|
||||||
//So che il codMart sarà solo 1
|
//So che il codMart sarà solo 1
|
||||||
var firstCodMart = Stream.of(matchedRows)
|
var firstCodMart = Stream.of(matchedRows)
|
||||||
@ -359,7 +359,7 @@ public class AccettazioneBollaPickingViewModel {
|
|||||||
if (SettingsManager.iDB().isFlagCanAddUnknownBarcodesAccettazioneBolla()) {
|
if (SettingsManager.iDB().isFlagCanAddUnknownBarcodesAccettazioneBolla()) {
|
||||||
//TODO: Implementare popup che richiede delle note aggiuntive sul barcode scansionato
|
//TODO: Implementare popup che richiede delle note aggiuntive sul barcode scansionato
|
||||||
this.sendOnUnknownBarcodeScanned(barcode, notes -> {
|
this.sendOnUnknownBarcodeScanned(barcode, notes -> {
|
||||||
this.dispatchBollaRow(new PickingObjectDTO()
|
this.manageDispatchBollaRow(new PickingObjectDTO()
|
||||||
.setMtbAart(new MtbAart()
|
.setMtbAart(new MtbAart()
|
||||||
.setDescrizione(notes)
|
.setDescrizione(notes)
|
||||||
.setDescrizioneEstesa(notes)
|
.setDescrizioneEstesa(notes)
|
||||||
@ -378,7 +378,7 @@ public class AccettazioneBollaPickingViewModel {
|
|||||||
private void manageNoArtFound(MtbAart mtbAart) {
|
private void manageNoArtFound(MtbAart mtbAart) {
|
||||||
if (SettingsManager.iDB().isFlagCanAddUnknownItemsAccettazioneBolla()) {
|
if (SettingsManager.iDB().isFlagCanAddUnknownItemsAccettazioneBolla()) {
|
||||||
|
|
||||||
this.dispatchBollaRow(new PickingObjectDTO()
|
this.manageDispatchBollaRow(new PickingObjectDTO()
|
||||||
.setMtbAart(mtbAart));
|
.setMtbAart(mtbAart));
|
||||||
} else
|
} else
|
||||||
this.sendError(new NoArtsFoundException());
|
this.sendError(new NoArtsFoundException());
|
||||||
@ -417,6 +417,22 @@ public class AccettazioneBollaPickingViewModel {
|
|||||||
this.sendOnInfoAggiuntiveRequest(onComplete);
|
this.sendOnInfoAggiuntiveRequest(onComplete);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void manageDispatchBollaRow(final PickingObjectDTO pickingObjectDTO) {
|
||||||
|
if (SettingsManager.iDB().isFlagEnableFastPickAccettazioneBolla()) {
|
||||||
|
this.saveNewRow(pickingObjectDTO,
|
||||||
|
BigDecimal.ONE,
|
||||||
|
pickingObjectDTO.getMtbAart().getQtaCnf(),
|
||||||
|
pickingObjectDTO.getMtbAart().getQtaCnf(),
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
false);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
dispatchBollaRow(pickingObjectDTO);
|
||||||
|
}
|
||||||
|
|
||||||
public void dispatchBollaRow(final PickingObjectDTO pickingObjectDTO) {
|
public void dispatchBollaRow(final PickingObjectDTO pickingObjectDTO) {
|
||||||
if (this.mCurrentMtbColt == null) return;
|
if (this.mCurrentMtbColt == null) return;
|
||||||
|
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import android.view.LayoutInflater;
|
|||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.appcompat.app.AlertDialog;
|
||||||
|
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
|
|
||||||
@ -70,10 +71,9 @@ public class DialogAskUnknownBarcodeNotesView extends BaseDialogFragment {
|
|||||||
var alertDialog = new MaterialAlertDialogBuilder(this.mContext)
|
var alertDialog = new MaterialAlertDialogBuilder(this.mContext)
|
||||||
.setView(mBindings.getRoot())
|
.setView(mBindings.getRoot())
|
||||||
.setPositiveButton(R.string.confirm, ((dialogInterface, i) -> {
|
.setPositiveButton(R.string.confirm, ((dialogInterface, i) -> {
|
||||||
if(this.onComplete != null) onComplete.run(mViewModel.userNotes.get());
|
|
||||||
}))
|
}))
|
||||||
.setNegativeButton(R.string.abort, (dialogInterface, i) -> {
|
.setNegativeButton(R.string.abort, (dialogInterface, i) -> {
|
||||||
if(this.onAbort != null) onAbort.run();
|
if (this.onAbort != null) onAbort.run();
|
||||||
})
|
})
|
||||||
.setCancelable(isCancelable())
|
.setCancelable(isCancelable())
|
||||||
.create();
|
.create();
|
||||||
@ -90,6 +90,22 @@ public class DialogAskUnknownBarcodeNotesView extends BaseDialogFragment {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onShow(DialogInterface dialogInterface) {
|
||||||
|
super.onShow(dialogInterface);
|
||||||
|
|
||||||
|
((AlertDialog) getDialog())
|
||||||
|
.getButton(AlertDialog.BUTTON_POSITIVE)
|
||||||
|
.setOnClickListener(v -> {
|
||||||
|
if(!mViewModel.validateInput())
|
||||||
|
return;
|
||||||
|
|
||||||
|
dismiss();
|
||||||
|
if (onComplete != null) onComplete.run(mViewModel.userNotes.get());
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDismiss(@NonNull DialogInterface dialog) {
|
public void onDismiss(@NonNull DialogInterface dialog) {
|
||||||
BarcodeManager.removeCallback(mBarcodeScannerIstanceID);
|
BarcodeManager.removeCallback(mBarcodeScannerIstanceID);
|
||||||
@ -98,8 +114,6 @@ public class DialogAskUnknownBarcodeNotesView extends BaseDialogFragment {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void initBarcode() {
|
private void initBarcode() {
|
||||||
mBarcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
|
mBarcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
|
||||||
.setOnScanSuccessful(onScanSuccessfull)
|
.setOnScanSuccessful(onScanSuccessfull)
|
||||||
|
|||||||
@ -4,14 +4,15 @@ import androidx.databinding.ObservableField;
|
|||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import io.reactivex.Observable;
|
|
||||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||||
|
import it.integry.integrywmsnative.core.di.BindableString;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
||||||
|
|
||||||
public class DialogAskUnknownBarcodeNotesViewModel {
|
public class DialogAskUnknownBarcodeNotesViewModel {
|
||||||
public ObservableField<String> userNotes = new ObservableField<>();
|
public ObservableField<String> userNotes = new ObservableField<>();
|
||||||
|
public BindableString userNotesErrorMessage = new BindableString();
|
||||||
|
|
||||||
private ArticoloRESTConsumer articoloRESTConsumer;
|
private ArticoloRESTConsumer articoloRESTConsumer;
|
||||||
|
|
||||||
@ -57,4 +58,14 @@ public class DialogAskUnknownBarcodeNotesViewModel {
|
|||||||
articoloRESTConsumer.updateBarcodeImballo(mtbAart.getCodMart(), unknownBarcode, onComplete, onFailed);
|
articoloRESTConsumer.updateBarcodeImballo(mtbAart.getCodMart(), unknownBarcode, onComplete, onFailed);
|
||||||
}, onFailed);
|
}, onFailed);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean validateInput() {
|
||||||
|
final boolean emptyUserNotes = userNotes.get() != null && !userNotes.get().isEmpty() && !userNotes.get().isBlank();
|
||||||
|
|
||||||
|
if(!emptyUserNotes)
|
||||||
|
userNotesErrorMessage.set("E' necessario scrivere delle note");
|
||||||
|
|
||||||
|
|
||||||
|
return emptyUserNotes;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -43,6 +43,7 @@ public class DialogInputQuantityV2DTO {
|
|||||||
private boolean canLUBeClosed;
|
private boolean canLUBeClosed;
|
||||||
private boolean saveOnImeDone = false;
|
private boolean saveOnImeDone = false;
|
||||||
private boolean notifyProductLotStatus = false;
|
private boolean notifyProductLotStatus = false;
|
||||||
|
private boolean disableTracciabilitaCheck = false;
|
||||||
|
|
||||||
private StatoArticoloDTO statoPartitaMag;
|
private StatoArticoloDTO statoPartitaMag;
|
||||||
|
|
||||||
@ -349,4 +350,13 @@ public class DialogInputQuantityV2DTO {
|
|||||||
this.notifyProductLotStatus = notifyProductLotStatus;
|
this.notifyProductLotStatus = notifyProductLotStatus;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isDisableTracciabilitaCheck() {
|
||||||
|
return disableTracciabilitaCheck;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DialogInputQuantityV2DTO setDisableTracciabilitaCheck(boolean disableTracciabilitaCheck) {
|
||||||
|
this.disableTracciabilitaCheck = disableTracciabilitaCheck;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -173,7 +173,8 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
|
|||||||
.setNote(mDialogInputQuantityV2DTO.getNote())
|
.setNote(mDialogInputQuantityV2DTO.getNote())
|
||||||
.setIsNoteMandatory(mDialogInputQuantityV2DTO.isNotesMandatory())
|
.setIsNoteMandatory(mDialogInputQuantityV2DTO.isNotesMandatory())
|
||||||
.setSuggestPartitaMagRunnable(mDialogInputQuantityV2DTO.getSuggestPartitaMag())
|
.setSuggestPartitaMagRunnable(mDialogInputQuantityV2DTO.getSuggestPartitaMag())
|
||||||
.setDataScad(mDialogInputQuantityV2DTO.getDataScad());
|
.setDataScad(mDialogInputQuantityV2DTO.getDataScad())
|
||||||
|
.setDisableTracciabilitaCheck(mDialogInputQuantityV2DTO.isDisableTracciabilitaCheck());
|
||||||
|
|
||||||
mBindings.setView(this);
|
mBindings.setView(this);
|
||||||
mBindings.setViewmodel(this.mViewModel);
|
mBindings.setViewmodel(this.mViewModel);
|
||||||
|
|||||||
@ -77,6 +77,7 @@ public class DialogInputQuantityV2ViewModel {
|
|||||||
private boolean canPartitaMagBeChanged;
|
private boolean canPartitaMagBeChanged;
|
||||||
private int onNumCnfInputChanged;
|
private int onNumCnfInputChanged;
|
||||||
private int onQtaTotInputChanged;
|
private int onQtaTotInputChanged;
|
||||||
|
private boolean disableTracciabilitaCheck;
|
||||||
|
|
||||||
private Listener mListener;
|
private Listener mListener;
|
||||||
|
|
||||||
@ -330,6 +331,11 @@ public class DialogInputQuantityV2ViewModel {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public DialogInputQuantityV2ViewModel setDisableTracciabilitaCheck(boolean disableTracciabilitaCheck) {
|
||||||
|
this.disableTracciabilitaCheck = disableTracciabilitaCheck;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean canPartitaMagBeChanged() {
|
public boolean canPartitaMagBeChanged() {
|
||||||
return canPartitaMagBeChanged;
|
return canPartitaMagBeChanged;
|
||||||
}
|
}
|
||||||
@ -451,7 +457,7 @@ public class DialogInputQuantityV2ViewModel {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mtbAart.get().isFlagTracciabilitaBoolean() && UtilityString.isNullOrEmpty(internalPartitaMag)) {
|
if (!disableTracciabilitaCheck && mtbAart.get().isFlagTracciabilitaBoolean() && UtilityString.isNullOrEmpty(internalPartitaMag)) {
|
||||||
if (suggestPartitaMagRunnable != null) {
|
if (suggestPartitaMagRunnable != null) {
|
||||||
internalPartitaMag = suggestPartitaMagRunnable.run(this);
|
internalPartitaMag = suggestPartitaMagRunnable.run(this);
|
||||||
if (internalPartitaMag == null) {
|
if (internalPartitaMag == null) {
|
||||||
|
|||||||
@ -58,6 +58,7 @@
|
|||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
android:imeOptions="actionDone"
|
android:imeOptions="actionDone"
|
||||||
android:layout_marginTop="12dp"
|
android:layout_marginTop="12dp"
|
||||||
|
app:errorText="@{viewmodel.userNotesErrorMessage}"
|
||||||
android:hint="Note">
|
android:hint="Note">
|
||||||
|
|
||||||
<com.google.android.material.textfield.TextInputEditText
|
<com.google.android.material.textfield.TextInputEditText
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user