diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
deleted file mode 100644
index 1538039a..00000000
--- a/.idea/deploymentTargetDropDown.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/ProdRientroMerceOrderDetailFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/ProdRientroMerceOrderDetailFragment.java
index e53c57dd..8e656c68 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/ProdRientroMerceOrderDetailFragment.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/ProdRientroMerceOrderDetailFragment.java
@@ -18,6 +18,7 @@ import androidx.lifecycle.MutableLiveData;
import androidx.preference.PreferenceManager;
import androidx.recyclerview.widget.LinearLayoutManager;
+import com.annimon.stream.ComparatorCompat;
import com.annimon.stream.Stream;
import com.google.gson.reflect.TypeToken;
import com.harrysoft.androidbluetoothserial.BluetoothManager;
@@ -43,6 +44,7 @@ import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
import it.integry.integrywmsnative.core.utility.UtilityDB;
+import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.FragmentProdRientroMerceOrderDetailBinding;
import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO;
import it.integry.integrywmsnative.gest.settings.MainSettingsFragment;
@@ -76,6 +78,7 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements
private BluetoothManager bluetoothManager;
private BluetoothSerialDevice mConnectedBluetoothDevice;
+ private String mLatestCodTcol;
public ObservableField sumLUNumber = new ObservableField<>(BigDecimal.ZERO);
@@ -182,6 +185,7 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements
@Override
public void onDetach() {
+ mLatestCodTcol = null;
if (mConnectedBluetoothDevice != null)
bluetoothManager.close();
@@ -207,13 +211,28 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements
AtomicBigDecimal sumColli = new AtomicBigDecimal(BigDecimal.ZERO);
AtomicBigDecimal sumNet = new AtomicBigDecimal(BigDecimal.ZERO);
AtomicBigDecimal sumGross = new AtomicBigDecimal(BigDecimal.ZERO);
+ AtomicBigDecimal sumQtaCol = new AtomicBigDecimal(BigDecimal.ZERO);
Stream.of(mtbColts)
.forEach(x -> Stream.of(x.getMtbColr()).forEach(y -> {
sumColli.getAndAdd(y.getNumCnf());
sumNet.getAndAdd(y.getPesoNettoKg());
sumGross.getAndAdd(y.getPesoLordoKg());
+ sumQtaCol.getAndAdd(y.getQtaCol());
}));
+
+ ComparatorCompat c = ComparatorCompat
+ .chain(
+ new ComparatorCompat((x, y) -> x.getDataVersD().compareTo(y.getDataVersD()))
+ )
+ .reversed();
+ MtbColt lastUl = Stream.of(mtbColts).sorted(c).findFirstOrElse(null);
+ if (lastUl != null && !UtilityString.isNullOrEmpty(lastUl.getCodTcol())) {
+ mLatestCodTcol = lastUl.getCodTcol();
+ }
+
+ currentOrder.getValue().setQtaTrasferite(sumQtaCol.get());
+ this.progress.set(currentOrder.getValue().getProgress());
sumColliNumber.set(sumColli.get());
sumGrossKG.set(sumGross.get());
progress.set(currentOrder.getValue().getProgress());
@@ -237,7 +256,12 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements
public void addULButtonClick() {
this.onLoadingStarted();
- String codProd = this.currentOrder.getValue().getCodProd();
+ OrdineLavorazioneDTO currentOrder = this.currentOrder.getValue();
+ if (currentOrder == null) {
+ this.onError(new Exception("Nessun ordine rilevato!"));
+ return;
+ }
+ String codProd = currentOrder.getCodProd();
mArticoloRESTConsumer.getByCodMart(codProd, mtbAart -> {
String sql = "SELECT TOP 1 * " +
@@ -246,9 +270,9 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements
" * " +
" FROM dtb_ord_steps " +
" WHERE cod_jfas IS NOT NULL " +
- " AND gestione = " + UtilityDB.valueToString(this.currentOrder.getValue().getGestione()) +
- " AND num_ord = " + UtilityDB.valueToString(this.currentOrder.getValue().getNumOrd()) +
- " AND data_ord = " + UtilityDB.valueToString(this.currentOrder.getValue().getDataOrdD()) +
+ " AND gestione = " + UtilityDB.valueToString(currentOrder.getGestione()) +
+ " AND num_ord = " + UtilityDB.valueToString(currentOrder.getNumOrd()) +
+ " AND data_ord = " + UtilityDB.valueToString(currentOrder.getDataOrdD()) +
" ) tmp " +
"WHERE data_iniz IS NOT NULL " +
" AND (data_fine IS NULL OR last_step = id_step) " +
@@ -259,15 +283,24 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements
this.onLoadingEnded();
+ String codTcol = currentOrder.getCodTcolUl();
+ if (UtilityString.isNullOrEmpty(codTcol)) {
+ if (!UtilityString.isNullOrEmpty(mLatestCodTcol)) {
+ codTcol = mLatestCodTcol;
+ } else {
+ codTcol = mtbAart.getCodTcolUl();
+ }
+ }
+
DialogInputLUProdDTO dialogInputLUProdDTO = new DialogInputLUProdDTO()
.setMtbAart(mtbAart)
- .setNumCnf(this.currentOrder.getValue().getColliPedana())
+ .setNumCnf(currentOrder.getColliPedana())
.setQtaCnf(mtbAart.getQtaCnf())
- .setQtaTot(this.currentOrder.getValue().getColliPedana().multiply(mtbAart.getQtaCnf()))
- .setPartitaMag(this.currentOrder.getValue().getPartitaMag())
- .setDataScad(this.currentOrder.getValue().getDataScadD())
- .setCodJfasParent(this.currentOrder.getValue().getCodJfas())
- .setCodTcol(this.currentOrder.getValue().getCodTcolUl())
+ .setQtaTot(currentOrder.getColliPedana().multiply(mtbAart.getQtaCnf()))
+ .setPartitaMag(currentOrder.getPartitaMag())
+ .setDataScad(currentOrder.getDataScadD())
+ .setCodJfasParent(currentOrder.getCodJfas())
+ .setCodTcol(codTcol)
.setSuggestedCodJfas(dtbOrdStep != null && dtbOrdStep.size() > 0 ? dtbOrdStep.get(0).getCodJfas() : null);