diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
index 1e2d92c1..75d6a640 100644
--- a/.idea/jarRepositories.xml
+++ b/.idea/jarRepositories.xml
@@ -31,5 +31,15 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/it/integry/integrywmsnative/MainActivity.java b/app/src/main/java/it/integry/integrywmsnative/MainActivity.java
index 7607174f..9e72f75f 100644
--- a/app/src/main/java/it/integry/integrywmsnative/MainActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/MainActivity.java
@@ -2,6 +2,7 @@ package it.integry.integrywmsnative;
import android.content.Intent;
import android.os.Bundle;
+import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
@@ -33,6 +34,7 @@ import it.integry.integrywmsnative.core.data_store.db.AppDatabase;
import it.integry.integrywmsnative.core.expansion.BaseActivity;
import it.integry.integrywmsnative.core.expansion.OnSingleClickListener;
import it.integry.integrywmsnative.core.interfaces.IFilterableFragment;
+import it.integry.integrywmsnative.core.interfaces.ILifecycleFragment;
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
import it.integry.integrywmsnative.core.interfaces.ISearcableFragment;
@@ -97,6 +99,22 @@ public class MainActivity extends BaseActivity
startActivity(myIntent);
}
+ @Override
+ public boolean onKeyDown(int keyCode, KeyEvent event) {
+ if (keyCode == KeyEvent.KEYCODE_BACK) {
+ return true;
+ }
+ return super.onKeyDown(keyCode, event);
+ }
+
+ @Override
+ public boolean onKeyUp(int keyCode, KeyEvent event) {
+ if (keyCode == KeyEvent.KEYCODE_BACK) {
+ onBackPressed();
+ return true;
+ }
+ return super.onKeyUp(keyCode, event);
+ }
@Override
@@ -110,7 +128,10 @@ public class MainActivity extends BaseActivity
if (count == 0) {
super.onBackPressed();
} else {
- pop();
+ Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.frame_container);
+ if (fragment instanceof ILifecycleFragment) {
+ ((ILifecycleFragment) fragment).onPreDestroy(this::pop);
+ } else pop();
// getSupportFragmentManager().popBackStack();
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/interfaces/ILifecycleFragment.java b/app/src/main/java/it/integry/integrywmsnative/core/interfaces/ILifecycleFragment.java
new file mode 100644
index 00000000..284dac89
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/interfaces/ILifecycleFragment.java
@@ -0,0 +1,7 @@
+package it.integry.integrywmsnative.core.interfaces;
+
+public interface ILifecycleFragment {
+
+ void onPreDestroy(Runnable onComplete);
+
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColr.java b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColr.java
index 8d71598a..19ae2f2b 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColr.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColr.java
@@ -50,9 +50,10 @@ public class MtbColr extends EntityBase {
private BigDecimal pesoLordoKg;
private MtbAart mtbAart;
-
private MtbPartitaMag mtbPartitaMag;
+ private transient MtbColr refMtbColr;
+
public MtbColr() {
type = "mtb_colr";
}
@@ -509,4 +510,13 @@ public class MtbColr extends EntityBase {
this.pesoLordoKg = pesoLordoKg;
return this;
}
+
+ public MtbColr getRefMtbColr() {
+ return refMtbColr;
+ }
+
+ public MtbColr setRefMtbColr(MtbColr refMtbColr) {
+ this.refMtbColr = refMtbColr;
+ return this;
+ }
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColt.java b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColt.java
index be2eefa4..32624df3 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColt.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/model/MtbColt.java
@@ -5,8 +5,6 @@ import androidx.databinding.ObservableArrayList;
import org.jetbrains.annotations.Nullable;
import java.math.BigDecimal;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/model/dto/WithdrawableMtbColr.java b/app/src/main/java/it/integry/integrywmsnative/core/model/dto/WithdrawableMtbColr.java
new file mode 100644
index 00000000..c23f5c3a
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/model/dto/WithdrawableMtbColr.java
@@ -0,0 +1,21 @@
+package it.integry.integrywmsnative.core.model.dto;
+
+import it.integry.integrywmsnative.core.model.MtbColr;
+
+public class WithdrawableMtbColr extends MtbColr {
+
+ private transient MtbColr withdrawRow;
+
+ public WithdrawableMtbColr() {
+ super();
+ }
+
+ public MtbColr getWithdrawRow() {
+ return withdrawRow;
+ }
+
+ public WithdrawableMtbColr setWithdrawRow(MtbColr withdrawRow) {
+ this.withdrawRow = withdrawRow;
+ return this;
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumer.java
index 3b4495fa..db8782ae 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumer.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumer.java
@@ -649,7 +649,7 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
colliMagazzinoRESTConsumerService.getColliInBasket(SettingsManager.i().getUserSession().getDepo().getCodMdep()).enqueue(new Callback>>() {
@Override
public void onResponse(Call>> call, Response>> response) {
- analyzeAnswer(response, "GetBySSCC", mtbColts -> {
+ analyzeAnswer(response, "getColliInBasket", mtbColts -> {
fillMtbAartsOfMtbColts(mtbColts, onComplete, onFailed);
}, onFailed);
}
@@ -666,7 +666,7 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
- public static void creaRettificaColloStatic(MtbColr sourceMtbColrOriginal, BigDecimal newNumCnf, BigDecimal newQtaTot, Runnable onComplete, RunnableArgs onFailed) {
+ public static void creaRettificaColloStatic(MtbColr sourceMtbColrOriginal, BigDecimal newNumCnf, BigDecimal newQtaTot, RunnableArgs onComplete, RunnableArgs onFailed) {
MtbColr sourceMtbColr = (MtbColr) sourceMtbColrOriginal.clone();
sourceMtbColr.setMtbPartitaMag(null);
sourceMtbColr.setMtbAart(null);
@@ -680,16 +680,16 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
colliMagazzinoRESTConsumerService.creaRettificaCollo(
SettingsManager.i().getUserSession().getDepo().getCodMdep(),
rettificaULDTO
- ).enqueue(new Callback>() {
+ ).enqueue(new Callback>() {
@Override
- public void onResponse(Call> call, Response> response) {
- analyzeAnswer(response, "GetBySSCC", data -> {
- onComplete.run();
+ public void onResponse(Call> call, Response> response) {
+ analyzeAnswer(response, "creaRettificaCollo", data -> {
+ onComplete.run(data);
}, onFailed);
}
@Override
- public void onFailure(Call> call, Throwable t) {
+ public void onFailure(Call> call, Throwable t) {
if(onFailed != null) onFailed.run(new Exception(t));
}
});
@@ -697,7 +697,7 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
- public void creaRettificaCollo(MtbColr sourceMtbColrOriginal, BigDecimal newNumCnf, BigDecimal newQtaTot, Runnable onComplete, RunnableArgs onFailed) {
+ public void creaRettificaCollo(MtbColr sourceMtbColrOriginal, BigDecimal newNumCnf, BigDecimal newQtaTot, RunnableArgs onComplete, RunnableArgs onFailed) {
creaRettificaColloStatic(sourceMtbColrOriginal, newNumCnf, newQtaTot, onComplete, onFailed);
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumerService.java
index bb38fe6f..b783e504 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumerService.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumerService.java
@@ -4,10 +4,11 @@ import com.google.gson.JsonObject;
import java.util.List;
+import it.integry.integrywmsnative.core.model.MtbColr;
+import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.rest.model.DistribuzioneColloDTO;
import it.integry.integrywmsnative.core.rest.model.RettificaULDTO;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
-import it.integry.integrywmsnative.core.model.MtbColt;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.GET;
@@ -26,6 +27,6 @@ public interface ColliMagazzinoRESTConsumerService {
Call>> getColliInBasket(@Query("codMdep") String codMdep);
@POST("creaRettificaCollo")
- Call> creaRettificaCollo(@Query("codMdep") String codMdep, @Body RettificaULDTO rettificaULDTO);
+ Call> creaRettificaCollo(@Query("codMdep") String codMdep, @Body RettificaULDTO rettificaULDTO);
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java
index 4c0cd7d8..0a837a04 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java
@@ -34,6 +34,7 @@ import it.integry.integrywmsnative.core.di.BindableBoolean;
import it.integry.integrywmsnative.core.expansion.OnListGeneralChangedCallback;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
+import it.integry.integrywmsnative.core.interfaces.ILifecycleFragment;
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
import it.integry.integrywmsnative.core.model.MtbAart;
@@ -61,7 +62,7 @@ import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQua
/**
* A simple {@link Fragment} subclass.
*/
-public class PickingLiberoFragment extends Fragment implements ITitledFragment, IScrollableFragment, PickingLiberoViewModel.Listener, BottomSheetMtbColrEditView.Listener {
+public class PickingLiberoFragment extends Fragment implements ITitledFragment, IScrollableFragment, ILifecycleFragment, PickingLiberoViewModel.Listener, BottomSheetMtbColrEditView.Listener {
private FragmentPickingLiberoBinding mBindings;
@@ -207,7 +208,7 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
public void closeLU() {
destroyAdapter();
- this.mViewModel.closeLU();
+ this.mViewModel.closeLU(null);
}
@@ -226,8 +227,6 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
@Override
public void onDestroyView() {
- if(thereIsAnOpenedUL.get()) mViewModel.closeLU();
- BarcodeManager.removeCallback(barcodeScannerIstanceID);
if (mOnPreDestroy != null) mOnPreDestroy.run();
super.onDestroyView();
}
@@ -392,4 +391,10 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
public void onMtbColrDelete(MtbColr mtbColr) {
this.mViewModel.deleteRow(mtbColr);
}
+
+ @Override
+ public void onPreDestroy(Runnable onComplete) {
+ if(thereIsAnOpenedUL.get()) mViewModel.closeLU(onComplete);
+ BarcodeManager.removeCallback(barcodeScannerIstanceID);
+ }
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoViewModel.java
index 0a91af21..6cc1baf2 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoViewModel.java
@@ -514,7 +514,7 @@ public class PickingLiberoViewModel {
this.sendOnRowSaved();
this.sendOnLoadingEnded();
- if (shouldCloseLU) closeLU();
+ if (shouldCloseLU) closeLU(null);
}, this::sendError);
}
@@ -692,8 +692,11 @@ public class PickingLiberoViewModel {
}
- public void closeLU() {
- if (mCurrentMtbColt == null) return;
+ public void closeLU(Runnable onComplete) {
+ if (mCurrentMtbColt == null) {
+ if(onComplete != null) onComplete.run();
+ return;
+ }
this.sendOnLoadingStarted();
@@ -704,6 +707,7 @@ public class PickingLiberoViewModel {
this.sendOnLoadingEnded();
this.mCurrentMtbColt = null;
+ if(onComplete != null) onComplete.run();
});
} else {
mColliMagazzinoRESTConsumer.updateDataFine(mCurrentMtbColt, () -> {
@@ -711,6 +715,7 @@ public class PickingLiberoViewModel {
this.sendOnLoadingEnded();
this.mCurrentMtbColt = null;
+ if(onComplete != null) onComplete.run();
}, this::sendError);
}
}, this::sendError);
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeFragment.java
index cfbf7f07..6fb772c0 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeFragment.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeFragment.java
@@ -36,6 +36,7 @@ import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.di.BindableBoolean;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
+import it.integry.integrywmsnative.core.interfaces.ILifecycleFragment;
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
import it.integry.integrywmsnative.core.model.MtbAart;
@@ -64,7 +65,7 @@ import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQua
import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLU;
import it.integry.integrywmsnative.view.dialogs.yes_no.DialogYesNo;
-public class RettificaGiacenzeFragment extends Fragment implements ITitledFragment, RettificaGiacenzeViewModel.Listener, BottomSheetMtbColrEditView.Listener {
+public class RettificaGiacenzeFragment extends Fragment implements ITitledFragment, ILifecycleFragment, RettificaGiacenzeViewModel.Listener, BottomSheetMtbColrEditView.Listener {
private FragmentMainRettificaGiacenzeBinding mBinding = null;
@@ -196,12 +197,6 @@ public class RettificaGiacenzeFragment extends Fragment implements ITitledFragme
super.onAttach(context);
}
- @Override
- public void onDestroyView() {
- mViewModel.closeLU(false);
- BarcodeManager.removeCallback(barcodeScannerIstanceID);
- super.onDestroyView();
- }
@Override
public void onCreateActionBar(AppCompatTextView titleText, Context context) {
@@ -512,4 +507,10 @@ public class RettificaGiacenzeFragment extends Fragment implements ITitledFragme
}
}).show();
}
+
+ @Override
+ public void onPreDestroy(Runnable onComplete) {
+ mViewModel.closeLU(false, onComplete);
+ BarcodeManager.removeCallback(barcodeScannerIstanceID);
+ }
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeViewModel.java
index 4a49d9fd..a652f014 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/RettificaGiacenzeViewModel.java
@@ -12,7 +12,6 @@ import java.util.List;
import javax.inject.Inject;
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
-import it.integry.integrywmsnative.core.exception.InvalidLUGestioneException;
import it.integry.integrywmsnative.core.exception.NoArtsFoundException;
import it.integry.integrywmsnative.core.exception.NoPrintersFoundException;
import it.integry.integrywmsnative.core.exception.NoResultFromBarcodeException;
@@ -26,7 +25,6 @@ import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.model.MtbCols;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
-import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.report.ReportManager;
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
@@ -89,14 +87,14 @@ public class RettificaGiacenzeViewModel {
this.sendOnLoadingEnded();
this.sendOnLUOpenRequest((mtbColt, created) -> {
- if(mtbColt.getGestioneEnum() == GestioneEnum.ACQUISTO) {
- this.sendError(new InvalidLUGestioneException(GestioneEnum.ACQUISTO));
- } else {
+ //if(mtbColt.getGestioneEnum() == GestioneEnum.ACQUISTO) {
+ // this.sendError(new InvalidLUGestioneException(GestioneEnum.ACQUISTO));
+ //} else {
this.mCurrentMtbColt = mtbColt;
this.mIsCreatedLU = created;
this.sendLUOpened(mtbColt);
- }
+ //}
});
}, this::sendError);
}
@@ -321,6 +319,8 @@ public class RettificaGiacenzeViewModel {
if (!mIsCreatedLU) {
mtbColr
+ .setQtaCol(BigDecimal.ZERO)
+ .setNumCnf(BigDecimal.ZERO)
.setDataCollo(mCurrentMtbColt.getDataColloS())
.setNumCollo(mCurrentMtbColt.getNumCollo())
.setGestione(mCurrentMtbColt.getGestione())
@@ -330,8 +330,11 @@ public class RettificaGiacenzeViewModel {
mColliMagazzinoRESTConsumer.creaRettificaCollo(mtbColr,
numCnf,
qtaTot,
- () -> {
+ savedMtbColr -> {
mtbColr
+ .setQtaCol(savedMtbColr.getQtaCol())
+ .setQtaCnf(savedMtbColr.getQtaCnf())
+ .setNumCnf(savedMtbColr.getNumCnf())
.setUntMis(pickingObjectDTO.getMtbAart().getUntMis())
.setMtbAart(pickingObjectDTO.getMtbAart());
@@ -340,7 +343,7 @@ public class RettificaGiacenzeViewModel {
this.sendOnRowSaved();
this.sendOnLoadingEnded();
- if (shouldCloseLU) closeLU(false);
+ if (shouldCloseLU) closeLU(false, null);
}, this::sendError);
} else {
mtbColr
@@ -370,14 +373,21 @@ public class RettificaGiacenzeViewModel {
this.sendOnRowSaved();
this.sendOnLoadingEnded();
- if (shouldCloseLU) closeLU(false);
+ if (shouldCloseLU) closeLU(false, null);
}, this::sendError);
}
}
public void closeLU(boolean saveCausale) {
- if (mCurrentMtbColt == null) return;
+ closeLU(saveCausale, null);
+ }
+
+ public void closeLU(boolean saveCausale, Runnable onComplete) {
+ if (mCurrentMtbColt == null) {
+ if(onComplete != null) onComplete.run();
+ return;
+ }
this.sendOnLoadingStarted();
@@ -397,10 +407,10 @@ public class RettificaGiacenzeViewModel {
if(shouldChangePosition) {
this.savePosizione(mtbDepoPosizione, () -> {
- postSaveBehaviour();
+ postSaveBehaviour(onComplete);
});
} else {
- postSaveBehaviour();
+ postSaveBehaviour(onComplete);
}
});
@@ -444,17 +454,19 @@ public class RettificaGiacenzeViewModel {
this.mColliMagazzinoRESTConsumer.saveCollo(cloneMtbColt, mtbColt -> onComplete.run(), this::sendError);
}
- private void postSaveBehaviour() {
+ private void postSaveBehaviour(Runnable onComplete) {
if(!mCurrentMtbColt.getDisablePrint()) {
printLU(() -> {
this.mCurrentMtbColt = null;
this.sendLUClosed();
this.sendOnLoadingEnded();
+ if(onComplete != null) onComplete.run();
});
} else {
this.mCurrentMtbColt = null;
this.sendLUClosed();
this.sendOnLoadingEnded();
+ if(onComplete != null) onComplete.run();
}
}
@@ -524,7 +536,6 @@ public class RettificaGiacenzeViewModel {
}
private void saveEditedRow(MtbColr mtbColrToUpdate, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, Date dataScad, boolean shouldCloseLU) {
-
this.sendOnLoadingStarted();
if(!mIsCreatedLU) {
@@ -533,13 +544,16 @@ public class RettificaGiacenzeViewModel {
mtbColrToUpdate,
numCnf,
qtaTot,
- () -> {
+ savedMtbColr -> {
mtbColrToUpdate
- .setQtaCol(qtaTot)
- .setQtaCnf(qtaCnf)
- .setNumCnf(numCnf)
+ .setQtaCol(savedMtbColr.getQtaCol())
+ .setQtaCnf(savedMtbColr.getQtaCnf())
+ .setNumCnf(savedMtbColr.getNumCnf())
.setOperation(CommonModelConsts.OPERATION.NO_OP);
+ this.mCurrentMtbColt.getMtbColr().remove(mtbColrToUpdate);
+ this.mCurrentMtbColt.getMtbColr().add(mtbColrToUpdate);
+
this.sendOnRowSaved();
},
this::sendError
@@ -616,8 +630,9 @@ public class RettificaGiacenzeViewModel {
mtbColrToDelete,
BigDecimal.ZERO,
BigDecimal.ZERO,
- () -> {
+ savedMtbColr -> {
this.mCurrentMtbColt.getMtbColr().remove(mtbColrToDelete);
+ this.sendOnLoadingEnded();
this.sendOnRowSaved();
},
this::sendError
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java
index c384c564..498725d9 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneActivity.java
@@ -241,7 +241,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
AtomicBigDecimal numCnfWithdrawRows = new AtomicBigDecimal();
AtomicBigDecimal qtaColWithdrawRows = new AtomicBigDecimal();
- Stream.of(x.getWithdrawMtbColr())
+ Stream.of(x.getWithdrawMtbColrs())
.forEach(row -> {
numCnfWithdrawRows.addAndGet(row.getNumCnf());
qtaColWithdrawRows.addAndGet(row.getQtaCol());
@@ -267,8 +267,14 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
spedizioneListModels.add(spedizioneListModel);
} else {
+ BigDecimal qtaColOrdCounter = x.getSitArtOrdDTO().getQtaOrd();
+// qtaColOrdCounter = qtaColOrdCounter.add(qtaColWithdrawRows.getBigDecimalValue());
+
for (MtbColt mtbColtToPick : x.getMtbColts()) {
+ if(UtilityBigDecimal.equalsTo(qtaColOrdCounter, BigDecimal.ZERO) || UtilityBigDecimal.lowerThan(qtaColOrdCounter, BigDecimal.ZERO))
+ break;
+
SpedizioneListModel cloneModel = (SpedizioneListModel) spedizioneListModel.clone();
cloneModel.setGroupTitle(String.format("%s: %s", getString(R.string.position_text), UtilityString.isNullOrEmpty(mtbColtToPick.getPosizione()) ? "N.A." : mtbColtToPick.getPosizione()));
@@ -286,8 +292,25 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
cloneModel.setQtaTot(mtbColrToDispatch != null ? mtbColrToDispatch.getNumCnf() : x.getSitArtOrdDTO().getNumCnfOrd());
cloneModel.setQtaEvasa(numCnfWithdrawRows.getBigDecimalValue());
} else {
- cloneModel.setQtaTot(mtbColrToDispatch != null ? mtbColrToDispatch.getQtaCol() : x.getSitArtOrdDTO().getQtaOrd());
- cloneModel.setQtaEvasa(qtaColWithdrawRows.getBigDecimalValue());
+
+ BigDecimal qtaOrdToSubstract = UtilityBigDecimal.getLowerBetween(mtbColrToDispatch.getQtaCol(), qtaColOrdCounter);
+
+ cloneModel.setQtaTot(UtilityBigDecimal.getLowerBetween(mtbColrToDispatch.getQtaCol(), qtaColOrdCounter));
+ qtaColOrdCounter = qtaColOrdCounter.subtract(qtaOrdToSubstract);
+
+ BigDecimal qtaEvasa = Stream.of(x.getWithdrawMtbColrs())
+ .filter(y -> y.getRefMtbColr() != null &&
+ y.getRefMtbColr().getNumCollo().equals(mtbColrToDispatch.getNumCollo()) &&
+ y.getRefMtbColr().getDataColloD().equals(mtbColrToDispatch.getDataColloD()) &&
+ y.getRefMtbColr().getSerCollo().equals(mtbColrToDispatch.getSerCollo()) &&
+ y.getRefMtbColr().getGestioneEnum().equals(mtbColrToDispatch.getGestioneEnum()) &&
+ UtilityString.equalsIgnoreCase(y.getRefMtbColr().getCodMart(), mtbColrToDispatch.getCodMart()) &&
+ UtilityString.equalsIgnoreCase(y.getRefMtbColr().getCodTagl(), mtbColrToDispatch.getCodTagl()) &&
+ UtilityString.equalsIgnoreCase(y.getRefMtbColr().getCodCol(), mtbColrToDispatch.getCodCol()))
+ .map(MtbColr::getQtaCol)
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
+
+ cloneModel.setQtaEvasa(qtaEvasa);
if (x.getMtbAart() != null)
cloneModel.setUntMis(x.getMtbAart().getUntMis());
}
@@ -348,7 +371,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
AtomicBigDecimal numCnfWithdrawRows = new AtomicBigDecimal();
AtomicBigDecimal qtaColWithdrawRows = new AtomicBigDecimal();
- Stream.of(x.getWithdrawMtbColr())
+ Stream.of(x.getWithdrawMtbColrs())
.forEach(row -> {
numCnfWithdrawRows.addAndGet(row.getNumCnf());
qtaColWithdrawRows.addAndGet(row.getQtaCol());
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java
index 5e31ed89..82985506 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/SpedizioneViewModel.java
@@ -677,7 +677,7 @@ public class SpedizioneViewModel {
AtomicBigDecimal numCnfWithdrawRows = new AtomicBigDecimal();
AtomicBigDecimal qtaColWithdrawRows = new AtomicBigDecimal();
- Stream.of(pickingObjectDTO.getWithdrawMtbColr())
+ Stream.of(pickingObjectDTO.getWithdrawMtbColrs())
.forEach(row -> {
numCnfWithdrawRows.addAndGet(row.getNumCnf());
qtaColWithdrawRows.addAndGet(row.getQtaCol());
@@ -898,7 +898,7 @@ public class SpedizioneViewModel {
this.sendOnLoadingStarted();
Optional optionalPickingObjectDTO = Stream.of(this.mPickingList.getValue())
- .filter(x -> Stream.of(x.getWithdrawMtbColr()).anyMatch(y -> y == mtbColrToEdit))
+ .filter(x -> Stream.of(x.getWithdrawMtbColrs()).anyMatch(y -> y == mtbColrToEdit))
.findSingle();
PickingObjectDTO pickingObjectDTO = null;
@@ -928,7 +928,7 @@ public class SpedizioneViewModel {
AtomicBigDecimal numCnfWithdrawRows = new AtomicBigDecimal(0);
AtomicBigDecimal qtaColWithdrawRows = new AtomicBigDecimal(0);
- Stream.of(finalPickingObjectDTO.getWithdrawMtbColr())
+ Stream.of(finalPickingObjectDTO.getWithdrawMtbColrs())
.forEach(row -> {
numCnfWithdrawRows.addAndGet(row.getNumCnf());
qtaColWithdrawRows.addAndGet(row.getQtaCol());
@@ -1180,7 +1180,9 @@ public class SpedizioneViewModel {
.setUntMis(pickingObjectDTO.getMtbAart().getUntMis())
.setMtbAart(pickingObjectDTO.getMtbAart());
- pickingObjectDTO.getWithdrawMtbColr().add(mtbColr);
+ mtbColr.setRefMtbColr(mtbColrToDispatch);
+
+ pickingObjectDTO.getWithdrawMtbColrs().add(mtbColr);
mCurrentMtbColt.getMtbColr().add(mtbColr);
//Chiamato removeListFilter perché cosi mi cancella tutti i dati di pick temporanei
@@ -1224,12 +1226,12 @@ public class SpedizioneViewModel {
.setQtaCol(qtaTot);
Optional pickingObjectDTO = Stream.of(this.mPickingList.getValue())
- .filter(x -> Stream.of(x.getWithdrawMtbColr()).anyMatch(y -> y == mtbColrToUpdate))
+ .filter(x -> Stream.of(x.getWithdrawMtbColrs()).anyMatch(y -> y == mtbColrToUpdate))
.findSingle();
if(pickingObjectDTO.isPresent()) {
- pickingObjectDTO.get().getWithdrawMtbColr().remove(mtbColrToUpdate);
- pickingObjectDTO.get().getWithdrawMtbColr().add(mtbColr);
+ pickingObjectDTO.get().getWithdrawMtbColrs().remove(mtbColrToUpdate);
+ pickingObjectDTO.get().getWithdrawMtbColrs().add(mtbColr);
}
this.mCurrentMtbColt.getMtbColr().remove(mtbColrToUpdate);
@@ -1268,10 +1270,10 @@ public class SpedizioneViewModel {
this.mColliMagazzinoRESTConsumer.saveCollo(mtbColt, (value) -> {
PickingObjectDTO pickingObjectDTO = Stream.of(this.mPickingList.getValue())
- .filter(x -> Stream.of(x.getWithdrawMtbColr()).anyMatch(y -> y == mtbColrToDelete))
+ .filter(x -> Stream.of(x.getWithdrawMtbColrs()).anyMatch(y -> y == mtbColrToDelete))
.single();
- pickingObjectDTO.getWithdrawMtbColr().remove(mtbColrToDelete);
+ pickingObjectDTO.getWithdrawMtbColrs().remove(mtbColrToDelete);
this.mCurrentMtbColt.getMtbColr().remove(mtbColrToDelete);
this.resetMatchedRows();
@@ -1407,20 +1409,43 @@ public class SpedizioneViewModel {
for (PickingObjectDTO pickingObjectDTO : mPickingList.getValue()) {
- List withdrawMtbColrList = pickingObjectDTO.getWithdrawMtbColr();
+ List withdrawMtbColrList = pickingObjectDTO.getWithdrawMtbColrs();
for (MtbColr withdrawMtbColr : withdrawMtbColrList) {
pickingObjectDTO.getSitArtOrdDTO().setNumCnfOrd(pickingObjectDTO.getSitArtOrdDTO().getNumCnfOrd().subtract(withdrawMtbColr.getNumCnf()));
pickingObjectDTO.getSitArtOrdDTO().setQtaOrd(pickingObjectDTO.getSitArtOrdDTO().getQtaOrd().subtract(withdrawMtbColr.getQtaCol()));
+
if (pickingObjectDTO.getMtbColts() != null) {
- Stream.of(pickingObjectDTO.getMtbColts())
- .filter(x -> Objects.equals(x.getNumCollo(), withdrawMtbColr.getNumColloRif()) &&
- x.getDataColloS().equals(withdrawMtbColr.getDataColloRifS()) &&
- x.getSerCollo().equalsIgnoreCase(withdrawMtbColr.getSerColloRif()) &&
- x.getGestione().equalsIgnoreCase(withdrawMtbColr.getGestioneRif()))
- .forEach(x -> {
- List mtbColrList = x.getMtbColr();
+
+ Optional optionalMtbColrReference = Stream.of(pickingObjectDTO.getMtbColts())
+ .filter(y -> withdrawMtbColr.getRefMtbColr() != null &&
+ withdrawMtbColr.getRefMtbColr().getNumCollo().equals(y.getNumCollo()) &&
+ withdrawMtbColr.getRefMtbColr().getDataColloD().equals(y.getDataColloD()) &&
+ withdrawMtbColr.getRefMtbColr().getSerCollo().equals(y.getSerCollo()) &&
+ withdrawMtbColr.getRefMtbColr().getGestioneEnum().equals(y.getGestioneEnum()) &&
+ UtilityString.equalsIgnoreCase(withdrawMtbColr.getRefMtbColr().getCodMart(), y.getMtbColr() != null && y.getMtbColr().size() > 0 ? y.getMtbColr().get(0).getCodMart() : null) &&
+ UtilityString.equalsIgnoreCase(withdrawMtbColr.getRefMtbColr().getCodTagl(), y.getMtbColr() != null && y.getMtbColr().size() > 0 ? y.getMtbColr().get(0).getCodTagl() : null) &&
+ UtilityString.equalsIgnoreCase(withdrawMtbColr.getRefMtbColr().getCodCol(), y.getMtbColr() != null && y.getMtbColr().size() > 0 ? y.getMtbColr().get(0).getCodCol() : null))
+ .map(y -> y.getMtbColr().get(0))
+ .findFirst();
+
+
+ if(optionalMtbColrReference.isPresent()) {
+ //looking for real refMtbColr instance
+ MtbColr mtbColr = optionalMtbColrReference.get();
+
+ mtbColr.setNumCnf(mtbColr.getNumCnf().subtract(withdrawMtbColr.getNumCnf()));
+ mtbColr.setQtaCol(mtbColr.getQtaCol().subtract(withdrawMtbColr.getQtaCol()));
+ }
+
+// Stream.of(pickingObjectDTO.getMtbColts())
+// .filter(x -> Objects.equals(x.getNumCollo(), withdrawMtbColr.getNumColloRif()) &&
+// x.getDataColloS().equals(withdrawMtbColr.getDataColloRifS()) &&
+// x.getSerCollo().equalsIgnoreCase(withdrawMtbColr.getSerColloRif()) &&
+// x.getGestione().equalsIgnoreCase(withdrawMtbColr.getGestioneRif()))
+// .forEach(x -> {
+// List mtbColrList = x.getMtbColr();
// Stream.of(mtbColrList)
// .filter(y -> y.getCodMart().equalsIgnoreCase(withdrawMtbColr.getCodMart()) &&
@@ -1430,11 +1455,11 @@ public class SpedizioneViewModel {
// .for
- });
+// });
}
}
- pickingObjectDTO.setWithdrawMtbColr(new ArrayList<>());
+ pickingObjectDTO.setWithdrawMtbColrs(new ArrayList<>());
}
this.resetMatchedRows();
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/model/PickingObjectDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/model/PickingObjectDTO.java
index 8bee1f45..f36ace32 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/model/PickingObjectDTO.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/model/PickingObjectDTO.java
@@ -15,7 +15,7 @@ public class PickingObjectDTO {
private List mtbColts;
private PickDataDTO tempPickData;
- private List withdrawMtbColr = new ArrayList<>();
+ private List withdrawMtbColrs = new ArrayList<>();
private boolean hidden = false;
@@ -65,12 +65,12 @@ public class PickingObjectDTO {
return this;
}
- public List getWithdrawMtbColr() {
- return withdrawMtbColr;
+ public List getWithdrawMtbColrs() {
+ return withdrawMtbColrs;
}
- public PickingObjectDTO setWithdrawMtbColr(List withdrawMtbColr) {
- this.withdrawMtbColr = withdrawMtbColr;
+ public PickingObjectDTO setWithdrawMtbColrs(List withdrawMtbColrs) {
+ this.withdrawMtbColrs = withdrawMtbColrs;
return this;
}
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/MainVenditaFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/MainVenditaFragment.java
index 97d31772..372b8272 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita/MainVenditaFragment.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita/MainVenditaFragment.java
@@ -3,12 +3,7 @@ package it.integry.integrywmsnative.gest.vendita;
import android.app.Dialog;
import android.content.Context;
import android.content.Intent;
-
-import androidx.appcompat.widget.AppCompatTextView;
-import androidx.databinding.DataBindingUtil;
import android.os.Bundle;
-import androidx.fragment.app.Fragment;
-import androidx.recyclerview.widget.LinearLayoutManager;
import android.text.Html;
import android.text.SpannableString;
import android.view.LayoutInflater;
@@ -17,13 +12,17 @@ import android.view.MenuInflater;
import android.view.View;
import android.view.ViewGroup;
+import androidx.appcompat.widget.AppCompatTextView;
+import androidx.databinding.DataBindingUtil;
+import androidx.fragment.app.Fragment;
+import androidx.recyclerview.widget.LinearLayoutManager;
+
import com.annimon.stream.Stream;
import java.util.ArrayList;
import java.util.List;
import it.integry.integrywmsnative.R;
-import it.integry.integrywmsnative.core.rest.CommonRESTException;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.data_cache.DataCache;
@@ -31,8 +30,10 @@ import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.interfaces.IFilterableFragment;
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
import it.integry.integrywmsnative.core.interfaces.ISelectAllFragment;
+import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
+import it.integry.integrywmsnative.core.rest.CommonRESTException;
import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer;
import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO;
import it.integry.integrywmsnative.core.settings.SettingsManager;
@@ -40,7 +41,6 @@ import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityProgress;
import it.integry.integrywmsnative.core.utility.UtilityToast;
import it.integry.integrywmsnative.databinding.FragmentMainVenditaBinding;
-import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
import it.integry.integrywmsnative.gest.spedizione.SpedizioneActivity;
import it.integry.integrywmsnative.gest.vendita.core.MainListVenditaAdapter;
import it.integry.integrywmsnative.gest.vendita.core.VenditaHelper;
diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2.java
index a751b759..9035a88b 100644
--- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2.java
+++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity_v2/DialogInputQuantityV2.java
@@ -1,6 +1,7 @@
package it.integry.integrywmsnative.view.dialogs.input_quantity_v2;
import android.content.Context;
+import android.content.DialogInterface;
import android.content.res.ColorStateList;
import android.os.Bundle;
import android.text.Html;
@@ -113,10 +114,6 @@ public class DialogInputQuantityV2 extends DialogFragment implements DialogInput
return mBindings.getRoot();
}
- public void dismiss() {
- super.dismiss();
- this.mOnAbort.run();
- }
public void save() {
if (this.mViewModel.validate()) {
@@ -132,6 +129,11 @@ public class DialogInputQuantityV2 extends DialogFragment implements DialogInput
}
}
+ @Override
+ public void onDismiss(@NonNull DialogInterface dialog) {
+ this.mOnAbort.run();
+ super.onDismiss(dialog);
+ }
@Override
public void onStart() {