Implementata lettura EAN128 in Rettifica Giacenze
This commit is contained in:
parent
a88d59f1d7
commit
b95dab2bcc
BIN
.idea/caches/build_file_checksums.ser
generated
BIN
.idea/caches/build_file_checksums.ser
generated
Binary file not shown.
@ -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'
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -46,7 +46,7 @@ public class ListaBancaliViewModel implements IRecyclerItemClicked<MtbColt> {
|
||||
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);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -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();
|
||||
}
|
||||
|
||||
@ -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<MtbColr>
|
||||
|
||||
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<FornitoreDTO> listaFornitori) {
|
||||
AutoCompleteFornitoreAdapter autoCompleteFornitoreAdapter = new AutoCompleteFornitoreAdapter(mContext, listaFornitori);
|
||||
mBinding.autoCompleteFornitori.setAdapter(autoCompleteFornitoreAdapter);
|
||||
@ -205,7 +270,7 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
|
||||
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<MtbColr>
|
||||
}, 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<MtbColr>
|
||||
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<MtbColr>
|
||||
}
|
||||
|
||||
|
||||
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<MtbColr>
|
||||
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();
|
||||
|
||||
@ -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");
|
||||
|
||||
@ -25,8 +25,8 @@
|
||||
android:orientation="vertical"
|
||||
android:background="@color/full_white">
|
||||
|
||||
<it.integry.plugins.waterfalltoolbar.WaterfallToolbar
|
||||
android:id="@+id/waterfall_toolbar"
|
||||
<it.integry.integrywmsnative.ui.ElevatedToolbar
|
||||
android:id="@+id/elevated_toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
@ -37,7 +37,7 @@
|
||||
tools:title="Contenuto bancale"
|
||||
app:popupTheme="@style/AppTheme.PopupOverlay"/>
|
||||
|
||||
</it.integry.plugins.waterfalltoolbar.WaterfallToolbar>
|
||||
</it.integry.integrywmsnative.ui.ElevatedToolbar>>
|
||||
|
||||
<androidx.core.widget.NestedScrollView
|
||||
android:id="@+id/scroll_view"
|
||||
|
||||
@ -12,8 +12,8 @@
|
||||
android:orientation="vertical"
|
||||
android:background="@color/full_white">
|
||||
|
||||
<it.integry.plugins.waterfalltoolbar.WaterfallToolbar
|
||||
android:id="@+id/waterfall_toolbar"
|
||||
<it.integry.integrywmsnative.ui.ElevatedToolbar
|
||||
android:id="@+id/elevated_toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?actionBarSize"/>
|
||||
|
||||
</it.integry.plugins.waterfalltoolbar.WaterfallToolbar>
|
||||
</it.integry.integrywmsnative.ui.ElevatedToolbar>
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
|
||||
@ -19,8 +19,8 @@
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<it.integry.plugins.waterfalltoolbar.WaterfallToolbar
|
||||
android:id="@+id/waterfall_toolbar"
|
||||
<it.integry.integrywmsnative.ui.ElevatedToolbar
|
||||
android:id="@+id/elevated_toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
@ -41,7 +41,7 @@
|
||||
|
||||
</androidx.appcompat.widget.Toolbar>
|
||||
|
||||
</it.integry.plugins.waterfalltoolbar.WaterfallToolbar>
|
||||
</it.integry.integrywmsnative.ui.ElevatedToolbar>
|
||||
|
||||
<fragment
|
||||
android:id="@+id/top_fragment"
|
||||
|
||||
@ -26,8 +26,8 @@
|
||||
android:orientation="vertical"
|
||||
android:background="@color/full_white">
|
||||
|
||||
<it.integry.plugins.waterfalltoolbar.WaterfallToolbar
|
||||
android:id="@+id/waterfall_toolbar"
|
||||
<it.integry.integrywmsnative.ui.ElevatedToolbar
|
||||
android:id="@+id/elevated_toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
@ -48,7 +48,7 @@
|
||||
|
||||
</androidx.appcompat.widget.Toolbar>
|
||||
|
||||
</it.integry.plugins.waterfalltoolbar.WaterfallToolbar>
|
||||
</it.integry.integrywmsnative.ui.ElevatedToolbar>
|
||||
|
||||
|
||||
|
||||
|
||||
@ -18,8 +18,6 @@ public class OrdiniVendita implements IOrdiniVendita {
|
||||
@Override
|
||||
public void distribuisciCollo(ProgressDialog progress, MtbColt mtbColt, List<OrdineVenditaGroupedInevasoDTO> testateOrdini, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> 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
|
||||
|
||||
@ -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'
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user