Migliorato servizio di importColliDaProduzione
This commit is contained in:
@@ -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.<List<DtbOrdSteps>>processSql(sql, new TypeToken<ArrayList<DtbOrdSteps>>() {
|
||||
}.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<MtbColt> 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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<List<MtbColt>> 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<MtbAart, String> 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.<List<DtbOrdSteps>>processSql(sql, new TypeToken<ArrayList<DtbOrdSteps>>() {
|
||||
}.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<MtbColt> 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<MtbColt> 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<MtbColt> onLoad, RunnableArgs<Exception> 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,
|
||||
|
||||
@@ -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<MtbColt> onComplete, RunnableArgs<Exception> onFailed) {
|
||||
public void importColliDaProduzione(ImportColliDaProduzioneRequestDTO importColliDaProduzioneRequestDTO, RunnableArgs<MtbColt> onComplete, RunnableArgs<Exception> onFailed) {
|
||||
|
||||
ProdRientroMerceOrderDetailRESTConsumerService service = RESTBuilder.getService(ProdRientroMerceOrderDetailRESTConsumerService.class);
|
||||
service.importColloDaProduzione(importColliDaProduzioneRequestDTO).enqueue(new Callback<ServiceRESTResponse<List<MtbColt>>>() {
|
||||
@Override
|
||||
public void onResponse(Call<ServiceRESTResponse<List<MtbColt>>> call, Response<ServiceRESTResponse<List<MtbColt>>> 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<ServiceRESTResponse<MtbColt>> call, Response<ServiceRESTResponse<MtbColt>> response) {
|
||||
analyzeAnswerList(response, "importColliDaProduzione", mtbColt -> {
|
||||
onComplete.run(mtbColt.get(0));
|
||||
}, ex -> {
|
||||
if (onFailed != null) onFailed.run(ex);
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Call<ServiceRESTResponse<List<MtbColt>>> call, Throwable t) {
|
||||
Logger.e(t, "importColliDaProduzione");
|
||||
onFailed.run(new Exception(t));
|
||||
}
|
||||
});
|
||||
@Override
|
||||
public void onFailure(Call<ServiceRESTResponse<MtbColt>> call, Throwable t) {
|
||||
Logger.e(t, "importColliDaProduzione");
|
||||
onFailed.run(new Exception(t));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -13,10 +13,7 @@ public interface ProdRientroMerceOrderDetailRESTConsumerService {
|
||||
|
||||
|
||||
@POST("importColliDaProduzioneJson")
|
||||
Call<ServiceRESTResponse<List<MtbColt>>> importColliDaProduzione(@Body List<ImportColliDaProduzioneRequestDTO> importColliDaProduzioneRequestDTO);
|
||||
|
||||
@POST("importColloDaProduzioneJson")
|
||||
Call<ServiceRESTResponse<List<MtbColt>>> importColloDaProduzione(@Body ImportColliDaProduzioneRequestDTO importColloDaProduzioneRequestDTO);
|
||||
Call<ServiceRESTResponse<MtbColt>> importColliDaProduzione(@Body List<ImportColliDaProduzioneRequestDTO> importColliDaProduzioneRequestDTO);
|
||||
|
||||
@POST("cancellaColloDaProduzione")
|
||||
Call<ServiceRESTResponse<Object>> deleteColloDaProduzione(@Body MtbColt mtbColtToDelete);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ public class ProdRientroMerceOrderListAdapter extends SectionedRecyclerViewAdapt
|
||||
private View mEmptyView;
|
||||
|
||||
private RunnableArgs<String> mOnGroupItemClicked;
|
||||
private RunnableArgs<ProdRientroMerceOrderListModel> mOnItemChecked;
|
||||
private RunnableArgs<ProdRientroMerceOrderListModel> mOnItemClicked;
|
||||
|
||||
static class SubheaderHolder extends RecyclerView.ViewHolder {
|
||||
|
||||
@@ -75,8 +75,8 @@ public class ProdRientroMerceOrderListAdapter extends SectionedRecyclerViewAdapt
|
||||
return this;
|
||||
}
|
||||
|
||||
public ProdRientroMerceOrderListAdapter setOnItemChecked(RunnableArgs<ProdRientroMerceOrderListModel> onItemChecked) {
|
||||
this.mOnItemChecked = onItemChecked;
|
||||
public ProdRientroMerceOrderListAdapter setOnItemClicked(RunnableArgs<ProdRientroMerceOrderListModel> 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);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -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());
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user