Merge branch 'develop' into feature/Refactoring_Spedizione

# Conflicts:
#	app/build.gradle
#	app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumer.java
#	app/src/main/java/it/integry/integrywmsnative/gest/spedizione/viewmodel/VenditaOrdineInevasoViewModel.java
This commit is contained in:
Giuseppe Scorrano 2020-05-22 17:50:51 +02:00
commit 021f7e9732
10 changed files with 337 additions and 232 deletions

View File

@ -14,8 +14,6 @@
<option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" /> <option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" />
<option name="FORCE_STOP_RUNNING_APP" value="true" /> <option name="FORCE_STOP_RUNNING_APP" value="true" />
<option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" /> <option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" />
<option name="USE_LAST_SELECTED_DEVICE" value="false" />
<option name="PREFERRED_AVD" value="" />
<option name="SELECTED_CLOUD_MATRIX_CONFIGURATION_ID" value="-1" /> <option name="SELECTED_CLOUD_MATRIX_CONFIGURATION_ID" value="-1" />
<option name="SELECTED_CLOUD_MATRIX_PROJECT_ID" value="" /> <option name="SELECTED_CLOUD_MATRIX_PROJECT_ID" value="" />
<option name="DEBUGGER_TYPE" value="Auto" /> <option name="DEBUGGER_TYPE" value="Auto" />

View File

@ -14,8 +14,6 @@
<option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" /> <option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" />
<option name="FORCE_STOP_RUNNING_APP" value="true" /> <option name="FORCE_STOP_RUNNING_APP" value="true" />
<option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" /> <option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" />
<option name="USE_LAST_SELECTED_DEVICE" value="false" />
<option name="PREFERRED_AVD" value="" />
<option name="SELECTED_CLOUD_MATRIX_CONFIGURATION_ID" value="-1" /> <option name="SELECTED_CLOUD_MATRIX_CONFIGURATION_ID" value="-1" />
<option name="SELECTED_CLOUD_MATRIX_PROJECT_ID" value="" /> <option name="SELECTED_CLOUD_MATRIX_PROJECT_ID" value="" />
<option name="DEBUGGER_TYPE" value="Auto" /> <option name="DEBUGGER_TYPE" value="Auto" />
@ -42,7 +40,7 @@
<option name="SHOW_OPTIMIZED_WARNING" value="true" /> <option name="SHOW_OPTIMIZED_WARNING" value="true" />
</Native> </Native>
<Profilers> <Profilers>
<option name="ADVANCED_PROFILING_ENABLED" value="false" /> <option name="ADVANCED_PROFILING_ENABLED" value="true" />
<option name="STARTUP_CPU_PROFILING_ENABLED" value="false" /> <option name="STARTUP_CPU_PROFILING_ENABLED" value="false" />
<option name="STARTUP_CPU_PROFILING_CONFIGURATION_NAME" value="Sample Java Methods" /> <option name="STARTUP_CPU_PROFILING_CONFIGURATION_NAME" value="Sample Java Methods" />
</Profilers> </Profilers>

View File

@ -11,11 +11,9 @@
<option name="MODE" value="default_activity" /> <option name="MODE" value="default_activity" />
<option name="CLEAR_LOGCAT" value="true" /> <option name="CLEAR_LOGCAT" value="true" />
<option name="SHOW_LOGCAT_AUTOMATICALLY" value="true" /> <option name="SHOW_LOGCAT_AUTOMATICALLY" value="true" />
<option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" /> <option name="SKIP_NOOP_APK_INSTALLATIONS" value="false" />
<option name="FORCE_STOP_RUNNING_APP" value="true" /> <option name="FORCE_STOP_RUNNING_APP" value="true" />
<option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" /> <option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" />
<option name="USE_LAST_SELECTED_DEVICE" value="false" />
<option name="PREFERRED_AVD" value="" />
<option name="SELECTED_CLOUD_MATRIX_CONFIGURATION_ID" value="-1" /> <option name="SELECTED_CLOUD_MATRIX_CONFIGURATION_ID" value="-1" />
<option name="SELECTED_CLOUD_MATRIX_PROJECT_ID" value="" /> <option name="SELECTED_CLOUD_MATRIX_PROJECT_ID" value="" />
<option name="DEBUGGER_TYPE" value="Auto" /> <option name="DEBUGGER_TYPE" value="Auto" />

View File

@ -14,8 +14,6 @@
<option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" /> <option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" />
<option name="FORCE_STOP_RUNNING_APP" value="true" /> <option name="FORCE_STOP_RUNNING_APP" value="true" />
<option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" /> <option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" />
<option name="USE_LAST_SELECTED_DEVICE" value="false" />
<option name="PREFERRED_AVD" value="" />
<option name="SELECTED_CLOUD_MATRIX_CONFIGURATION_ID" value="-1" /> <option name="SELECTED_CLOUD_MATRIX_CONFIGURATION_ID" value="-1" />
<option name="SELECTED_CLOUD_MATRIX_PROJECT_ID" value="" /> <option name="SELECTED_CLOUD_MATRIX_PROJECT_ID" value="" />
<option name="DEBUGGER_TYPE" value="Auto" /> <option name="DEBUGGER_TYPE" value="Auto" />

View File

@ -14,8 +14,6 @@
<option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" /> <option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" />
<option name="FORCE_STOP_RUNNING_APP" value="true" /> <option name="FORCE_STOP_RUNNING_APP" value="true" />
<option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" /> <option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" />
<option name="USE_LAST_SELECTED_DEVICE" value="false" />
<option name="PREFERRED_AVD" value="" />
<option name="SELECTED_CLOUD_MATRIX_CONFIGURATION_ID" value="-1" /> <option name="SELECTED_CLOUD_MATRIX_CONFIGURATION_ID" value="-1" />
<option name="SELECTED_CLOUD_MATRIX_PROJECT_ID" value="" /> <option name="SELECTED_CLOUD_MATRIX_PROJECT_ID" value="" />
<option name="DEBUGGER_TYPE" value="Auto" /> <option name="DEBUGGER_TYPE" value="Auto" />

View File

@ -14,8 +14,6 @@
<option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" /> <option name="SKIP_NOOP_APK_INSTALLATIONS" value="true" />
<option name="FORCE_STOP_RUNNING_APP" value="true" /> <option name="FORCE_STOP_RUNNING_APP" value="true" />
<option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" /> <option name="TARGET_SELECTION_MODE" value="SHOW_DIALOG" />
<option name="USE_LAST_SELECTED_DEVICE" value="false" />
<option name="PREFERRED_AVD" value="" />
<option name="SELECTED_CLOUD_MATRIX_CONFIGURATION_ID" value="-1" /> <option name="SELECTED_CLOUD_MATRIX_CONFIGURATION_ID" value="-1" />
<option name="SELECTED_CLOUD_MATRIX_PROJECT_ID" value="" /> <option name="SELECTED_CLOUD_MATRIX_PROJECT_ID" value="" />
<option name="DEBUGGER_TYPE" value="Auto" /> <option name="DEBUGGER_TYPE" value="Auto" />

View File

@ -207,7 +207,7 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
}); });
} }
public static void createColliScaricoDaOrdineLavorazione(MtbColt sourceMtbColt, MtbDepoPosizione posizione, List<OrdineLavorazioneDTO> ordini, RunnableArgs<MtbColt> onComplete, RunnableArgs<Exception> onFailed) { public static void createColliScaricoDaOrdineLavorazione(MtbColt sourceMtbColt,MtbColr sourceMtbColr, MtbDepoPosizione posizione, List<OrdineLavorazioneDTO> ordini, RunnableArgs<MtbColt> onComplete, RunnableArgs<Exception> onFailed) {
MtbColt newMtbColt = new MtbColt() MtbColt newMtbColt = new MtbColt()
.initDefaultFields() .initDefaultFields()
@ -239,7 +239,7 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
// onFailed.run(new Exception()); // onFailed.run(new Exception());
// return; // return;
// } // }
MtbColr original = sourceMtbColt.getMtbColr().get(0); MtbColr original = sourceMtbColr;
MtbColr mtbColrClone = new MtbColr(); MtbColr mtbColrClone = new MtbColr();
mtbColrClone mtbColrClone
.setNumCollo(null) .setNumCollo(null)
@ -538,23 +538,19 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
} }
public static void changePosizione(MtbColt testata, MtbDepoPosizione posizione, Runnable onComplete, RunnableArgs<Exception> onFailed) { public static void changePosizione(MtbColt mtbColtToSave, MtbDepoPosizione posizione, Runnable onComplete, RunnableArgs<Exception> onFailed) {
MtbColt mtbColtToSaveClone = (MtbColt) mtbColtToSave.clone();
testata.setOperation(CommonModelConsts.OPERATION.UPDATE); mtbColtToSaveClone.setOperation(CommonModelConsts.OPERATION.UPDATE);
mtbColtToSaveClone.setMtbColr(new ObservableArrayList<>());
if (posizione == null) testata.setPosizione(null); if (posizione == null) mtbColtToSaveClone.setPosizione(null);
else testata.setPosizione(posizione.getPosizione()); else mtbColtToSaveClone.setPosizione(posizione.getPosizione());
ColliMagazzinoRESTConsumer.saveColloStatic(testata, new ISimpleOperationCallback<MtbColt>() { ColliMagazzinoRESTConsumer.saveColloStatic(mtbColtToSaveClone, mtbColt -> {
@Override if (onComplete != null) onComplete.run();
public void onSuccess(MtbColt value) { }, ex -> {
if (onComplete != null) onComplete.run(); if (onFailed != null) onFailed.run(ex);
}
@Override
public void onFailed(Exception ex) {
if (onFailed != null) onFailed.run(ex);
}
}); });
} }

View File

@ -39,10 +39,10 @@ public class ChooseOrdsLavFromListAdapter extends RecyclerView.Adapter<ChooseOrd
private HashMap<CheckableOrdineLavoro, Integer> mDatasetPositions = new HashMap<>(); private HashMap<CheckableOrdineLavoro, Integer> mDatasetPositions = new HashMap<>();
public ChooseOrdsLavFromListAdapter(Context context, List<ChooseOrdsLavFromListItemModel> myDataset, MtbColt mtbColt) throws ParseException, TimeNotRecognizedException, DateNotRecognizedException { public ChooseOrdsLavFromListAdapter(Context context, List<ChooseOrdsLavFromListItemModel> myDataset, MtbColt mtbColt, MtbColr mtbColr) throws ParseException, TimeNotRecognizedException, DateNotRecognizedException {
mContext = context; mContext = context;
mMtbColt = mtbColt; mMtbColt = mtbColt;
mMtbColr = mtbColt.getMtbColr().get(0); mMtbColr = mtbColr;
if (myDataset != null) { if (myDataset != null) {
mDataset = Stream.of(myDataset) mDataset = Stream.of(myDataset)
.withoutNulls() .withoutNulls()
@ -91,7 +91,7 @@ public class ChooseOrdsLavFromListAdapter extends RecyclerView.Adapter<ChooseOrd
private void calculateMtbColtShare() { private void calculateMtbColtShare() {
MtbColr mtbColr = mMtbColt.getMtbColr().get(0); MtbColr mtbColr = mMtbColr;
BigDecimal residuoCol = mtbColr.getQtaCol(); BigDecimal residuoCol = mtbColr.getQtaCol();
BigDecimal residuoCnf = mtbColr.getNumCnf(); BigDecimal residuoCnf = mtbColr.getNumCnf();
BigDecimal offsetCol = BigDecimal.ZERO.add(residuoCol); BigDecimal offsetCol = BigDecimal.ZERO.add(residuoCol);

View File

@ -11,14 +11,18 @@ import android.widget.Toast;
import androidx.databinding.ObservableField; import androidx.databinding.ObservableField;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import org.jetbrains.annotations.NotNull;
import java.text.ParseException; import java.text.ParseException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Iterator;
import java.util.List; import java.util.List;
import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.exception.DateNotRecognizedException; import it.integry.integrywmsnative.core.exception.DateNotRecognizedException;
import it.integry.integrywmsnative.core.exception.TimeNotRecognizedException; import it.integry.integrywmsnative.core.exception.TimeNotRecognizedException;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity; import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
import it.integry.integrywmsnative.core.model.MtbAart; import it.integry.integrywmsnative.core.model.MtbAart;
import it.integry.integrywmsnative.core.model.MtbColr; import it.integry.integrywmsnative.core.model.MtbColr;
@ -56,6 +60,7 @@ public class ProdVersamentoMaterialViewModel {
private List<ChooseOrdsLavFromListItemModel> mDataset = new ArrayList<>(); private List<ChooseOrdsLavFromListItemModel> mDataset = new ArrayList<>();
private ChooseOrdsLavFromListAdapter currentAdapter; private ChooseOrdsLavFromListAdapter currentAdapter;
public ObservableField<MtbColt> mtbColt = new ObservableField<>(); public ObservableField<MtbColt> mtbColt = new ObservableField<>();
public MtbColr mMtbColr;
public void init(Activity context, FragmentProdVersamentoMaterialeBinding binding, ProdVersamentoMaterialHelper helper, Runnable onVersamentoCompleted) { public void init(Activity context, FragmentProdVersamentoMaterialeBinding binding, ProdVersamentoMaterialHelper helper, Runnable onVersamentoCompleted) {
@ -68,6 +73,7 @@ public class ProdVersamentoMaterialViewModel {
} }
public void setMtbColr(MtbColr mtbColr) { public void setMtbColr(MtbColr mtbColr) {
mMtbColr = mtbColr;
mBinding.descrArt.setText(mtbColr.getDescrizione()); mBinding.descrArt.setText(mtbColr.getDescrizione());
mBinding.codArt.setText(mtbColr.getCodMart()); mBinding.codArt.setText(mtbColr.getCodMart());
mBinding.batch.setText(mtbColr.getPartitaMag() + ((mtbColr.getRifPartitaMag() != null) ? " - "+ mtbColr.getRifPartitaMag().getDescrizione() : "")); mBinding.batch.setText(mtbColr.getPartitaMag() + ((mtbColr.getRifPartitaMag() != null) ? " - "+ mtbColr.getRifPartitaMag().getDescrizione() : ""));
@ -84,7 +90,6 @@ public class ProdVersamentoMaterialViewModel {
} }
} }
public void openLU() { public void openLU() {
DialogScanOrCreateLU.make(mContext, false, false, true, false, (mtbColt, created) -> { DialogScanOrCreateLU.make(mContext, false, false, true, false, (mtbColt, created) -> {
if (mtbColt == null) { if (mtbColt == null) {
@ -124,9 +129,13 @@ public class ProdVersamentoMaterialViewModel {
null, this::openLU).show(); null, this::openLU).show();
return; return;
} else if (mtbColt.get().getMtbColr().size() > 1) { } else if (mtbColt.get().getMtbColr().size() > 1) {
DialogSimpleMessageHelper.makeWarningDialog(mContext, DialogSimpleMessageHelper.makeWarningDialog(mContext,
new SpannableString(Html.fromHtml("Il collo selezionato contiene più articoli, solo il primo verrà versato in questa sessione. <br> Per versare i colli restanti ripetere l'operazione di versamento.")), new SpannableString(Html.fromHtml("Il collo selezionato contiene più articoli, solo il primo verrà versato in questa sessione. <br> Per versare i colli restanti ripetere l'operazione di versamento.")),
null, null).show(); null, () -> {
cyclicGetOrdiniLavByCollo(mtbColt.get().getMtbColr().iterator(), mtbDepoPosizione);
}).show();
return;
} }
MesRESTConsumer.getOrdiniLavorazioneMateriale(mtbDepoPosizione.getPosizione(), getIdMaterialeFromCollo(mtbColt.get()), ordini -> richiediOrdiniPerVersamento(ordini, mtbDepoPosizione), e -> DialogSimpleMessageHelper.makeWarningDialog(mContext, MesRESTConsumer.getOrdiniLavorazioneMateriale(mtbDepoPosizione.getPosizione(), getIdMaterialeFromCollo(mtbColt.get()), ordini -> richiediOrdiniPerVersamento(ordini, mtbDepoPosizione), e -> DialogSimpleMessageHelper.makeWarningDialog(mContext,
@ -151,7 +160,6 @@ public class ProdVersamentoMaterialViewModel {
return UtilityString.isNullOrEmpty(articolo.getIdArtEqui()) ? articolo.getCodMart() : articolo.getIdArtEqui(); return UtilityString.isNullOrEmpty(articolo.getIdArtEqui()) ? articolo.getCodMart() : articolo.getIdArtEqui();
} }
private void createColloScarico(MtbDepoPosizione mtbDepoPosizione) { private void createColloScarico(MtbDepoPosizione mtbDepoPosizione) {
Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext); Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
@ -162,7 +170,6 @@ public class ProdVersamentoMaterialViewModel {
}), ex -> UtilityExceptions.defaultException(mContext, ex)); }), ex -> UtilityExceptions.defaultException(mContext, ex));
} }
public void setMtbColt(MtbColt mtbColt) { public void setMtbColt(MtbColt mtbColt) {
this.mtbColt.set(mtbColt); this.mtbColt.set(mtbColt);
this.setMtbColr(mtbColt.getMtbColr().get(0)); this.setMtbColr(mtbColt.getMtbColr().get(0));
@ -170,10 +177,11 @@ public class ProdVersamentoMaterialViewModel {
public void resetMtbColt() { public void resetMtbColt() {
this.mtbColt.set(null); this.mtbColt.set(null);
this.mMtbColr = null;
openLU(); openLU();
} }
public void richiediOrdiniPerVersamento(List<OrdineLavorazioneDTO> ordini, MtbDepoPosizione mtbDepoPosizione) { private void richiediOrdiniPerVersamento(List<OrdineLavorazioneDTO> ordini, MtbDepoPosizione mtbDepoPosizione) {
if (ordini == null || ordini.size() <= 0) { if (ordini == null || ordini.size() <= 0) {
mBinding.positiveFab.setVisibility(View.GONE); mBinding.positiveFab.setVisibility(View.GONE);
@ -200,7 +208,7 @@ public class ProdVersamentoMaterialViewModel {
List<OrdineLavorazioneDTO> ordLavs = currentAdapter.getSelectedItems(); List<OrdineLavorazioneDTO> ordLavs = currentAdapter.getSelectedItems();
if (ordLavs.size() > 0) { if (ordLavs.size() > 0) {
Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext); Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
ColliMagazzinoRESTConsumer.createColliScaricoDaOrdineLavorazione(mtbColt.get(), mtbDepoPosizione, ordLavs, generatedMtbColt -> DialogCommon.showDataSaved(mContext, () -> { ColliMagazzinoRESTConsumer.createColliScaricoDaOrdineLavorazione(mtbColt.get(), mMtbColr, mtbDepoPosizione, ordLavs, generatedMtbColt -> DialogCommon.showDataSaved(mContext, () -> {
progressDialog.dismiss(); progressDialog.dismiss();
mOnVersamentoCompleted.run(); mOnVersamentoCompleted.run();
}), ex -> UtilityExceptions.defaultException(mContext, ex)); }), ex -> UtilityExceptions.defaultException(mContext, ex));
@ -216,8 +224,28 @@ public class ProdVersamentoMaterialViewModel {
mBinding.dialogChooseArtsFromListaArtMainList.setLayoutManager(new LinearLayoutManager(mContext)); mBinding.dialogChooseArtsFromListaArtMainList.setLayoutManager(new LinearLayoutManager(mContext));
currentAdapter = new ChooseOrdsLavFromListAdapter(mContext, mDataset, mtbColt.get()); currentAdapter = new ChooseOrdsLavFromListAdapter(mContext, mDataset, mtbColt.get(), mMtbColr);
mBinding.dialogChooseArtsFromListaArtMainList.setAdapter(currentAdapter); mBinding.dialogChooseArtsFromListaArtMainList.setAdapter(currentAdapter);
} }
private void cyclicGetOrdiniLavByCollo(@NotNull Iterator<MtbColr> righeCollo, MtbDepoPosizione mtbDepoPosizione) {
MtbColr colr = righeCollo.next();
setMtbColr(colr);
MtbAart articolo = colr.getMtbAart();
MesRESTConsumer.getOrdiniLavorazioneMateriale(mtbDepoPosizione.getPosizione(), UtilityString.isNullOrEmpty(articolo.getIdArtEqui()) ? articolo.getCodMart() : articolo.getIdArtEqui(), ordini -> {
if (ordini == null || ordini.isEmpty()) {
if (righeCollo.hasNext()) {
cyclicGetOrdiniLavByCollo(righeCollo, mtbDepoPosizione);
} else {
richiediOrdiniPerVersamento(ordini, mtbDepoPosizione);
}
} else {
richiediOrdiniPerVersamento(ordini, mtbDepoPosizione);
}
}
, e -> DialogSimpleMessageHelper.makeWarningDialog(mContext,
new SpannableString(Html.fromHtml(e.getMessage())),
null, this::openLU).show());
}
} }