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 15bde7f6..b37b47a6 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 @@ -20,12 +20,10 @@ 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; import com.harrysoft.androidbluetoothserial.BluetoothSerialDevice; import java.math.BigDecimal; -import java.util.ArrayList; import java.util.List; import javax.inject.Inject; @@ -38,12 +36,10 @@ import it.integry.integrywmsnative.core.exception.BluetoothConnectionException; import it.integry.integrywmsnative.core.expansion.AtomicBigDecimal; import it.integry.integrywmsnative.core.expansion.BaseFragment; import it.integry.integrywmsnative.core.expansion.RunnableArgs; -import it.integry.integrywmsnative.core.model.DtbOrdSteps; import it.integry.integrywmsnative.core.model.MtbColr; 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; @@ -201,7 +197,7 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements private void refreshOrder() { OrdineLavorazioneDTO currentOrd = currentOrder.getValue(); - if(currentOrd != null) { + if (currentOrd != null) { isOrderColli.set(currentOrd.getQtaCnf().compareTo(BigDecimal.ONE) == 0); } @@ -277,70 +273,72 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements this.onError(new Exception("Nessun ordine rilevato!")); return; } - String codProd = currentOrder.getCodProd(); - mArticoloRESTConsumer.getByCodMart(codProd, mtbAart -> { - String sql = "SELECT TOP 1 * " + - "FROM ( " + - " SELECT MAX(id_step) OVER ( PARTITION BY gestione, num_ord, data_ord) as last_step, " + - " * " + - " FROM dtb_ord_steps " + - " WHERE cod_jfas IS NOT NULL " + - " 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) " + - "ORDER BY id_step DESC"; + mViewModel.retrieveOrderData((mtbAart, codJfas) -> { + this.onLoadingEnded(); - mSystemRESTConsumer.>processSql(sql, new TypeToken>() { - }.getType(), dtbOrdStep -> { - - this.onLoadingEnded(); - - String codTcol = currentOrder.getCodTcolUl(); - if (UtilityString.isNullOrEmpty(codTcol)) { - if (!UtilityString.isNullOrEmpty(mLatestCodTcol)) { - codTcol = mLatestCodTcol; - } else { - codTcol = mtbAart.getCodTcolUl(); - } + 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(currentOrder.getColliPedana()) - .setQtaCnf(mtbAart.getQtaCnf()) - .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); + DialogInputLUProdDTO dialogInputLUProdDTO = new DialogInputLUProdDTO() + .setMtbAart(mtbAart) + .setNumCnf(currentOrder.getColliPedana()) + .setQtaCnf(mtbAart.getQtaCnf()) + .setQtaTot(currentOrder.getColliPedana().multiply(mtbAart.getQtaCnf())) + .setPartitaMag(currentOrder.getPartitaMag()) + .setDataScad(currentOrder.getDataScadD()) + .setCodJfasParent(currentOrder.getCodJfas()) + .setCodTcol(codTcol) + .setSuggestedCodJfas(codJfas); - DialogInputLUProdView - .newInstance(mConnectedBluetoothDevice != null ? mConnectedBluetoothDevice.toSimpleDeviceInterface() : null, dialogInputLUProdDTO, resultDTO -> { - ProdRientroMerceOrderDetailPickedQuantityDTO pickedQuantityDTO = new ProdRientroMerceOrderDetailPickedQuantityDTO() - .setNumCnf(resultDTO.getNumCnf()) - .setPesoCollo(resultDTO.getPesoCollo()) - .setPesoNetto(resultDTO.getPesoNetto()) - .setTaraPed(resultDTO.getTaraPed()) - .setTaraCol(resultDTO.getTaraCol()) - .setPesoLordo(resultDTO.getPesoLordo()) - .setMtbTCol(resultDTO.getMtbTCol()) - .setJtbFasi(resultDTO.getJtbFasi()); + DialogInputLUProdView + .newInstance(mConnectedBluetoothDevice != null ? mConnectedBluetoothDevice.toSimpleDeviceInterface() : null, dialogInputLUProdDTO, resultDTO -> { + ProdRientroMerceOrderDetailPickedQuantityDTO pickedQuantityDTO = new ProdRientroMerceOrderDetailPickedQuantityDTO() + .setNumCnf(resultDTO.getNumCnf()) + .setQtaCnf(resultDTO.getPesoCollo()) + .setQtaCol(resultDTO.getPesoNetto()) + .setPesoCollo(resultDTO.getPesoCollo()) + .setPesoNetto(resultDTO.getPesoNetto()) + .setTaraPed(resultDTO.getTaraPed()) + .setTaraCol(resultDTO.getTaraCol()) + .setPesoLordo(resultDTO.getPesoLordo()) + .setMtbTCol(resultDTO.getMtbTCol()) + .setCodJfas(resultDTO.getJtbFasi() != null ? resultDTO.getJtbFasi().getCodJfas() : codJfas); - this.mViewModel.createLU(pickedQuantityDTO); - }, () -> { - this.onLoadingEnded(); - }) - .show(requireActivity().getSupportFragmentManager(), "tag"); + this.mViewModel.createLU(pickedQuantityDTO); + }, this::onLoadingEnded) + .show(requireActivity().getSupportFragmentManager(), "tag"); - }, this::onError); + }); + } - }, this::onError); + public void addSingleUnitButtonClick() { + this.onLoadingStarted(); + + OrdineLavorazioneDTO currentOrder = this.currentOrder.getValue(); + if (currentOrder == null) { + this.onError(new Exception("Nessun ordine rilevato!")); + return; + } + mViewModel.retrieveOrderData((mtbAart, codJfas) -> { + ProdRientroMerceOrderDetailPickedQuantityDTO pickedQuantityDTO = new ProdRientroMerceOrderDetailPickedQuantityDTO() + .setNumCnf(BigDecimal.ONE) + .setQtaCnf(currentOrder.getQtaCnf()) + .setQtaCol(currentOrder.getQtaCnf()) + .setCodJfas(codJfas); + + + this.mViewModel.createLU(pickedQuantityDTO); + + this.onLoadingEnded(); + }); } public ProdRientroMerceOrderDetailFragment setOnMtbColtClicked(RunnableArgs onMtbColtClicked) { @@ -409,9 +407,9 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements public Drawable getUntMisIcon() { if (currentOrder.getValue() != null) { - if(currentOrder.getValue().getUntOrd().equalsIgnoreCase("KG")) + if (currentOrder.getValue().getUntOrd().equalsIgnoreCase("KG")) return ContextCompat.getDrawable(requireActivity(), R.drawable.ic_weight_kg); - else + else return ContextCompat.getDrawable(requireActivity(), R.drawable.ic_puzzle); } else return ContextCompat.getDrawable(requireActivity(), R.drawable.ic_weight_kg); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/ProdRientroMerceOrderDetailModule.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/ProdRientroMerceOrderDetailModule.java index 2392a0d3..5418fd27 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/ProdRientroMerceOrderDetailModule.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/ProdRientroMerceOrderDetailModule.java @@ -2,6 +2,7 @@ package it.integry.integrywmsnative.gest.prod_rientro_merce.order_detail; import dagger.Module; import dagger.Provides; +import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer; @@ -19,8 +20,10 @@ public class ProdRientroMerceOrderDetailModule { ProdRientroMerceOrderDetailViewModel provideProdRientroMerceOrderDetailViewModel( ProdRientroMerceOrderDetailRESTConsumer prodRientroMerceOrderDetailRESTConsumer, ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, - PrinterRESTConsumer printerRESTConsumer) { - return new ProdRientroMerceOrderDetailViewModel(prodRientroMerceOrderDetailRESTConsumer, colliMagazzinoRESTConsumer, printerRESTConsumer); + PrinterRESTConsumer printerRESTConsumer, + ArticoloRESTConsumer articoloRESTConsumer, + SystemRESTConsumer systemRESTConsumer) { + return new ProdRientroMerceOrderDetailViewModel(prodRientroMerceOrderDetailRESTConsumer, colliMagazzinoRESTConsumer, printerRESTConsumer, articoloRESTConsumer, systemRESTConsumer); } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/ProdRientroMerceOrderDetailPickedQuantityDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/ProdRientroMerceOrderDetailPickedQuantityDTO.java index 950d8dec..2addcfe5 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/ProdRientroMerceOrderDetailPickedQuantityDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/ProdRientroMerceOrderDetailPickedQuantityDTO.java @@ -8,14 +8,16 @@ import it.integry.integrywmsnative.core.model.MtbTCol; public class ProdRientroMerceOrderDetailPickedQuantityDTO { private BigDecimal numCnf; + private BigDecimal qtaCnf; + private BigDecimal qtaCol; private BigDecimal pesoCollo; private BigDecimal pesoNetto; private BigDecimal taraPed; private BigDecimal taraCol; private BigDecimal pesoLordo; + private String codJfas; private MtbTCol mtbTCol; - private JtbFasi jtbFasi; public BigDecimal getNumCnf() { return numCnf; @@ -26,6 +28,24 @@ public class ProdRientroMerceOrderDetailPickedQuantityDTO { return this; } + public BigDecimal getQtaCnf() { + return qtaCnf; + } + + public ProdRientroMerceOrderDetailPickedQuantityDTO setQtaCnf(BigDecimal qtaCnf) { + this.qtaCnf = qtaCnf; + return this; + } + + public BigDecimal getQtaCol() { + return qtaCol; + } + + public ProdRientroMerceOrderDetailPickedQuantityDTO setQtaCol(BigDecimal qtaCol) { + this.qtaCol = qtaCol; + return this; + } + public BigDecimal getPesoCollo() { return pesoCollo; } @@ -71,6 +91,15 @@ public class ProdRientroMerceOrderDetailPickedQuantityDTO { return this; } + public String getCodJfas() { + return codJfas; + } + + public ProdRientroMerceOrderDetailPickedQuantityDTO setCodJfas(String codJfas) { + this.codJfas = codJfas; + return this; + } + public MtbTCol getMtbTCol() { return mtbTCol; } @@ -79,13 +108,4 @@ public class ProdRientroMerceOrderDetailPickedQuantityDTO { this.mtbTCol = mtbTCol; return this; } - - public JtbFasi getJtbFasi() { - return jtbFasi; - } - - public ProdRientroMerceOrderDetailPickedQuantityDTO setJtbFasi(JtbFasi jtbFasi) { - this.jtbFasi = jtbFasi; - return this; - } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/ProdRientroMerceOrderDetailViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/ProdRientroMerceOrderDetailViewModel.java index 1c68cd95..1ab63e20 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/ProdRientroMerceOrderDetailViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/ProdRientroMerceOrderDetailViewModel.java @@ -2,22 +2,30 @@ package it.integry.integrywmsnative.gest.prod_rientro_merce.order_detail; import androidx.lifecycle.MutableLiveData; -import com.annimon.stream.Optional; -import com.annimon.stream.Stream; +import com.google.gson.reflect.TypeToken; import java.time.LocalDate; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Objects; +import java.util.Optional; import javax.inject.Inject; import it.integry.integrywmsnative.core.expansion.RunnableArgs; +import it.integry.integrywmsnative.core.expansion.RunnableArgss; import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener; +import it.integry.integrywmsnative.core.model.DtbOrdSteps; +import it.integry.integrywmsnative.core.model.MtbAart; import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.report.ReportType; +import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer; +import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer; import it.integry.integrywmsnative.core.settings.SettingsManager; +import it.integry.integrywmsnative.core.utility.UtilityDB; import it.integry.integrywmsnative.core.utility.UtilityDate; import it.integry.integrywmsnative.gest.prod_rientro_merce.order_detail.rest.ProdRientroMerceOrderDetailRESTConsumer; import it.integry.integrywmsnative.gest.prod_rientro_merce.order_detail.rest.dto.ImportColliDaProduzioneRequestDTO; @@ -29,19 +37,25 @@ public class ProdRientroMerceOrderDetailViewModel { public final MutableLiveData> mtbColtsOfOrder = new MutableLiveData<>(); private OrdineLavorazioneDTO currentOrder; - private final ProdRientroMerceOrderDetailRESTConsumer mProdRientroMerceOrderDetailRESTConsumer; - private final ColliMagazzinoRESTConsumer mColliMagazzinoRESTConsumer; - private final PrinterRESTConsumer mPrinterRESTConsumer; + private final ProdRientroMerceOrderDetailRESTConsumer prodRientroMerceOrderDetailRESTConsumer; + private final ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer; + private final PrinterRESTConsumer printerRESTConsumer; + private final ArticoloRESTConsumer articoloRESTConsumer; + private final SystemRESTConsumer systemRESTConsumer; private Listener mListener; @Inject public ProdRientroMerceOrderDetailViewModel(ProdRientroMerceOrderDetailRESTConsumer prodRientroMerceOrderDetailRESTConsumer, ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, - PrinterRESTConsumer printerRESTConsumer) { - this.mProdRientroMerceOrderDetailRESTConsumer = prodRientroMerceOrderDetailRESTConsumer; - this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer; - this.mPrinterRESTConsumer = printerRESTConsumer; + PrinterRESTConsumer printerRESTConsumer, + ArticoloRESTConsumer articoloRESTConsumer, + SystemRESTConsumer systemRESTConsumer) { + this.prodRientroMerceOrderDetailRESTConsumer = prodRientroMerceOrderDetailRESTConsumer; + this.colliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer; + this.printerRESTConsumer = printerRESTConsumer; + this.articoloRESTConsumer = articoloRESTConsumer; + this.systemRESTConsumer = systemRESTConsumer; } public void setOrder(OrdineLavorazioneDTO order) { @@ -54,7 +68,7 @@ public class ProdRientroMerceOrderDetailViewModel { this.sendOnLoadingStarted(); this.mtbColtsOfOrder.postValue(null); - this.mProdRientroMerceOrderDetailRESTConsumer.getMtbColtsOfOrder(currentOrder, mtbColts -> { + this.prodRientroMerceOrderDetailRESTConsumer.getMtbColtsOfOrder(currentOrder, mtbColts -> { for (MtbColt mtbColt : mtbColts) { mtbColt.getMtbColr().get(0) .setDescrizione(currentOrder.getDescrizioneProd()) @@ -66,6 +80,34 @@ public class ProdRientroMerceOrderDetailViewModel { }, this::sendError); } + public void retrieveOrderData(RunnableArgss onComplete) { + String codProd = currentOrder.getCodProd(); + articoloRESTConsumer.getByCodMart(codProd, mtbAart -> { + + String sql = "SELECT TOP 1 * " + + "FROM ( " + + " SELECT MAX(id_step) OVER ( PARTITION BY gestione, num_ord, data_ord) as last_step, " + + " * " + + " FROM dtb_ord_steps " + + " WHERE cod_jfas IS NOT NULL " + + " 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))" + + " OR id_step = 0" + + "ORDER BY id_step DESC"; + + systemRESTConsumer.>processSql(sql, new TypeToken>() { + }.getType(), dtbOrdStep -> { + + onComplete.run(mtbAart, dtbOrdStep != null && !dtbOrdStep.isEmpty() ? dtbOrdStep.get(0).getCodJfas() : null); + + }, this::sendError); + }, this::sendError); + } + public void createLU(ProdRientroMerceOrderDetailPickedQuantityDTO pickedQuantityDTO) { this.sendOnLoadingStarted(); @@ -73,11 +115,10 @@ public class ProdRientroMerceOrderDetailViewModel { ImportColliDaProduzioneRequestDTO importColliDaProduzioneRequestDTO = new ImportColliDaProduzioneRequestDTO() .setColliBancale(pickedQuantityDTO.getNumCnf().intValue()) - .setQtaCnf(pickedQuantityDTO.getPesoCollo()) - .setQtaCol(pickedQuantityDTO.getPesoNetto()) + .setQtaCnf(pickedQuantityDTO.getQtaCnf()) + .setQtaCol(pickedQuantityDTO.getQtaCol()) .setCodJcom(currentOrder.getCodJcom()) -// .setCodJfas("OFF") - .setCodJfas(pickedQuantityDTO.getJtbFasi() != null ? pickedQuantityDTO.getJtbFasi().getCodJfas() : null) + .setCodJfas(pickedQuantityDTO.getCodJfas()) .setCodMart(currentOrder.getCodProd()) .setCodTcol(pickedQuantityDTO.getMtbTCol() != null ? pickedQuantityDTO.getMtbTCol().getCodTcol() : null) .setDataCollo(LocalDate.now()) @@ -87,9 +128,12 @@ public class ProdRientroMerceOrderDetailViewModel { .setPartitaMag(currentOrder.getPartitaMag()) .setFornitore(currentOrder.getRagSocAnag()) .setPesoLordo(pickedQuantityDTO.getPesoLordo()) - .setPesoNetto(pickedQuantityDTO.getPesoNetto()); + .setPesoNetto(pickedQuantityDTO.getPesoNetto()) + .setAutoGeneraVendita(false); + + this.prodRientroMerceOrderDetailRESTConsumer.importColliDaProduzione(importColliDaProduzioneRequestDTO, mtbColtSaved -> { + - this.mProdRientroMerceOrderDetailRESTConsumer.importColloDaProduzione(importColliDaProduzioneRequestDTO, mtbColtSaved -> { synchronized (this.mtbColtsOfOrder) { this.mListener.onDataSaved(mtbColtSaved); } @@ -98,29 +142,28 @@ public class ProdRientroMerceOrderDetailViewModel { } + public void deleteLU(MtbColt mtbColt) { - new Thread(this::sendOnLoadingStarted).start(); + this.sendOnLoadingStarted(); - new Thread(() -> { - this.mProdRientroMerceOrderDetailRESTConsumer.deleteColloDaProduzione(mtbColt, () -> { - synchronized (this.mtbColtsOfOrder) { - Optional mtbColtToRemove = Stream.of(this.mtbColtsOfOrder.getValue()) - .filter(x -> x.getNumCollo().equals(mtbColt.getNumCollo()) && - x.getSerCollo().equalsIgnoreCase(mtbColt.getSerCollo()) && - x.getDataColloD().compareTo(mtbColt.getDataColloD()) == 0 && - x.getGestione().equalsIgnoreCase(mtbColt.getGestione())) - .findFirst(); - - if (mtbColtToRemove.isPresent()) { - this.mtbColtsOfOrder.getValue().remove(mtbColtToRemove.get()); - this.mtbColtsOfOrder.postValue(this.mtbColtsOfOrder.getValue()); - } + this.prodRientroMerceOrderDetailRESTConsumer.deleteColloDaProduzione(mtbColt, () -> { + synchronized (this.mtbColtsOfOrder) { + Optional mtbColtToRemove = Objects.requireNonNull(this.mtbColtsOfOrder.getValue()).stream() + .filter(x -> x.getNumCollo().equals(mtbColt.getNumCollo()) && + x.getSerCollo().equalsIgnoreCase(mtbColt.getSerCollo()) && + x.getDataColloD().compareTo(mtbColt.getDataColloD()) == 0 && + x.getGestione().equalsIgnoreCase(mtbColt.getGestione())) + .findFirst(); + if (mtbColtToRemove.isPresent()) { + this.mtbColtsOfOrder.getValue().remove(mtbColtToRemove.get()); + this.mtbColtsOfOrder.postValue(this.mtbColtsOfOrder.getValue()); } - this.sendOnLoadingEnded(); - }, this::sendError); - }).start(); + } + + this.sendOnLoadingEnded(); + }, this::sendError); } public void setListener(Listener listener) { @@ -152,7 +195,7 @@ public class ProdRientroMerceOrderDetailViewModel { } private void loadShipmentUlFromProductionUL(MtbColt productionUL, RunnableArgs onLoad, RunnableArgs onError) { - this.mColliMagazzinoRESTConsumer.loadShipmentUlFromProductionUL(productionUL, onLoad, onError); + this.colliMagazzinoRESTConsumer.loadShipmentUlFromProductionUL(productionUL, onLoad, onError); } private void startPrint(MtbColt mtbColt, ReportType reportType, String codAnag) { @@ -161,7 +204,7 @@ public class ProdRientroMerceOrderDetailViewModel { params.put("ser_collo", mtbColt.getSerCollo()); params.put("num_collo", mtbColt.getNumCollo()); params.put("data_collo", UtilityDate.formatDate(mtbColt.getDataColloD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_DASH)); - this.mPrinterRESTConsumer.printReportType( + this.printerRESTConsumer.printReportType( reportType, SettingsManager.i().getUserSession().getDepo().getCodMdep(), codAnag, diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/rest/ProdRientroMerceOrderDetailRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/rest/ProdRientroMerceOrderDetailRESTConsumer.java index 752a7a33..1b0ed8ae 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/rest/ProdRientroMerceOrderDetailRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/rest/ProdRientroMerceOrderDetailRESTConsumer.java @@ -8,6 +8,7 @@ import com.orhanobut.logger.Logger; import java.lang.reflect.Type; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.List; @@ -108,25 +109,26 @@ public class ProdRientroMerceOrderDetailRESTConsumer extends _BaseRESTConsumer { } - public void importColloDaProduzione(ImportColliDaProduzioneRequestDTO importColliDaProduzioneRequestDTO, RunnableArgs onComplete, RunnableArgs onFailed) { + public void importColliDaProduzione(ImportColliDaProduzioneRequestDTO importColliDaProduzioneRequestDTO, RunnableArgs onComplete, RunnableArgs onFailed) { ProdRientroMerceOrderDetailRESTConsumerService service = RESTBuilder.getService(ProdRientroMerceOrderDetailRESTConsumerService.class); - service.importColloDaProduzione(importColliDaProduzioneRequestDTO).enqueue(new Callback>>() { - @Override - public void onResponse(Call>> call, Response>> response) { - analyzeAnswer(response, "importColliDaProduzione", mtbColt -> { - onComplete.run(mtbColt.get(0)); - }, ex -> { - if (onFailed != null) onFailed.run(ex); - }); - } + service.importColliDaProduzione(Collections.singletonList(importColliDaProduzioneRequestDTO)) + .enqueue(new Callback<>() { + @Override + public void onResponse(Call> call, Response> response) { + analyzeAnswerList(response, "importColliDaProduzione", mtbColt -> { + onComplete.run(mtbColt.get(0)); + }, ex -> { + if (onFailed != null) onFailed.run(ex); + }); + } - @Override - public void onFailure(Call>> call, Throwable t) { - Logger.e(t, "importColliDaProduzione"); - onFailed.run(new Exception(t)); - } - }); + @Override + public void onFailure(Call> call, Throwable t) { + Logger.e(t, "importColliDaProduzione"); + onFailed.run(new Exception(t)); + } + }); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/rest/ProdRientroMerceOrderDetailRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/rest/ProdRientroMerceOrderDetailRESTConsumerService.java index fbbf13da..c19f2363 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/rest/ProdRientroMerceOrderDetailRESTConsumerService.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/rest/ProdRientroMerceOrderDetailRESTConsumerService.java @@ -13,10 +13,7 @@ public interface ProdRientroMerceOrderDetailRESTConsumerService { @POST("importColliDaProduzioneJson") - Call>> importColliDaProduzione(@Body List importColliDaProduzioneRequestDTO); - - @POST("importColloDaProduzioneJson") - Call>> importColloDaProduzione(@Body ImportColliDaProduzioneRequestDTO importColloDaProduzioneRequestDTO); + Call> importColliDaProduzione(@Body List importColliDaProduzioneRequestDTO); @POST("cancellaColloDaProduzione") Call> deleteColloDaProduzione(@Body MtbColt mtbColtToDelete); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/rest/dto/ImportColliDaProduzioneRequestDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/rest/dto/ImportColliDaProduzioneRequestDTO.java index da274fa6..3d3c321a 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/rest/dto/ImportColliDaProduzioneRequestDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/rest/dto/ImportColliDaProduzioneRequestDTO.java @@ -27,6 +27,8 @@ public class ImportColliDaProduzioneRequestDTO { private Integer numRisorse; private String annotazioni; + private boolean autoGeneraVendita; + public String getCodMart() { return codMart; } @@ -188,4 +190,13 @@ public class ImportColliDaProduzioneRequestDTO { this.annotazioni = annotazioni; return this; } + + public boolean isAutoGeneraVendita() { + return autoGeneraVendita; + } + + public ImportColliDaProduzioneRequestDTO setAutoGeneraVendita(boolean autoGeneraVendita) { + this.autoGeneraVendita = autoGeneraVendita; + return this; + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_list/ProdRientroMerceOrderListAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_list/ProdRientroMerceOrderListAdapter.java index 771d3e03..c26fae46 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_list/ProdRientroMerceOrderListAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_list/ProdRientroMerceOrderListAdapter.java @@ -32,7 +32,7 @@ public class ProdRientroMerceOrderListAdapter extends SectionedRecyclerViewAdapt private View mEmptyView; private RunnableArgs mOnGroupItemClicked; - private RunnableArgs mOnItemChecked; + private RunnableArgs mOnItemClicked; static class SubheaderHolder extends RecyclerView.ViewHolder { @@ -75,8 +75,8 @@ public class ProdRientroMerceOrderListAdapter extends SectionedRecyclerViewAdapt return this; } - public ProdRientroMerceOrderListAdapter setOnItemChecked(RunnableArgs onItemChecked) { - this.mOnItemChecked = onItemChecked; + public ProdRientroMerceOrderListAdapter setOnItemClicked(RunnableArgs onItemChecked) { + this.mOnItemClicked = onItemChecked; return this; } @@ -174,7 +174,7 @@ public class ProdRientroMerceOrderListAdapter extends SectionedRecyclerViewAdapt holder.mBinding.executePendingBindings(); holder.mBinding.getRoot().setOnClickListener(v -> { - if (this.mOnItemChecked != null) this.mOnItemChecked.run(listModel); + if (this.mOnItemClicked != null) this.mOnItemClicked.run(listModel); }); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_list/ProdRientroMerceOrderListFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_list/ProdRientroMerceOrderListFragment.java index c7f835e2..61d4d4af 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_list/ProdRientroMerceOrderListFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_list/ProdRientroMerceOrderListFragment.java @@ -84,7 +84,7 @@ public class ProdRientroMerceOrderListFragment extends Fragment { ProdRientroMerceOrderListAdapter prodRientroMerceOrderListAdapter = new ProdRientroMerceOrderListAdapter(getActivity(), mOrdiniApertiMutableData) .setEmptyView(this.mBindings.emptyView) - .setOnItemChecked(x -> { + .setOnItemClicked(x -> { if (mOnItemSelectedRunnable != null) mOnItemSelectedRunnable.run(x.getOriginalModel()); }); diff --git a/app/src/main/res/layout-large/fragment_prod_rientro_merce_order_detail.xml b/app/src/main/res/layout-large/fragment_prod_rientro_merce_order_detail.xml index a4ba186a..a88e3914 100644 --- a/app/src/main/res/layout-large/fragment_prod_rientro_merce_order_detail.xml +++ b/app/src/main/res/layout-large/fragment_prod_rientro_merce_order_detail.xml @@ -248,7 +248,8 @@ android:layout_height="wrap_content" android:layout_weight="1" android:gravity="end" - android:orientation="horizontal"> + android:orientation="horizontal" + android:visibility="@{view.currentOrder.getDataConsCommessaD() == null ? View.GONE : View.VISIBLE}"> + android:orientation="horizontal" + android:visibility="@{view.isOrderColli ? View.GONE : View.VISIBLE}"> + android:orientation="vertical"> + app:singleClick="@{() -> view.addULButtonClick()}" /> + app:singleClick="@{() -> view.addSingleUnitButtonClick()}" /> diff --git a/app/src/main/res/layout/fragment_prod_rientro_merce_order_detail.xml b/app/src/main/res/layout/fragment_prod_rientro_merce_order_detail.xml index e0977529..1294caa5 100644 --- a/app/src/main/res/layout/fragment_prod_rientro_merce_order_detail.xml +++ b/app/src/main/res/layout/fragment_prod_rientro_merce_order_detail.xml @@ -243,7 +243,8 @@ android:layout_height="wrap_content" android:layout_weight="1" android:gravity="end" - android:orientation="horizontal"> + android:orientation="horizontal" + android:visibility="@{view.currentOrder.getDataConsCommessaD() == null ? View.GONE : View.VISIBLE}"> + android:orientation="horizontal" + android:visibility="@{view.isOrderColli ? View.GONE : View.VISIBLE}"> + android:orientation="vertical"> + app:singleClick="@{() -> view.addULButtonClick()}" /> + app:singleClick="@{() -> view.addSingleUnitButtonClick()}" /> diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 84b76379..d35c3e34 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -334,7 +334,7 @@ Generale Acquisti Vendita - Lav. terzi / Trasf. interni + Produzione Produzione Linea di produzione Seleziona un lotto diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7445fae1..031c5d90 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -338,7 +338,7 @@ General Purchase Check out - Manufacture / Internal movement + Manufacture Production Production line Select a batch lot diff --git a/build.gradle b/build.gradle index 3a832b4c..f2c2bbf7 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ buildscript { ext { kotlin_version = '1.9.20' - agp_version = '8.4.0' + agp_version = '8.7.2' } repositories { diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 69d0c2a3..af8dff6c 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Mon Feb 13 15:14:43 CET 2023 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip distributionPath=wrapper/dists zipStorePath=wrapper/dists zipStoreBase=GRADLE_USER_HOME