Implementata creazione del doppio collo A / L in Accettazione.
Iniziata implementazione del tasto "Aggiungi merce extra" in Spedizione.
This commit is contained in:
parent
787d12ff9b
commit
b4b8fac725
@ -94,6 +94,8 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{
|
|||||||
.setSegno(segno)
|
.setSegno(segno)
|
||||||
.setGestione(GestioneEnum.LAVORAZIONE);
|
.setGestione(GestioneEnum.LAVORAZIONE);
|
||||||
|
|
||||||
|
mtbColtToCreate.initDefaultFields();
|
||||||
|
|
||||||
mtbColtToCreate
|
mtbColtToCreate
|
||||||
.setOperation(CommonModelConsts.OPERATION.INSERT);
|
.setOperation(CommonModelConsts.OPERATION.INSERT);
|
||||||
|
|
||||||
@ -166,6 +168,8 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{
|
|||||||
MtbColt mtbColtToCreate = new MtbColt()
|
MtbColt mtbColtToCreate = new MtbColt()
|
||||||
.setGestione(gestione);
|
.setGestione(gestione);
|
||||||
|
|
||||||
|
mtbColtToCreate.initDefaultFields();
|
||||||
|
|
||||||
Integer customNumCollo = UtilityBarcode.getNumColloFromULAnonima(barcode);
|
Integer customNumCollo = UtilityBarcode.getNumColloFromULAnonima(barcode);
|
||||||
String customSerCollo = CommonConst.Config.DEFAULT_ANONYMOUS_UL_SERIE;
|
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);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
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);
|
view.setVisibility(bindableBoolean.get() ? View.VISIBLE : View.GONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -99,6 +99,9 @@ public class MtbColt extends EntityBase {
|
|||||||
type = "mtb_colt";
|
type = "mtb_colt";
|
||||||
setDataCollo(new Date());
|
setDataCollo(new Date());
|
||||||
setSerCollo("/");
|
setSerCollo("/");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void initDefaultFields() {
|
||||||
setCodMdep(SettingsManager.i().userSession.depo.getCodMdep());
|
setCodMdep(SettingsManager.i().userSession.depo.getCodMdep());
|
||||||
setPreparatoDa(SettingsManager.i().user.fullname);
|
setPreparatoDa(SettingsManager.i().user.fullname);
|
||||||
setOraInizPrep(new Date());
|
setOraInizPrep(new Date());
|
||||||
|
|||||||
@ -23,6 +23,8 @@ public class DBSettingsModel {
|
|||||||
private DistribuzioneColloDTO.CriterioDistribuzione defaultCriterioDistribuzione;
|
private DistribuzioneColloDTO.CriterioDistribuzione defaultCriterioDistribuzione;
|
||||||
private boolean flagAskClienteInPickingLibero;
|
private boolean flagAskClienteInPickingLibero;
|
||||||
|
|
||||||
|
private boolean flagCanAddExtraItemSpedizione;
|
||||||
|
|
||||||
public List<String> getAvailableProfiles() {
|
public List<String> getAvailableProfiles() {
|
||||||
return availableProfiles;
|
return availableProfiles;
|
||||||
}
|
}
|
||||||
@ -109,4 +111,13 @@ public class DBSettingsModel {
|
|||||||
this.flagAskClienteInPickingLibero = flagAskClienteInPickingLibero;
|
this.flagAskClienteInPickingLibero = flagAskClienteInPickingLibero;
|
||||||
return this;
|
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 -> {
|
GestSetupRESTConsumer.getBooleanValue("PICKING", "PICKING_LIBERO", "FLAG_ASK_CLIENTE", valueAskClientePickingLibero -> {
|
||||||
dbSettingsModelIstance.setFlagAskClienteInPickingLibero(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 -> {
|
}, ex -> {
|
||||||
if(onFailed != null) onFailed.run(ex);
|
if(onFailed != null) onFailed.run(ex);
|
||||||
|
|||||||
@ -76,6 +76,8 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
|
|||||||
|
|
||||||
private GestioneEnum defaultGestioneOfUL = null;
|
private GestioneEnum defaultGestioneOfUL = null;
|
||||||
|
|
||||||
|
private MtbColt mtbColtOfAccettazione = null;
|
||||||
|
|
||||||
public AccettazioneOrdineAccettazioneInevasoViewModel(AccettazioneOrdineInevasoActivity activity, ArticoliInColloBottomSheetViewModel articoliInColloBottomSheetViewModel, List<OrdineAccettazioneDTO> orders) {
|
public AccettazioneOrdineAccettazioneInevasoViewModel(AccettazioneOrdineInevasoActivity activity, ArticoliInColloBottomSheetViewModel articoliInColloBottomSheetViewModel, List<OrdineAccettazioneDTO> orders) {
|
||||||
this.mActivity = activity;
|
this.mActivity = activity;
|
||||||
this.mArticoliInColloBottomSheetViewModel = articoliInColloBottomSheetViewModel;
|
this.mArticoliInColloBottomSheetViewModel = articoliInColloBottomSheetViewModel;
|
||||||
@ -90,8 +92,8 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
|
|||||||
|
|
||||||
private void init(){
|
private void init(){
|
||||||
mArticoliInColloBottomSheetViewModel.setOnCloseColloCallbackListener(this);
|
mArticoliInColloBottomSheetViewModel.setOnCloseColloCallbackListener(this);
|
||||||
mArticoliInColloBottomSheetViewModel.setOnItemDeletedCallback((deletedItem) -> this.refreshOrderBy(false));
|
mArticoliInColloBottomSheetViewModel.setOnItemDeletedCallback(this::onRowDeleted);
|
||||||
mArticoliInColloBottomSheetViewModel.setOnItemEditedCallback((originalItem, editedItem) -> this.refreshOrderBy(false));
|
mArticoliInColloBottomSheetViewModel.setOnItemEditedCallback(this::onRowEdited);
|
||||||
|
|
||||||
groupedOrdini = new ArrayList<>();
|
groupedOrdini = new ArrayList<>();
|
||||||
for (OrdineAccettazioneDTO ordine : mOrders){
|
for (OrdineAccettazioneDTO ordine : mOrders){
|
||||||
@ -167,7 +169,7 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
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);
|
helper.updateListModel(currentOrderBy, groupedRighe, mtbColrs);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@ -421,22 +423,43 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
|
|||||||
String defaultPosAccettazione = "";
|
String defaultPosAccettazione = "";
|
||||||
if(defaultPosAccettazioneDTO != null && !UtilityString.isNullOrEmpty(defaultPosAccettazioneDTO.value)) defaultPosAccettazione = defaultPosAccettazioneDTO.value;
|
if(defaultPosAccettazioneDTO != null && !UtilityString.isNullOrEmpty(defaultPosAccettazioneDTO.value)) defaultPosAccettazione = defaultPosAccettazioneDTO.value;
|
||||||
|
|
||||||
MtbColt mtbColt = new MtbColt();
|
|
||||||
mtbColt
|
MtbColt mtbColtOfBarode = new MtbColt();
|
||||||
.setGestione(defaultGestioneOfUL)
|
mtbColtOfBarode.initDefaultFields();
|
||||||
.setPreparatoDa(SettingsManager.i().user.fullname)
|
mtbColtOfBarode
|
||||||
|
.setGestione(GestioneEnum.LAVORAZIONE)
|
||||||
.setAnnotazioni(noteString)
|
.setAnnotazioni(noteString)
|
||||||
.setPosizione(defaultPosAccettazione)
|
.setPosizione(defaultPosAccettazione)
|
||||||
.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(customNumCollo != null) {
|
if(customNumCollo != null) {
|
||||||
mtbColt.setNumCollo(customNumCollo);
|
mtbColtOfBarode.setNumCollo(customNumCollo);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!UtilityString.isNullOrEmpty(customSerCollo)) {
|
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 =
|
List<String> codAnags =
|
||||||
stream(mOrders)
|
stream(mOrders)
|
||||||
.select(c -> c.codAnag)
|
.select(c -> c.codAnag)
|
||||||
@ -444,7 +467,7 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
|
|||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
if(codAnags != null && codAnags.size() == 1){
|
if(codAnags != null && codAnags.size() == 1){
|
||||||
mtbColt.setCodAnag(codAnags.get(0));
|
mtbColtToAddRefs.setCodAnag(codAnags.get(0));
|
||||||
}
|
}
|
||||||
|
|
||||||
List<String> rifOrds =
|
List<String> rifOrds =
|
||||||
@ -454,7 +477,7 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
|
|||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
if(rifOrds != null && rifOrds.size() == 1){
|
if(rifOrds != null && rifOrds.size() == 1){
|
||||||
mtbColt.setRifOrd(rifOrds.get(0));
|
mtbColtToAddRefs.setRifOrd(rifOrds.get(0));
|
||||||
}
|
}
|
||||||
|
|
||||||
List<String> numDataOrds =
|
List<String> numDataOrds =
|
||||||
@ -464,11 +487,11 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
|
|||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
if(numDataOrds != null && numDataOrds.size() == 1){
|
if(numDataOrds != null && numDataOrds.size() == 1){
|
||||||
mtbColt.setNumOrd(mOrders.get(0).numero);
|
mtbColtToAddRefs.setNumOrd(mOrders.get(0).numero);
|
||||||
mtbColt.setDataOrd(mOrders.get(0).data);
|
mtbColtToAddRefs.setDataOrd(mOrders.get(0).data);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
mtbColt.generaFiltroOrdine();
|
mtbColtToAddRefs.generaFiltroOrdine();
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
DialogSimpleMessageHelper.makeErrorDialog(mActivity, new SpannableString(ex.getMessage()), null, null).show();
|
DialogSimpleMessageHelper.makeErrorDialog(mActivity, new SpannableString(ex.getMessage()), null, null).show();
|
||||||
return;
|
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
|
@Override
|
||||||
public void onSuccess(MtbColt value) {
|
public void onSuccess(MtbColt value) {
|
||||||
|
|
||||||
@ -510,6 +534,37 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
|
|||||||
UtilityExceptions.defaultException(mActivity, ex, finalProgress);
|
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));
|
}, ex -> UtilityExceptions.defaultException(mActivity, ex, finalProgress));
|
||||||
|
|
||||||
|
|
||||||
@ -575,8 +630,8 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
|
|||||||
|
|
||||||
private void updateDataFine(ProgressDialog progress, Runnable onComplete) {
|
private void updateDataFine(ProgressDialog progress, Runnable onComplete) {
|
||||||
|
|
||||||
MtbColt cloneMtbColt = (MtbColt) mArticoliInColloBottomSheetViewModel.mtbColt.get().clone();
|
MtbColt cloneMtbColt = (MtbColt) getColloRef().clone();
|
||||||
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.UPDATE);
|
||||||
cloneMtbColt.setOraFinePrep(new Date());
|
cloneMtbColt.setOraFinePrep(new Date());
|
||||||
|
|
||||||
|
|
||||||
@ -640,8 +695,7 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
|
|||||||
UtilityExceptions.defaultException(mActivity, ex, progress);
|
UtilityExceptions.defaultException(mActivity, ex, progress);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
resetUL();
|
||||||
mArticoliInColloBottomSheetViewModel.mtbColt.set(null);
|
|
||||||
isFabVisible.set(true);
|
isFabVisible.set(true);
|
||||||
|
|
||||||
progress.dismiss();
|
progress.dismiss();
|
||||||
@ -660,33 +714,44 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
|
|||||||
|
|
||||||
private void deleteCollo(ProgressDialog progress, Runnable onComplete) {
|
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);
|
isFabVisible.set(true);
|
||||||
|
|
||||||
progress.dismiss();
|
progress.dismiss();
|
||||||
if(onComplete != null) onComplete.run();
|
if(onComplete != null) onComplete.run();
|
||||||
}, ex -> UtilityExceptions.defaultException(mActivity, ex, progress));
|
}, 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() {
|
public boolean thereIsAnOpenedUL() {
|
||||||
return mArticoliInColloBottomSheetViewModel.mtbColt.get() != null;
|
return getColloRef() != null;
|
||||||
}
|
}
|
||||||
public boolean thereIsAnyRowInUL() {
|
public boolean thereIsAnyRowInUL() {
|
||||||
return mArticoliInColloBottomSheetViewModel.mtbColt.get() != null &&
|
return getColloRef() != null &&
|
||||||
mArticoliInColloBottomSheetViewModel.mtbColt.get().getMtbColr() != null &&
|
getColloRef().getMtbColr() != null &&
|
||||||
mArticoliInColloBottomSheetViewModel.mtbColt.get().getMtbColr().size() > 0;
|
getColloRef().getMtbColr().size() > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void postCloseOperations(Runnable onComplete) {
|
private void postCloseOperations(Runnable onComplete) {
|
||||||
|
|
||||||
MtbColt mtbColt = mArticoliInColloBottomSheetViewModel.mtbColt.get();
|
MtbColt mtbColt = (MtbColt) mtbColtOfAccettazione.clone();
|
||||||
|
|
||||||
|
resetUL();
|
||||||
|
|
||||||
mArticoliInColloBottomSheetViewModel.mtbColt.set(null);
|
|
||||||
isFabVisible.set(true);
|
isFabVisible.set(true);
|
||||||
|
|
||||||
if(mtbColt != null && mtbColt.getMtbColr() != null) {
|
if(mtbColt != null && mtbColt.getMtbColr() != null) {
|
||||||
@ -721,9 +786,9 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onOrdineRowDispatch(final OrdineAccettazioneDTO.Riga item, Ean128Model ean128Model) {
|
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(
|
List<MtbColr> filteredMtbColrs = Stream.of(currentMtbColrs).filter(
|
||||||
x -> x.getCodMart().equalsIgnoreCase(item.mtbAart.getCodMart()) &&
|
x -> x.getCodMart().equalsIgnoreCase(item.mtbAart.getCodMart()) &&
|
||||||
@ -831,34 +896,162 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
|
|||||||
cloneMtbColt.setMtbColr(new ObservableArrayList());
|
cloneMtbColt.setMtbColr(new ObservableArrayList());
|
||||||
cloneMtbColt.getMtbColr().add(mtbColr);
|
cloneMtbColt.getMtbColr().add(mtbColr);
|
||||||
|
|
||||||
ColliMagazzinoRESTConsumer.saveCollo(cloneMtbColt, new ISimpleOperationCallback<MtbColt>() {
|
Runnable saveRiga = () -> {
|
||||||
@Override
|
|
||||||
public void onSuccess(MtbColt value) {
|
|
||||||
|
|
||||||
|
if(mtbColtOfAccettazione != null) {
|
||||||
mtbColr
|
mtbColr
|
||||||
.setDataCollo(value.getDataColloS())
|
.setNumColloRif(mtbColtOfAccettazione.getNumCollo())
|
||||||
.setNumCollo(value.getNumCollo())
|
.setDataColloRif(mtbColtOfAccettazione.getDataColloD())
|
||||||
.setGestione(value.getGestione())
|
.setGestioneRif(mtbColtOfAccettazione.getGestione())
|
||||||
.setSerCollo(value.getSerCollo())
|
.setSerColloRif(mtbColtOfAccettazione.getSerCollo())
|
||||||
.setRiga(value.getMtbColr().get(0).getRiga())
|
|
||||||
.setUntMis(item.getMtbAart().getUntMis())
|
|
||||||
.setMtbAart(item.getMtbAart());
|
|
||||||
|
|
||||||
//item.setQtaRiservate(item.getQtaRiservate().add(mtbColr.getQtaCol()));
|
.setNumOrd(null)
|
||||||
|
.setRigaOrd(null)
|
||||||
|
.setDataOrd((String) null)
|
||||||
|
|
||||||
mArticoliInColloBottomSheetViewModel.mtbColt.get().getMtbColr().add(mtbColr);
|
.setRiga(null);
|
||||||
refreshOrderBy(false);
|
|
||||||
|
|
||||||
FBToast.successToast(mActivity,mActivity.getResources().getString(R.string.data_saved) ,FBToast.LENGTH_SHORT);
|
|
||||||
progress.dismiss();
|
|
||||||
|
|
||||||
if(closeLU) onColloClosed(null);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
ColliMagazzinoRESTConsumer.saveCollo(cloneMtbColt, new ISimpleOperationCallback<MtbColt>() {
|
||||||
public void onFailed(Exception ex) {
|
@Override
|
||||||
UtilityExceptions.defaultException(mActivity, ex, progress);
|
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;
|
final ProgressDialog progressDialogFinal = progressDialog == null ? UtilityProgress.createDefaultProgressDialog(mContext) : progressDialog;
|
||||||
|
|
||||||
MtbColt mtbColt = new MtbColt();
|
MtbColt mtbColt = new MtbColt();
|
||||||
|
mtbColt.initDefaultFields();
|
||||||
mtbColt .setGestione(GestioneEnum.VENDITA)
|
mtbColt .setGestione(GestioneEnum.VENDITA)
|
||||||
.setSegno(-1)
|
.setSegno(-1)
|
||||||
.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
||||||
@ -667,7 +668,7 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked<MtbColr> {
|
|||||||
private void updateDataFine(ProgressDialog progress, Runnable onComplete) {
|
private void updateDataFine(ProgressDialog progress, Runnable onComplete) {
|
||||||
|
|
||||||
MtbColt cloneMtbColt = (MtbColt) this.mtbColt.get().clone();
|
MtbColt cloneMtbColt = (MtbColt) this.mtbColt.get().clone();
|
||||||
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.UPDATE);
|
||||||
cloneMtbColt.setOraFinePrep(new Date());
|
cloneMtbColt.setOraFinePrep(new Date());
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -125,7 +125,7 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
private void initView(DialogVenditaFiltroAvanzatoBinding bindings, DialogVenditaFiltroAvanzatoViewModel viewModel) {
|
private void initView(DialogVenditaFiltroAvanzatoBinding bindings, DialogVenditaFiltroAvanzatoViewModel viewModel) {
|
||||||
IFiltroOrdiniVendita filtroOrdiniVendita = ClassRouter.getIstance(ClassRouter.PATH.FILTRO_ORDINI_VENDITA);
|
IFiltroOrdiniVendita filtroOrdiniVendita = ClassRouter.getIstance(ClassRouter.PATH.FILTRO_ORDINI_VENDITA);
|
||||||
|
|
||||||
bindings.inputDataCons.setOnClickListener(view -> {
|
bindings.filledExposedDropdownDataCons.setOnClickListener(view -> {
|
||||||
Calendar c = Calendar.getInstance();
|
Calendar c = Calendar.getInstance();
|
||||||
|
|
||||||
if(viewModel.dataConsegnaDate != null) {
|
if(viewModel.dataConsegnaDate != null) {
|
||||||
@ -180,6 +180,7 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
viewModel.terminiConsegna.refresh();
|
viewModel.terminiConsegna.refresh();
|
||||||
viewModel.vettore.refresh();
|
viewModel.vettore.refresh();
|
||||||
viewModel.automezzo.refresh();
|
viewModel.automezzo.refresh();
|
||||||
|
viewModel.dataConsegna.refresh();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -314,6 +315,27 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
arrayAdapterVettore.addAll(getAvailableVettori(true));
|
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());
|
currentNumOrdsPredicate = o -> numOrdsInteger.contains(o.getNumOrd());
|
||||||
|
|
||||||
// bindings.inputNumOrds.setErrorEnabled(false);
|
// mBindings.inputNumOrds.setErrorEnabled(false);
|
||||||
// bindings.inputNumOrds.setError("");
|
// mBindings.inputNumOrds.setError("");
|
||||||
} catch (NumberFormatException ex) {
|
} catch (NumberFormatException ex) {
|
||||||
currentNumOrdsPredicate = null;
|
currentNumOrdsPredicate = null;
|
||||||
|
|
||||||
// bindings.inputNumOrds.setErrorEnabled(true);
|
// mBindings.inputNumOrds.setErrorEnabled(true);
|
||||||
// bindings.inputNumOrds.setError(currentContext.getResources().getString(R.string.error));
|
// mBindings.inputNumOrds.setError(currentContext.getResources().getString(R.string.error));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,7 +8,6 @@ import android.view.Menu;
|
|||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.REST.consumers.PrinterRESTConsumer;
|
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 class VenditaOrdineInevasoActivity extends AppCompatActivity {
|
||||||
|
|
||||||
|
|
||||||
public ActivityVenditaOrdineInevasoBinding bindings;
|
private ActivityVenditaOrdineInevasoBinding mBindings;
|
||||||
private VenditaOrdineInevasoViewModel mVenditaOrdineInevasoViewModel;
|
private VenditaOrdineInevasoViewModel mVenditaOrdineInevasoViewModel;
|
||||||
private ArticoliInColloBottomSheetViewModel mArticoliInColloBottomSheetViewModel;
|
private ArticoliInColloBottomSheetViewModel mArticoliInColloBottomSheetViewModel;
|
||||||
|
|
||||||
@ -41,17 +40,17 @@ public class VenditaOrdineInevasoActivity extends AppCompatActivity {
|
|||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
bindings = DataBindingUtil.setContentView(this, R.layout.activity_vendita_ordine_inevaso);
|
mBindings = DataBindingUtil.setContentView(this, R.layout.activity_vendita_ordine_inevaso);
|
||||||
FragmentArticoliInColloBottomSheetBinding bindings = this.bindings.bottomSheetInclude;
|
FragmentArticoliInColloBottomSheetBinding bindings = this.mBindings.bottomSheetInclude;
|
||||||
mArticoliInColloBottomSheetViewModel = new ArticoliInColloBottomSheetViewModel(this, bindings);
|
mArticoliInColloBottomSheetViewModel = new ArticoliInColloBottomSheetViewModel(this, bindings);
|
||||||
|
|
||||||
ArrayList<PickingObjectDTO> pickingList = DataCache.retrieveItem(getIntent().getStringExtra("keyPickingList"));
|
ArrayList<PickingObjectDTO> pickingList = DataCache.retrieveItem(getIntent().getStringExtra("keyPickingList"));
|
||||||
ArrayList<OrdineVenditaGroupedInevasoDTO> testateOrdini = DataCache.retrieveItem(getIntent().getStringExtra("keyTestateOrdini"));
|
ArrayList<OrdineVenditaGroupedInevasoDTO> testateOrdini = DataCache.retrieveItem(getIntent().getStringExtra("keyTestateOrdini"));
|
||||||
ArrayList<MtbColt> colliRegistrati = DataCache.retrieveItem(getIntent().getStringExtra("keyColliRegistrati"));
|
ArrayList<MtbColt> colliRegistrati = DataCache.retrieveItem(getIntent().getStringExtra("keyColliRegistrati"));
|
||||||
mVenditaOrdineInevasoViewModel = new VenditaOrdineInevasoViewModel(
|
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);
|
setTitle(R.string.activity_vendita_inevaso_title);
|
||||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||||
@ -108,6 +107,7 @@ public class VenditaOrdineInevasoActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||||
|
super.onActivityResult(requestCode, resultCode, data);
|
||||||
// Check which request we're responding to
|
// Check which request we're responding to
|
||||||
if (requestCode == PICK_UL_REQUEST) {
|
if (requestCode == PICK_UL_REQUEST) {
|
||||||
// Make sure the request was successful
|
// Make sure the request was successful
|
||||||
|
|||||||
@ -212,7 +212,7 @@ public class MainListOrdineVenditaInevasoAdapter extends RecyclerView.Adapter<Ma
|
|||||||
|
|
||||||
|
|
||||||
groupModelView.setOnClickListener(view -> {
|
groupModelView.setOnClickListener(view -> {
|
||||||
if (mOrdineRowDispatch != null && !rowItem.getOriginalModel().isDeactivated()) {
|
if (mOrdineRowDispatch != null) {
|
||||||
// rowItem.getOriginalModel().setTempEan128Model(null);
|
// rowItem.getOriginalModel().setTempEan128Model(null);
|
||||||
mOrdineRowDispatch.onOrdineRowDispatch(rowItem.getOriginalModel());
|
mOrdineRowDispatch.onOrdineRowDispatch(rowItem.getOriginalModel());
|
||||||
}
|
}
|
||||||
|
|||||||
@ -87,7 +87,7 @@ public class VenditaOrdineInevasoHelper {
|
|||||||
.filter(PickingObjectDTO::isDeactivated)
|
.filter(PickingObjectDTO::isDeactivated)
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
groupedRighe.add(deactivatedItems);
|
if(deactivatedItems.size() > 0) groupedRighe.add(deactivatedItems);
|
||||||
|
|
||||||
return groupedRighe;
|
return groupedRighe;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import androidx.databinding.ObservableArrayList;
|
|||||||
import androidx.databinding.ObservableField;
|
import androidx.databinding.ObservableField;
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
import android.text.SpannableString;
|
import android.text.SpannableString;
|
||||||
|
import android.view.View;
|
||||||
|
|
||||||
import com.annimon.stream.Stream;
|
import com.annimon.stream.Stream;
|
||||||
import com.tfb.fbtoast.FBToast;
|
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.ClassRouter;
|
||||||
import it.integry.integrywmsnative.core.class_router.interfaces.IOrdiniVendita;
|
import it.integry.integrywmsnative.core.class_router.interfaces.IOrdiniVendita;
|
||||||
import it.integry.integrywmsnative.core.data_recover.ColliDataRecover;
|
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.AtomicBigDecimal;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.model.CommonModelConsts;
|
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.UtilityPosizione;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
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.OrdineVenditaGroupedInevasoDTO;
|
||||||
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO;
|
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO;
|
||||||
import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.VenditaOrdineInevasoActivity;
|
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.ask_should_print.DialogAskShouldPrint;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
|
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_quantity.QuantityDTO;
|
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;
|
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
|
||||||
|
|
||||||
public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IOnOrdineVenditaRowDispatched {
|
public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IOnOrdineVenditaRowDispatched {
|
||||||
|
|
||||||
public ObservableField<Boolean> isFabVisible = new ObservableField<>();
|
public ObservableField<Boolean> isFabVisible = new ObservableField<>();
|
||||||
|
public BindableBoolean shouldShowAddExtraItems = new BindableBoolean();
|
||||||
|
|
||||||
private VenditaOrdineInevasoActivity mActivity;
|
private VenditaOrdineInevasoActivity mActivity;
|
||||||
|
private final ActivityVenditaOrdineInevasoBinding mBindings;
|
||||||
private final ArticoliInColloBottomSheetViewModel mArticoliInColloBottomSheetViewModel;
|
private final ArticoliInColloBottomSheetViewModel mArticoliInColloBottomSheetViewModel;
|
||||||
|
|
||||||
private final List<PickingObjectDTO> mPickingList;
|
private final List<PickingObjectDTO> mPickingList;
|
||||||
@ -86,10 +92,12 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
|||||||
private Integer defaultNumOrdOfUL = null;
|
private Integer defaultNumOrdOfUL = null;
|
||||||
private Date defaultDataOrdOfUL = null;
|
private Date defaultDataOrdOfUL = null;
|
||||||
|
|
||||||
|
|
||||||
private Integer mtbColtSessionID = 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.mActivity = activity;
|
||||||
|
this.mBindings = bindings;
|
||||||
this.mArticoliInColloBottomSheetViewModel = articoliInColloBottomSheetViewModel;
|
this.mArticoliInColloBottomSheetViewModel = articoliInColloBottomSheetViewModel;
|
||||||
this.mPickingList = pickingList;
|
this.mPickingList = pickingList;
|
||||||
this.mTestateOrdini = orders;
|
this.mTestateOrdini = orders;
|
||||||
@ -97,7 +105,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
|||||||
|
|
||||||
this.isFabVisible.set(true);
|
this.isFabVisible.set(true);
|
||||||
|
|
||||||
this.mActivity.bindings.setViewmodel(this);
|
this.mBindings.setViewmodel(this);
|
||||||
|
|
||||||
this.init();
|
this.init();
|
||||||
this.initDatiPicking();
|
this.initDatiPicking();
|
||||||
@ -116,6 +124,12 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
|||||||
this.refreshOrderBy(false);
|
this.refreshOrderBy(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
mBindings.addExtraItemsToolbar.setOnClickListener((v -> {
|
||||||
|
DialogScanArt.make(mActivity, (status, mtbAart) -> {
|
||||||
|
|
||||||
|
}).show();
|
||||||
|
}));
|
||||||
|
|
||||||
mHelper = new VenditaOrdineInevasoHelper(mActivity);
|
mHelper = new VenditaOrdineInevasoHelper(mActivity);
|
||||||
|
|
||||||
initRecyclerView();
|
initRecyclerView();
|
||||||
@ -123,11 +137,11 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
|||||||
|
|
||||||
private void initRecyclerView(){
|
private void initRecyclerView(){
|
||||||
//RecyclerView setup
|
//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 {
|
try {
|
||||||
this.mGroupedPickingList = mHelper.getPickingListRaggruppataPerPosizione(mPickingList, true);
|
this.mGroupedPickingList = mHelper.getPickingListRaggruppataPerPosizione(mPickingList, true);
|
||||||
@ -137,7 +151,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
|||||||
}
|
}
|
||||||
|
|
||||||
mAdapter.setOnOrdineRowDispatchCallback(this);
|
mAdapter.setOnOrdineRowDispatchCallback(this);
|
||||||
mActivity.bindings.venditaOrdineMainList.setAdapter(mAdapter);
|
this.mBindings.venditaOrdineMainList.setAdapter(mAdapter);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initDatiPicking() {
|
private void initDatiPicking() {
|
||||||
@ -289,9 +303,9 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
|||||||
|
|
||||||
public void applyFilter(String descriptionText) {
|
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() {
|
public void removeListFilter() {
|
||||||
@ -301,7 +315,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
|||||||
}
|
}
|
||||||
|
|
||||||
refreshOrderBy(false);
|
refreshOrderBy(false);
|
||||||
mActivity.bindings.filteredArtsInListExpandableLayout.collapse(true);
|
this.mBindings.filteredArtsInListExpandableLayout.collapse(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void recoverUL(MtbColt recoveredMtbColt){
|
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 &&
|
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();
|
MtbColt tempSourceMtbColt = matchedRows.get(0).getTempPickData().getSourceMtbColt();
|
||||||
|
|
||||||
@ -750,6 +764,9 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
|||||||
refreshOrderBy(false);
|
refreshOrderBy(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} else if(matchedRows.get(0).isDeactivated()) {
|
||||||
|
applyFilter("");
|
||||||
|
refreshOrderBy(false);
|
||||||
} else {
|
} else {
|
||||||
onOrdineRowDispatch(matchedRows.get(0));
|
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) {
|
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){
|
if (progress == null){
|
||||||
progress = UtilityProgress.createDefaultProgressDialog(mActivity);
|
progress = UtilityProgress.createDefaultProgressDialog(mActivity);
|
||||||
@ -775,6 +792,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
|||||||
progress.show();
|
progress.show();
|
||||||
|
|
||||||
MtbColt mtbColt = new MtbColt();
|
MtbColt mtbColt = new MtbColt();
|
||||||
|
mtbColt.initDefaultFields();
|
||||||
mtbColt .setGestione(defaultGestioneOfUL)
|
mtbColt .setGestione(defaultGestioneOfUL)
|
||||||
.setSegno(-1)
|
.setSegno(-1)
|
||||||
.setRifOrd(defaultRifOrdOfUL)
|
.setRifOrd(defaultRifOrdOfUL)
|
||||||
@ -837,12 +855,13 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
|||||||
|
|
||||||
private void setULToCurrentContext(MtbColt mtbColt){
|
private void setULToCurrentContext(MtbColt mtbColt){
|
||||||
isFabVisible.set(false);
|
isFabVisible.set(false);
|
||||||
|
shouldShowAddExtraItems.set(SettingsManager.iDB().isFlagCanAddExtraItemSpedizione());
|
||||||
mArticoliInColloBottomSheetViewModel.mtbColt.set(mtbColt);
|
mArticoliInColloBottomSheetViewModel.mtbColt.set(mtbColt);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showCreatedUL() {
|
public void showCreatedUL() {
|
||||||
|
|
||||||
mActivity.bindings.venditaOrdineInevasoFab.close(false);
|
this.mBindings.venditaOrdineInevasoFab.close(false);
|
||||||
mActivity.startListaBancaliRegistratiActivity((ArrayList<MtbColt>) mColliRegistrati);
|
mActivity.startListaBancaliRegistratiActivity((ArrayList<MtbColt>) mColliRegistrati);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -863,12 +882,13 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
|||||||
} else {
|
} else {
|
||||||
if(onComplete != null) onComplete.run();
|
if(onComplete != null) onComplete.run();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateDataFine(ProgressDialog progress, Runnable onComplete) {
|
private void updateDataFine(ProgressDialog progress, Runnable onComplete) {
|
||||||
|
|
||||||
MtbColt cloneMtbColt = (MtbColt) mArticoliInColloBottomSheetViewModel.mtbColt.get().clone();
|
MtbColt cloneMtbColt = (MtbColt) mArticoliInColloBottomSheetViewModel.mtbColt.get().clone();
|
||||||
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.UPDATE);
|
||||||
cloneMtbColt.setOraFinePrep(new Date());
|
cloneMtbColt.setOraFinePrep(new Date());
|
||||||
|
|
||||||
|
|
||||||
@ -985,6 +1005,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
|||||||
mArticoliInColloBottomSheetViewModel.mtbColt.set(null);
|
mArticoliInColloBottomSheetViewModel.mtbColt.set(null);
|
||||||
|
|
||||||
isFabVisible.set(true);
|
isFabVisible.set(true);
|
||||||
|
shouldShowAddExtraItems.set(false);
|
||||||
|
|
||||||
progress.dismiss();
|
progress.dismiss();
|
||||||
|
|
||||||
@ -1013,6 +1034,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
|||||||
|
|
||||||
mArticoliInColloBottomSheetViewModel.mtbColt.set(null);
|
mArticoliInColloBottomSheetViewModel.mtbColt.set(null);
|
||||||
isFabVisible.set(true);
|
isFabVisible.set(true);
|
||||||
|
shouldShowAddExtraItems.set(false);
|
||||||
|
|
||||||
|
|
||||||
for(int i = 0; i < this.mPickingList.size(); i++) {
|
for(int i = 0; i < this.mPickingList.size(); i++) {
|
||||||
@ -1085,7 +1107,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
|||||||
qtaTest.addAndGet(x.getQtaCol());
|
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;
|
if(qtaDisponibile.floatValue() < 0) qtaDisponibile = BigDecimal.ZERO;
|
||||||
|
|
||||||
DialogInputQuantity.DTO dto = new DialogInputQuantity.DTO()
|
DialogInputQuantity.DTO dto = new DialogInputQuantity.DTO()
|
||||||
@ -1097,7 +1119,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
|||||||
.setQtaDisponibile(qtaDisponibile)
|
.setQtaDisponibile(qtaDisponibile)
|
||||||
.setQtaTot(qtaDisponibile)
|
.setQtaTot(qtaDisponibile)
|
||||||
.setQtaEvasa(new BigDecimal(qtaEvasaTotale))
|
.setQtaEvasa(new BigDecimal(qtaEvasaTotale))
|
||||||
.setCanPartitaMagBeChanged(false)
|
.setCanPartitaMagBeChanged(item.isDeactivated())
|
||||||
.setMaxQta(qtaDisponibile);
|
.setMaxQta(qtaDisponibile);
|
||||||
|
|
||||||
if(item.getTempPickData() != null) {
|
if(item.getTempPickData() != null) {
|
||||||
|
|||||||
@ -75,7 +75,7 @@ public class ArticoliInColloBottomSheetHelper extends BottomSheetBehavior.Bottom
|
|||||||
|
|
||||||
|
|
||||||
mBinding.articoliInColloDetailsPosizione.setText(mtbColt.getPosizione() != null ? mtbColt.getPosizione() : "N/A");
|
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);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -41,6 +41,21 @@
|
|||||||
android:layout_height="?attr/actionBarSize"
|
android:layout_height="?attr/actionBarSize"
|
||||||
app:layout_collapseMode="pin"
|
app:layout_collapseMode="pin"
|
||||||
android:layout_width="match_parent">
|
android:layout_width="match_parent">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatImageButton
|
||||||
|
android:id="@+id/add_extra_items_toolbar"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="50dp"
|
||||||
|
android:layout_gravity="end"
|
||||||
|
android:background="@drawable/ripple_effect"
|
||||||
|
android:adjustViewBounds="true"
|
||||||
|
android:src="@drawable/ic_add_24dp"
|
||||||
|
app:visibility="@{viewmodel.shouldShowAddExtraItems}"
|
||||||
|
android:tint="@color/colorPrimaryGray"/>
|
||||||
|
|
||||||
|
|
||||||
</androidx.appcompat.widget.Toolbar>
|
</androidx.appcompat.widget.Toolbar>
|
||||||
|
|
||||||
</com.google.android.material.appbar.AppBarLayout>
|
</com.google.android.material.appbar.AppBarLayout>
|
||||||
|
|||||||
@ -70,7 +70,7 @@
|
|||||||
app:iconifiedByDefault="true"
|
app:iconifiedByDefault="true"
|
||||||
android:layout_gravity="end"/>
|
android:layout_gravity="end"/>
|
||||||
|
|
||||||
<ImageButton
|
<androidx.appcompat.widget.AppCompatImageButton
|
||||||
android:id="@+id/main_filter"
|
android:id="@+id/main_filter"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="50dp"
|
android:layout_height="50dp"
|
||||||
@ -81,7 +81,7 @@
|
|||||||
android:src="@drawable/ic_search_black_24dp"
|
android:src="@drawable/ic_search_black_24dp"
|
||||||
android:tint="@color/colorPrimaryGray"/>
|
android:tint="@color/colorPrimaryGray"/>
|
||||||
|
|
||||||
<ImageButton
|
<androidx.appcompat.widget.AppCompatImageButton
|
||||||
android:id="@+id/main_select_all"
|
android:id="@+id/main_select_all"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="50dp"
|
android:layout_height="50dp"
|
||||||
|
|||||||
@ -86,6 +86,8 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
|||||||
82
app/src/main/res/layout/dialog_scan_art.xml
Normal file
82
app/src/main/res/layout/dialog_scan_art.xml
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||||
|
|
||||||
|
<androidx.cardview.widget.CardView
|
||||||
|
android:orientation="vertical" android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
app:cardCornerRadius="12dp"
|
||||||
|
app:cardElevation="0dp">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:paddingStart="24dp"
|
||||||
|
android:paddingEnd="24dp"
|
||||||
|
android:paddingTop="24dp"
|
||||||
|
android:paddingBottom="12dp">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/title_text"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
style="@style/TextViewMaterial.DialogTitle"
|
||||||
|
android:text="@string/extra_item"
|
||||||
|
android:gravity="center_horizontal"/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:layout_marginTop="24dp"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
|
||||||
|
<ProgressBar
|
||||||
|
android:id="@+id/progressBar"
|
||||||
|
style="?android:attr/progressBarStyle"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"/>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:layout_marginStart="8dp"
|
||||||
|
android:layout_marginEnd="12dp"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
style="@style/AppTheme.NewMaterial.Text"
|
||||||
|
android:text="@string/scan_item"/>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/button_no"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="16dp"
|
||||||
|
style="@style/Button.DangerOutline"
|
||||||
|
app:strokeColor="@color/red_400"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:text="@string/abort"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
</androidx.cardview.widget.CardView>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</layout>
|
||||||
@ -120,15 +120,33 @@
|
|||||||
<!--android:hint="@string/customer"-->
|
<!--android:hint="@string/customer"-->
|
||||||
<!--app:binding="@{viewmodel.cliente}"/>-->
|
<!--app:binding="@{viewmodel.cliente}"/>-->
|
||||||
|
|
||||||
|
<com.google.android.material.textfield.TextInputLayout
|
||||||
<com.google.android.material.textfield.TextInputEditText
|
|
||||||
android:id="@+id/input_data_cons"
|
android:id="@+id/input_data_cons"
|
||||||
|
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:inputType="textNoSuggestions"
|
android:hint="@string/ship_date">
|
||||||
android:hint="@string/ship_date"
|
|
||||||
android:focusable="false"
|
|
||||||
app:binding="@{viewmodel.dataConsegna}"/>
|
<com.google.android.material.textfield.TextInputEditText
|
||||||
|
android:id="@+id/filled_exposed_dropdown_data_cons"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:inputType="textNoSuggestions"
|
||||||
|
android:focusable="false"
|
||||||
|
android:singleLine="true"
|
||||||
|
app:binding="@{viewmodel.dataConsegna}"/>
|
||||||
|
|
||||||
|
</com.google.android.material.textfield.TextInputLayout>
|
||||||
|
|
||||||
|
<!--<com.google.android.material.textfield.TextInputEditText-->
|
||||||
|
<!--android:id="@+id/input_data_cons"-->
|
||||||
|
<!--android:layout_width="match_parent"-->
|
||||||
|
<!--android:layout_height="wrap_content"-->
|
||||||
|
<!--android:inputType="textNoSuggestions"-->
|
||||||
|
<!--android:hint="@string/ship_date"-->
|
||||||
|
<!--android:focusable="false"-->
|
||||||
|
<!--app:binding="@{viewmodel.dataConsegna}"/>-->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -29,6 +29,8 @@
|
|||||||
|
|
||||||
<string name="permission_request_message">Questi permessi sono necessari al funzionamento dell\'app</string>
|
<string name="permission_request_message">Questi permessi sono necessari al funzionamento dell\'app</string>
|
||||||
<string name="picking_not_available">Picking non disponibile</string>
|
<string name="picking_not_available">Picking non disponibile</string>
|
||||||
|
<string name="scan_item">Scansiona il codice a barre di un <b>articolo</b></string>
|
||||||
|
<string name="extra_item">Articolo extra</string>
|
||||||
|
|
||||||
|
|
||||||
<string name="action_settings">Impostazioni</string>
|
<string name="action_settings">Impostazioni</string>
|
||||||
|
|||||||
@ -84,6 +84,8 @@
|
|||||||
<string name="position_text">Position</string>
|
<string name="position_text">Position</string>
|
||||||
<string name="prepared_by_text">Prepared by</string>
|
<string name="prepared_by_text">Prepared by</string>
|
||||||
<string name="picking_not_available">Picking not available</string>
|
<string name="picking_not_available">Picking not available</string>
|
||||||
|
<string name="scan_item">Please scan an <b>item</b> barcode</string>
|
||||||
|
<string name="extra_item">Extra item</string>
|
||||||
|
|
||||||
|
|
||||||
<string name="password_error_length">between 3 and 30 alphanumeric characters</string>
|
<string name="password_error_length">between 3 and 30 alphanumeric characters</string>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user