Implementata creazione del doppio collo A / L in Accettazione.
Iniziata implementazione del tasto "Aggiungi merce extra" in Spedizione.
This commit is contained in:
@@ -94,6 +94,8 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{
|
||||
.setSegno(segno)
|
||||
.setGestione(GestioneEnum.LAVORAZIONE);
|
||||
|
||||
mtbColtToCreate.initDefaultFields();
|
||||
|
||||
mtbColtToCreate
|
||||
.setOperation(CommonModelConsts.OPERATION.INSERT);
|
||||
|
||||
@@ -166,6 +168,8 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{
|
||||
MtbColt mtbColtToCreate = new MtbColt()
|
||||
.setGestione(gestione);
|
||||
|
||||
mtbColtToCreate.initDefaultFields();
|
||||
|
||||
Integer customNumCollo = UtilityBarcode.getNumColloFromULAnonima(barcode);
|
||||
String customSerCollo = CommonConst.Config.DEFAULT_ANONYMOUS_UL_SERIE;
|
||||
|
||||
|
||||
@@ -248,7 +248,23 @@ public class Converters {
|
||||
view.setVisibility(bindableBoolean.get() ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
view.setVisibility(bindableBoolean.get() ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
|
||||
|
||||
@BindingAdapter("app:visibility")
|
||||
public static void bindView(View view, final BindableBoolean bindableBoolean) {
|
||||
if (view.getTag(R.id.bound_observable) != bindableBoolean) {
|
||||
view.setTag(R.id.bound_observable, bindableBoolean);
|
||||
}
|
||||
bindableBoolean.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
|
||||
@Override
|
||||
public void onPropertyChanged(Observable sender, int propertyId) {
|
||||
view.setVisibility(bindableBoolean.get() ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
});
|
||||
|
||||
view.setVisibility(bindableBoolean.get() ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
|
||||
|
||||
@@ -99,6 +99,9 @@ public class MtbColt extends EntityBase {
|
||||
type = "mtb_colt";
|
||||
setDataCollo(new Date());
|
||||
setSerCollo("/");
|
||||
}
|
||||
|
||||
public void initDefaultFields() {
|
||||
setCodMdep(SettingsManager.i().userSession.depo.getCodMdep());
|
||||
setPreparatoDa(SettingsManager.i().user.fullname);
|
||||
setOraInizPrep(new Date());
|
||||
|
||||
@@ -23,6 +23,8 @@ public class DBSettingsModel {
|
||||
private DistribuzioneColloDTO.CriterioDistribuzione defaultCriterioDistribuzione;
|
||||
private boolean flagAskClienteInPickingLibero;
|
||||
|
||||
private boolean flagCanAddExtraItemSpedizione;
|
||||
|
||||
public List<String> getAvailableProfiles() {
|
||||
return availableProfiles;
|
||||
}
|
||||
@@ -109,4 +111,13 @@ public class DBSettingsModel {
|
||||
this.flagAskClienteInPickingLibero = flagAskClienteInPickingLibero;
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isFlagCanAddExtraItemSpedizione() {
|
||||
return flagCanAddExtraItemSpedizione;
|
||||
}
|
||||
|
||||
public DBSettingsModel setFlagCanAddExtraItemSpedizione(boolean flagCanAddExtraItemSpedizione) {
|
||||
this.flagCanAddExtraItemSpedizione = flagCanAddExtraItemSpedizione;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -192,7 +192,14 @@ public class SettingsManager {
|
||||
GestSetupRESTConsumer.getBooleanValue("PICKING", "PICKING_LIBERO", "FLAG_ASK_CLIENTE", valueAskClientePickingLibero -> {
|
||||
dbSettingsModelIstance.setFlagAskClienteInPickingLibero(valueAskClientePickingLibero);
|
||||
|
||||
if(onComplete != null) onComplete.run();
|
||||
GestSetupRESTConsumer.getBooleanValue("PICKING", "SPEDIZIONE", "FLAG_CAN_ADD_EXTRA_ITEMS", valueCanAddExtraItemSpedizione -> {
|
||||
dbSettingsModelIstance.setFlagCanAddExtraItemSpedizione(valueCanAddExtraItemSpedizione);
|
||||
|
||||
if(onComplete != null) onComplete.run();
|
||||
|
||||
}, ex -> {
|
||||
if(onFailed != null) onFailed.run(ex);
|
||||
});
|
||||
|
||||
}, ex -> {
|
||||
if(onFailed != null) onFailed.run(ex);
|
||||
|
||||
@@ -76,6 +76,8 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
|
||||
|
||||
private GestioneEnum defaultGestioneOfUL = null;
|
||||
|
||||
private MtbColt mtbColtOfAccettazione = null;
|
||||
|
||||
public AccettazioneOrdineAccettazioneInevasoViewModel(AccettazioneOrdineInevasoActivity activity, ArticoliInColloBottomSheetViewModel articoliInColloBottomSheetViewModel, List<OrdineAccettazioneDTO> orders) {
|
||||
this.mActivity = activity;
|
||||
this.mArticoliInColloBottomSheetViewModel = articoliInColloBottomSheetViewModel;
|
||||
@@ -90,8 +92,8 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
|
||||
|
||||
private void init(){
|
||||
mArticoliInColloBottomSheetViewModel.setOnCloseColloCallbackListener(this);
|
||||
mArticoliInColloBottomSheetViewModel.setOnItemDeletedCallback((deletedItem) -> this.refreshOrderBy(false));
|
||||
mArticoliInColloBottomSheetViewModel.setOnItemEditedCallback((originalItem, editedItem) -> this.refreshOrderBy(false));
|
||||
mArticoliInColloBottomSheetViewModel.setOnItemDeletedCallback(this::onRowDeleted);
|
||||
mArticoliInColloBottomSheetViewModel.setOnItemEditedCallback(this::onRowEdited);
|
||||
|
||||
groupedOrdini = new ArrayList<>();
|
||||
for (OrdineAccettazioneDTO ordine : mOrders){
|
||||
@@ -167,7 +169,7 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
|
||||
}
|
||||
|
||||
try {
|
||||
List<MtbColr> mtbColrs = mArticoliInColloBottomSheetViewModel.mtbColt.get() != null ? mArticoliInColloBottomSheetViewModel.mtbColt.get().getMtbColr() : null;
|
||||
List<MtbColr> mtbColrs = getColloRef() != null ? getColloRef().getMtbColr() : null;
|
||||
|
||||
helper.updateListModel(currentOrderBy, groupedRighe, mtbColrs);
|
||||
} catch (Exception e) {
|
||||
@@ -421,22 +423,43 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
|
||||
String defaultPosAccettazione = "";
|
||||
if(defaultPosAccettazioneDTO != null && !UtilityString.isNullOrEmpty(defaultPosAccettazioneDTO.value)) defaultPosAccettazione = defaultPosAccettazioneDTO.value;
|
||||
|
||||
MtbColt mtbColt = new MtbColt();
|
||||
mtbColt
|
||||
.setGestione(defaultGestioneOfUL)
|
||||
.setPreparatoDa(SettingsManager.i().user.fullname)
|
||||
|
||||
MtbColt mtbColtOfBarode = new MtbColt();
|
||||
mtbColtOfBarode.initDefaultFields();
|
||||
mtbColtOfBarode
|
||||
.setGestione(GestioneEnum.LAVORAZIONE)
|
||||
.setAnnotazioni(noteString)
|
||||
.setPosizione(defaultPosAccettazione)
|
||||
.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
||||
|
||||
|
||||
|
||||
if(customNumCollo != null) {
|
||||
mtbColt.setNumCollo(customNumCollo);
|
||||
mtbColtOfBarode.setNumCollo(customNumCollo);
|
||||
}
|
||||
|
||||
if(!UtilityString.isNullOrEmpty(customSerCollo)) {
|
||||
mtbColt.setSerCollo(customSerCollo);
|
||||
mtbColtOfBarode.setSerCollo(customSerCollo);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
MtbColt mtbColtAccettazione = null;
|
||||
|
||||
if(defaultGestioneOfUL == GestioneEnum.ACQUISTO){
|
||||
mtbColtAccettazione = (MtbColt) mtbColtOfBarode.clone();
|
||||
mtbColtAccettazione.setGestione(GestioneEnum.ACQUISTO);
|
||||
|
||||
mtbColtAccettazione
|
||||
.setNumCollo(null)
|
||||
.setSerCollo(null);
|
||||
}
|
||||
|
||||
|
||||
MtbColt mtbColtToAddRefs = mtbColtAccettazione != null ? mtbColtAccettazione : mtbColtOfBarode;
|
||||
|
||||
|
||||
List<String> codAnags =
|
||||
stream(mOrders)
|
||||
.select(c -> c.codAnag)
|
||||
@@ -444,7 +467,7 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
|
||||
.toList();
|
||||
|
||||
if(codAnags != null && codAnags.size() == 1){
|
||||
mtbColt.setCodAnag(codAnags.get(0));
|
||||
mtbColtToAddRefs.setCodAnag(codAnags.get(0));
|
||||
}
|
||||
|
||||
List<String> rifOrds =
|
||||
@@ -454,7 +477,7 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
|
||||
.toList();
|
||||
|
||||
if(rifOrds != null && rifOrds.size() == 1){
|
||||
mtbColt.setRifOrd(rifOrds.get(0));
|
||||
mtbColtToAddRefs.setRifOrd(rifOrds.get(0));
|
||||
}
|
||||
|
||||
List<String> numDataOrds =
|
||||
@@ -464,11 +487,11 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
|
||||
.toList();
|
||||
|
||||
if(numDataOrds != null && numDataOrds.size() == 1){
|
||||
mtbColt.setNumOrd(mOrders.get(0).numero);
|
||||
mtbColt.setDataOrd(mOrders.get(0).data);
|
||||
mtbColtToAddRefs.setNumOrd(mOrders.get(0).numero);
|
||||
mtbColtToAddRefs.setDataOrd(mOrders.get(0).data);
|
||||
|
||||
try {
|
||||
mtbColt.generaFiltroOrdine();
|
||||
mtbColtToAddRefs.generaFiltroOrdine();
|
||||
} catch (Exception ex) {
|
||||
DialogSimpleMessageHelper.makeErrorDialog(mActivity, new SpannableString(ex.getMessage()), null, null).show();
|
||||
return;
|
||||
@@ -476,7 +499,8 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
|
||||
}
|
||||
|
||||
|
||||
ColliMagazzinoRESTConsumer.saveCollo(mtbColt, new ISimpleOperationCallback<MtbColt>() {
|
||||
|
||||
Runnable saveColloOfBarcode = () -> ColliMagazzinoRESTConsumer.saveCollo(mtbColtOfBarode, new ISimpleOperationCallback<MtbColt>() {
|
||||
@Override
|
||||
public void onSuccess(MtbColt value) {
|
||||
|
||||
@@ -510,6 +534,37 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
|
||||
UtilityExceptions.defaultException(mActivity, ex, finalProgress);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
if(mtbColtAccettazione != null) {
|
||||
ColliMagazzinoRESTConsumer.saveCollo(mtbColtAccettazione, new ISimpleOperationCallback<MtbColt>() {
|
||||
@Override
|
||||
public void onSuccess(MtbColt value) {
|
||||
|
||||
value
|
||||
.setDisablePrint(disablePrint)
|
||||
.setMtbColr(new ObservableArrayList<>());
|
||||
|
||||
value.setMtbCols(null);
|
||||
|
||||
mtbColtOfAccettazione = value;
|
||||
|
||||
saveColloOfBarcode.run();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailed(Exception ex) {
|
||||
UtilityExceptions.defaultException(mActivity, ex, finalProgress);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
saveColloOfBarcode.run();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}, ex -> UtilityExceptions.defaultException(mActivity, ex, finalProgress));
|
||||
|
||||
|
||||
@@ -575,8 +630,8 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
|
||||
|
||||
private void updateDataFine(ProgressDialog progress, Runnable onComplete) {
|
||||
|
||||
MtbColt cloneMtbColt = (MtbColt) mArticoliInColloBottomSheetViewModel.mtbColt.get().clone();
|
||||
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
||||
MtbColt cloneMtbColt = (MtbColt) getColloRef().clone();
|
||||
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.UPDATE);
|
||||
cloneMtbColt.setOraFinePrep(new Date());
|
||||
|
||||
|
||||
@@ -640,8 +695,7 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
|
||||
UtilityExceptions.defaultException(mActivity, ex, progress);
|
||||
}
|
||||
} else {
|
||||
|
||||
mArticoliInColloBottomSheetViewModel.mtbColt.set(null);
|
||||
resetUL();
|
||||
isFabVisible.set(true);
|
||||
|
||||
progress.dismiss();
|
||||
@@ -660,33 +714,44 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
|
||||
|
||||
private void deleteCollo(ProgressDialog progress, Runnable onComplete) {
|
||||
|
||||
ColliMagazzinoRESTConsumer.deleteCollo(mArticoliInColloBottomSheetViewModel.mtbColt.get(), () -> {
|
||||
mArticoliInColloBottomSheetViewModel.mtbColt.set(null);
|
||||
|
||||
Runnable deleteCollo = () -> ColliMagazzinoRESTConsumer.deleteCollo(mtbColtOfAccettazione, () -> {
|
||||
resetUL();
|
||||
|
||||
isFabVisible.set(true);
|
||||
|
||||
progress.dismiss();
|
||||
if(onComplete != null) onComplete.run();
|
||||
}, ex -> UtilityExceptions.defaultException(mActivity, ex, progress));
|
||||
|
||||
|
||||
if(mtbColtOfAccettazione != null) {
|
||||
ColliMagazzinoRESTConsumer.deleteCollo(mArticoliInColloBottomSheetViewModel.mtbColt.get(), () -> {
|
||||
deleteCollo.run();
|
||||
}, ex -> UtilityExceptions.defaultException(mActivity, ex, progress));
|
||||
} else {
|
||||
deleteCollo.run();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public boolean thereIsAnOpenedUL() {
|
||||
return mArticoliInColloBottomSheetViewModel.mtbColt.get() != null;
|
||||
return getColloRef() != null;
|
||||
}
|
||||
public boolean thereIsAnyRowInUL() {
|
||||
return mArticoliInColloBottomSheetViewModel.mtbColt.get() != null &&
|
||||
mArticoliInColloBottomSheetViewModel.mtbColt.get().getMtbColr() != null &&
|
||||
mArticoliInColloBottomSheetViewModel.mtbColt.get().getMtbColr().size() > 0;
|
||||
return getColloRef() != null &&
|
||||
getColloRef().getMtbColr() != null &&
|
||||
getColloRef().getMtbColr().size() > 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void postCloseOperations(Runnable onComplete) {
|
||||
|
||||
MtbColt mtbColt = mArticoliInColloBottomSheetViewModel.mtbColt.get();
|
||||
MtbColt mtbColt = (MtbColt) mtbColtOfAccettazione.clone();
|
||||
|
||||
resetUL();
|
||||
|
||||
mArticoliInColloBottomSheetViewModel.mtbColt.set(null);
|
||||
isFabVisible.set(true);
|
||||
|
||||
if(mtbColt != null && mtbColt.getMtbColr() != null) {
|
||||
@@ -721,9 +786,9 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
|
||||
|
||||
@Override
|
||||
public void onOrdineRowDispatch(final OrdineAccettazioneDTO.Riga item, Ean128Model ean128Model) {
|
||||
if(mArticoliInColloBottomSheetViewModel.mtbColt.get() != null){
|
||||
if(getColloRef() != null){
|
||||
|
||||
List<MtbColr> currentMtbColrs = mArticoliInColloBottomSheetViewModel.mtbColt.get().getMtbColr();
|
||||
List<MtbColr> currentMtbColrs = getColloRef().getMtbColr();
|
||||
|
||||
List<MtbColr> filteredMtbColrs = Stream.of(currentMtbColrs).filter(
|
||||
x -> x.getCodMart().equalsIgnoreCase(item.mtbAart.getCodMart()) &&
|
||||
@@ -831,34 +896,162 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
|
||||
cloneMtbColt.setMtbColr(new ObservableArrayList());
|
||||
cloneMtbColt.getMtbColr().add(mtbColr);
|
||||
|
||||
ColliMagazzinoRESTConsumer.saveCollo(cloneMtbColt, new ISimpleOperationCallback<MtbColt>() {
|
||||
@Override
|
||||
public void onSuccess(MtbColt value) {
|
||||
Runnable saveRiga = () -> {
|
||||
|
||||
if(mtbColtOfAccettazione != null) {
|
||||
mtbColr
|
||||
.setDataCollo(value.getDataColloS())
|
||||
.setNumCollo(value.getNumCollo())
|
||||
.setGestione(value.getGestione())
|
||||
.setSerCollo(value.getSerCollo())
|
||||
.setRiga(value.getMtbColr().get(0).getRiga())
|
||||
.setUntMis(item.getMtbAart().getUntMis())
|
||||
.setMtbAart(item.getMtbAart());
|
||||
.setNumColloRif(mtbColtOfAccettazione.getNumCollo())
|
||||
.setDataColloRif(mtbColtOfAccettazione.getDataColloD())
|
||||
.setGestioneRif(mtbColtOfAccettazione.getGestione())
|
||||
.setSerColloRif(mtbColtOfAccettazione.getSerCollo())
|
||||
|
||||
//item.setQtaRiservate(item.getQtaRiservate().add(mtbColr.getQtaCol()));
|
||||
.setNumOrd(null)
|
||||
.setRigaOrd(null)
|
||||
.setDataOrd((String) null)
|
||||
|
||||
mArticoliInColloBottomSheetViewModel.mtbColt.get().getMtbColr().add(mtbColr);
|
||||
refreshOrderBy(false);
|
||||
|
||||
FBToast.successToast(mActivity,mActivity.getResources().getString(R.string.data_saved) ,FBToast.LENGTH_SHORT);
|
||||
progress.dismiss();
|
||||
|
||||
if(closeLU) onColloClosed(null);
|
||||
.setRiga(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailed(Exception ex) {
|
||||
UtilityExceptions.defaultException(mActivity, ex, progress);
|
||||
}
|
||||
});
|
||||
ColliMagazzinoRESTConsumer.saveCollo(cloneMtbColt, new ISimpleOperationCallback<MtbColt>() {
|
||||
@Override
|
||||
public void onSuccess(MtbColt value) {
|
||||
|
||||
mtbColr
|
||||
.setDataCollo(value.getDataColloS())
|
||||
.setNumCollo(value.getNumCollo())
|
||||
.setGestione(value.getGestione())
|
||||
.setSerCollo(value.getSerCollo())
|
||||
.setRiga(value.getMtbColr().get(0).getRiga())
|
||||
.setUntMis(item.getMtbAart().getUntMis())
|
||||
.setMtbAart(item.getMtbAart());
|
||||
|
||||
//item.setQtaRiservate(item.getQtaRiservate().add(mtbColr.getQtaCol()));
|
||||
|
||||
mArticoliInColloBottomSheetViewModel.mtbColt.get().getMtbColr().add(mtbColr);
|
||||
refreshOrderBy(false);
|
||||
|
||||
FBToast.successToast(mActivity,mActivity.getResources().getString(R.string.data_saved) ,FBToast.LENGTH_SHORT);
|
||||
progress.dismiss();
|
||||
|
||||
if(closeLU) onColloClosed(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailed(Exception ex) {
|
||||
UtilityExceptions.defaultException(mActivity, ex, progress);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
if(mtbColtOfAccettazione != null) {
|
||||
MtbColr cloneMtbColr = (MtbColr) mtbColr.clone();
|
||||
|
||||
MtbColt cloneMtbColtOfAccettazione = (MtbColt) mtbColtOfAccettazione.clone();
|
||||
cloneMtbColtOfAccettazione.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
||||
|
||||
cloneMtbColtOfAccettazione.setMtbColr(new ObservableArrayList());
|
||||
cloneMtbColtOfAccettazione.getMtbColr().add(cloneMtbColr);
|
||||
|
||||
ColliMagazzinoRESTConsumer.saveCollo(cloneMtbColtOfAccettazione, new ISimpleOperationCallback<MtbColt>() {
|
||||
@Override
|
||||
public void onSuccess(MtbColt value) {
|
||||
cloneMtbColr
|
||||
.setDataCollo(value.getDataColloS())
|
||||
.setNumCollo(value.getNumCollo())
|
||||
.setGestione(value.getGestione())
|
||||
.setSerCollo(value.getSerCollo())
|
||||
.setRiga(value.getMtbColr().get(0).getRiga())
|
||||
.setUntMis(item.getMtbAart().getUntMis())
|
||||
.setMtbAart(item.getMtbAart());
|
||||
|
||||
mtbColtOfAccettazione.getMtbColr().add(cloneMtbColr);
|
||||
|
||||
saveRiga.run();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailed(Exception ex) {
|
||||
UtilityExceptions.defaultException(mActivity, ex, progress);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
saveRiga.run();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
private MtbColt getColloRef() {
|
||||
return mtbColtOfAccettazione != null ? mtbColtOfAccettazione : mArticoliInColloBottomSheetViewModel.mtbColt.get();
|
||||
}
|
||||
|
||||
private void resetUL() {
|
||||
mArticoliInColloBottomSheetViewModel.mtbColt.set(null);
|
||||
mtbColtOfAccettazione = null;
|
||||
}
|
||||
|
||||
private void onRowEdited(MtbColr oldValue, MtbColr newValue) {
|
||||
|
||||
if(mtbColtOfAccettazione != null) {
|
||||
|
||||
ProgressDialog progress = UtilityProgress.createDefaultProgressDialog(mActivity);
|
||||
|
||||
MtbColr mtbColrToEditOfAccettazione = Stream.of(mtbColtOfAccettazione.getMtbColr())
|
||||
.filter(x -> x.getQtaCol().compareTo(oldValue.getQtaCol()) == 0 &&
|
||||
x.getCodMart().equalsIgnoreCase(oldValue.getCodMart()) &&
|
||||
x.getPartitaMag().equalsIgnoreCase(oldValue.getPartitaMag()) &&
|
||||
x.getCodJcom().equalsIgnoreCase(oldValue.getCodJcom()))
|
||||
.findFirst()
|
||||
.get();
|
||||
|
||||
mtbColrToEditOfAccettazione
|
||||
.setQtaCol(newValue.getQtaCol());
|
||||
|
||||
ColliMagazzinoRESTConsumer.updateRiga(mtbColrToEditOfAccettazione, () -> {
|
||||
progress.dismiss();
|
||||
this.refreshOrderBy(false);
|
||||
}, ex -> {
|
||||
UtilityExceptions.defaultException(mActivity, ex, progress);
|
||||
this.refreshOrderBy(false);
|
||||
});
|
||||
|
||||
} else {
|
||||
|
||||
this.refreshOrderBy(false);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void onRowDeleted(MtbColr deletedValue) {
|
||||
|
||||
if(mtbColtOfAccettazione != null) {
|
||||
|
||||
ProgressDialog progress = UtilityProgress.createDefaultProgressDialog(mActivity);
|
||||
|
||||
MtbColr mtbColrToDeleteOfAccettazione = Stream.of(mtbColtOfAccettazione.getMtbColr())
|
||||
.filter(x -> x.getQtaCol().compareTo(deletedValue.getQtaCol()) == 0 &&
|
||||
x.getCodMart().equalsIgnoreCase(deletedValue.getCodMart()) &&
|
||||
x.getPartitaMag().equalsIgnoreCase(deletedValue.getPartitaMag()) &&
|
||||
x.getCodJcom().equalsIgnoreCase(deletedValue.getCodJcom()))
|
||||
.findFirst()
|
||||
.get();
|
||||
|
||||
ColliMagazzinoRESTConsumer.deleteRiga(mtbColrToDeleteOfAccettazione, () -> {
|
||||
mtbColtOfAccettazione.getMtbColr().remove(mtbColrToDeleteOfAccettazione);
|
||||
|
||||
progress.dismiss();
|
||||
this.refreshOrderBy(false);
|
||||
}, ex -> {
|
||||
UtilityExceptions.defaultException(mActivity, ex, progress);
|
||||
this.refreshOrderBy(false);
|
||||
});
|
||||
|
||||
} else {
|
||||
|
||||
this.refreshOrderBy(false);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -607,6 +607,7 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked<MtbColr> {
|
||||
final ProgressDialog progressDialogFinal = progressDialog == null ? UtilityProgress.createDefaultProgressDialog(mContext) : progressDialog;
|
||||
|
||||
MtbColt mtbColt = new MtbColt();
|
||||
mtbColt.initDefaultFields();
|
||||
mtbColt .setGestione(GestioneEnum.VENDITA)
|
||||
.setSegno(-1)
|
||||
.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
||||
@@ -667,7 +668,7 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked<MtbColr> {
|
||||
private void updateDataFine(ProgressDialog progress, Runnable onComplete) {
|
||||
|
||||
MtbColt cloneMtbColt = (MtbColt) this.mtbColt.get().clone();
|
||||
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
||||
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.UPDATE);
|
||||
cloneMtbColt.setOraFinePrep(new Date());
|
||||
|
||||
|
||||
|
||||
@@ -125,7 +125,7 @@ public class DialogVenditaFiltroAvanzato {
|
||||
private void initView(DialogVenditaFiltroAvanzatoBinding bindings, DialogVenditaFiltroAvanzatoViewModel viewModel) {
|
||||
IFiltroOrdiniVendita filtroOrdiniVendita = ClassRouter.getIstance(ClassRouter.PATH.FILTRO_ORDINI_VENDITA);
|
||||
|
||||
bindings.inputDataCons.setOnClickListener(view -> {
|
||||
bindings.filledExposedDropdownDataCons.setOnClickListener(view -> {
|
||||
Calendar c = Calendar.getInstance();
|
||||
|
||||
if(viewModel.dataConsegnaDate != null) {
|
||||
@@ -180,6 +180,7 @@ public class DialogVenditaFiltroAvanzato {
|
||||
viewModel.terminiConsegna.refresh();
|
||||
viewModel.vettore.refresh();
|
||||
viewModel.automezzo.refresh();
|
||||
viewModel.dataConsegna.refresh();
|
||||
|
||||
|
||||
}
|
||||
@@ -314,6 +315,27 @@ public class DialogVenditaFiltroAvanzato {
|
||||
arrayAdapterVettore.addAll(getAvailableVettori(true));
|
||||
});
|
||||
|
||||
BindableString.resetListeners(viewModel.dataConsegna);
|
||||
BindableString.registerListener(viewModel.dataConsegna, value -> {
|
||||
if(UtilityString.isNullOrEmpty(value)) currentDataConsPredicate = null;
|
||||
else {
|
||||
currentDataConsPredicate = o -> o.getDataConsD().equals(viewModel.dataConsegnaDate);
|
||||
}
|
||||
|
||||
refreshList();
|
||||
|
||||
arrayAdapterCodMdep.clear();
|
||||
arrayAdapterCodMdep.addAll(getAvailableCodMdeps(true));
|
||||
arrayAdapterNumOrds.clear();
|
||||
arrayAdapterNumOrds.addAll(getAvailableNumOrds(true));
|
||||
arrayAdapterCliente.clear();
|
||||
arrayAdapterCliente.addAll(getAvailableCliente(true));
|
||||
arrayAdapterTermCons.clear();
|
||||
arrayAdapterTermCons.addAll(getAvailableTermCons(true));
|
||||
arrayAdapterVettore.clear();
|
||||
arrayAdapterVettore.addAll(getAvailableVettori(true));
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -334,13 +356,13 @@ public class DialogVenditaFiltroAvanzato {
|
||||
|
||||
currentNumOrdsPredicate = o -> numOrdsInteger.contains(o.getNumOrd());
|
||||
|
||||
// bindings.inputNumOrds.setErrorEnabled(false);
|
||||
// bindings.inputNumOrds.setError("");
|
||||
// mBindings.inputNumOrds.setErrorEnabled(false);
|
||||
// mBindings.inputNumOrds.setError("");
|
||||
} catch (NumberFormatException ex) {
|
||||
currentNumOrdsPredicate = null;
|
||||
|
||||
// bindings.inputNumOrds.setErrorEnabled(true);
|
||||
// bindings.inputNumOrds.setError(currentContext.getResources().getString(R.string.error));
|
||||
// mBindings.inputNumOrds.setErrorEnabled(true);
|
||||
// mBindings.inputNumOrds.setError(currentContext.getResources().getString(R.string.error));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -8,7 +8,6 @@ import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.REST.consumers.PrinterRESTConsumer;
|
||||
@@ -28,7 +27,7 @@ import it.integry.integrywmsnative.view.bottomsheet.viewmodel.ArticoliInColloBot
|
||||
public class VenditaOrdineInevasoActivity extends AppCompatActivity {
|
||||
|
||||
|
||||
public ActivityVenditaOrdineInevasoBinding bindings;
|
||||
private ActivityVenditaOrdineInevasoBinding mBindings;
|
||||
private VenditaOrdineInevasoViewModel mVenditaOrdineInevasoViewModel;
|
||||
private ArticoliInColloBottomSheetViewModel mArticoliInColloBottomSheetViewModel;
|
||||
|
||||
@@ -41,17 +40,17 @@ public class VenditaOrdineInevasoActivity extends AppCompatActivity {
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
bindings = DataBindingUtil.setContentView(this, R.layout.activity_vendita_ordine_inevaso);
|
||||
FragmentArticoliInColloBottomSheetBinding bindings = this.bindings.bottomSheetInclude;
|
||||
mBindings = DataBindingUtil.setContentView(this, R.layout.activity_vendita_ordine_inevaso);
|
||||
FragmentArticoliInColloBottomSheetBinding bindings = this.mBindings.bottomSheetInclude;
|
||||
mArticoliInColloBottomSheetViewModel = new ArticoliInColloBottomSheetViewModel(this, bindings);
|
||||
|
||||
ArrayList<PickingObjectDTO> pickingList = DataCache.retrieveItem(getIntent().getStringExtra("keyPickingList"));
|
||||
ArrayList<OrdineVenditaGroupedInevasoDTO> testateOrdini = DataCache.retrieveItem(getIntent().getStringExtra("keyTestateOrdini"));
|
||||
ArrayList<MtbColt> colliRegistrati = DataCache.retrieveItem(getIntent().getStringExtra("keyColliRegistrati"));
|
||||
mVenditaOrdineInevasoViewModel = new VenditaOrdineInevasoViewModel(
|
||||
this, mArticoliInColloBottomSheetViewModel, pickingList, testateOrdini, colliRegistrati);
|
||||
this, mBindings, mArticoliInColloBottomSheetViewModel, pickingList, testateOrdini, colliRegistrati);
|
||||
|
||||
setSupportActionBar(this.bindings.toolbar);
|
||||
setSupportActionBar(this.mBindings.toolbar);
|
||||
|
||||
setTitle(R.string.activity_vendita_inevaso_title);
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
@@ -108,6 +107,7 @@ public class VenditaOrdineInevasoActivity extends AppCompatActivity {
|
||||
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
// Check which request we're responding to
|
||||
if (requestCode == PICK_UL_REQUEST) {
|
||||
// Make sure the request was successful
|
||||
|
||||
@@ -212,7 +212,7 @@ public class MainListOrdineVenditaInevasoAdapter extends RecyclerView.Adapter<Ma
|
||||
|
||||
|
||||
groupModelView.setOnClickListener(view -> {
|
||||
if (mOrdineRowDispatch != null && !rowItem.getOriginalModel().isDeactivated()) {
|
||||
if (mOrdineRowDispatch != null) {
|
||||
// rowItem.getOriginalModel().setTempEan128Model(null);
|
||||
mOrdineRowDispatch.onOrdineRowDispatch(rowItem.getOriginalModel());
|
||||
}
|
||||
|
||||
@@ -87,7 +87,7 @@ public class VenditaOrdineInevasoHelper {
|
||||
.filter(PickingObjectDTO::isDeactivated)
|
||||
.toList();
|
||||
|
||||
groupedRighe.add(deactivatedItems);
|
||||
if(deactivatedItems.size() > 0) groupedRighe.add(deactivatedItems);
|
||||
|
||||
return groupedRighe;
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import androidx.databinding.ObservableArrayList;
|
||||
import androidx.databinding.ObservableField;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import android.text.SpannableString;
|
||||
import android.view.View;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
import com.tfb.fbtoast.FBToast;
|
||||
@@ -31,6 +32,7 @@ import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||
import it.integry.integrywmsnative.core.class_router.ClassRouter;
|
||||
import it.integry.integrywmsnative.core.class_router.interfaces.IOrdiniVendita;
|
||||
import it.integry.integrywmsnative.core.data_recover.ColliDataRecover;
|
||||
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
||||
import it.integry.integrywmsnative.core.expansion.AtomicBigDecimal;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.model.CommonModelConsts;
|
||||
@@ -47,6 +49,7 @@ import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityPosizione;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||
import it.integry.integrywmsnative.databinding.ActivityVenditaOrdineInevasoBinding;
|
||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaGroupedInevasoDTO;
|
||||
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO;
|
||||
import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.VenditaOrdineInevasoActivity;
|
||||
@@ -61,13 +64,16 @@ import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||
import it.integry.integrywmsnative.view.dialogs.ask_should_print.DialogAskShouldPrint;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity.QuantityDTO;
|
||||
import it.integry.integrywmsnative.view.dialogs.scan_art.DialogScanArt;
|
||||
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
|
||||
|
||||
public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IOnOrdineVenditaRowDispatched {
|
||||
|
||||
public ObservableField<Boolean> isFabVisible = new ObservableField<>();
|
||||
public BindableBoolean shouldShowAddExtraItems = new BindableBoolean();
|
||||
|
||||
private VenditaOrdineInevasoActivity mActivity;
|
||||
private final ActivityVenditaOrdineInevasoBinding mBindings;
|
||||
private final ArticoliInColloBottomSheetViewModel mArticoliInColloBottomSheetViewModel;
|
||||
|
||||
private final List<PickingObjectDTO> mPickingList;
|
||||
@@ -86,10 +92,12 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
||||
private Integer defaultNumOrdOfUL = null;
|
||||
private Date defaultDataOrdOfUL = null;
|
||||
|
||||
|
||||
private Integer mtbColtSessionID = null;
|
||||
|
||||
public VenditaOrdineInevasoViewModel(VenditaOrdineInevasoActivity activity, ArticoliInColloBottomSheetViewModel articoliInColloBottomSheetViewModel, List<PickingObjectDTO> pickingList, List<OrdineVenditaGroupedInevasoDTO> orders, List<MtbColt> colliRegistrati) {
|
||||
public VenditaOrdineInevasoViewModel(VenditaOrdineInevasoActivity activity, ActivityVenditaOrdineInevasoBinding bindings, ArticoliInColloBottomSheetViewModel articoliInColloBottomSheetViewModel, List<PickingObjectDTO> pickingList, List<OrdineVenditaGroupedInevasoDTO> orders, List<MtbColt> colliRegistrati) {
|
||||
this.mActivity = activity;
|
||||
this.mBindings = bindings;
|
||||
this.mArticoliInColloBottomSheetViewModel = articoliInColloBottomSheetViewModel;
|
||||
this.mPickingList = pickingList;
|
||||
this.mTestateOrdini = orders;
|
||||
@@ -97,7 +105,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
||||
|
||||
this.isFabVisible.set(true);
|
||||
|
||||
this.mActivity.bindings.setViewmodel(this);
|
||||
this.mBindings.setViewmodel(this);
|
||||
|
||||
this.init();
|
||||
this.initDatiPicking();
|
||||
@@ -116,6 +124,12 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
||||
this.refreshOrderBy(false);
|
||||
});
|
||||
|
||||
mBindings.addExtraItemsToolbar.setOnClickListener((v -> {
|
||||
DialogScanArt.make(mActivity, (status, mtbAart) -> {
|
||||
|
||||
}).show();
|
||||
}));
|
||||
|
||||
mHelper = new VenditaOrdineInevasoHelper(mActivity);
|
||||
|
||||
initRecyclerView();
|
||||
@@ -123,11 +137,11 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
||||
|
||||
private void initRecyclerView(){
|
||||
//RecyclerView setup
|
||||
mActivity.bindings.venditaOrdineMainList.setHasFixedSize(true);
|
||||
this.mBindings.venditaOrdineMainList.setHasFixedSize(true);
|
||||
|
||||
mActivity.bindings.venditaOrdineMainList.setLayoutManager(new LinearLayoutManager(mActivity));
|
||||
this.mBindings.venditaOrdineMainList.setLayoutManager(new LinearLayoutManager(mActivity));
|
||||
|
||||
mAdapter = mHelper.getRightListAdapter(mActivity.bindings.venditaOrdineInevasoEmptyView);
|
||||
mAdapter = mHelper.getRightListAdapter(this.mBindings.venditaOrdineInevasoEmptyView);
|
||||
|
||||
try {
|
||||
this.mGroupedPickingList = mHelper.getPickingListRaggruppataPerPosizione(mPickingList, true);
|
||||
@@ -137,7 +151,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
||||
}
|
||||
|
||||
mAdapter.setOnOrdineRowDispatchCallback(this);
|
||||
mActivity.bindings.venditaOrdineMainList.setAdapter(mAdapter);
|
||||
this.mBindings.venditaOrdineMainList.setAdapter(mAdapter);
|
||||
}
|
||||
|
||||
private void initDatiPicking() {
|
||||
@@ -289,9 +303,9 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
||||
|
||||
public void applyFilter(String descriptionText) {
|
||||
|
||||
mActivity.bindings.filteredArtsInListExpandableLayout.expand(true);
|
||||
this.mBindings.filteredArtsInListExpandableLayout.expand(true);
|
||||
|
||||
mActivity.bindings.descriptionFilterText.setText(descriptionText);
|
||||
this.mBindings.descriptionFilterText.setText(descriptionText);
|
||||
}
|
||||
|
||||
public void removeListFilter() {
|
||||
@@ -301,7 +315,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
||||
}
|
||||
|
||||
refreshOrderBy(false);
|
||||
mActivity.bindings.filteredArtsInListExpandableLayout.collapse(true);
|
||||
this.mBindings.filteredArtsInListExpandableLayout.collapse(true);
|
||||
}
|
||||
|
||||
public void recoverUL(MtbColt recoveredMtbColt){
|
||||
@@ -730,10 +744,10 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
||||
}
|
||||
}
|
||||
|
||||
if(matchedRows.size() == 1) {
|
||||
if(matchedRows.size() == 1 ) {
|
||||
|
||||
if (matchedRows.get(0).getTempPickData() != null &&
|
||||
matchedRows.get(0).getTempPickData().getSourceMtbColt() != null) {
|
||||
matchedRows.get(0).getTempPickData().getSourceMtbColt() != null ) {
|
||||
|
||||
MtbColt tempSourceMtbColt = matchedRows.get(0).getTempPickData().getSourceMtbColt();
|
||||
|
||||
@@ -750,6 +764,9 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
||||
refreshOrderBy(false);
|
||||
}
|
||||
|
||||
} else if(matchedRows.get(0).isDeactivated()) {
|
||||
applyFilter("");
|
||||
refreshOrderBy(false);
|
||||
} else {
|
||||
onOrdineRowDispatch(matchedRows.get(0));
|
||||
}
|
||||
@@ -767,7 +784,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
||||
}
|
||||
|
||||
public void createNewUL(Integer customNumCollo, String customSerCollo, ProgressDialog progress, boolean disablePrint, boolean closeProgress, Runnable onComplete) {
|
||||
mActivity.bindings.venditaOrdineInevasoFab.close(true);
|
||||
this.mBindings.venditaOrdineInevasoFab.close(true);
|
||||
|
||||
if (progress == null){
|
||||
progress = UtilityProgress.createDefaultProgressDialog(mActivity);
|
||||
@@ -775,6 +792,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
||||
progress.show();
|
||||
|
||||
MtbColt mtbColt = new MtbColt();
|
||||
mtbColt.initDefaultFields();
|
||||
mtbColt .setGestione(defaultGestioneOfUL)
|
||||
.setSegno(-1)
|
||||
.setRifOrd(defaultRifOrdOfUL)
|
||||
@@ -837,12 +855,13 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
||||
|
||||
private void setULToCurrentContext(MtbColt mtbColt){
|
||||
isFabVisible.set(false);
|
||||
shouldShowAddExtraItems.set(SettingsManager.iDB().isFlagCanAddExtraItemSpedizione());
|
||||
mArticoliInColloBottomSheetViewModel.mtbColt.set(mtbColt);
|
||||
}
|
||||
|
||||
public void showCreatedUL() {
|
||||
|
||||
mActivity.bindings.venditaOrdineInevasoFab.close(false);
|
||||
this.mBindings.venditaOrdineInevasoFab.close(false);
|
||||
mActivity.startListaBancaliRegistratiActivity((ArrayList<MtbColt>) mColliRegistrati);
|
||||
}
|
||||
|
||||
@@ -863,12 +882,13 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
||||
} else {
|
||||
if(onComplete != null) onComplete.run();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void updateDataFine(ProgressDialog progress, Runnable onComplete) {
|
||||
|
||||
MtbColt cloneMtbColt = (MtbColt) mArticoliInColloBottomSheetViewModel.mtbColt.get().clone();
|
||||
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
||||
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.UPDATE);
|
||||
cloneMtbColt.setOraFinePrep(new Date());
|
||||
|
||||
|
||||
@@ -985,6 +1005,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
||||
mArticoliInColloBottomSheetViewModel.mtbColt.set(null);
|
||||
|
||||
isFabVisible.set(true);
|
||||
shouldShowAddExtraItems.set(false);
|
||||
|
||||
progress.dismiss();
|
||||
|
||||
@@ -1013,6 +1034,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
||||
|
||||
mArticoliInColloBottomSheetViewModel.mtbColt.set(null);
|
||||
isFabVisible.set(true);
|
||||
shouldShowAddExtraItems.set(false);
|
||||
|
||||
|
||||
for(int i = 0; i < this.mPickingList.size(); i++) {
|
||||
@@ -1085,7 +1107,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
||||
qtaTest.addAndGet(x.getQtaCol());
|
||||
});
|
||||
|
||||
BigDecimal qtaDisponibile = item.getQtaCollo().subtract(qtaTest.get());
|
||||
BigDecimal qtaDisponibile = (item.isDeactivated() ? item.getQtaOrd() : item.getQtaCollo()).subtract(qtaTest.get());
|
||||
if(qtaDisponibile.floatValue() < 0) qtaDisponibile = BigDecimal.ZERO;
|
||||
|
||||
DialogInputQuantity.DTO dto = new DialogInputQuantity.DTO()
|
||||
@@ -1097,7 +1119,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
||||
.setQtaDisponibile(qtaDisponibile)
|
||||
.setQtaTot(qtaDisponibile)
|
||||
.setQtaEvasa(new BigDecimal(qtaEvasaTotale))
|
||||
.setCanPartitaMagBeChanged(false)
|
||||
.setCanPartitaMagBeChanged(item.isDeactivated())
|
||||
.setMaxQta(qtaDisponibile);
|
||||
|
||||
if(item.getTempPickData() != null) {
|
||||
|
||||
@@ -75,7 +75,7 @@ public class ArticoliInColloBottomSheetHelper extends BottomSheetBehavior.Bottom
|
||||
|
||||
|
||||
mBinding.articoliInColloDetailsPosizione.setText(mtbColt.getPosizione() != null ? mtbColt.getPosizione() : "N/A");
|
||||
// bindings.articoliInColloDetailsPreparatoDa.setText(mtbColt.getPreparatoDa() != null ? mtbColt.getPreparatoDa() : "N/A");
|
||||
// mBindings.articoliInColloDetailsPreparatoDa.setText(mtbColt.getPreparatoDa() != null ? mtbColt.getPreparatoDa() : "N/A");
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,181 @@
|
||||
package it.integry.integrywmsnative.view.dialogs.scan_art;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.app.ProgressDialog;
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
import android.text.SpannableString;
|
||||
import android.view.LayoutInflater;
|
||||
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.REST.consumers.ArticoloRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.REST.consumers.BarcodeRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.REST.model.Ean128Model;
|
||||
import it.integry.integrywmsnative.core.REST.model.Ean13PesoModel;
|
||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
|
||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
||||
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityLogger;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||
import it.integry.integrywmsnative.databinding.DialogScanArtBinding;
|
||||
import it.integry.integrywmsnative.view.dialogs.DialogConsts;
|
||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
|
||||
|
||||
public class DialogScanArt {
|
||||
|
||||
private Context mContext;
|
||||
private Dialog mDialog;
|
||||
|
||||
private RunnableArgss<DialogConsts.Results, MtbAart> mOnItemChoosed;
|
||||
|
||||
public static Dialog make(final Context context, RunnableArgss<DialogConsts.Results, MtbAart> onItemChoosed) {
|
||||
return new DialogScanArt(context, onItemChoosed).mDialog;
|
||||
}
|
||||
|
||||
|
||||
private DialogScanArt(Context context, RunnableArgss<DialogConsts.Results, MtbAart> onItemChoosed) {
|
||||
mContext = context;
|
||||
mOnItemChoosed = onItemChoosed;
|
||||
|
||||
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
|
||||
DialogScanArtBinding bindings = DataBindingUtil.inflate(inflater, R.layout.dialog_scan_art, null, false);
|
||||
|
||||
mDialog = new Dialog(context);
|
||||
|
||||
mDialog.setContentView(bindings.getRoot());
|
||||
|
||||
mDialog.setCanceledOnTouchOutside(false);
|
||||
mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
|
||||
|
||||
|
||||
bindings.buttonNo.setOnClickListener(v -> {
|
||||
mOnItemChoosed.run(DialogConsts.Results.ABORT, null);
|
||||
mDialog.dismiss();
|
||||
});
|
||||
|
||||
|
||||
initBarcode(context);
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void initBarcode(Context context) {
|
||||
|
||||
int barcodeIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
|
||||
.setOnScanSuccessfull(onScanSuccessfull)
|
||||
.setOnScanFailed(ex -> UtilityExceptions.defaultException(context, ex, false)));
|
||||
|
||||
mDialog.setOnDismissListener(dialog -> {
|
||||
BarcodeManager.removeCallback(barcodeIstanceID);
|
||||
BarcodeManager.enable();
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
private RunnableArgs<BarcodeScanDTO> onScanSuccessfull = data -> {
|
||||
|
||||
ProgressDialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
|
||||
|
||||
BarcodeManager.disable();
|
||||
|
||||
if(UtilityBarcode.isEtichetta128(data)) {
|
||||
this.executeEtichettaEan128(data, progressDialog);
|
||||
} else if(UtilityBarcode.isEanPeso(data)){
|
||||
this.executeEtichettaEanPeso(data, progressDialog);
|
||||
} else {
|
||||
this.loadArticolo(data.getStringValue(), null, progressDialog);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private void executeEtichettaEan128(BarcodeScanDTO barcodeScanDTO, ProgressDialog progressDialog) {
|
||||
BarcodeRESTConsumer.decodeEan128(barcodeScanDTO, ean128Model -> {
|
||||
|
||||
String barcodeProd = null;
|
||||
|
||||
if(ean128Model.Sscc != null) barcodeProd = ean128Model.Sscc;
|
||||
if(ean128Model.Gtin != null) barcodeProd = ean128Model.Gtin;
|
||||
if(ean128Model.Content != null) barcodeProd = ean128Model.Content;
|
||||
|
||||
|
||||
if(!UtilityString.isNullOrEmpty(barcodeProd)) {
|
||||
if (barcodeProd.startsWith("0") || barcodeProd.startsWith("9")) {
|
||||
barcodeProd = barcodeProd.substring(1, barcodeProd.length());
|
||||
}
|
||||
this.loadArticolo(barcodeProd, ean128Model, progressDialog);
|
||||
} else {
|
||||
//EAN 128 non completo o comunque mancano i riferimenti al prodotto
|
||||
progressDialog.dismiss();
|
||||
BarcodeManager.enable();
|
||||
}
|
||||
}, ex-> {
|
||||
UtilityExceptions.defaultException(mContext, ex, progressDialog);
|
||||
BarcodeManager.enable();
|
||||
});
|
||||
}
|
||||
|
||||
private void executeEtichettaEanPeso(BarcodeScanDTO barcodeScanDTO, ProgressDialog progressDialog) {
|
||||
|
||||
try {
|
||||
Ean13PesoModel ean13PesoModel = Ean13PesoModel.fromBarcode(barcodeScanDTO.getStringValue());
|
||||
|
||||
this.loadArticolo(ean13PesoModel.getPrecode(), ean13PesoModel.toEan128(), progressDialog);
|
||||
} catch (Exception ex) {
|
||||
UtilityExceptions.defaultException(mContext, ex, progressDialog);
|
||||
BarcodeManager.enable();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void loadArticolo(String barcodeProd, Ean128Model ean128Model, ProgressDialog progressDialog) {
|
||||
if(barcodeProd.length() == 14) {
|
||||
// barcodeProd = UtilityBarcode.convertITF14toNeutral(barcodeProd);
|
||||
barcodeProd = UtilityBarcode.convertITF14toEAN13(barcodeProd);
|
||||
}
|
||||
|
||||
ArticoloRESTConsumer.getByBarcodeProd(barcodeProd, mtbAartList -> {
|
||||
|
||||
if(mtbAartList != null && mtbAartList.size() > 0) {
|
||||
BarcodeManager.enable();
|
||||
progressDialog.dismiss();
|
||||
|
||||
mOnItemChoosed.run(DialogConsts.Results.YES, mtbAartList.get(0));
|
||||
mDialog.dismiss();
|
||||
|
||||
|
||||
} else {
|
||||
BarcodeManager.enable();
|
||||
progressDialog.dismiss();
|
||||
|
||||
DialogSimpleMessageHelper.makeWarningDialog(mContext,
|
||||
new SpannableString(mContext.getResources().getText(R.string.no_result_from_barcode)),
|
||||
null, null)
|
||||
.show();
|
||||
}
|
||||
|
||||
}, ex -> {
|
||||
BarcodeManager.enable();
|
||||
UtilityExceptions.defaultException(mContext, ex, progressDialog);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user