Completato refactoring picking per resi fornitore

This commit is contained in:
2025-06-18 12:02:07 +02:00
parent e917b2a413
commit 3d3113d2bf
10 changed files with 172 additions and 85 deletions

View File

@@ -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.CloseUDCRequestDTO;
import it.integry.integrywmsnative.core.rest.model.udc.CloseUDCResponseDTO; 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.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.DeleteUDCRowRequestDTO;
import it.integry.integrywmsnative.core.rest.model.udc.EditUDCRowRequestDTO; import it.integry.integrywmsnative.core.rest.model.udc.EditUDCRowRequestDTO;
import it.integry.integrywmsnative.core.rest.model.uds.InsertUDCRowRequestDTO; import it.integry.integrywmsnative.core.rest.model.uds.InsertUDCRowRequestDTO;
@@ -35,21 +34,21 @@ public class ColliAccettazioneRESTConsumer extends _BaseRESTConsumer implements
} }
@Override @Override
public CreateUDCResponseDTO synchronousCreateUDC(CreateUDCRequestDTO createUDCRequestDTO) throws Exception { public MtbColt synchronousCreateUDC(CreateUDCRequestDTO createUDCRequestDTO) throws Exception {
ColliAccettazioneRESTConsumerService colliAccettazioneRESTConsumerService = restBuilder.getService(ColliAccettazioneRESTConsumerService.class); ColliAccettazioneRESTConsumerService colliAccettazioneRESTConsumerService = restBuilder.getService(ColliAccettazioneRESTConsumerService.class);
var response = colliAccettazioneRESTConsumerService.createUDC(createUDCRequestDTO) var response = colliAccettazioneRESTConsumerService.createUDC(createUDCRequestDTO)
.execute(); .execute();
var data = analyzeAnswer(response, "accettazione/createUDC"); var data = analyzeAnswer(response, "accettazione/createUDC");
return data; return data.getMtbColt();
} }
@Override @Override
public void createUDC(CreateUDCRequestDTO createUDCRequestDTO, RunnableArgs<MtbColt> onComplete, RunnableArgs<Exception> onFailed) { public void createUDC(CreateUDCRequestDTO createUDCRequestDTO, RunnableArgs<MtbColt> onComplete, RunnableArgs<Exception> onFailed) {
executorService.execute(() -> { executorService.execute(() -> {
try { try {
MtbColt result = synchronousCreateUDC(createUDCRequestDTO).getMtbColt(); MtbColt result = synchronousCreateUDC(createUDCRequestDTO);
onComplete.run(result); onComplete.run(result);
} catch (Exception e) { } catch (Exception e) {
onFailed.run(e); onFailed.run(e);

View File

@@ -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.CloseUDCRequestDTO;
import it.integry.integrywmsnative.core.rest.model.udc.CloseUDCResponseDTO; 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.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.DeleteUDCRowRequestDTO;
import it.integry.integrywmsnative.core.rest.model.udc.EditUDCRowRequestDTO; import it.integry.integrywmsnative.core.rest.model.udc.EditUDCRowRequestDTO;
import it.integry.integrywmsnative.core.rest.model.uds.CloseUDSRequestDTO; import it.integry.integrywmsnative.core.rest.model.uds.CloseUDSRequestDTO;
@@ -51,21 +50,21 @@ public class ColliLavorazioneRESTConsumer extends _BaseRESTConsumer implements C
} }
@Override @Override
public CreateUDCResponseDTO synchronousCreateUDC(CreateUDCRequestDTO createUDCRequestDTO) throws Exception { public MtbColt synchronousCreateUDC(CreateUDCRequestDTO createUDCRequestDTO) throws Exception {
ColliLavorazioneRESTConsumerService colliLavorazioneRESTConsumerService = restBuilder.getService(ColliLavorazioneRESTConsumerService.class); ColliLavorazioneRESTConsumerService colliLavorazioneRESTConsumerService = restBuilder.getService(ColliLavorazioneRESTConsumerService.class);
var response = colliLavorazioneRESTConsumerService.createUDC(createUDCRequestDTO) var response = colliLavorazioneRESTConsumerService.createUDC(createUDCRequestDTO)
.execute(); .execute();
var data = analyzeAnswer(response, "lavorazione/createUDC"); var data = analyzeAnswer(response, "lavorazione/createUDC");
return data; return data.getMtbColt();
} }
@Override @Override
public void createUDC(CreateUDCRequestDTO createUDCRequestDTO, RunnableArgs<MtbColt> onComplete, RunnableArgs<Exception> onFailed) { public void createUDC(CreateUDCRequestDTO createUDCRequestDTO, RunnableArgs<MtbColt> onComplete, RunnableArgs<Exception> onFailed) {
executorService.execute(() -> { executorService.execute(() -> {
try { try {
MtbColt result = synchronousCreateUDC(createUDCRequestDTO).getMtbColt(); MtbColt result = synchronousCreateUDC(createUDCRequestDTO);
onComplete.run(result); onComplete.run(result);
} catch (Exception e) { } catch (Exception e) {
onFailed.run(e); onFailed.run(e);

View File

@@ -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.CloseUDCRequestDTO;
import it.integry.integrywmsnative.core.rest.model.udc.CloseUDCResponseDTO; 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.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.DeleteUDCRowRequestDTO;
import it.integry.integrywmsnative.core.rest.model.udc.EditUDCRowRequestDTO; import it.integry.integrywmsnative.core.rest.model.udc.EditUDCRowRequestDTO;
import it.integry.integrywmsnative.core.rest.model.uds.InsertUDCRowRequestDTO; import it.integry.integrywmsnative.core.rest.model.uds.InsertUDCRowRequestDTO;
public interface ColliCaricoRESTConsumerInterface { public interface ColliCaricoRESTConsumerInterface {
CreateUDCResponseDTO synchronousCreateUDC(CreateUDCRequestDTO createUDCRequestDTO) throws Exception; MtbColt synchronousCreateUDC(CreateUDCRequestDTO createUDCRequestDTO) throws Exception;
void createUDC(CreateUDCRequestDTO createUDCRequestDTO, RunnableArgs<MtbColt> onComplete, RunnableArgs<Exception> onFailed); void createUDC(CreateUDCRequestDTO createUDCRequestDTO, RunnableArgs<MtbColt> onComplete, RunnableArgs<Exception> onFailed);
CloseUDCResponseDTO synchronousCloseUDC(CloseUDCRequestDTO closeUDCRequestDTO) throws Exception; CloseUDCResponseDTO synchronousCloseUDC(CloseUDCRequestDTO closeUDCRequestDTO) throws Exception;

View File

@@ -43,6 +43,9 @@ public class CreateUDSRequestDTO {
@SerializedName("orderRequired") @SerializedName("orderRequired")
private boolean orderRequired; private boolean orderRequired;
@SerializedName("reso")
private boolean reso;
@SerializedName("orders") @SerializedName("orders")
private List<CreateUDSRequestOrderDTO> orders; private List<CreateUDSRequestOrderDTO> orders;
@@ -145,6 +148,15 @@ public class CreateUDSRequestDTO {
return this; return this;
} }
public boolean isReso() {
return reso;
}
public CreateUDSRequestDTO setReso(boolean reso) {
this.reso = reso;
return this;
}
public List<CreateUDSRequestOrderDTO> getOrders() { public List<CreateUDSRequestOrderDTO> getOrders() {
return orders; return orders;
} }

View File

@@ -7,6 +7,7 @@ import java.time.LocalDate;
import it.integry.integrywmsnative.core.model.MtbColr; import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.model.key.DtbDocrKey;
public class InsertUDSRowRequestDTO { public class InsertUDSRowRequestDTO {
@@ -31,6 +32,9 @@ public class InsertUDSRowRequestDTO {
@SerializedName("codJcom") @SerializedName("codJcom")
private String codJcom; private String codJcom;
@SerializedName("documentReso")
private DtbDocrKey documentReso;
public MtbColr getSourceMtbColr() { public MtbColr getSourceMtbColr() {
return sourceMtbColr; return sourceMtbColr;
} }
@@ -111,4 +115,13 @@ public class InsertUDSRowRequestDTO {
this.codJcom = codJcom; this.codJcom = codJcom;
return this; return this;
} }
public DtbDocrKey getDocumentReso() {
return documentReso;
}
public InsertUDSRowRequestDTO setDocumentReso(DtbDocrKey documentReso) {
this.documentReso = documentReso;
return this;
}
} }

View File

@@ -94,7 +94,7 @@ public class PickingResiActivity extends BaseActivity implements BottomSheetFrag
private boolean mShouldCloseActivity; private boolean mShouldCloseActivity;
public static void startActivity(Context context, String activityTitle, List<DocumentoResoDTO> documentoResoDTOList, Integer segno) { public static void startActivity(Context context, String activityTitle, List<DocumentoResoDTO> documentoResoDTOList, PickingResiViewModel.Tipologia tipoReso) {
Intent intent = new Intent(context, PickingResiActivity.class); Intent intent = new Intent(context, PickingResiActivity.class);
intent.putExtra("activity_title", activityTitle); intent.putExtra("activity_title", activityTitle);
@@ -102,7 +102,7 @@ public class PickingResiActivity extends BaseActivity implements BottomSheetFrag
String consegneCacheKey = DataCache.addItem(documentoResoDTOList); String consegneCacheKey = DataCache.addItem(documentoResoDTOList);
intent.putExtra("key", consegneCacheKey); intent.putExtra("key", consegneCacheKey);
intent.putExtra("segno", segno); intent.putExtra("tipologia", tipoReso.getValue());
context.startActivity(intent); context.startActivity(intent);
} }
@@ -114,7 +114,8 @@ public class PickingResiActivity extends BaseActivity implements BottomSheetFrag
mTitle = getIntent().getStringExtra("activity_title"); mTitle = getIntent().getStringExtra("activity_title");
mDocumentiResiList = DataCache.retrieveItem(getIntent().getStringExtra("key")); 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); mBindings = DataBindingUtil.setContentView(this, R.layout.activity_picking_resi);
@@ -150,7 +151,7 @@ public class PickingResiActivity extends BaseActivity implements BottomSheetFrag
this.onLoadingStarted(); this.onLoadingStarted();
try { try {
this.mViewmodel.init(mDocumentiResiList, defaultSegnoLU, codMdep); this.mViewmodel.init(mDocumentiResiList, tipoReso, codMdep);
this.onLoadingEnded(); this.onLoadingEnded();
} catch (Exception ex) { } catch (Exception ex) {
this.onError(ex); this.onError(ex);

View File

@@ -33,19 +33,21 @@ import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.model.dto.PickDataDTO; import it.integry.integrywmsnative.core.model.dto.PickDataDTO;
import it.integry.integrywmsnative.core.model.observable.ObservableMtbTcol; 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.BarcodeRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.ColliAccettazioneRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.ColliAccettazioneRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.ColliSpedizioneRESTConsumer; 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.consumers.PrinterRESTConsumer;
import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO; 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.CreateUDCRequestDTO;
import it.integry.integrywmsnative.core.rest.model.udc.DeleteUDCRowRequestDTO; 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.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.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.InsertUDCRowRequestDTO;
import it.integry.integrywmsnative.core.rest.model.uds.InsertUDSRowRequestDTO;
import it.integry.integrywmsnative.core.utility.UtilityBarcode; import it.integry.integrywmsnative.core.utility.UtilityBarcode;
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal; import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.core.utility.UtilityString;
@@ -65,16 +67,13 @@ public class PickingResiViewModel {
private MtbColt mCurrentMtbColt = null; private MtbColt mCurrentMtbColt = null;
private String mDefaultGestioneOfLU;
private String mDefaultCodAnagOfLU; private String mDefaultCodAnagOfLU;
private int mDefaultSegnoOfLU; private Tipologia mTipologiaReso;
private String mDefaultCodMdepOfLU; private String mDefaultCodMdepOfLU;
private final Handler mHandler; private final Handler mHandler;
private final ArticoloRESTConsumer mArticoloRESTConsumer;
private final BarcodeRESTConsumer mBarcodeRESTConsumer; private final BarcodeRESTConsumer mBarcodeRESTConsumer;
private final ColliDataRecoverService mColliDataRecoverService; private final ColliDataRecoverService mColliDataRecoverService;
private final OrdiniRESTConsumer mOrdiniRestConsumerService;
private final ColliAccettazioneRESTConsumer mColliAccettazioneRESTConsumer; private final ColliAccettazioneRESTConsumer mColliAccettazioneRESTConsumer;
private final ColliSpedizioneRESTConsumer mColliSpedizioneRESTConsumer; private final ColliSpedizioneRESTConsumer mColliSpedizioneRESTConsumer;
private final ColliMagazzinoRESTConsumer mColliMagazzinoRESTConsumer; private final ColliMagazzinoRESTConsumer mColliMagazzinoRESTConsumer;
@@ -84,20 +83,16 @@ public class PickingResiViewModel {
@Inject @Inject
public PickingResiViewModel(Handler handler, public PickingResiViewModel(Handler handler,
ArticoloRESTConsumer articoloRESTConsumer,
BarcodeRESTConsumer barcodeRESTConsumer, BarcodeRESTConsumer barcodeRESTConsumer,
ColliDataRecoverService colliDataRecoverService, ColliDataRecoverService colliDataRecoverService,
OrdiniRESTConsumer ordiniRESTConsumer,
ColliAccettazioneRESTConsumer colliAccettazioneRESTConsumer, ColliAccettazioneRESTConsumer colliAccettazioneRESTConsumer,
ColliSpedizioneRESTConsumer colliSpedizioneRESTConsumer, ColliSpedizioneRESTConsumer colliSpedizioneRESTConsumer,
ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
PrinterRESTConsumer printerRESTConsumer, PrinterRESTConsumer printerRESTConsumer,
PickingResiRESTConsumer mPickingResiRESTConsumer) { PickingResiRESTConsumer mPickingResiRESTConsumer) {
this.mHandler = handler; this.mHandler = handler;
this.mArticoloRESTConsumer = articoloRESTConsumer;
this.mBarcodeRESTConsumer = barcodeRESTConsumer; this.mBarcodeRESTConsumer = barcodeRESTConsumer;
this.mColliDataRecoverService = colliDataRecoverService; this.mColliDataRecoverService = colliDataRecoverService;
this.mOrdiniRestConsumerService = ordiniRESTConsumer;
this.mColliAccettazioneRESTConsumer = colliAccettazioneRESTConsumer; this.mColliAccettazioneRESTConsumer = colliAccettazioneRESTConsumer;
this.mColliSpedizioneRESTConsumer = colliSpedizioneRESTConsumer; this.mColliSpedizioneRESTConsumer = colliSpedizioneRESTConsumer;
this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer; this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer;
@@ -105,8 +100,8 @@ public class PickingResiViewModel {
this.mPickingResiRESTConsumer = mPickingResiRESTConsumer; this.mPickingResiRESTConsumer = mPickingResiRESTConsumer;
} }
public void init(List<DocumentoResoDTO> documentList, int defaultSegnoLU, String codMdep) throws Exception { public void init(List<DocumentoResoDTO> documentList, Tipologia tipologiaReso, String codMdep) throws Exception {
this.mDefaultSegnoOfLU = defaultSegnoLU; this.mTipologiaReso = tipologiaReso;
this.mDefaultCodMdepOfLU = codMdep; this.mDefaultCodMdepOfLU = codMdep;
@@ -132,8 +127,6 @@ public class PickingResiViewModel {
throw new Exception("Sono stati caricati documenti con diverse gestioni"); throw new Exception("Sono stati caricati documenti con diverse gestioni");
} }
mDefaultGestioneOfLU = foundGestioni.get(0);
List<String> foundCodAnags = Stream.of(documentList) List<String> foundCodAnags = Stream.of(documentList)
.map(DocumentoResoDTO::getCodAnag) .map(DocumentoResoDTO::getCodAnag)
@@ -148,17 +141,30 @@ public class PickingResiViewModel {
} }
public void createNewLU(Integer customNumCollo, String customSerCollo) throws Exception { 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() this.mCurrentMtbColt = createdUdc;
.setCodAnag(mDefaultCodAnagOfLU)
.setCodMdep(mDefaultCodMdepOfLU)
.setNumCollo(customNumCollo)
.setSerCollo(customSerCollo)
.setReso(true));
this.mCurrentMtbColt = createUdcResponse.getMtbColt(); } else if (mTipologiaReso == Tipologia.ACQUISTO) {
this.sendLUOpened(createUdcResponse.getMtbColt()); 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) { private void postCloseOperations(MtbColt mtbColt) {
this.mColliRegistrati.add(mtbColt); this.mColliRegistrati.add(mtbColt);
@@ -414,7 +415,7 @@ public class PickingResiViewModel {
List<WithdrawableDtbDocr> pickingList = mPickingList.getValue(); List<WithdrawableDtbDocr> pickingList = mPickingList.getValue();
Stream.of(pickingList) pickingList.stream()
.filter(x -> x != matchedItem) .filter(x -> x != matchedItem)
.forEach(x -> x.setHidden(true)); .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 { public void saveNewRow(WithdrawableDtbDocr withdrawableDtbDocr, MtbColt refMtbColt, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, LocalDate dataScad, boolean shouldCloseLU) throws Exception {
this.sendOnLoadingStarted(); this.sendOnLoadingStarted();
InsertUDCRowRequestDTO insertUDCRowRequestDTO = new InsertUDCRowRequestDTO() InsertUDCRowRequestDTO insertUDCRowRequestDTO = null;
.setTargetMtbColt(mCurrentMtbColt) InsertUDSRowRequestDTO insertUDSRowRequestDTO = null;
.setCodMart(withdrawableDtbDocr.getMtbAart().getCodMart())
.setPartitaMag(partitaMag)
.setDataScad(dataScad)
.setQtaTot(qtaTot)
.setQtaCnf(qtaCnf)
.setNumCnf(numCnf)
.setDescrizione(withdrawableDtbDocr.getMtbAart().getDescrizioneEstesa())
.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 //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 && MtbColr mtbColrToDispatch = withdrawableDtbDocr.getTempPickData() != null &&
@@ -552,25 +571,11 @@ public class PickingResiViewModel {
mCurrentMtbColt.setCodTcol(newCodTcol); mCurrentMtbColt.setCodTcol(newCodTcol);
} }
// insertUDCRowRequestDTO if (mTipologiaReso == Tipologia.ACQUISTO) {
// .setCodJcom(UtilityString.empty2null(mtbColrToDispatch.getCodJcom())) insertUDSRowRequestDTO
// .setSerColloRif(UtilityString.empty2null(mtbColrToDispatch.getSerCollo())) .setSourceMtbColr(mtbColrToDispatch);
// .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 (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; 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 insertedULRow
.setUntMis(withdrawableDtbDocr.getMtbAart().getUntMis()) .setUntMis(withdrawableDtbDocr.getMtbAart().getUntMis())
@@ -602,6 +615,7 @@ public class PickingResiViewModel {
this.mPickingList.postValue(this.mPickingList.getValue()); this.mPickingList.postValue(this.mPickingList.getValue());
this.resetMatchedRows();
this.sendOnRowSaved(); this.sendOnRowSaved();
this.sendOnLoadingEnded(); 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 { private void saveEditedRow(MtbColr mtbColrToUpdate, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, LocalDate dataScad, boolean shouldCloseLU) throws Exception {
EditUDCRowRequestDTO editUDCRowRequest = new EditUDCRowRequestDTO() MtbColr updatedMtbColr;
.setSourceMtbColr(mtbColrToUpdate)
.setNewNumCnf(numCnf)
.setNewQtaCnf(qtaCnf)
.setNewQtaTot(qtaTot)
.setNewPartitaMag(partitaMag)
.setNewDataScad(dataScad);
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 updatedMtbColr
.setUntMis(mtbColrToUpdate.getUntMis()) .setUntMis(mtbColrToUpdate.getUntMis())
@@ -647,10 +675,16 @@ public class PickingResiViewModel {
var canDelete = this.sendMtbColrDeleteRequest(); var canDelete = this.sendMtbColrDeleteRequest();
if (canDelete) { if (canDelete) {
DeleteUDCRowRequestDTO deleteUDCRowRequest = new DeleteUDCRowRequestDTO() if (mTipologiaReso == Tipologia.VENDITA) {
.setMtbColrToDelete(mtbColrToDelete); 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<WithdrawableDtbDocr> pickingObjectDTO = this.mPickingList.getValue().stream() Optional<WithdrawableDtbDocr> pickingObjectDTO = this.mPickingList.getValue().stream()
@@ -840,4 +874,26 @@ public class PickingResiViewModel {
void onFilterRemoved(); 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;
}
}
} }

View File

@@ -41,6 +41,7 @@ import it.integry.integrywmsnative.databinding.FragmentMainUltimeConsegneCliente
import it.integry.integrywmsnative.databinding.FragmentMainUltimeConsegneClienteListHeaderBinding; import it.integry.integrywmsnative.databinding.FragmentMainUltimeConsegneClienteListHeaderBinding;
import it.integry.integrywmsnative.databinding.FragmentMainUltimeConsegneClienteListSingleItemBinding; import it.integry.integrywmsnative.databinding.FragmentMainUltimeConsegneClienteListSingleItemBinding;
import it.integry.integrywmsnative.gest.picking_resi.PickingResiActivity; 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.gest.ultime_consegne_cliente.dialog.DialogUltimeConsegneFiltroAvanzatoView;
import it.integry.integrywmsnative.ui.ElevatedToolbar; import it.integry.integrywmsnative.ui.ElevatedToolbar;
import kotlin.Unit; import kotlin.Unit;
@@ -296,7 +297,10 @@ public class UltimeConsegneClienteFragment extends BaseFragment implements Ultim
private void dispatchConsegne() { private void dispatchConsegne() {
List<DocumentoResoDTO> selectedConsegne = getSelectedItems(); List<DocumentoResoDTO> 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() { public void removeBarcodeFilter() {

View File

@@ -44,6 +44,7 @@ import it.integry.integrywmsnative.databinding.FragmentUltimiArriviFornitoreBind
import it.integry.integrywmsnative.databinding.FragmentUltimiArriviFornitoreListHeaderBinding; import it.integry.integrywmsnative.databinding.FragmentUltimiArriviFornitoreListHeaderBinding;
import it.integry.integrywmsnative.databinding.FragmentUltimiArriviFornitoreListSingleItemBinding; import it.integry.integrywmsnative.databinding.FragmentUltimiArriviFornitoreListSingleItemBinding;
import it.integry.integrywmsnative.gest.picking_resi.PickingResiActivity; 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.gest.ultime_consegne_cliente.dialog.DialogUltimeConsegneFiltroAvanzatoView;
import it.integry.integrywmsnative.ui.ElevatedToolbar; import it.integry.integrywmsnative.ui.ElevatedToolbar;
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_mtbcolr_list.DialogChooseArtsFromMtbColrListView; 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() { private void dispatchArrivi() {
List<DocumentoResoDTO> selectedConsegne = getSelectedItems(); List<DocumentoResoDTO> 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);
} }

View File

@@ -65,7 +65,7 @@ public class DialogScanOrCreateLUViewModel {
.setCodMdep(SettingsManager.i().getUserSession().getDepo().getCodMdep()); .setCodMdep(SettingsManager.i().getUserSession().getDepo().getCodMdep());
var createResponse = this.mColliLavorazioneRESTConsumer.synchronousCreateUDC(createUdcRequest); var createResponse = this.mColliLavorazioneRESTConsumer.synchronousCreateUDC(createUdcRequest);
this.sendOnLUOpened(createResponse.getMtbColt(), true); this.sendOnLUOpened(createResponse, true);
} }
public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) { public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {