diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityQuery.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityQuery.java index cad443f8..3f47ee99 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityQuery.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityQuery.java @@ -1,9 +1,38 @@ package it.integry.integrywmsnative.core.utility; import java.util.HashMap; +import java.util.List; public class UtilityQuery { + + public static String concatFieldListInWhereCond(List> inputData) { + StringBuilder sbWhereCond = new StringBuilder(); + + for(int i = 0; i < inputData.size(); i++) { + + HashMap singleInputData = inputData.get(i); + Object[] keys = singleInputData.keySet().toArray(); + + sbWhereCond.append("("); + + for(int k = 0; k < keys.length; k++) { + Object value = singleInputData.get(keys[k]); + + sbWhereCond.append(keys[k] + (value == null ? " IS NULL" : " = " + UtilityDB.valueToString(value))); + + if(k < keys.length - 1) sbWhereCond.append(" AND "); + } + + sbWhereCond.append(")"); + + if(i < inputData.size() - 1) sbWhereCond.append(" OR "); + } + + + return sbWhereCond.toString(); + } + public static String concatFieldsInWhereCond(HashMap inputData) { StringBuilder sbWhereCond = new StringBuilder(); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contenuto_bancale/core/ContenutoBancaleListAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/contenuto_bancale/core/ContenutoBancaleListAdapter.java index 47a44604..aac33a57 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/contenuto_bancale/core/ContenutoBancaleListAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contenuto_bancale/core/ContenutoBancaleListAdapter.java @@ -11,7 +11,9 @@ import android.view.ViewGroup; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.interfaces.IRecyclerItemClicked; import it.integry.integrywmsnative.core.model.MtbColr; +import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityNumber; +import it.integry.integrywmsnative.core.utility.UtilityResources; import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.databinding.ListaContenutoBancaleListModelBinding; @@ -36,14 +38,15 @@ public class ContenutoBancaleListAdapter extends RecyclerView.Adapter { .setRiga(null) .setDatetimeRow(UtilityDate.getDateInstance()) .setQtaCol(mtbColrToDeleteClone.getQtaCol().multiply(new BigDecimal(-1))) - .setOperation(CommonModelConsts.OPERATION.DELETE); + .setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE ); MtbColt mtbColtClone = (MtbColt) mtbColt.get().clone(); mtbColtClone.setMtbColr(new ObservableArrayList<>()); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/core/PickingResiListAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/core/PickingResiListAdapter.java index 585b0079..a177aaef 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/core/PickingResiListAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_resi/core/PickingResiListAdapter.java @@ -21,8 +21,10 @@ import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.model.DtbDocr; import it.integry.integrywmsnative.core.model.MtbColr; +import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityDate; import it.integry.integrywmsnative.core.utility.UtilityNumber; +import it.integry.integrywmsnative.core.utility.UtilityResources; import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.databinding.UltimeConsegneMainListItemBinding; import it.integry.integrywmsnative.databinding.UltimeConsegneMainListItemHeaderBinding; @@ -122,24 +124,37 @@ public class PickingResiListAdapter extends SectionedRecyclerViewAdapter 0 && qtaEvasa.floatValue() > 0) { + } else if (qtaDaEvadere > 0 && qtaColEvasa.floatValue() > 0) { holder.mBinding.getRoot().setBackgroundColor(mContext.getResources().getColor(R.color.orange_600_with_alpha)); } else { holder.mBinding.getRoot().setBackgroundColor(mContext.getResources().getColor(R.color.full_white)); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/core/adapter/RettificaGiacenzeMainListAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/core/adapter/RettificaGiacenzeMainListAdapter.java index 3a680ef1..9fec6a23 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/core/adapter/RettificaGiacenzeMainListAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/core/adapter/RettificaGiacenzeMainListAdapter.java @@ -12,7 +12,9 @@ import android.view.ViewGroup; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.interfaces.IRecyclerItemClicked; import it.integry.integrywmsnative.core.model.MtbColr; +import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityNumber; +import it.integry.integrywmsnative.core.utility.UtilityResources; import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.databinding.ListaRettificaGiacenzeModelBinding; @@ -64,14 +66,14 @@ public class RettificaGiacenzeMainListAdapter extends RecyclerView.Adapter { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java index d7014c2a..af4bf5b7 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java @@ -618,34 +618,47 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked DialogInputQuantity.makeBase(mContext, dto, true, value -> { - mtbColrToEditClone - .setRiga(null) - .setDatetimeRow(UtilityDate.getDateInstance()) - .setQtaCol(value.qtaTot.getBigDecimal().subtract(mtbColrToEditClone.getQtaCol())) - .setUtente(SettingsManager.i().user.fullname) - .setCausale(MtbColr.Causale.RETTIFICA) - .setOperation(CommonModelConsts.OPERATION.INSERT); + BigDecimal qtaCol = value.qtaTot.getBigDecimal().subtract(mtbColrToEditClone.getQtaCol()); - MtbColt mtbColtClone = (MtbColt) mtbColt.get().clone(); - mtbColtClone.setMtbColr(new ObservableArrayList<>()); - mtbColtClone.getMtbColr().add(mtbColrToEditClone); - mtbColtClone.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE); + if(qtaCol.compareTo(BigDecimal.ZERO) != 0) { - Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext); + BigDecimal numCnf = value.numCnf.getBigDecimal().subtract(mtbColrToEditClone.getNumCnf()); - ColliMagazzinoRESTConsumer.saveCollo(mtbColtClone, valueNewMtbColt -> { - progressDialog.dismiss(); - mtbColt.get().getMtbColr().remove(index); + if (numCnf.compareTo(BigDecimal.ZERO) == 0 && qtaCol.compareTo(BigDecimal.ZERO) > 0) + numCnf = BigDecimal.ONE; + else if (numCnf.compareTo(BigDecimal.ZERO) == 0 && qtaCol.compareTo(BigDecimal.ZERO) < 0) + numCnf = new BigDecimal(-1); mtbColrToEditClone - .setQtaCol(value.qtaTot.getBigDecimal()) - .setMtbAart(mtbColrToEdit.getMtbAart()) - .setOperation(CommonModelConsts.OPERATION.NO_OP); + .setRiga(null) + .setDatetimeRow(UtilityDate.getDateInstance()) + .setQtaCol(qtaCol) + .setNumCnf(numCnf) + .setUtente(SettingsManager.i().user.fullname) + .setCausale(MtbColr.Causale.RETTIFICA) + .setOperation(CommonModelConsts.OPERATION.INSERT); - mtbColt.get().getMtbColr().add(index, mtbColrToEditClone); - }, ex -> { - UtilityExceptions.defaultException(mContext, ex, progressDialog); - }); + MtbColt mtbColtClone = (MtbColt) mtbColt.get().clone(); + mtbColtClone.setMtbColr(new ObservableArrayList<>()); + mtbColtClone.getMtbColr().add(mtbColrToEditClone); + mtbColtClone.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE); + + Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext); + + ColliMagazzinoRESTConsumer.saveCollo(mtbColtClone, valueNewMtbColt -> { + progressDialog.dismiss(); + mtbColt.get().getMtbColr().remove(index); + + mtbColrToEditClone + .setQtaCol(value.qtaTot.getBigDecimal()) + .setMtbAart(mtbColrToEdit.getMtbAart()) + .setOperation(CommonModelConsts.OPERATION.NO_OP); + + mtbColt.get().getMtbColr().add(index, mtbColrToEditClone); + }, ex -> { + UtilityExceptions.defaultException(mContext, ex, progressDialog); + }); + } }, null).show(); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/rest/UltimeConsegneClienteRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/rest/UltimeConsegneClienteRESTConsumer.java index fa25ecb9..451de68f 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/rest/UltimeConsegneClienteRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/ultime_consegne_cliente/rest/UltimeConsegneClienteRESTConsumer.java @@ -5,6 +5,7 @@ import com.google.gson.reflect.TypeToken; import java.lang.reflect.Type; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer; @@ -15,6 +16,7 @@ import it.integry.integrywmsnative.core.model.DtbDocr; import it.integry.integrywmsnative.core.model.MtbAart; import it.integry.integrywmsnative.core.utility.UtilityDB; import it.integry.integrywmsnative.core.utility.UtilityDate; +import it.integry.integrywmsnative.core.utility.UtilityQuery; import it.integry.integrywmsnative.gest.picking_resi.dto.WithdrawableDtbDocr; import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO; @@ -57,17 +59,18 @@ public class UltimeConsegneClienteRESTConsumer { public static void loadDocRowFromConsegna(List consegne, RunnableArgs> onComplete, RunnableArgs onFailed) { - StringBuilder sbWhereCond = new StringBuilder(); + List> filterCond = new ArrayList<>(); for(int i = 0; i < consegne.size(); i++) { - sbWhereCond.append(String.format("(dtb_docr.data_doc = '%s' AND dtb_docr.num_doc = %d AND dtb_docr.ser_doc = '%s' AND dtb_docr.cod_anag = '%s' AND dtb_docr.cod_dtip = '%s')", - UtilityDate.formatDate(consegne.get(i).getDataDocD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH), - consegne.get(i).getNumDoc(), - consegne.get(i).getSerDoc(), - consegne.get(i).getCodAnag(), - consegne.get(i).getCodDtip())); + HashMap filter = new HashMap<>(); - if(i < consegne.size()-1) sbWhereCond.append(" OR "); + filter.put("dtb_docr.data_doc", consegne.get(i).getDataDocD()); + filter.put("dtb_docr.num_doc", consegne.get(i).getNumDoc()); + filter.put("dtb_docr.ser_doc", consegne.get(i).getSerDoc()); + filter.put("dtb_docr.cod_anag", consegne.get(i).getCodAnag()); + filter.put("dtb_docr.cod_dtip", consegne.get(i).getCodDtip()); + + filterCond.add(filter); } String sql = "SELECT dtb_docr.[cod_anag]" + @@ -142,12 +145,17 @@ public class UltimeConsegneClienteRESTConsumer { "LEFT OUTER JOIN ctb_cont ON mtb_aart.cod_ccon_ricavi = ctb_cont.cod_ccon " + "LEFT OUTER JOIN ctb_grup ON ctb_cont.cod_cgrp = ctb_grup.cod_cgrp " + "LEFT OUTER JOIN mtb_colr ON " + - " dtb_docr.cod_anag + '|' + dtb_docr.cod_dtip + '|' + dtb_docr.ser_doc + '|' + CONVERT(varchar(10), dtb_docr.data_doc , 111) + '|' + CONVERT(varchar(20), dtb_docr.num_doc) + '|' + CONVERT(varchar(20), dtb_docr.id_riga) = mtb_colr.note " + + " dtb_docr.cod_anag = mtb_colr.cod_anag_doc AND " + + " dtb_docr.cod_dtip = mtb_colr.cod_dtip_doc AND " + + " dtb_docr.ser_doc = mtb_colr.ser_doc AND " + + " dtb_docr.data_doc = mtb_colr.data_doc AND " + + " dtb_docr.num_doc = mtb_colr.num_doc AND " + + " dtb_docr.id_riga = mtb_colr.id_riga_doc " + "WHERE " + " (ctb_grup.sezione <> 1 OR ctb_grup.sezione IS NULL) AND " + " dtb_docr.[qta_doc] - ISNULL(mtb_colr.qta_col, 0) > 0 AND" + " ( " + - sbWhereCond.toString() + + UtilityQuery.concatFieldListInWhereCond(filterCond) + " ) " + "ORDER BY cod_mart"; diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/core/MainListOrdineVenditaInevasoAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/core/MainListOrdineVenditaInevasoAdapter.java index 63e35072..afbf16ae 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/core/MainListOrdineVenditaInevasoAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/core/MainListOrdineVenditaInevasoAdapter.java @@ -259,10 +259,4 @@ public class MainListOrdineVenditaInevasoAdapter extends RecyclerView.Adapter mtbColrs){ - BigDecimal currentQtaEvasa = BigDecimal.ZERO; - - if(mtbColrs != null) { - for (MtbColr mtbColr : item.getWithdrawRows()) { - currentQtaEvasa = currentQtaEvasa.add(item.getMtbAart().isFlagQtaCnfFissa() ? mtbColr.getQtaCol() : mtbColr.getNumCnf()); - } - } - - return currentQtaEvasa; - } } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/view/ArticoliInColloBottomSheetMtbColrAdapter.java b/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/view/ArticoliInColloBottomSheetMtbColrAdapter.java index a46969c1..3058f47e 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/view/ArticoliInColloBottomSheetMtbColrAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/bottomsheet/view/ArticoliInColloBottomSheetMtbColrAdapter.java @@ -15,7 +15,9 @@ import java.lang.ref.WeakReference; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.model.MtbColr; import it.integry.integrywmsnative.core.model.MtbColt; +import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityNumber; +import it.integry.integrywmsnative.core.utility.UtilityResources; import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.databinding.FragmentArticoliInColloBottomSheetMtbcolrItemBinding; @@ -47,14 +49,14 @@ public class ArticoliInColloBottomSheetMtbColrAdapter extends BaseAdapter { binding.setMtbColr(mtbColr); //Setting qty with unt_mis - if(mtbColr.getMtbAart() != null) { - if (mtbColr.getMtbAart().isFlagQtaCnfFissa()) { - binding.qtaTextview.setText(UtilityNumber.decimalToString(mtbColr.getQtaCol()) + (!UtilityString.isNullOrEmpty(mtbColr.getMtbAart().getUntMis()) ? "\n" + mtbColr.getMtbAart().getUntMis() : "")); - } else { - binding.qtaTextview.setText(UtilityNumber.decimalToString(mtbColr.getNumCnf()) + "\n" + mContext.getString(R.string.unt_mis_col)); + if(!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().isFlagQtaCnfFissa())){ + binding.qtaTextview.setText(UtilityNumber.decimalToString(mtbColr.getQtaCol())); + + if(mtbColr.getMtbAart() != null) { + binding.qtaTextview.append(!UtilityString.isNullOrEmpty(mtbColr.getMtbAart().getUntMis()) ? "\n" + mtbColr.getMtbAart().getUntMis() : ""); } } else { - binding.qtaTextview.setText(UtilityNumber.decimalToString(mtbColr.getQtaCol())); + binding.qtaTextview.setText(UtilityNumber.decimalToString(mtbColr.getNumCnf()) + "\n" + UtilityResources.getString(R.string.unt_mis_col)); } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromListaArtsAdapter.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromListaArtsAdapter.java index 60fcfc3e..46cae331 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromListaArtsAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/choose_arts_from_lista_arts/DialogChooseArtsFromListaArtsAdapter.java @@ -15,7 +15,9 @@ import java.util.List; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.model.CheckableMtbColr; import it.integry.integrywmsnative.core.model.MtbColr; +import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityNumber; +import it.integry.integrywmsnative.core.utility.UtilityResources; import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.databinding.DialogChooseArtsFromListaArtsItemModelBinding; @@ -74,14 +76,15 @@ public class DialogChooseArtsFromListaArtsAdapter extends RecyclerView.Adapter + @@ -47,7 +48,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{UtilityNumber.decimalToString(mtbColr.qtaCol) + mtbColr.mtbAart.untMis}" - android:visibility="@{mtbColr.mtbAart != null && !mtbColr.mtbAart.isFlagQtaCnfFissa() ? View.VISIBLE : View.GONE}" + android:visibility="@{SettingsManager.iDB().isFlagForceAllToColli() || (mtbColr.mtbAart != null && !mtbColr.mtbAart.isFlagQtaCnfFissa()) ? View.VISIBLE : View.GONE}" android:textSize="14sp" android:textStyle="bold" android:layout_alignParentEnd="true" diff --git a/app/src/main/res/layout/fragment_main_ultime_consegne_cliente__list_single_item.xml b/app/src/main/res/layout/fragment_main_ultime_consegne_cliente__list_single_item.xml index 1d98423a..4e6b7b12 100644 --- a/app/src/main/res/layout/fragment_main_ultime_consegne_cliente__list_single_item.xml +++ b/app/src/main/res/layout/fragment_main_ultime_consegne_cliente__list_single_item.xml @@ -63,30 +63,35 @@ android:textSize="14sp" tools:text="13 Apr"/> + + + - - + \ No newline at end of file diff --git a/app/src/main/res/layout/lista_picking_libero_list_model.xml b/app/src/main/res/layout/lista_picking_libero_list_model.xml index e5294b59..d20d2c96 100644 --- a/app/src/main/res/layout/lista_picking_libero_list_model.xml +++ b/app/src/main/res/layout/lista_picking_libero_list_model.xml @@ -6,6 +6,7 @@ + @@ -45,7 +46,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{UtilityNumber.decimalToString(mtbColr.qtaCol) + mtbColr.mtbAart.untMis}" - android:visibility="@{mtbColr.mtbAart != null && !mtbColr.mtbAart.isFlagQtaCnfFissa() ? View.VISIBLE : View.GONE}" + android:visibility="@{SettingsManager.iDB().isFlagForceAllToColli() || (mtbColr.mtbAart != null && !mtbColr.mtbAart.isFlagQtaCnfFissa()) ? View.VISIBLE : View.GONE}" android:textSize="14sp" android:textStyle="bold" android:layout_alignParentEnd="true" diff --git a/app/src/main/res/layout/lista_rettifica_giacenze_model.xml b/app/src/main/res/layout/lista_rettifica_giacenze_model.xml index 485b444e..95383b45 100644 --- a/app/src/main/res/layout/lista_rettifica_giacenze_model.xml +++ b/app/src/main/res/layout/lista_rettifica_giacenze_model.xml @@ -6,6 +6,7 @@ + @@ -62,7 +63,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@{UtilityNumber.decimalToString(mtbColr.qtaCol) + mtbColr.mtbAart.untMis}" - android:visibility="@{mtbColr.mtbAart != null && !mtbColr.mtbAart.isFlagQtaCnfFissa() ? View.VISIBLE : View.GONE}" + android:visibility="@{SettingsManager.iDB().isFlagForceAllToColli() || (mtbColr.mtbAart != null && !mtbColr.mtbAart.isFlagQtaCnfFissa()) ? View.VISIBLE : View.GONE}" android:textSize="14sp" android:textStyle="bold" android:layout_alignParentEnd="true" diff --git a/app/src/main/res/layout/ultime_consegne_main_list__item.xml b/app/src/main/res/layout/ultime_consegne_main_list__item.xml index f30e2952..8cbc884b 100644 --- a/app/src/main/res/layout/ultime_consegne_main_list__item.xml +++ b/app/src/main/res/layout/ultime_consegne_main_list__item.xml @@ -66,6 +66,17 @@ style="@style/AppTheme.NewMaterial.Text.Medium" tools:text="QTA"/> + +