Completata implementazione del magazzino automatico in Picking di Uscita
This commit is contained in:
parent
ee5d30ff80
commit
7b913e607e
@ -92,6 +92,8 @@ import it.integry.integrywmsnative.view.bottom_sheet__mtb_colr_edit.BottomSheetM
|
|||||||
import it.integry.integrywmsnative.view.bottom_sheet__mtb_colr_edit.BottomSheetMtbColrEditModalModule;
|
import it.integry.integrywmsnative.view.bottom_sheet__mtb_colr_edit.BottomSheetMtbColrEditModalModule;
|
||||||
import it.integry.integrywmsnative.view.dialogs.ask_cliente.DialogAskClienteComponent;
|
import it.integry.integrywmsnative.view.dialogs.ask_cliente.DialogAskClienteComponent;
|
||||||
import it.integry.integrywmsnative.view.dialogs.ask_cliente.DialogAskClienteModule;
|
import it.integry.integrywmsnative.view.dialogs.ask_cliente.DialogAskClienteModule;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromMtbAartListComponent;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromMtbAartListModule;
|
||||||
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_mtbcolr_list.DialogChooseArtsFromMtbColrListComponent;
|
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_mtbcolr_list.DialogChooseArtsFromMtbColrListComponent;
|
||||||
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_mtbcolr_list.DialogChooseArtsFromMtbColrListModule;
|
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_mtbcolr_list.DialogChooseArtsFromMtbColrListModule;
|
||||||
import it.integry.integrywmsnative.view.dialogs.choose_batch_lot.DialogChooseBatchLotComponent;
|
import it.integry.integrywmsnative.view.dialogs.choose_batch_lot.DialogChooseBatchLotComponent;
|
||||||
@ -166,6 +168,8 @@ import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCr
|
|||||||
BottomSheetInventarioActionsModule.class,
|
BottomSheetInventarioActionsModule.class,
|
||||||
BottomSheetInventarioRowActionsModule.class,
|
BottomSheetInventarioRowActionsModule.class,
|
||||||
BottomSheetMtbColrEditModalModule.class,
|
BottomSheetMtbColrEditModalModule.class,
|
||||||
|
DialogChooseArtsFromMtbAartListModule.class,
|
||||||
|
|
||||||
})
|
})
|
||||||
public interface MainApplicationComponent {
|
public interface MainApplicationComponent {
|
||||||
|
|
||||||
@ -279,6 +283,8 @@ public interface MainApplicationComponent {
|
|||||||
|
|
||||||
BottomSheetMtbColrEditModalComponent.Factory bottomSheetMtbColrEditModalComponent();
|
BottomSheetMtbColrEditModalComponent.Factory bottomSheetMtbColrEditModalComponent();
|
||||||
|
|
||||||
|
DialogChooseArtsFromMtbAartListComponent.Factory dialogDialogDialogChooseArtsFromMtbAartListViewComponent();
|
||||||
|
|
||||||
void inject(MainApplication mainApplication);
|
void inject(MainApplication mainApplication);
|
||||||
|
|
||||||
void inject(AppContext mainApplication);
|
void inject(AppContext mainApplication);
|
||||||
|
|||||||
@ -18,7 +18,6 @@ public class BindableBoolean implements Observable {
|
|||||||
this.mValue = startValue;
|
this.mValue = startValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addOnPropertyChangedCallback(@NonNull OnPropertyChangedCallback callback) {
|
public void addOnPropertyChangedCallback(@NonNull OnPropertyChangedCallback callback) {
|
||||||
synchronized (this) {
|
synchronized (this) {
|
||||||
|
|||||||
@ -46,9 +46,7 @@ public class OrdiniRESTConsumer extends _BaseRESTConsumer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void getSuggestedPickingList(String codMdep, List<SitArtOrdDTO> sitArtOrdList, RunnableArgs<List<PickingObjectDTO>> onComplete, RunnableArgs<Exception> onFailed) {
|
public void getSuggestedPickingList(String codMdep, List<SitArtOrdDTO> sitArtOrdList, RunnableArgs<List<PickingObjectDTO>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
|
||||||
OrdiniRESTConsumerService service = RESTBuilder.getService(OrdiniRESTConsumerService.class, 90);
|
OrdiniRESTConsumerService service = RESTBuilder.getService(OrdiniRESTConsumerService.class, 90);
|
||||||
|
|
||||||
service
|
service
|
||||||
.getSuggestedPickingList(codMdep, sitArtOrdList)
|
.getSuggestedPickingList(codMdep, sitArtOrdList)
|
||||||
.enqueue(new Callback<>() {
|
.enqueue(new Callback<>() {
|
||||||
@ -109,7 +107,6 @@ public class OrdiniRESTConsumer extends _BaseRESTConsumer {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(Call<ServiceRESTResponse<List<PickingObjectDTO>>> call, Throwable t) {
|
public void onFailure(Call<ServiceRESTResponse<List<PickingObjectDTO>>> call, Throwable t) {
|
||||||
UtilityLogger.error(new Exception(t));
|
|
||||||
onFailed.run(new Exception(t));
|
onFailed.run(new Exception(t));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@ -11,6 +11,10 @@ public class MagazzinoAutomaticoPickItemRequestDTO {
|
|||||||
private BigDecimal qtaCnf;
|
private BigDecimal qtaCnf;
|
||||||
private BigDecimal numCnf;
|
private BigDecimal numCnf;
|
||||||
|
|
||||||
|
public MagazzinoAutomaticoPickItemRequestDTO(String codMart) {
|
||||||
|
this.codMart = codMart;
|
||||||
|
}
|
||||||
|
|
||||||
public String getCodMart() {
|
public String getCodMart() {
|
||||||
return codMart;
|
return codMart;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import java.time.LocalDate;
|
|||||||
|
|
||||||
public class MagazzinoAutomaticoPickOrderRequestDTO {
|
public class MagazzinoAutomaticoPickOrderRequestDTO {
|
||||||
|
|
||||||
|
private final String type = "dtb_ordr";
|
||||||
private LocalDate dataCons;
|
private LocalDate dataCons;
|
||||||
private LocalDate dataOrd;
|
private LocalDate dataOrd;
|
||||||
private String gestione;
|
private String gestione;
|
||||||
@ -35,4 +36,8 @@ public class MagazzinoAutomaticoPickOrderRequestDTO {
|
|||||||
this.dataCons = dataCons;
|
this.dataCons = dataCons;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -73,6 +73,7 @@ import it.integry.integrywmsnative.view.dialogs.ask_should_print.DialogAskShould
|
|||||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleInputHelper;
|
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleInputHelper;
|
||||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts.DialogChooseArtFromListaArtsView;
|
import it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts.DialogChooseArtFromListaArtsView;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromMtbAartListView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.choose_batch_lot.DialogChooseBatchLotView;
|
import it.integry.integrywmsnative.view.dialogs.choose_batch_lot.DialogChooseBatchLotView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAggiuntiveLU;
|
import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAggiuntiveLU;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_peso_lu.DialogInputPesoLUView;
|
import it.integry.integrywmsnative.view.dialogs.input_peso_lu.DialogInputPesoLUView;
|
||||||
@ -409,7 +410,8 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
y.getRefMtbColr().getGestioneEnum().equals(mtbColrToDispatch.getGestioneEnum()) &&
|
y.getRefMtbColr().getGestioneEnum().equals(mtbColrToDispatch.getGestioneEnum()) &&
|
||||||
UtilityString.equalsIgnoreCase(y.getRefMtbColr().getCodMart(), mtbColrToDispatch.getCodMart()) &&
|
UtilityString.equalsIgnoreCase(y.getRefMtbColr().getCodMart(), mtbColrToDispatch.getCodMart()) &&
|
||||||
UtilityString.equalsIgnoreCase(y.getRefMtbColr().getCodTagl(), mtbColrToDispatch.getCodTagl()) &&
|
UtilityString.equalsIgnoreCase(y.getRefMtbColr().getCodTagl(), mtbColrToDispatch.getCodTagl()) &&
|
||||||
UtilityString.equalsIgnoreCase(y.getRefMtbColr().getCodCol(), mtbColrToDispatch.getCodCol())*/ y.getRefMtbColr().equals(mtbColrToDispatch))
|
UtilityString.equalsIgnoreCase(y.getRefMtbColr().getCodCol(), mtbColrToDispatch.getCodCol())*/
|
||||||
|
y.getRefMtbColr().equals(mtbColrToDispatch))
|
||||||
.map(MtbColr::getNumCnf)
|
.map(MtbColr::getNumCnf)
|
||||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
|
||||||
@ -925,7 +927,16 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
@Override
|
@Override
|
||||||
public void onCreateDocsRequest() {
|
public void onCreateDocsRequest() {
|
||||||
DialogYesNoView.newInstance("Chiusura ordine", "Vuoi creare i documenti per gli ordini selezionati?", result -> {
|
DialogYesNoView.newInstance("Chiusura ordine", "Vuoi creare i documenti per gli ordini selezionati?", result -> {
|
||||||
this.mViewmodel.onCreateDocsAnswered(result);
|
|
||||||
|
switch (result) {
|
||||||
|
case YES:
|
||||||
|
this.mViewmodel.createDocs();
|
||||||
|
break;
|
||||||
|
case NO:
|
||||||
|
this.onOrderClosed();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
}).show(this.getSupportFragmentManager(), "tag");
|
}).show(this.getSupportFragmentManager(), "tag");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -935,6 +946,12 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
.show(getSupportFragmentManager(), "tag");
|
.show(getSupportFragmentManager(), "tag");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onChooseArtsRequest(List<MtbAart> artsList, RunnableArgs<List<MtbAart>> onComplete) {
|
||||||
|
DialogChooseArtsFromMtbAartListView.newInstance(artsList, onComplete, this::onLoadingEnded)
|
||||||
|
.show(getSupportFragmentManager(), "tag");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onOrderClosed() {
|
public void onOrderClosed() {
|
||||||
this.onLoadingEnded();
|
this.onLoadingEnded();
|
||||||
|
|||||||
@ -7,13 +7,10 @@ import com.annimon.stream.Optional;
|
|||||||
import com.annimon.stream.Stream;
|
import com.annimon.stream.Stream;
|
||||||
|
|
||||||
import org.apache.commons.lang3.NotImplementedException;
|
import org.apache.commons.lang3.NotImplementedException;
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@ -50,7 +47,6 @@ import it.integry.integrywmsnative.core.model.MtbTCol;
|
|||||||
import it.integry.integrywmsnative.core.model.dto.PickDataDTO;
|
import it.integry.integrywmsnative.core.model.dto.PickDataDTO;
|
||||||
import it.integry.integrywmsnative.core.model.dto.StatoArticoloDTO;
|
import it.integry.integrywmsnative.core.model.dto.StatoArticoloDTO;
|
||||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||||
import it.integry.integrywmsnative.core.report.ReportType;
|
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
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.ColliLavorazioneRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ColliLavorazioneRESTConsumer;
|
||||||
@ -67,6 +63,7 @@ import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel;
|
|||||||
import it.integry.integrywmsnative.core.rest.model.LoadColliDTO;
|
import it.integry.integrywmsnative.core.rest.model.LoadColliDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
|
import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO;
|
import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.magazzino_automatico.MagazzinoAutomaticoPickItemRequestDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.magazzino_automatico.MagazzinoAutomaticoPickItemsRequestDTO;
|
import it.integry.integrywmsnative.core.rest.model.magazzino_automatico.MagazzinoAutomaticoPickItemsRequestDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.magazzino_automatico.MagazzinoAutomaticoPickOrderRequestDTO;
|
import it.integry.integrywmsnative.core.rest.model.magazzino_automatico.MagazzinoAutomaticoPickOrderRequestDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.uds.CanUDSBeDeletedRequestDTO;
|
import it.integry.integrywmsnative.core.rest.model.uds.CanUDSBeDeletedRequestDTO;
|
||||||
@ -91,7 +88,6 @@ import it.integry.integrywmsnative.gest.spedizione.exceptions.OrdersLoadExceptio
|
|||||||
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
|
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.model.PrintOrderCloseDTO;
|
import it.integry.integrywmsnative.gest.spedizione.model.PrintOrderCloseDTO;
|
||||||
import it.integry.integrywmsnative.view.dialogs.DialogConsts;
|
|
||||||
|
|
||||||
public class SpedizioneViewModel {
|
public class SpedizioneViewModel {
|
||||||
|
|
||||||
@ -275,6 +271,14 @@ public class SpedizioneViewModel {
|
|||||||
if (this.mListener != null) mListener.onCreateDocsRequest();
|
if (this.mListener != null) mListener.onCreateDocsRequest();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void sendChooseArtRequest(List<MtbAart> mtbAarts, RunnableArgs<MtbAart> onComplete) {
|
||||||
|
if (this.mListener != null) mListener.onChooseArtRequest(mtbAarts, onComplete);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendChooseArtsRequest(List<MtbAart> mtbAarts, RunnableArgs<List<MtbAart>> onComplete) {
|
||||||
|
if (this.mListener != null) mListener.onChooseArtsRequest(mtbAarts, onComplete);
|
||||||
|
}
|
||||||
|
|
||||||
private void sendOnOrderClosed() {
|
private void sendOnOrderClosed() {
|
||||||
if (this.mListener != null) mListener.onOrderClosed();
|
if (this.mListener != null) mListener.onOrderClosed();
|
||||||
}
|
}
|
||||||
@ -489,21 +493,7 @@ public class SpedizioneViewModel {
|
|||||||
|
|
||||||
if (foundPosizione.isMagazzinoAutomatico()) {
|
if (foundPosizione.isMagazzinoAutomatico()) {
|
||||||
//Eseguo picking da magazzino automatico
|
//Eseguo picking da magazzino automatico
|
||||||
|
executeMagazzinoAutomatico(foundPosizione, onComplete);
|
||||||
|
|
||||||
final List<MagazzinoAutomaticoPickOrderRequestDTO> orders = this.mTestateOrdini.stream()
|
|
||||||
.map(x -> new MagazzinoAutomaticoPickOrderRequestDTO(UtilityDate.toLocalDate(x.getDataOrdD()), x.getGestione(), x.getNumOrd())
|
|
||||||
.setDataCons(UtilityDate.toLocalDate(x.getDataConsD())))
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
|
|
||||||
var magazzinoAutomaticoPickRequest = new MagazzinoAutomaticoPickItemsRequestDTO()
|
|
||||||
.setShouldCreateUDS(true)
|
|
||||||
.setDefaultGestioneOfNewUDS(mDefaultGestioneOfUL.getText())
|
|
||||||
.setOrdersOfNewUDS(orders);
|
|
||||||
|
|
||||||
mMagazzinoAutomaticoRESTConsumer.pickItems(magazzinoAutomaticoPickRequest, () -> {
|
|
||||||
|
|
||||||
}, this::sendError);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -589,7 +579,7 @@ public class SpedizioneViewModel {
|
|||||||
if (mtbAartList.size() == 1) {
|
if (mtbAartList.size() == 1) {
|
||||||
this.searchArtFromAnag(mtbAartList.get(0), pickData, onComplete);
|
this.searchArtFromAnag(mtbAartList.get(0), pickData, onComplete);
|
||||||
} else {
|
} else {
|
||||||
mListener.onChooseArtRequest(mtbAartList, art -> this.searchArtFromAnag(art, pickData, onComplete));
|
this.sendChooseArtRequest(mtbAartList, art -> this.searchArtFromAnag(art, pickData, onComplete));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this.sendError(new NoResultFromBarcodeException(barcodeProd));
|
this.sendError(new NoResultFromBarcodeException(barcodeProd));
|
||||||
@ -598,6 +588,54 @@ public class SpedizioneViewModel {
|
|||||||
}, this::sendError);
|
}, this::sendError);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void executeMagazzinoAutomatico(MtbDepoPosizione mtbDepoPosizione, Runnable onComplete) {
|
||||||
|
var magazzinoAutomaticoPickableArts = Stream.of(Objects.requireNonNull(this.mPickingList.getValue()))
|
||||||
|
.filter(x -> Stream.of(x.getMtbColts()).anyMatch(y -> y.getPosizione().equalsIgnoreCase(mtbDepoPosizione.getPosizione())))
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
var mtbAarts = Stream.of(magazzinoAutomaticoPickableArts)
|
||||||
|
.map(PickingObjectDTO::getMtbAart)
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
this.sendChooseArtsRequest(mtbAarts, selectedArts -> {
|
||||||
|
|
||||||
|
final List<MagazzinoAutomaticoPickOrderRequestDTO> orders = Stream.of(this.mTestateOrdini)
|
||||||
|
.map(x -> new MagazzinoAutomaticoPickOrderRequestDTO(UtilityDate.toLocalDate(x.getDataOrdD()), x.getGestione(), x.getNumOrd())
|
||||||
|
.setDataCons(UtilityDate.toLocalDate(x.getDataConsD())))
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
final List<MagazzinoAutomaticoPickItemRequestDTO> magazzinoAutomaticoPickItemRequestDTOList = new ArrayList<>();
|
||||||
|
for (MtbAart selectedArt : selectedArts) {
|
||||||
|
final PickingObjectDTO pickingObjectDTO = Stream.of(magazzinoAutomaticoPickableArts)
|
||||||
|
.filter(x -> x.getMtbAart().getCodMart().equalsIgnoreCase(selectedArt.getCodMart()))
|
||||||
|
.findFirst()
|
||||||
|
.orElse(null);
|
||||||
|
|
||||||
|
final List<MtbColr> mtbColrs = Stream.of(pickingObjectDTO.getMtbColts())
|
||||||
|
.filter(x -> x.getPosizione().equalsIgnoreCase(mtbDepoPosizione.getPosizione()))
|
||||||
|
.flatMap(x -> Stream.of(x.getMtbColr()))
|
||||||
|
.filter(x -> x.getCodMart().equalsIgnoreCase(selectedArt.getCodMart()))
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
MagazzinoAutomaticoPickItemRequestDTO itemDto = new MagazzinoAutomaticoPickItemRequestDTO(selectedArt.getCodMart())
|
||||||
|
.setQtaTot(Stream.of(mtbColrs).map(MtbColr::getQtaCol).reduce(BigDecimal.ZERO, BigDecimal::add))
|
||||||
|
.setNumCnf(Stream.of(mtbColrs).map(MtbColr::getNumCnf).reduce(BigDecimal.ZERO, BigDecimal::add))
|
||||||
|
.setUntMis(selectedArt.getUntMis());
|
||||||
|
|
||||||
|
magazzinoAutomaticoPickItemRequestDTOList.add(itemDto);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var magazzinoAutomaticoPickRequest = new MagazzinoAutomaticoPickItemsRequestDTO()
|
||||||
|
.setShouldCreateUDS(true)
|
||||||
|
.setDefaultGestioneOfNewUDS(mDefaultGestioneOfUL.getText())
|
||||||
|
.setOrdersOfNewUDS(orders)
|
||||||
|
.setItemsToPick(magazzinoAutomaticoPickItemRequestDTOList);
|
||||||
|
|
||||||
|
mMagazzinoAutomaticoRESTConsumer.pickItems(magazzinoAutomaticoPickRequest, onComplete, this::sendError);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
private void searchArtFromUL(MtbColt scannedUL, Runnable onComplete) {
|
private void searchArtFromUL(MtbColt scannedUL, Runnable onComplete) {
|
||||||
|
|
||||||
final List<PickingObjectDTO> pickingList = mPickingList.getValue();
|
final List<PickingObjectDTO> pickingList = mPickingList.getValue();
|
||||||
@ -1749,45 +1787,6 @@ public class SpedizioneViewModel {
|
|||||||
this.mPrinterRESTConsumer.printClosedOrders(dto, SettingsManager.i().getUserSession().getDepo().getCodMdep(), onSuccess, onAbort);
|
this.mPrinterRESTConsumer.printClosedOrders(dto, SettingsManager.i().getUserSession().getDepo().getCodMdep(), onSuccess, onAbort);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void cyclicPrintPackingList(@NotNull Iterator<OrdineUscitaInevasoDTO> sourceTestateOrdineVenditaIterator, Runnable onComplete, RunnableArgs<Exception> onAbort) {
|
|
||||||
if (sourceTestateOrdineVenditaIterator.hasNext()) {
|
|
||||||
singlePrintPackingList(sourceTestateOrdineVenditaIterator.next(), () -> {
|
|
||||||
cyclicPrintPackingList(sourceTestateOrdineVenditaIterator, onComplete, onAbort);
|
|
||||||
}, onAbort);
|
|
||||||
} else {
|
|
||||||
onComplete.run();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void cyclicPrintListEtichette(@NotNull Iterator<OrdineUscitaInevasoDTO> sourceTestateOrdineVenditaIterator, Runnable onComplete, RunnableArgs<Exception> onAbort) {
|
|
||||||
if (sourceTestateOrdineVenditaIterator.hasNext()) {
|
|
||||||
singlePrintListEtichette(sourceTestateOrdineVenditaIterator.next(), () -> {
|
|
||||||
cyclicPrintListEtichette(sourceTestateOrdineVenditaIterator, onComplete, onAbort);
|
|
||||||
}, onAbort);
|
|
||||||
} else {
|
|
||||||
onComplete.run();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void singlePrintPackingList(OrdineUscitaInevasoDTO ordineUscitaInevasoDTO, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
|
||||||
HashMap<String, Object> params = new HashMap<>();
|
|
||||||
params.put("gestione", ordineUscitaInevasoDTO.getGestione());
|
|
||||||
params.put("num_ord", ordineUscitaInevasoDTO.getNumOrd());
|
|
||||||
params.put("data_ord", UtilityDate.formatDate(ordineUscitaInevasoDTO.getDataOrdD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_DASH));
|
|
||||||
|
|
||||||
this.mPrinterRESTConsumer.printReportType(ReportType.WMS_SPEDIZIONE_PACKING_LIST_ORD, SettingsManager.i().getUserSession().getDepo().getCodMdep(), ordineUscitaInevasoDTO.getCodAnagOrd(), params, onComplete, onFailed);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private void singlePrintListEtichette(OrdineUscitaInevasoDTO ordineUscitaInevasoDTO, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
|
||||||
HashMap<String, Object> params = new HashMap<>();
|
|
||||||
params.put("gestione", ordineUscitaInevasoDTO.getGestione());
|
|
||||||
params.put("num_ord", ordineUscitaInevasoDTO.getNumOrd());
|
|
||||||
params.put("data_ord", UtilityDate.formatDate(ordineUscitaInevasoDTO.getDataOrdD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_DASH));
|
|
||||||
|
|
||||||
this.mPrinterRESTConsumer.printReportType(ReportType.WMS_SPEDIZIONE_ETICHETTE_SSCC_ORD, SettingsManager.i().getUserSession().getDepo().getCodMdep(), ordineUscitaInevasoDTO.getCodAnagOrd(), params, onComplete, onFailed);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public MutableLiveData<List<PickingObjectDTO>> getPickingList() {
|
public MutableLiveData<List<PickingObjectDTO>> getPickingList() {
|
||||||
return mPickingList;
|
return mPickingList;
|
||||||
@ -1797,23 +1796,7 @@ public class SpedizioneViewModel {
|
|||||||
return (ArrayList<MtbColt>) this.mColliRegistrati;
|
return (ArrayList<MtbColt>) this.mColliRegistrati;
|
||||||
}
|
}
|
||||||
|
|
||||||
public SpedizioneViewModel setListeners(Listener listener) {
|
void createDocs() {
|
||||||
this.mListener = listener;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onCreateDocsAnswered(DialogConsts.Results result) {
|
|
||||||
switch (result) {
|
|
||||||
case YES:
|
|
||||||
this.createDocs();
|
|
||||||
break;
|
|
||||||
case NO:
|
|
||||||
this.sendOnOrderClosed();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void createDocs() {
|
|
||||||
|
|
||||||
var loadCollidto = new LoadColliDTO();
|
var loadCollidto = new LoadColliDTO();
|
||||||
var codAnag = Stream.of(mTestateOrdini).map(OrdineUscitaInevasoDTO::getCodAnagOrd).withoutNulls().distinctBy(x -> x).findFirst().get();
|
var codAnag = Stream.of(mTestateOrdini).map(OrdineUscitaInevasoDTO::getCodAnagOrd).withoutNulls().distinctBy(x -> x).findFirst().get();
|
||||||
@ -1830,6 +1813,11 @@ public class SpedizioneViewModel {
|
|||||||
this.mDocumentiRESTConsumer.createDocFromColli(loadCollidto, doc -> this.sendOnOrderClosed(), this::sendError);
|
this.mDocumentiRESTConsumer.createDocFromColli(loadCollidto, doc -> this.sendOnOrderClosed(), this::sendError);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public SpedizioneViewModel setListeners(Listener listener) {
|
||||||
|
this.mListener = listener;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public interface Listener extends ILUPrintListener, ILoadingListener, ILUBaseOperationsListener {
|
public interface Listener extends ILUPrintListener, ILoadingListener, ILUBaseOperationsListener {
|
||||||
|
|
||||||
void onLUPesoRequired(String codTcol, BigDecimal netWeightKG, BigDecimal grossWeightKG, RunnableArgsss<String, BigDecimal, BigDecimal> onComplete);
|
void onLUPesoRequired(String codTcol, BigDecimal netWeightKG, BigDecimal grossWeightKG, RunnableArgsss<String, BigDecimal, BigDecimal> onComplete);
|
||||||
@ -1854,6 +1842,8 @@ public class SpedizioneViewModel {
|
|||||||
|
|
||||||
void onChooseArtRequest(List<MtbAart> artsList, RunnableArgs<MtbAart> onComplete);
|
void onChooseArtRequest(List<MtbAart> artsList, RunnableArgs<MtbAart> onComplete);
|
||||||
|
|
||||||
|
void onChooseArtsRequest(List<MtbAart> artsList, RunnableArgs<List<MtbAart>> onComplete);
|
||||||
|
|
||||||
void onOrderClosed();
|
void onOrderClosed();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,14 @@
|
|||||||
|
package it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts;
|
||||||
|
|
||||||
|
import dagger.Subcomponent;
|
||||||
|
|
||||||
|
@Subcomponent
|
||||||
|
public interface DialogChooseArtsFromMtbAartListComponent {
|
||||||
|
|
||||||
|
@Subcomponent.Factory
|
||||||
|
interface Factory {
|
||||||
|
DialogChooseArtsFromMtbAartListComponent create();
|
||||||
|
}
|
||||||
|
|
||||||
|
void inject(DialogChooseArtsFromMtbAartListView dialogChooseArtsFromMtbAartListView);
|
||||||
|
}
|
||||||
@ -0,0 +1,103 @@
|
|||||||
|
package it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||||
|
|
||||||
|
public class DialogChooseArtsFromMtbAartListItemModel {
|
||||||
|
|
||||||
|
private BindableBoolean selected = new BindableBoolean(false);
|
||||||
|
private String codMart;
|
||||||
|
private String diacod;
|
||||||
|
private String descrizione;
|
||||||
|
private BigDecimal peso;
|
||||||
|
private String pesoUntMis;
|
||||||
|
private BigDecimal qta;
|
||||||
|
private String qtaUntMis;
|
||||||
|
|
||||||
|
private MtbAart originalModel;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public BindableBoolean getSelected() {
|
||||||
|
return selected;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DialogChooseArtsFromMtbAartListItemModel setSelected(BindableBoolean selected) {
|
||||||
|
this.selected = selected;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodMart() {
|
||||||
|
return codMart;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DialogChooseArtsFromMtbAartListItemModel setCodMart(String codMart) {
|
||||||
|
this.codMart = codMart;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDiacod() {
|
||||||
|
return diacod;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DialogChooseArtsFromMtbAartListItemModel setDiacod(String diacod) {
|
||||||
|
this.diacod = diacod;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescrizione() {
|
||||||
|
return descrizione;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DialogChooseArtsFromMtbAartListItemModel setDescrizione(String descrizione) {
|
||||||
|
this.descrizione = descrizione;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getPeso() {
|
||||||
|
return peso;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DialogChooseArtsFromMtbAartListItemModel setPeso(BigDecimal peso) {
|
||||||
|
this.peso = peso;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPesoUntMis() {
|
||||||
|
return pesoUntMis;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DialogChooseArtsFromMtbAartListItemModel setPesoUntMis(String pesoUntMis) {
|
||||||
|
this.pesoUntMis = pesoUntMis;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getQta() {
|
||||||
|
return qta;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DialogChooseArtsFromMtbAartListItemModel setQta(BigDecimal qta) {
|
||||||
|
this.qta = qta;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getQtaUntMis() {
|
||||||
|
return qtaUntMis;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DialogChooseArtsFromMtbAartListItemModel setQtaUntMis(String qtaUntMis) {
|
||||||
|
this.qtaUntMis = qtaUntMis;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public MtbAart getOriginalModel() {
|
||||||
|
return originalModel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DialogChooseArtsFromMtbAartListItemModel setOriginalModel(MtbAart originalModel) {
|
||||||
|
this.originalModel = originalModel;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,14 @@
|
|||||||
|
package it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts;
|
||||||
|
|
||||||
|
import dagger.Module;
|
||||||
|
import dagger.Provides;
|
||||||
|
|
||||||
|
@Module(subcomponents = DialogChooseArtsFromMtbAartListComponent.class)
|
||||||
|
public class DialogChooseArtsFromMtbAartListModule {
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
DialogChooseArtsFromMtbAartListViewModel providesDialogDialogDialogChooseArtsFromMtbAartListViewViewModel() {
|
||||||
|
return new DialogChooseArtsFromMtbAartListViewModel();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,121 @@
|
|||||||
|
package it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts;
|
||||||
|
|
||||||
|
import android.app.Dialog;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.DialogInterface;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
|
import com.annimon.stream.Stream;
|
||||||
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
|
import com.ravikoradiya.liveadapter.LiveAdapter;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.BR;
|
||||||
|
import it.integry.integrywmsnative.MainApplication;
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||||
|
import it.integry.integrywmsnative.databinding.DialogChooseArtsFromMtbAartListLayoutBinding;
|
||||||
|
|
||||||
|
public class DialogChooseArtsFromMtbAartListView extends BaseDialogFragment implements DialogInterface.OnShowListener {
|
||||||
|
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
DialogChooseArtsFromMtbAartListViewModel mViewModel;
|
||||||
|
|
||||||
|
private DialogChooseArtsFromMtbAartListLayoutBinding mBindings;
|
||||||
|
|
||||||
|
private Context mContext;
|
||||||
|
|
||||||
|
private final List<MtbAart> mtbAarts;
|
||||||
|
private List<DialogChooseArtsFromMtbAartListItemModel> artsItemModels = null;
|
||||||
|
private final RunnableArgs<List<MtbAart>> onConfirmed;
|
||||||
|
private final Runnable onAbort;
|
||||||
|
|
||||||
|
//Pass here all external parameters
|
||||||
|
public static DialogChooseArtsFromMtbAartListView newInstance(List<MtbAart> mtbAarts, RunnableArgs<List<MtbAart>> onConfirmed, Runnable onAbort) {
|
||||||
|
return new DialogChooseArtsFromMtbAartListView(mtbAarts, onConfirmed, onAbort);
|
||||||
|
}
|
||||||
|
|
||||||
|
private DialogChooseArtsFromMtbAartListView(List<MtbAart> mtbAarts, RunnableArgs<List<MtbAart>> onConfirmed, Runnable onAbort) {
|
||||||
|
super();
|
||||||
|
|
||||||
|
this.mtbAarts = mtbAarts;
|
||||||
|
this.onConfirmed = onConfirmed;
|
||||||
|
this.onAbort = onAbort;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
|
||||||
|
this.mContext = requireContext();
|
||||||
|
|
||||||
|
mBindings = DialogChooseArtsFromMtbAartListLayoutBinding.inflate(LayoutInflater.from(this.mContext), null, false);
|
||||||
|
mBindings.setLifecycleOwner(this);
|
||||||
|
|
||||||
|
MainApplication.appComponent
|
||||||
|
.dialogDialogDialogChooseArtsFromMtbAartListViewComponent()
|
||||||
|
.create()
|
||||||
|
.inject(this);
|
||||||
|
|
||||||
|
|
||||||
|
var cancelable = false;
|
||||||
|
|
||||||
|
var alertDialog = new MaterialAlertDialogBuilder(this.mContext)
|
||||||
|
.setView(mBindings.getRoot())
|
||||||
|
.setCancelable(cancelable)
|
||||||
|
.setPositiveButton(R.string.ok, (dialog, which) -> {
|
||||||
|
var selectedArts = Stream.of(this.artsItemModels)
|
||||||
|
.filter(x -> x.getSelected().get())
|
||||||
|
.map(DialogChooseArtsFromMtbAartListItemModel::getOriginalModel)
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
if(selectedArts.isEmpty()) {
|
||||||
|
if (this.onAbort != null) this.onAbort.run();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.onConfirmed != null)
|
||||||
|
this.onConfirmed.run(selectedArts);
|
||||||
|
})
|
||||||
|
.setNegativeButton(R.string.abort, (dialog, which) -> {
|
||||||
|
if (this.onAbort != null) this.onAbort.run();
|
||||||
|
})
|
||||||
|
.create();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
alertDialog.setOnShowListener(this);
|
||||||
|
alertDialog.setCanceledOnTouchOutside(cancelable);
|
||||||
|
return alertDialog;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onShow(DialogInterface dialogInterface) {
|
||||||
|
this.initList();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initList() {
|
||||||
|
this.artsItemModels = Stream.of(this.mtbAarts)
|
||||||
|
.map(x -> new DialogChooseArtsFromMtbAartListItemModel()
|
||||||
|
.setCodMart(x.getCodMart())
|
||||||
|
.setDescrizione(x.getDescrizioneEstesa())
|
||||||
|
.setDiacod(x.getDiacod())
|
||||||
|
.setOriginalModel(x))
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
new LiveAdapter(this.artsItemModels, BR.item)
|
||||||
|
.map(DialogChooseArtsFromMtbAartListItemModel.class, R.layout.dialog_choose_arts_from_mtb_aart_list__item_model)
|
||||||
|
.into(this.mBindings.listaArts);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,5 @@
|
|||||||
|
package it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts;
|
||||||
|
|
||||||
|
public class DialogChooseArtsFromMtbAartListViewModel {
|
||||||
|
|
||||||
|
}
|
||||||
@ -38,7 +38,7 @@ import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
|||||||
import it.integry.integrywmsnative.core.utility.UtilityDialog;
|
import it.integry.integrywmsnative.core.utility.UtilityDialog;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
import it.integry.integrywmsnative.databinding.DialogChooseArtsFromListaArtsLayoutBinding;
|
import it.integry.integrywmsnative.databinding.DialogChooseArtsFromMtbColrListLayoutBinding;
|
||||||
import it.integry.integrywmsnative.view.dialogs.DialogCommon;
|
import it.integry.integrywmsnative.view.dialogs.DialogCommon;
|
||||||
|
|
||||||
public class DialogChooseArtsFromMtbColrList extends BaseDialogFragment {
|
public class DialogChooseArtsFromMtbColrList extends BaseDialogFragment {
|
||||||
@ -51,7 +51,7 @@ public class DialogChooseArtsFromMtbColrList extends BaseDialogFragment {
|
|||||||
|
|
||||||
private Context context;
|
private Context context;
|
||||||
|
|
||||||
private DialogChooseArtsFromListaArtsLayoutBinding mBindings;
|
private DialogChooseArtsFromMtbColrListLayoutBinding mBindings;
|
||||||
|
|
||||||
private DialogChooseArtsFromMtbColrListAdapter currentAdapter;
|
private DialogChooseArtsFromMtbColrListAdapter currentAdapter;
|
||||||
|
|
||||||
@ -102,7 +102,7 @@ public class DialogChooseArtsFromMtbColrList extends BaseDialogFragment {
|
|||||||
super.onCreateView(inflater, container, savedInstanceState);
|
super.onCreateView(inflater, container, savedInstanceState);
|
||||||
|
|
||||||
this.context = getActivity();
|
this.context = getActivity();
|
||||||
mBindings = DataBindingUtil.inflate(inflater, R.layout.dialog_choose_arts_from_lista_arts_layout, null, false);
|
mBindings = DataBindingUtil.inflate(inflater, R.layout.dialog_choose_arts_from_mtb_colr_list_layout, null, false);
|
||||||
mBindings.setLifecycleOwner(getViewLifecycleOwner());
|
mBindings.setLifecycleOwner(getViewLifecycleOwner());
|
||||||
|
|
||||||
MainApplication.appComponent
|
MainApplication.appComponent
|
||||||
|
|||||||
@ -20,7 +20,7 @@ import it.integry.integrywmsnative.core.settings.SettingsManager;
|
|||||||
import it.integry.integrywmsnative.core.utility.UtilityNumber;
|
import it.integry.integrywmsnative.core.utility.UtilityNumber;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityResources;
|
import it.integry.integrywmsnative.core.utility.UtilityResources;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
import it.integry.integrywmsnative.databinding.DialogChooseArtsFromListaArtsItemModelBinding;
|
import it.integry.integrywmsnative.databinding.DialogChooseArtsFromMtbColrListItemModelBinding;
|
||||||
|
|
||||||
public class DialogChooseArtsFromMtbColrListAdapter extends RecyclerView.Adapter<DialogChooseArtsFromMtbColrListAdapter.ViewHolder> {
|
public class DialogChooseArtsFromMtbColrListAdapter extends RecyclerView.Adapter<DialogChooseArtsFromMtbColrListAdapter.ViewHolder> {
|
||||||
|
|
||||||
@ -64,10 +64,10 @@ public class DialogChooseArtsFromMtbColrListAdapter extends RecyclerView.Adapter
|
|||||||
|
|
||||||
|
|
||||||
public class ViewHolder extends RecyclerView.ViewHolder {
|
public class ViewHolder extends RecyclerView.ViewHolder {
|
||||||
private DialogChooseArtsFromListaArtsItemModelBinding mViewDataBinding;
|
private DialogChooseArtsFromMtbColrListItemModelBinding mViewDataBinding;
|
||||||
|
|
||||||
|
|
||||||
public ViewHolder(DialogChooseArtsFromListaArtsItemModelBinding v) {
|
public ViewHolder(DialogChooseArtsFromMtbColrListItemModelBinding v) {
|
||||||
super(v.getRoot());
|
super(v.getRoot());
|
||||||
mViewDataBinding = v;
|
mViewDataBinding = v;
|
||||||
}
|
}
|
||||||
@ -100,7 +100,7 @@ public class DialogChooseArtsFromMtbColrListAdapter extends RecyclerView.Adapter
|
|||||||
@Override
|
@Override
|
||||||
public DialogChooseArtsFromMtbColrListAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
public DialogChooseArtsFromMtbColrListAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||||
// create a new view
|
// create a new view
|
||||||
DialogChooseArtsFromListaArtsItemModelBinding viewDataBinding = DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()), R.layout.dialog_choose_arts_from_lista_arts__item_model, parent, false);
|
DialogChooseArtsFromMtbColrListItemModelBinding viewDataBinding = DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()), R.layout.dialog_choose_arts_from_mtb_colr_list__item_model, parent, false);
|
||||||
|
|
||||||
return new ViewHolder(viewDataBinding);
|
return new ViewHolder(viewDataBinding);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,8 +9,5 @@
|
|||||||
android:top="4dp" />
|
android:top="4dp" />
|
||||||
|
|
||||||
<corners
|
<corners
|
||||||
android:topLeftRadius="16dp"
|
android:radius="12dp" />
|
||||||
android:bottomLeftRadius="16dp"
|
|
||||||
android:topRightRadius="8dp"
|
|
||||||
android:bottomRightRadius="8dp" />
|
|
||||||
</shape>
|
</shape>
|
||||||
@ -0,0 +1,153 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
|
||||||
|
<data>
|
||||||
|
<import type="it.integry.integrywmsnative.R" />
|
||||||
|
<import type="android.view.View" />
|
||||||
|
<import type="it.integry.integrywmsnative.core.utility.UtilityString" />
|
||||||
|
<import type="it.integry.integrywmsnative.core.utility.UtilityNumber" />
|
||||||
|
|
||||||
|
<variable
|
||||||
|
name="item"
|
||||||
|
type="it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromMtbAartListItemModel" />
|
||||||
|
</data>
|
||||||
|
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginHorizontal="8dp"
|
||||||
|
android:layout_marginVertical="4dp"
|
||||||
|
android:background="@drawable/bg_checked_layout"
|
||||||
|
android:onClick="@{() -> item.selected.toggle()}"
|
||||||
|
android:padding="8dp"
|
||||||
|
app:backgroundTintResID="@{item.selected.get() ? R.color.bg_checked_layout : android.R.color.transparent}">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatCheckBox
|
||||||
|
android:id="@+id/checkbox"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_centerVertical="true"
|
||||||
|
android:minWidth="0dp"
|
||||||
|
android:minHeight="0dp"
|
||||||
|
app:checked="@{item.selected}" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:id="@+id/linearLayout"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_toStartOf="@id/qta_box"
|
||||||
|
android:layout_toEndOf="@id/checkbox"
|
||||||
|
android:layout_marginStart="8dp"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@{item.codMart}"
|
||||||
|
android:textColor="@color/colorPrimary"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
tools:text="COD MART" />
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:background="@drawable/badge_round_corner"
|
||||||
|
android:backgroundTint="@color/orange_600"
|
||||||
|
android:paddingStart="6dp"
|
||||||
|
android:paddingEnd="6dp"
|
||||||
|
android:text="@{UtilityNumber.decimalToString(item.peso) + item.pesoUntMis}"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:visibility="@{item.peso != null ? View.VISIBLE : View.GONE}"
|
||||||
|
tools:text="PESO KG" />
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@{item.diacod}"
|
||||||
|
android:textColor="@color/red_600"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:visibility="@{UtilityString.isNullOrEmpty(item.diacod) ? View.GONE : View.VISIBLE}"
|
||||||
|
tools:text="DIACOD" />
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:maxLines="2"
|
||||||
|
android:text="@{item.descrizione}"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textSize="16sp"
|
||||||
|
tools:text="Descrizione lunga articolo" />
|
||||||
|
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:id="@+id/qta_box"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:layout_centerVertical="true"
|
||||||
|
android:layout_marginStart="12dp"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
android:background="@drawable/badge_round_corner"
|
||||||
|
android:backgroundTint="@color/colorPrimary"
|
||||||
|
android:visibility="@{item.qta != null ? View.VISIBLE : View.GONE}">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center"
|
||||||
|
android:paddingLeft="6dp"
|
||||||
|
android:paddingTop="2dp"
|
||||||
|
android:paddingRight="6dp"
|
||||||
|
android:paddingBottom="2dp"
|
||||||
|
android:textAllCaps="true"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:text="@{UtilityNumber.decimalToString(item.qta, 2)}"
|
||||||
|
tools:text="280.45" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center"
|
||||||
|
android:paddingLeft="6dp"
|
||||||
|
android:paddingTop="2dp"
|
||||||
|
android:paddingRight="6dp"
|
||||||
|
android:paddingBottom="2dp"
|
||||||
|
android:textAllCaps="true"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:text="@{item.qtaUntMis}"
|
||||||
|
tools:text="CONF" />
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
</layout>
|
||||||
@ -0,0 +1,48 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<layout xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
|
||||||
|
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:orientation="vertical" android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
app:cardCornerRadius="16dp"
|
||||||
|
app:cardElevation="0dp">
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:paddingVertical="16dp">
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/title_text"
|
||||||
|
style="@style/MaterialAlertDialog.Material3.Title.Text.CenterStacked"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
android:layout_marginBottom="16dp"
|
||||||
|
android:text="@string/dialog_choose_arts_from_lista_art" />
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/description_text"
|
||||||
|
style="@style/TextAppearance.Material3.BodyMedium"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
android:text="Description here" />
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/lista_arts"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
|
||||||
|
tools:listitem="@layout/dialog_choose_art_from_lista_art__item_model"/>
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
</androidx.cardview.widget.CardView>
|
||||||
|
</layout>
|
||||||
@ -57,7 +57,8 @@
|
|||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/lista_arts"
|
android:id="@+id/lista_arts"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content" />
|
android:layout_height="wrap_content"
|
||||||
|
tools:listitem="@layout/dialog_choose_art_from_lista_art__item_model"/>
|
||||||
|
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
@ -34,4 +34,4 @@ org.gradle.parallel=true
|
|||||||
org.gradle.caching=true
|
org.gradle.caching=true
|
||||||
# Increase memory allotted to JVM
|
# Increase memory allotted to JVM
|
||||||
org.gradle.jvmargs=-Xmx4096m
|
org.gradle.jvmargs=-Xmx4096m
|
||||||
#org.gradle.unsafe.configuration-cache=true
|
org.gradle.unsafe.configuration-cache=true
|
||||||
Loading…
x
Reference in New Issue
Block a user