diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliAccettazioneRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliAccettazioneRESTConsumer.java index bc5e399b..c5d0e2ac 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliAccettazioneRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliAccettazioneRESTConsumer.java @@ -16,7 +16,6 @@ import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; import it.integry.integrywmsnative.core.rest.model.udc.CloseUDCRequestDTO; import it.integry.integrywmsnative.core.rest.model.udc.CloseUDCResponseDTO; import it.integry.integrywmsnative.core.rest.model.udc.CreateUDCRequestDTO; -import it.integry.integrywmsnative.core.rest.model.udc.CreateUDCResponseDTO; import it.integry.integrywmsnative.core.rest.model.udc.DeleteUDCRowRequestDTO; import it.integry.integrywmsnative.core.rest.model.udc.EditUDCRowRequestDTO; import it.integry.integrywmsnative.core.rest.model.uds.InsertUDCRowRequestDTO; @@ -35,21 +34,21 @@ public class ColliAccettazioneRESTConsumer extends _BaseRESTConsumer implements } @Override - public CreateUDCResponseDTO synchronousCreateUDC(CreateUDCRequestDTO createUDCRequestDTO) throws Exception { + public MtbColt synchronousCreateUDC(CreateUDCRequestDTO createUDCRequestDTO) throws Exception { ColliAccettazioneRESTConsumerService colliAccettazioneRESTConsumerService = restBuilder.getService(ColliAccettazioneRESTConsumerService.class); var response = colliAccettazioneRESTConsumerService.createUDC(createUDCRequestDTO) .execute(); var data = analyzeAnswer(response, "accettazione/createUDC"); - return data; + return data.getMtbColt(); } @Override public void createUDC(CreateUDCRequestDTO createUDCRequestDTO, RunnableArgs onComplete, RunnableArgs onFailed) { executorService.execute(() -> { try { - MtbColt result = synchronousCreateUDC(createUDCRequestDTO).getMtbColt(); + MtbColt result = synchronousCreateUDC(createUDCRequestDTO); onComplete.run(result); } catch (Exception e) { onFailed.run(e); diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliLavorazioneRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliLavorazioneRESTConsumer.java index f3640d74..18fe5144 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliLavorazioneRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliLavorazioneRESTConsumer.java @@ -20,7 +20,6 @@ import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; import it.integry.integrywmsnative.core.rest.model.udc.CloseUDCRequestDTO; import it.integry.integrywmsnative.core.rest.model.udc.CloseUDCResponseDTO; import it.integry.integrywmsnative.core.rest.model.udc.CreateUDCRequestDTO; -import it.integry.integrywmsnative.core.rest.model.udc.CreateUDCResponseDTO; import it.integry.integrywmsnative.core.rest.model.udc.DeleteUDCRowRequestDTO; import it.integry.integrywmsnative.core.rest.model.udc.EditUDCRowRequestDTO; import it.integry.integrywmsnative.core.rest.model.uds.CloseUDSRequestDTO; @@ -51,21 +50,21 @@ public class ColliLavorazioneRESTConsumer extends _BaseRESTConsumer implements C } @Override - public CreateUDCResponseDTO synchronousCreateUDC(CreateUDCRequestDTO createUDCRequestDTO) throws Exception { + public MtbColt synchronousCreateUDC(CreateUDCRequestDTO createUDCRequestDTO) throws Exception { ColliLavorazioneRESTConsumerService colliLavorazioneRESTConsumerService = restBuilder.getService(ColliLavorazioneRESTConsumerService.class); var response = colliLavorazioneRESTConsumerService.createUDC(createUDCRequestDTO) .execute(); var data = analyzeAnswer(response, "lavorazione/createUDC"); - return data; + return data.getMtbColt(); } @Override public void createUDC(CreateUDCRequestDTO createUDCRequestDTO, RunnableArgs onComplete, RunnableArgs onFailed) { executorService.execute(() -> { try { - MtbColt result = synchronousCreateUDC(createUDCRequestDTO).getMtbColt(); + MtbColt result = synchronousCreateUDC(createUDCRequestDTO); onComplete.run(result); } catch (Exception e) { onFailed.run(e); diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/interfaces/ColliCaricoRESTConsumerInterface.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/interfaces/ColliCaricoRESTConsumerInterface.java index ea673452..c3b57739 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/interfaces/ColliCaricoRESTConsumerInterface.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/interfaces/ColliCaricoRESTConsumerInterface.java @@ -6,14 +6,13 @@ import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.rest.model.udc.CloseUDCRequestDTO; import it.integry.integrywmsnative.core.rest.model.udc.CloseUDCResponseDTO; import it.integry.integrywmsnative.core.rest.model.udc.CreateUDCRequestDTO; -import it.integry.integrywmsnative.core.rest.model.udc.CreateUDCResponseDTO; import it.integry.integrywmsnative.core.rest.model.udc.DeleteUDCRowRequestDTO; import it.integry.integrywmsnative.core.rest.model.udc.EditUDCRowRequestDTO; import it.integry.integrywmsnative.core.rest.model.uds.InsertUDCRowRequestDTO; public interface ColliCaricoRESTConsumerInterface { - CreateUDCResponseDTO synchronousCreateUDC(CreateUDCRequestDTO createUDCRequestDTO) throws Exception; + MtbColt synchronousCreateUDC(CreateUDCRequestDTO createUDCRequestDTO) throws Exception; void createUDC(CreateUDCRequestDTO createUDCRequestDTO, RunnableArgs onComplete, RunnableArgs onFailed); CloseUDCResponseDTO synchronousCloseUDC(CloseUDCRequestDTO closeUDCRequestDTO) throws Exception; diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/CreateUDSRequestDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/CreateUDSRequestDTO.java index 68277331..a769713d 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/CreateUDSRequestDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/CreateUDSRequestDTO.java @@ -43,6 +43,9 @@ public class CreateUDSRequestDTO { @SerializedName("orderRequired") private boolean orderRequired; + @SerializedName("reso") + private boolean reso; + @SerializedName("orders") private List orders; @@ -145,6 +148,15 @@ public class CreateUDSRequestDTO { return this; } + public boolean isReso() { + return reso; + } + + public CreateUDSRequestDTO setReso(boolean reso) { + this.reso = reso; + return this; + } + public List getOrders() { return orders; } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/InsertUDSRowRequestDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/InsertUDSRowRequestDTO.java index 12a74d57..2246d3ce 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/InsertUDSRowRequestDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/uds/InsertUDSRowRequestDTO.java @@ -7,6 +7,7 @@ import java.time.LocalDate; import it.integry.integrywmsnative.core.model.MtbColr; import it.integry.integrywmsnative.core.model.MtbColt; +import it.integry.integrywmsnative.core.model.key.DtbDocrKey; public class InsertUDSRowRequestDTO { @@ -31,6 +32,9 @@ public class InsertUDSRowRequestDTO { @SerializedName("codJcom") private String codJcom; + @SerializedName("documentReso") + private DtbDocrKey documentReso; + public MtbColr getSourceMtbColr() { return sourceMtbColr; } @@ -111,4 +115,13 @@ public class InsertUDSRowRequestDTO { this.codJcom = codJcom; return this; } + + public DtbDocrKey getDocumentReso() { + return documentReso; + } + + public InsertUDSRowRequestDTO setDocumentReso(DtbDocrKey documentReso) { + this.documentReso = documentReso; + return this; + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/PickingResiActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/PickingResiActivity.java index 5a19989b..4bdbbdbb 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/PickingResiActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/PickingResiActivity.java @@ -94,7 +94,7 @@ public class PickingResiActivity extends BaseActivity implements BottomSheetFrag private boolean mShouldCloseActivity; - public static void startActivity(Context context, String activityTitle, List documentoResoDTOList, Integer segno) { + public static void startActivity(Context context, String activityTitle, List documentoResoDTOList, PickingResiViewModel.Tipologia tipoReso) { Intent intent = new Intent(context, PickingResiActivity.class); intent.putExtra("activity_title", activityTitle); @@ -102,7 +102,7 @@ public class PickingResiActivity extends BaseActivity implements BottomSheetFrag String consegneCacheKey = DataCache.addItem(documentoResoDTOList); intent.putExtra("key", consegneCacheKey); - intent.putExtra("segno", segno); + intent.putExtra("tipologia", tipoReso.getValue()); context.startActivity(intent); } @@ -114,7 +114,8 @@ public class PickingResiActivity extends BaseActivity implements BottomSheetFrag mTitle = getIntent().getStringExtra("activity_title"); mDocumentiResiList = DataCache.retrieveItem(getIntent().getStringExtra("key")); - int defaultSegnoLU = getIntent().getIntExtra("segno", +1); + PickingResiViewModel.Tipologia tipoReso = + PickingResiViewModel.Tipologia.fromShort(getIntent().getShortExtra("tipologia", PickingResiViewModel.Tipologia.VENDITA.getValue())); mBindings = DataBindingUtil.setContentView(this, R.layout.activity_picking_resi); @@ -150,7 +151,7 @@ public class PickingResiActivity extends BaseActivity implements BottomSheetFrag this.onLoadingStarted(); try { - this.mViewmodel.init(mDocumentiResiList, defaultSegnoLU, codMdep); + this.mViewmodel.init(mDocumentiResiList, tipoReso, codMdep); this.onLoadingEnded(); } catch (Exception ex) { this.onError(ex); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/PickingResiViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/PickingResiViewModel.java index 5ed4d224..ccb16a0b 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/PickingResiViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/PickingResiViewModel.java @@ -33,19 +33,21 @@ import it.integry.integrywmsnative.core.model.MtbColr; import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.model.dto.PickDataDTO; import it.integry.integrywmsnative.core.model.observable.ObservableMtbTcol; -import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.ColliAccettazioneRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.ColliSpedizioneRESTConsumer; -import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer; import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO; import it.integry.integrywmsnative.core.rest.model.udc.CreateUDCRequestDTO; import it.integry.integrywmsnative.core.rest.model.udc.DeleteUDCRowRequestDTO; import it.integry.integrywmsnative.core.rest.model.udc.EditUDCRowRequestDTO; +import it.integry.integrywmsnative.core.rest.model.uds.CreateUDSRequestDTO; +import it.integry.integrywmsnative.core.rest.model.uds.DeleteUDSRowRequestDTO; import it.integry.integrywmsnative.core.rest.model.uds.DeleteULRequestDTO; +import it.integry.integrywmsnative.core.rest.model.uds.EditUDSRowRequestDTO; import it.integry.integrywmsnative.core.rest.model.uds.InsertUDCRowRequestDTO; +import it.integry.integrywmsnative.core.rest.model.uds.InsertUDSRowRequestDTO; import it.integry.integrywmsnative.core.utility.UtilityBarcode; import it.integry.integrywmsnative.core.utility.UtilityBigDecimal; import it.integry.integrywmsnative.core.utility.UtilityString; @@ -65,16 +67,13 @@ public class PickingResiViewModel { private MtbColt mCurrentMtbColt = null; - private String mDefaultGestioneOfLU; private String mDefaultCodAnagOfLU; - private int mDefaultSegnoOfLU; + private Tipologia mTipologiaReso; private String mDefaultCodMdepOfLU; private final Handler mHandler; - private final ArticoloRESTConsumer mArticoloRESTConsumer; private final BarcodeRESTConsumer mBarcodeRESTConsumer; private final ColliDataRecoverService mColliDataRecoverService; - private final OrdiniRESTConsumer mOrdiniRestConsumerService; private final ColliAccettazioneRESTConsumer mColliAccettazioneRESTConsumer; private final ColliSpedizioneRESTConsumer mColliSpedizioneRESTConsumer; private final ColliMagazzinoRESTConsumer mColliMagazzinoRESTConsumer; @@ -84,20 +83,16 @@ public class PickingResiViewModel { @Inject public PickingResiViewModel(Handler handler, - ArticoloRESTConsumer articoloRESTConsumer, BarcodeRESTConsumer barcodeRESTConsumer, ColliDataRecoverService colliDataRecoverService, - OrdiniRESTConsumer ordiniRESTConsumer, ColliAccettazioneRESTConsumer colliAccettazioneRESTConsumer, ColliSpedizioneRESTConsumer colliSpedizioneRESTConsumer, ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, PrinterRESTConsumer printerRESTConsumer, PickingResiRESTConsumer mPickingResiRESTConsumer) { this.mHandler = handler; - this.mArticoloRESTConsumer = articoloRESTConsumer; this.mBarcodeRESTConsumer = barcodeRESTConsumer; this.mColliDataRecoverService = colliDataRecoverService; - this.mOrdiniRestConsumerService = ordiniRESTConsumer; this.mColliAccettazioneRESTConsumer = colliAccettazioneRESTConsumer; this.mColliSpedizioneRESTConsumer = colliSpedizioneRESTConsumer; this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer; @@ -105,8 +100,8 @@ public class PickingResiViewModel { this.mPickingResiRESTConsumer = mPickingResiRESTConsumer; } - public void init(List documentList, int defaultSegnoLU, String codMdep) throws Exception { - this.mDefaultSegnoOfLU = defaultSegnoLU; + public void init(List documentList, Tipologia tipologiaReso, String codMdep) throws Exception { + this.mTipologiaReso = tipologiaReso; this.mDefaultCodMdepOfLU = codMdep; @@ -132,8 +127,6 @@ public class PickingResiViewModel { throw new Exception("Sono stati caricati documenti con diverse gestioni"); } - mDefaultGestioneOfLU = foundGestioni.get(0); - List foundCodAnags = Stream.of(documentList) .map(DocumentoResoDTO::getCodAnag) @@ -148,17 +141,30 @@ public class PickingResiViewModel { } public void createNewLU(Integer customNumCollo, String customSerCollo) throws Exception { -// mColliAccettazioneRESTConsumer.createUDC(new Cre); + if (mTipologiaReso == Tipologia.VENDITA) { + var createdUdc = mColliAccettazioneRESTConsumer.synchronousCreateUDC(new CreateUDCRequestDTO() + .setCodAnag(mDefaultCodAnagOfLU) + .setCodMdep(mDefaultCodMdepOfLU) + .setNumCollo(customNumCollo) + .setSerCollo(customSerCollo) + .setReso(true)); - var createUdcResponse = mColliAccettazioneRESTConsumer.synchronousCreateUDC(new CreateUDCRequestDTO() - .setCodAnag(mDefaultCodAnagOfLU) - .setCodMdep(mDefaultCodMdepOfLU) - .setNumCollo(customNumCollo) - .setSerCollo(customSerCollo) - .setReso(true)); + this.mCurrentMtbColt = createdUdc; - this.mCurrentMtbColt = createUdcResponse.getMtbColt(); - this.sendLUOpened(createUdcResponse.getMtbColt()); + } else if (mTipologiaReso == Tipologia.ACQUISTO) { + var createdUds = mColliSpedizioneRESTConsumer.createUDSSynchronized(new CreateUDSRequestDTO() + .setCodAnag(mDefaultCodAnagOfLU) + .setCodMdep(mDefaultCodMdepOfLU) + .setNumCollo(customNumCollo) + .setSerCollo(customSerCollo) + .setReso(true)); + + this.mCurrentMtbColt = createdUds; + + } else + throw new UnsupportedOperationException("Tipologia di reso non supportata: " + mTipologiaReso); + + this.sendLUOpened(this.mCurrentMtbColt); } @@ -222,11 +228,6 @@ public class PickingResiViewModel { } } - private void singlePrint(MtbColt mtbColtToPrint) { - - - } - private void postCloseOperations(MtbColt mtbColt) { this.mColliRegistrati.add(mtbColt); @@ -414,7 +415,7 @@ public class PickingResiViewModel { List pickingList = mPickingList.getValue(); - Stream.of(pickingList) + pickingList.stream() .filter(x -> x != matchedItem) .forEach(x -> x.setHidden(true)); @@ -524,18 +525,36 @@ public class PickingResiViewModel { public void saveNewRow(WithdrawableDtbDocr withdrawableDtbDocr, MtbColt refMtbColt, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, LocalDate dataScad, boolean shouldCloseLU) throws Exception { this.sendOnLoadingStarted(); - InsertUDCRowRequestDTO insertUDCRowRequestDTO = new InsertUDCRowRequestDTO() - .setTargetMtbColt(mCurrentMtbColt) - .setCodMart(withdrawableDtbDocr.getMtbAart().getCodMart()) - .setPartitaMag(partitaMag) - .setDataScad(dataScad) - .setQtaTot(qtaTot) - .setQtaCnf(qtaCnf) - .setNumCnf(numCnf) - .setDescrizione(withdrawableDtbDocr.getMtbAart().getDescrizioneEstesa()) + InsertUDCRowRequestDTO insertUDCRowRequestDTO = null; + InsertUDSRowRequestDTO insertUDSRowRequestDTO = null; - .setDocumentReso(withdrawableDtbDocr.getKey()); + if (mTipologiaReso == Tipologia.VENDITA) { + insertUDCRowRequestDTO = new InsertUDCRowRequestDTO() + .setTargetMtbColt(mCurrentMtbColt) + .setCodMart(withdrawableDtbDocr.getMtbAart().getCodMart()) + .setPartitaMag(partitaMag) + .setDataScad(dataScad) + .setQtaTot(qtaTot) + .setQtaCnf(qtaCnf) + .setNumCnf(numCnf) + .setDescrizione(withdrawableDtbDocr.getMtbAart().getDescrizioneEstesa()) + .setDocumentReso(withdrawableDtbDocr.getKey()); + + } else if (mTipologiaReso == Tipologia.ACQUISTO) { + insertUDSRowRequestDTO = new InsertUDSRowRequestDTO() + .setTargetMtbColt(mCurrentMtbColt) + .setCodMart(withdrawableDtbDocr.getMtbAart().getCodMart()) + .setPartitaMag(partitaMag) + .setDataScad(dataScad) + .setQtaTot(qtaTot) + .setQtaCnf(qtaCnf) + .setNumCnf(numCnf) + + .setDocumentReso(withdrawableDtbDocr.getKey()); + + } else + throw new UnsupportedOperationException("Tipologia di reso non supportata: " + mTipologiaReso); //TODO: Al posto di prelevare la prima riga bisognerebbe controllare se c'รจ ne una che corrisponde con la partita richiesta MtbColr mtbColrToDispatch = withdrawableDtbDocr.getTempPickData() != null && @@ -552,25 +571,11 @@ public class PickingResiViewModel { mCurrentMtbColt.setCodTcol(newCodTcol); } -// insertUDCRowRequestDTO -// .setCodJcom(UtilityString.empty2null(mtbColrToDispatch.getCodJcom())) -// .setSerColloRif(UtilityString.empty2null(mtbColrToDispatch.getSerCollo())) -// .setNumColloRif(mtbColrToDispatch.getNumCollo()) -// .setGestioneRif(UtilityString.empty2null(mtbColrToDispatch.getGestione())) -// .setDataColloRif(UtilityString.empty2null(mtbColrToDispatch.getDataColloS())); - - - if (mtbColrToDispatch.getPesoNettoKg() != null) { - //Proporzione - BigDecimal pesoNettoKg = UtilityBigDecimal.divide(UtilityBigDecimal.multiply(qtaTot, mtbColrToDispatch.getPesoNettoKg()), mtbColrToDispatch.getQtaCol()); - insertUDCRowRequestDTO.setPesoNettoKg(pesoNettoKg); + if (mTipologiaReso == Tipologia.ACQUISTO) { + insertUDSRowRequestDTO + .setSourceMtbColr(mtbColrToDispatch); } - if (mtbColrToDispatch.getPesoLordoKg() != null) { - //Proporzione - BigDecimal pesoLordoKg = UtilityBigDecimal.divide(UtilityBigDecimal.multiply(qtaTot, mtbColrToDispatch.getPesoLordoKg()), mtbColrToDispatch.getQtaCol()); - insertUDCRowRequestDTO.setPesoLordoKg(pesoLordoKg); - } } @@ -589,7 +594,15 @@ public class PickingResiViewModel { } boolean finalShouldPrint = shouldPrint; - MtbColr insertedULRow = this.mColliAccettazioneRESTConsumer.synchronousInsertUDCRow(insertUDCRowRequestDTO); + MtbColr insertedULRow; + + if(mTipologiaReso == Tipologia.VENDITA) { + insertedULRow = this.mColliAccettazioneRESTConsumer.synchronousInsertUDCRow(insertUDCRowRequestDTO); + } else if (mTipologiaReso == Tipologia.ACQUISTO) { + insertedULRow = this.mColliSpedizioneRESTConsumer.insertUDSRowSynchronized(insertUDSRowRequestDTO); + } else { + throw new UnsupportedOperationException("Tipologia di reso non supportata: " + mTipologiaReso); + } insertedULRow .setUntMis(withdrawableDtbDocr.getMtbAart().getUntMis()) @@ -602,6 +615,7 @@ public class PickingResiViewModel { this.mPickingList.postValue(this.mPickingList.getValue()); + this.resetMatchedRows(); this.sendOnRowSaved(); this.sendOnLoadingEnded(); @@ -610,15 +624,29 @@ public class PickingResiViewModel { private void saveEditedRow(MtbColr mtbColrToUpdate, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, LocalDate dataScad, boolean shouldCloseLU) throws Exception { - EditUDCRowRequestDTO editUDCRowRequest = new EditUDCRowRequestDTO() - .setSourceMtbColr(mtbColrToUpdate) - .setNewNumCnf(numCnf) - .setNewQtaCnf(qtaCnf) - .setNewQtaTot(qtaTot) - .setNewPartitaMag(partitaMag) - .setNewDataScad(dataScad); + MtbColr updatedMtbColr; - MtbColr updatedMtbColr = this.mColliAccettazioneRESTConsumer.synchronousEditUDCRow(editUDCRowRequest); + if (mTipologiaReso == Tipologia.VENDITA) { + EditUDCRowRequestDTO editUDCRowRequest = new EditUDCRowRequestDTO() + .setSourceMtbColr(mtbColrToUpdate) + .setNewNumCnf(numCnf) + .setNewQtaCnf(qtaCnf) + .setNewQtaTot(qtaTot) + .setNewPartitaMag(partitaMag) + .setNewDataScad(dataScad); + + updatedMtbColr = this.mColliAccettazioneRESTConsumer.synchronousEditUDCRow(editUDCRowRequest); + } else if (mTipologiaReso == Tipologia.ACQUISTO) { + EditUDSRowRequestDTO editUDSRowRequest = new EditUDSRowRequestDTO() + .setSourceMtbColr(mtbColrToUpdate) + .setNewNumCnf(numCnf) + .setNewQtaCnf(qtaCnf) + .setNewQtaTot(qtaTot); + + updatedMtbColr = this.mColliSpedizioneRESTConsumer.editUDSRowSynchronized(editUDSRowRequest); + } else { + throw new UnsupportedOperationException("Tipologia di reso non supportata: " + mTipologiaReso); + } updatedMtbColr .setUntMis(mtbColrToUpdate.getUntMis()) @@ -647,10 +675,16 @@ public class PickingResiViewModel { var canDelete = this.sendMtbColrDeleteRequest(); if (canDelete) { - DeleteUDCRowRequestDTO deleteUDCRowRequest = new DeleteUDCRowRequestDTO() - .setMtbColrToDelete(mtbColrToDelete); + if (mTipologiaReso == Tipologia.VENDITA) { + this.mColliAccettazioneRESTConsumer.synchronousDeleteUDCRow(new DeleteUDCRowRequestDTO() + .setMtbColrToDelete(mtbColrToDelete)); - this.mColliAccettazioneRESTConsumer.synchronousDeleteUDCRow(deleteUDCRowRequest); + } else if (mTipologiaReso == Tipologia.ACQUISTO) { + this.mColliSpedizioneRESTConsumer.deleteUDSRowSynchronized(new DeleteUDSRowRequestDTO() + .setMtbColrToDelete(mtbColrToDelete)); + + } else + throw new UnsupportedOperationException("Tipologia di reso non supportata: " + mTipologiaReso); Optional pickingObjectDTO = this.mPickingList.getValue().stream() @@ -840,4 +874,26 @@ public class PickingResiViewModel { void onFilterRemoved(); } + + public enum Tipologia { + ACQUISTO((short) -1), + VENDITA((short) +1); + + private final short value; + + Tipologia(short value) { + this.value = value; + } + + public short getValue() { + return this.value; + } + + public static Tipologia fromShort(short value) { + for (Tipologia b : Tipologia.values()) { + if (b.value == value) return b; + } + return null; + } + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/UltimeConsegneClienteFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/UltimeConsegneClienteFragment.java index aff2ab89..a7ef56c7 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/UltimeConsegneClienteFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/UltimeConsegneClienteFragment.java @@ -41,6 +41,7 @@ import it.integry.integrywmsnative.databinding.FragmentMainUltimeConsegneCliente import it.integry.integrywmsnative.databinding.FragmentMainUltimeConsegneClienteListHeaderBinding; import it.integry.integrywmsnative.databinding.FragmentMainUltimeConsegneClienteListSingleItemBinding; import it.integry.integrywmsnative.gest.picking_resi.PickingResiActivity; +import it.integry.integrywmsnative.gest.picking_resi.PickingResiViewModel; import it.integry.integrywmsnative.gest.ultime_consegne_cliente.dialog.DialogUltimeConsegneFiltroAvanzatoView; import it.integry.integrywmsnative.ui.ElevatedToolbar; import kotlin.Unit; @@ -296,7 +297,10 @@ public class UltimeConsegneClienteFragment extends BaseFragment implements Ultim private void dispatchConsegne() { List selectedConsegne = getSelectedItems(); - PickingResiActivity.startActivity(getActivity(), getActivity().getText(R.string.ultime_consegne_cliente_title).toString(), selectedConsegne, +1); + PickingResiActivity.startActivity(getActivity(), + requireActivity().getText(R.string.ultime_consegne_cliente_title).toString(), + selectedConsegne, + PickingResiViewModel.Tipologia.VENDITA); } public void removeBarcodeFilter() { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/UltimiArriviFornitoreFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/UltimiArriviFornitoreFragment.java index 1aa71982..588ec9d9 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/UltimiArriviFornitoreFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/ultimi_arrivi_fornitore/UltimiArriviFornitoreFragment.java @@ -44,6 +44,7 @@ import it.integry.integrywmsnative.databinding.FragmentUltimiArriviFornitoreBind import it.integry.integrywmsnative.databinding.FragmentUltimiArriviFornitoreListHeaderBinding; import it.integry.integrywmsnative.databinding.FragmentUltimiArriviFornitoreListSingleItemBinding; import it.integry.integrywmsnative.gest.picking_resi.PickingResiActivity; +import it.integry.integrywmsnative.gest.picking_resi.PickingResiViewModel; import it.integry.integrywmsnative.gest.ultime_consegne_cliente.dialog.DialogUltimeConsegneFiltroAvanzatoView; import it.integry.integrywmsnative.ui.ElevatedToolbar; import it.integry.integrywmsnative.view.dialogs.choose_arts_from_mtbcolr_list.DialogChooseArtsFromMtbColrListView; @@ -300,7 +301,10 @@ public class UltimiArriviFornitoreFragment extends BaseFragment implements ITitl private void dispatchArrivi() { List selectedConsegne = getSelectedItems(); - PickingResiActivity.startActivity(getActivity(), requireActivity().getText(R.string.ultime_arrivi_fornitore_title).toString(), selectedConsegne, -1); + PickingResiActivity.startActivity(getActivity(), + requireActivity().getText(R.string.ultime_arrivi_fornitore_title).toString(), + selectedConsegne, + PickingResiViewModel.Tipologia.ACQUISTO); } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLUViewModel.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLUViewModel.java index 02f7ea4a..9d9bcbd2 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLUViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLUViewModel.java @@ -65,7 +65,7 @@ public class DialogScanOrCreateLUViewModel { .setCodMdep(SettingsManager.i().getUserSession().getDepo().getCodMdep()); var createResponse = this.mColliLavorazioneRESTConsumer.synchronousCreateUDC(createUdcRequest); - this.sendOnLUOpened(createResponse.getMtbColt(), true); + this.sendOnLUOpened(createResponse, true); } public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {