This commit is contained in:
2020-10-15 09:48:27 +02:00
parent 664f92b26c
commit 16c0f54c46
22 changed files with 126 additions and 47 deletions

View File

@@ -40,6 +40,7 @@ public abstract class ExtendedRecyclerView<T, VH extends RecyclerView.ViewHolder
public ExtendedRecyclerView<T, VH> setEmptyView(View emptyView) {
this.mEmptyView = emptyView;
this.checkIfEmpty();
return this;
}

View File

@@ -312,6 +312,10 @@ public class MtbColt extends EntityBase {
return this;
}
public Date getDataOrdD() {
return UtilityDate.recognizeDateWithExceptionHandler(getDataOrd());
}
public String getDataOrd() {
return dataOrd;
}

View File

@@ -31,6 +31,7 @@ public class DBSettingsModel {
private boolean flagAskPesoColloSpedizione;
private boolean flagForceAllToColli;
private boolean flagSpedizioneEnableManualPick;
private boolean flagSpedizioneCanSelectMultipleOrders;
private String produzioneDefaultCodAnag;
public boolean isFlagSpedizioneEnableFakeGiacenza() {
@@ -213,6 +214,15 @@ public class DBSettingsModel {
return this;
}
public boolean isFlagSpedizioneCanSelectMultipleOrders() {
return flagSpedizioneCanSelectMultipleOrders;
}
public DBSettingsModel setFlagSpedizioneCanSelectMultipleOrders(boolean flagSpedizioneCanSelectMultipleOrders) {
this.flagSpedizioneCanSelectMultipleOrders = flagSpedizioneCanSelectMultipleOrders;
return this;
}
public String getProduzioneDefaultCodAnag() {
return produzioneDefaultCodAnag;
}

View File

@@ -246,6 +246,10 @@ public class SettingsManager {
.setGestName("PICKING")
.setSection("SPEDIZIONE")
.setKeySection("ENABLE_FAKE_GIACENZA"));
stbGestSetupList.add(new StbGestSetup()
.setGestName("PICKING")
.setSection("SPEDIZIONE")
.setKeySection("FLAG_CAN_SELECT_MULTIPLE_ORDERS"));
GestSetupRESTConsumer.getValues(stbGestSetupList, list -> {
@@ -266,6 +270,7 @@ public class SettingsManager {
dbSettingsModelIstance.setProduzioneDefaultCodAnag(getValueFromList(list, "PRODUZIONE", "DEFAULT_COD_ANAG", String.class));
dbSettingsModelIstance.setFlagSpedizioneEnableManualPick(getValueFromList(list, "SPEDIZIONE", "ENABLE_MANUAL_PICK", Boolean.class));
dbSettingsModelIstance.setFlagSpedizioneEnableFakeGiacenza(getValueFromList(list, "SPEDIZIONE", "ENABLE_FAKE_GIACENZA", Boolean.class));
dbSettingsModelIstance.setFlagSpedizioneCanSelectMultipleOrders(getValueFromList(list, "SPEDIZIONE", "FLAG_CAN_SELECT_MULTIPLE_ORDERS", Boolean.class));
if(onComplete != null) onComplete.run();
}, onFailed);

View File

@@ -50,7 +50,7 @@ public class UtilityBarcode {
}
public static boolean isEtichettaArt(BarcodeScanDTO barcodeScanDTO) {
return isEan8(barcodeScanDTO) || isEan13(barcodeScanDTO) || isUPCA(barcodeScanDTO);
return isEan8(barcodeScanDTO) || isEan13(barcodeScanDTO) || isUPCA(barcodeScanDTO) || isInterleaved2Of5(barcodeScanDTO);
}
@@ -71,6 +71,10 @@ public class UtilityBarcode {
return barcodeScanDTO != null && barcodeScanDTO.getType() == BarcodeType.UPCA;
}
public static boolean isInterleaved2Of5(BarcodeScanDTO barcodeScanDTO) {
return barcodeScanDTO != null && barcodeScanDTO.getType() == BarcodeType.INTERLEAVED_2OF5;
}
public static Integer getNumColloFromULAnonima(String barcode) {

View File

@@ -159,6 +159,7 @@ public class RettificaGiacenzeFragment extends Fragment implements ITitledFragme
mAdapter = new RettificaGiacenzeMainListAdapter(mViewModel.getCurrentMtbColt().getMtbColr());
mAdapter.setEmptyView(mBinding.rettificaGiacenzeEmptyView);
this.mAdapter.setOnItemClickListener(clickedMtbColr -> {
mBinding.bottomSheetMtbColrEdit.setMtbColr(clickedMtbColr);
mBinding.bottomSheetMtbColrEdit.expand();
@@ -204,7 +205,7 @@ public class RettificaGiacenzeFragment extends Fragment implements ITitledFragme
}
private RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
private final RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
BarcodeManager.disable();
this.openProgress();

View File

@@ -546,9 +546,9 @@ public class RettificaGiacenzeViewModel {
qtaTot,
savedMtbColr -> {
mtbColrToUpdate
.setQtaCol(savedMtbColr.getQtaCol())
.setQtaCnf(savedMtbColr.getQtaCnf())
.setNumCnf(savedMtbColr.getNumCnf())
.setQtaCol(qtaTot)
.setQtaCnf(qtaCnf)
.setNumCnf(numCnf)
.setOperation(CommonModelConsts.OPERATION.NO_OP);
this.mCurrentMtbColt.getMtbColr().remove(mtbColrToUpdate);

View File

@@ -460,7 +460,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
sortedList = Stream.of(spedizioneListModels)
.filter(SpedizioneListModel::isActive)
.sortBy(x -> x.getOriginalModel().getSitArtOrdDTO().getCodMgrp())
.sortBy(x -> x.getOriginalModel().getSitArtOrdDTO().getCodMgrp() + " - " + x.getOriginalModel().getSitArtOrdDTO().getCodMsgr())
.toList();

View File

@@ -607,7 +607,7 @@ public class SpedizioneViewModel {
UtilityString.equalsIgnoreCase(x.getCodTagl(), matchedObject.getSitArtOrdDTO().getCodTagl()) &&
UtilityString.equalsIgnoreCase(x.getCodCol(), matchedObject.getSitArtOrdDTO().getCodCol()) &&
(!mEnableCheckPartitaMag || UtilityString.equalsIgnoreCase(x.getPartitaMag(), matchedObject.getSitArtOrdDTO().getPartitaMag()))))
.forEach(x -> cloneMtbColrs.remove(x));
.forEach(cloneMtbColrs::remove);
cloneMtbColt.setMtbColr(cloneMtbColrs);
@@ -1402,6 +1402,12 @@ public class SpedizioneViewModel {
private void postCloseOperations(List<MtbColt> mtbColtList) {
this.mColliRegistrati.addAll(mtbColtList);
for(MtbColt mtbColt : mtbColtList) {
Stream.of(mTestateOrdini)
.filter(x -> x.getNumOrd().equals(mtbColt.getNumOrd()) && x.getDataOrdD().equals(mtbColt.getDataOrdD()) && x.getGestioneEnum() == mtbColt.getGestioneEnum())
.forEach(x -> x.setExistColloBoolean(true));
}
this.mColliDataRecoverService.closeSession(mMtbColtSessionID);
this.mCurrentMtbColt = null;

View File

@@ -279,6 +279,7 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IS
super.onResume();
if(mRenderedOrderList != null && mRenderedOrderList.size() > 0) {
mHelper.deselectAll(mRenderedOrderList);
refreshRecyclerView();
}
}

View File

@@ -19,6 +19,7 @@ import java.util.List;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.di.BindableBoolean;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.VenditaMainListGroupModelBinding;
@@ -95,23 +96,28 @@ public class MainListVenditaAdapter extends SectionedRecyclerViewAdapter<MainLis
public void onBindSubheaderViewHolder(SubheaderHolder subheaderHolder, int nextItemPosition) {
subheaderHolder.binding.venditaMainListGroupHeader.setText(mDataset.get(nextItemPosition).getRagSocOrd());
if (!UtilityString.isNullOrEmpty(mDataset.get(nextItemPosition).getDestinatario())) {
if (!UtilityString.isNullOrEmpty(mDataset.get(nextItemPosition).getDestinatario()) &&
!UtilityString.equalsIgnoreCase(mDataset.get(nextItemPosition).getRagSocOrd(), mDataset.get(nextItemPosition).getDestinatario())) {
subheaderHolder.binding.venditaMainListGroupSubheader.setVisibility(View.VISIBLE);
subheaderHolder.binding.venditaMainListGroupSubheader.setText(mDataset.get(nextItemPosition).getDestinatario());
} else {
subheaderHolder.binding.venditaMainListGroupSubheader.setVisibility(View.GONE);
}
subheaderHolder.binding.getRoot().setOnClickListener(v -> {
if(SettingsManager.iDB().isFlagSpedizioneCanSelectMultipleOrders()) {
boolean anySelected = Stream.of(mDataset)
.filter(x -> x.getCodAnagOrd().equals(mDataset.get(nextItemPosition).getCodAnagOrd()))
.anyMatch(OrdineVenditaInevasoDTO::isSelected);
boolean anySelected = Stream.of(mDataset)
.filter(x -> x.getCodAnagOrd().equals(mDataset.get(nextItemPosition).getCodAnagOrd()))
.anyMatch(OrdineVenditaInevasoDTO::isSelected);
Stream.of(mDataset)
.filter(x -> x.getCodAnagOrd().equals(mDataset.get(nextItemPosition).getCodAnagOrd()))
.forEach(x -> x.setSelected(!anySelected));
Stream.of(mDataset)
.filter(x -> x.getCodAnagOrd().equals(mDataset.get(nextItemPosition).getCodAnagOrd()))
.forEach(x -> x.setSelected(!anySelected));
}
});
}
@@ -141,7 +147,7 @@ public class MainListVenditaAdapter extends SectionedRecyclerViewAdapter<MainLis
String testataDataConsString = String.format(mContext.getString(R.string.ord_ven_testata_data_cons), UtilityDate.formatDate(ordine.getDataConsD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
holder.binding.venditaMainListGroupItemContainerTestataDataCons.setText(Html.fromHtml(testataDataConsString));
if(!UtilityString.isNullOrEmpty(ordine.getRifOrd()))
if (!UtilityString.isNullOrEmpty(ordine.getRifOrd()))
holder.binding.venditaMainListGroupItemContainerDetailOrd.setText(ordine.getRifOrd());
else holder.binding.venditaMainListGroupItemContainerDetailOrd.setText(ordine.getCodJcom());

View File

@@ -1,11 +1,7 @@
package it.integry.integrywmsnative.gest.vendita.dialogs;
import androidx.appcompat.app.AlertDialog;
import android.app.DatePickerDialog;
import android.content.Context;
import androidx.databinding.DataBindingUtil;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.view.LayoutInflater;
@@ -14,6 +10,9 @@ import android.view.WindowManager;
import android.widget.ArrayAdapter;
import android.widget.MultiAutoCompleteTextView;
import androidx.appcompat.app.AlertDialog;
import androidx.databinding.DataBindingUtil;
import com.annimon.stream.Stream;
import com.annimon.stream.function.Predicate;
@@ -477,7 +476,7 @@ public class DialogVenditaFiltroAvanzato {
.map(x -> x.getIdViaggio() != null ? x.getIdViaggio().toString() : null)
.withoutNulls()
.distinct()
.sortBy(x -> x)
.sorted()
.toList();
}
@@ -501,7 +500,7 @@ public class DialogVenditaFiltroAvanzato {
currentFilteredOrderList = tmpStream.toList();
}
return Stream.of(currentFilteredOrderList).map(OrdineVenditaInevasoDTO::getNomeAgente).distinct().withoutNulls().toList();
return Stream.of(currentFilteredOrderList).map(OrdineVenditaInevasoDTO::getNomeAgente).distinct().withoutNulls().sorted().toList();
}
private List<String> getAvailableCodMdeps(boolean skipRecalc) {
@@ -523,7 +522,7 @@ public class DialogVenditaFiltroAvanzato {
currentFilteredOrderList = tmpStream.toList();
}
return Stream.of(currentFilteredOrderList).map(OrdineVenditaInevasoDTO::getCodMdep).distinct().withoutNulls().toList();
return Stream.of(currentFilteredOrderList).map(OrdineVenditaInevasoDTO::getCodMdep).distinct().withoutNulls().sorted().toList();
}
private List<String> getAvailableCliente(boolean skipRecalc) {
@@ -545,7 +544,7 @@ public class DialogVenditaFiltroAvanzato {
currentFilteredOrderList = tmpStream.toList();
}
return Stream.of(currentFilteredOrderList).map(OrdineVenditaInevasoDTO::getRagSocOrd).distinct().withoutNulls().toList();
return Stream.of(currentFilteredOrderList).map(OrdineVenditaInevasoDTO::getRagSocOrd).distinct().withoutNulls().sorted().toList();
}
private List<String> getAvailableNumOrds(boolean skipRecalc) {
@@ -567,7 +566,7 @@ public class DialogVenditaFiltroAvanzato {
currentFilteredOrderList = tmpStream.toList();
}
return Stream.of(currentFilteredOrderList).map(x -> x.getNumOrd().toString()).distinct().withoutNulls().toList();
return Stream.of(currentFilteredOrderList).map(x -> x.getNumOrd().toString()).distinct().withoutNulls().sorted().toList();
}
private List<String> getAvailableTermCons(boolean skipRecalc) {
@@ -589,7 +588,7 @@ public class DialogVenditaFiltroAvanzato {
currentFilteredOrderList = tmpStream.toList();
}
return Stream.of(currentFilteredOrderList).map(OrdineVenditaInevasoDTO::getTermCons).distinct().withoutNulls().toList();
return Stream.of(currentFilteredOrderList).map(OrdineVenditaInevasoDTO::getTermCons).distinct().withoutNulls().sorted().toList();
}
private List<String> getAvailableVettori(boolean skipRecalc) {
@@ -611,7 +610,7 @@ public class DialogVenditaFiltroAvanzato {
currentFilteredOrderList = tmpStream.toList();
}
return Stream.of(currentFilteredOrderList).filter(x -> x.getCodVvet() != null).map(x -> x.getCodVvet() + " - " + x.getDescrizioneVettore()).distinct().withoutNulls().toList();
return Stream.of(currentFilteredOrderList).filter(x -> x.getCodVvet() != null).map(x -> x.getCodVvet() + " - " + x.getDescrizioneVettore()).distinct().withoutNulls().sorted().toList();
}
private List<String> getAvailableAutomezzi(boolean skipRecalc) {
@@ -633,7 +632,7 @@ public class DialogVenditaFiltroAvanzato {
currentFilteredOrderList = tmpStream.toList();
}
return Stream.of(currentFilteredOrderList).map(OrdineVenditaInevasoDTO::getDescrizioneAuto).distinct().withoutNulls().toList();
return Stream.of(currentFilteredOrderList).map(OrdineVenditaInevasoDTO::getDescrizioneAuto).distinct().withoutNulls().sorted().toList();
}
private void refreshList() {