diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index 89b931ac..d6dcbe2d 100644 Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ diff --git a/app/build.gradle b/app/build.gradle index 4baf6935..076ac7f3 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -95,20 +95,20 @@ dependencies { }) implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'com.orhanobut:logger:2.2.0' - implementation 'com.google.firebase:firebase-core:16.0.7' + implementation 'com.google.firebase:firebase-core:16.0.8' implementation 'com.google.firebase:firebase-crash:16.2.1' - implementation 'com.google.firebase:firebase-perf:16.2.3' + implementation 'com.google.firebase:firebase-perf:16.2.4' implementation 'com.crashlytics.sdk.android:crashlytics:2.9.9' - implementation 'androidx.appcompat:appcompat:1.1.0-alpha02' + implementation 'androidx.appcompat:appcompat:1.1.0-alpha03' implementation 'androidx.legacy:legacy-support-v4:1.0.0' - implementation 'com.google.android.material:material:1.1.0-alpha03' + implementation 'com.google.android.material:material:1.1.0-alpha04' implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha3' implementation 'androidx.cardview:cardview:1.0.0' - implementation 'androidx.recyclerview:recyclerview:1.1.0-alpha02' - implementation 'androidx.preference:preference:1.1.0-alpha03' + implementation 'androidx.recyclerview:recyclerview:1.1.0-alpha03' + implementation 'androidx.preference:preference:1.1.0-alpha04' implementation 'com.squareup.okhttp3:okhttp:3.12.1' - implementation 'com.squareup.retrofit2:retrofit:2.3.0' - implementation 'com.squareup.retrofit2:converter-gson:2.0.0' + implementation 'com.squareup.retrofit2:retrofit:2.5.0' + implementation 'com.squareup.retrofit2:converter-gson:2.5.0' implementation 'com.annimon:stream:1.2.1' implementation 'androidx.lifecycle:lifecycle-runtime:2.0.0' implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0' diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contenuto_bancale/ContenutoBancaleActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/contenuto_bancale/ContenutoBancaleActivity.java index a15db8d7..2438b50b 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/contenuto_bancale/ContenutoBancaleActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contenuto_bancale/ContenutoBancaleActivity.java @@ -51,7 +51,7 @@ public class ContenutoBancaleActivity extends AppCompatActivity { mViewModel = new ContenutoBancaleViewModel(this, mtbColt, canRecoverUL, mPrinterType); - bindings.waterfallToolbar.setNestedScrollView(bindings.scrollView); + bindings.elevatedToolbar.setNestedScrollView(bindings.scrollView); setSupportActionBar(this.bindings.toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/lista_bancali/viewmodel/ListaBancaliViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/lista_bancali/viewmodel/ListaBancaliViewModel.java index 602c831a..341a3370 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/lista_bancali/viewmodel/ListaBancaliViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/lista_bancali/viewmodel/ListaBancaliViewModel.java @@ -46,7 +46,7 @@ public class ListaBancaliViewModel implements IRecyclerItemClicked { mAdapter = new MainListListaColliAdapter(mContext, mMtbColts, this, mContext.bindings.listaBancaliEmptyView); mContext.bindings.listaColliMainList.setAdapter(mAdapter); - mContext.bindings.waterfallToolbar.setRecyclerView(mContext.bindings.listaColliMainList); + mContext.bindings.elevatedToolbar.setRecyclerView(mContext.bindings.listaColliMainList); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java index b2464d01..a95a9027 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java @@ -77,7 +77,7 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment { .setOnScanFailed(ex -> UtilityExceptions.defaultException(getActivity(), ex, false))); - mBindings.waterfallToolbar.setNestedScrollView(mBindings.scrollView); + mBindings.elevatedToolbar.setNestedScrollView(mBindings.scrollView); return mBindings.getRoot(); } 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 fc05b3ee..d83e5ff4 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 @@ -24,13 +24,14 @@ import java.util.Date; import java.util.List; import java.util.Objects; -import it.integry.integrywmsnative.MainActivity; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.REST.CommonRESTException; +import it.integry.integrywmsnative.core.REST.consumers.ArticoloRESTConsumer; +import it.integry.integrywmsnative.core.REST.consumers.BarcodeRESTConsumer; import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer; import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback; -import it.integry.integrywmsnative.core.REST.consumers.ISingleValueOperationCallback; import it.integry.integrywmsnative.core.REST.consumers.PrinterRESTConsumer; +import it.integry.integrywmsnative.core.REST.model.Ean128Model; import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; import it.integry.integrywmsnative.core.di.BindableBoolean; import it.integry.integrywmsnative.core.expansion.RunnableArgs; @@ -43,6 +44,8 @@ import it.integry.integrywmsnative.core.model.MtbCols; import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.report.ReportManager; import it.integry.integrywmsnative.core.settings.SettingsManager; +import it.integry.integrywmsnative.core.utility.UtilityBarcode; +import it.integry.integrywmsnative.core.utility.UtilityDate; import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityLogger; import it.integry.integrywmsnative.core.utility.UtilityNumber; @@ -53,7 +56,6 @@ import it.integry.integrywmsnative.gest.rettifica_giacenze.core.RettificaGiacenz import it.integry.integrywmsnative.gest.rettifica_giacenze.core.adapter.AutoCompleteFornitoreAdapter; import it.integry.integrywmsnative.gest.rettifica_giacenze.core.adapter.RettificaGiacenzeMainListAdapter; import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.FornitoreDTO; -import it.integry.integrywmsnative.ui.StatusBarAlert; import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper; import it.integry.integrywmsnative.view.dialogs.ask_position_of_lu.DialogAskPositionOfLU; import it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts.DialogChooseArtFromListaArts; @@ -160,15 +162,78 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked BarcodeManager.disable(); + ProgressDialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext); + if(data.getType() == BarcodeType.EAN8 || data.getType() == BarcodeType.EAN13 || data.getType() == BarcodeType.UPCA){ - searchArtInt(data.getStringValue()); + searchArtInt(data.getStringValue(), progressDialog); + } else if(UtilityBarcode.isEtichetta128(data)) { + this.executeEtichettaEan128(data, progressDialog); } else { BarcodeManager.enable(); + progressDialog.dismiss(); } }; + private void executeEtichettaEan128(BarcodeScanDTO barcodeScanDTO, ProgressDialog progressDialog) { + BarcodeRESTConsumer.decodeEan128(barcodeScanDTO, ean128Model -> { + + String barcodeProd = null; + + if(!UtilityString.isNullOrEmpty(ean128Model.Sscc)) barcodeProd = ean128Model.Sscc; + if(!UtilityString.isNullOrEmpty(ean128Model.Gtin)) barcodeProd = ean128Model.Gtin; + if(!UtilityString.isNullOrEmpty(ean128Model.Content)) barcodeProd = ean128Model.Content; + + if(!UtilityString.isNullOrEmpty(barcodeProd)) { + if (barcodeProd.startsWith("0") || barcodeProd.startsWith("9")) { + barcodeProd = barcodeProd.substring(1, barcodeProd.length()); + } + this.loadBarcodeArticolo(barcodeProd, ean128Model, progressDialog); + } else { + //EAN 128 non completo o comunque mancano i riferimenti al prodotto + progressDialog.dismiss(); + BarcodeManager.enable(); + } + }, ex-> { + UtilityExceptions.defaultException(mContext, ex, progressDialog); + BarcodeManager.enable(); + }); + } + + + private void loadBarcodeArticolo(String barcodeProd, Ean128Model ean128Model, ProgressDialog progressDialog) { + if(barcodeProd.length() == 14) { +// barcodeProd = UtilityBarcode.convertITF14toNeutral(barcodeProd); + barcodeProd = UtilityBarcode.convertITF14toEAN13(barcodeProd); + } + + ArticoloRESTConsumer.getByBarcodeProd(barcodeProd, mtbAartList -> { + + if(mtbAartList != null && mtbAartList.size() > 0) { + + this.dispatchArt(mtbAartList.get(0), ean128Model); + + BarcodeManager.enable(); + progressDialog.dismiss(); + + } else { + BarcodeManager.enable(); + progressDialog.dismiss(); + + DialogSimpleMessageHelper.makeWarningDialog(mContext, + new SpannableString(mContext.getResources().getText(R.string.no_result_from_barcode)), + null, null) + .show(); + } + + }, ex -> { + BarcodeManager.enable(); + UtilityExceptions.defaultException(mContext, ex, progressDialog); + }); + } + + public void setupSearchFornitori(ArrayList listaFornitori) { AutoCompleteFornitoreAdapter autoCompleteFornitoreAdapter = new AutoCompleteFornitoreAdapter(mContext, listaFornitori); mBinding.autoCompleteFornitori.setAdapter(autoCompleteFornitoreAdapter); @@ -205,7 +270,7 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked return true; } - searchArtInt(mBinding.inputCodArtDescrInt.getText().toString()); + searchArtInt(mBinding.inputCodArtDescrInt.getText().toString(), UtilityProgress.createDefaultProgressDialog(mContext)); return true; } return false; @@ -248,8 +313,7 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked }, ex -> UtilityExceptions.defaultException(mContext, ex, progressDialog)); } - private void searchArtInt(String queryText) { - final ProgressDialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext); + private void searchArtInt(String queryText, ProgressDialog progressDialog) { //progressDialog.show(); mHelper.searchArtInt(queryText, listaArts -> { @@ -269,9 +333,9 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked if(articoloFornitoreDTOS.size() == 0) { showNoArtsFound(); } else if(articoloFornitoreDTOS.size() == 1) { - dispatchArt(articoloFornitoreDTOS.get(0)); + dispatchArt(articoloFornitoreDTOS.get(0), null); } else { - DialogChooseArtFromListaArts.make(mContext, articoloFornitoreDTOS, this::dispatchArt).show(); + DialogChooseArtFromListaArts.make(mContext, articoloFornitoreDTOS, mtbAart -> this.dispatchArt(mtbAart, null)).show(); } } else { showNoArtsFound(); @@ -285,7 +349,7 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked } - private void dispatchArt(MtbAart mtbAart){ + private void dispatchArt(MtbAart mtbAart, Ean128Model ean128Model){ DialogInputQuantity.DTO qtaDto = new DialogInputQuantity.DTO(); qtaDto.setMtbAart(mtbAart); @@ -301,6 +365,41 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked qtaDto.setCanDataScadBeChanged(true); + if(ean128Model != null){ + if(!UtilityString.isNullOrEmpty(ean128Model.BatchLot)) { + qtaDto.setBatchLot(ean128Model.BatchLot); + qtaDto.setCanPartitaMagBeChanged(false); + } + + try { + if(!UtilityString.isNullOrEmpty(ean128Model.BestBefore)){ + qtaDto.setDataScad(UtilityDate.recognizeDate(ean128Model.BestBefore)); + qtaDto.setCanDataScadBeChanged(false); + } else if(!UtilityString.isNullOrEmpty(ean128Model.Expiry)) { + qtaDto.setDataScad(UtilityDate.recognizeDate(ean128Model.Expiry)); + qtaDto.setCanDataScadBeChanged(false); + } + + } catch (Exception e) { + UtilityLogger.errorMe(e); + } + + + if(ean128Model.Count != null && ean128Model.Count > 0) { + qtaDto.setNumCnf(ean128Model.Count); + } + + if (ean128Model.NetWeightKg != null && ean128Model.NetWeightKg > 0) { + qtaDto.setQtaTot(new BigDecimal(ean128Model.NetWeightKg)); + } else { + qtaDto.setQtaTot(qtaDto.getQtaCnf().multiply(new BigDecimal(qtaDto.getNumCnf()))); + } + + + qtaDto.setShouldAskDataScad(true); + } + + DialogInputQuantity.makeBase(mContext, qtaDto, true, (quantityDTO) -> { onPostDispatch(mtbAart, quantityDTO); }, null).show(); diff --git a/app/src/main/java/it/integry/integrywmsnative/ui/ElevatedToolbar.java b/app/src/main/java/it/integry/integrywmsnative/ui/ElevatedToolbar.java index 194ccca2..f4a8b165 100644 --- a/app/src/main/java/it/integry/integrywmsnative/ui/ElevatedToolbar.java +++ b/app/src/main/java/it/integry/integrywmsnative/ui/ElevatedToolbar.java @@ -116,7 +116,7 @@ public class ElevatedToolbar extends CardView { } public void removeScrollViewScrollListener(){ - if(mRecyclerView != null) { + if(mScrollView != null) { mScrollView.getViewTreeObserver().removeOnScrollChangedListener(scrollViewScrollListener); } else { Log.e("ElevatedToolbar", "REMOVE: ScrollView is NULL"); diff --git a/app/src/main/res/layout/activity_contenuto_bancale.xml b/app/src/main/res/layout/activity_contenuto_bancale.xml index f7570ca5..1ff6db11 100644 --- a/app/src/main/res/layout/activity_contenuto_bancale.xml +++ b/app/src/main/res/layout/activity_contenuto_bancale.xml @@ -25,8 +25,8 @@ android:orientation="vertical" android:background="@color/full_white"> - @@ -37,7 +37,7 @@ tools:title="Contenuto bancale" app:popupTheme="@style/AppTheme.PopupOverlay"/> - + > - @@ -22,7 +22,7 @@ android:layout_width="match_parent" android:layout_height="?actionBarSize"/> - + - @@ -41,7 +41,7 @@ - + - @@ -48,7 +48,7 @@ - + diff --git a/dynamic_vgalimenti/src/main/java/it/integry/wms/dynamic_customization/extensions/OrdiniVendita.java b/dynamic_vgalimenti/src/main/java/it/integry/wms/dynamic_customization/extensions/OrdiniVendita.java index 2ef1e817..82cb0836 100644 --- a/dynamic_vgalimenti/src/main/java/it/integry/wms/dynamic_customization/extensions/OrdiniVendita.java +++ b/dynamic_vgalimenti/src/main/java/it/integry/wms/dynamic_customization/extensions/OrdiniVendita.java @@ -18,8 +18,6 @@ public class OrdiniVendita implements IOrdiniVendita { @Override public void distribuisciCollo(ProgressDialog progress, MtbColt mtbColt, List testateOrdini, RunnableArgs> onComplete, RunnableArgs onFailed) { - - String codMdepOrder = testateOrdini.get(0).ordini.get(0).getCodMdep(); //Se il deposito del collo รจ diverso dal deposito dell'utente allora sto "evadendo" la merce per una vendita presente diff --git a/pointmobilescannerlibrary/build.gradle b/pointmobilescannerlibrary/build.gradle index 20849513..7e740b20 100644 --- a/pointmobilescannerlibrary/build.gradle +++ b/pointmobilescannerlibrary/build.gradle @@ -26,7 +26,7 @@ android { dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') - implementation 'androidx.appcompat:appcompat:1.1.0-alpha01' + implementation 'androidx.appcompat:appcompat:1.1.0-alpha03' testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test:runner:1.1.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'