diff --git a/.idea/runConfigurations/app.xml b/.idea/runConfigurations/app.xml
index 1cd5eae7..e0479975 100644
--- a/.idea/runConfigurations/app.xml
+++ b/.idea/runConfigurations/app.xml
@@ -9,6 +9,7 @@
+
diff --git a/app/build.gradle b/app/build.gradle
index 7df9bc17..9137ce1a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services'
android {
- def appVersionCode = 403
- def appVersionName = '1.36.10'
+ def appVersionCode = 406
+ def appVersionName = '1.36.13'
signingConfigs {
release {
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/exception/NoOrdersScheduledException.java b/app/src/main/java/it/integry/integrywmsnative/core/exception/NoOrdersScheduledException.java
new file mode 100644
index 00000000..8bbfabbb
--- /dev/null
+++ b/app/src/main/java/it/integry/integrywmsnative/core/exception/NoOrdersScheduledException.java
@@ -0,0 +1,11 @@
+package it.integry.integrywmsnative.core.exception;
+
+import it.integry.integrywmsnative.R;
+import it.integry.integrywmsnative.core.utility.UtilityResources;
+
+public class NoOrdersScheduledException extends Exception {
+
+ public NoOrdersScheduledException() {
+ super(UtilityResources.getString(R.string.no_orders_scheduled));
+ }
+}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumer.java
index 9b71214c..4249e1fc 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumer.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumer.java
@@ -18,6 +18,7 @@ import java.util.List;
import javax.inject.Singleton;
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
+import it.integry.integrywmsnative.BuildConfig;
import it.integry.integrywmsnative.core.CommonConst;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.model.CommonModelConsts;
@@ -696,6 +697,11 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
}
public void printUL(PrintULRequestDTO printULRequestDTO, Runnable onComplete, RunnableArgs onFailed) {
+ if (BuildConfig.DEBUG) {
+ onComplete.run();
+ return;
+ }
+
ColliMagazzinoRESTConsumerService colliMagazzinoRESTConsumerService = RESTBuilder.getService(ColliMagazzinoRESTConsumerService.class);
colliMagazzinoRESTConsumerService.printUL(printULRequestDTO)
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java b/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java
index c071ed44..6d68a2ed 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/settings/DBSettingsModel.java
@@ -40,7 +40,6 @@ public class DBSettingsModel {
private boolean flagOrdinaArticoliOnScan;
private boolean flagConsentiFuoriPianoLogistico;
private boolean flagConsentiOrdineSenzaGriglia;
- private String docInterniCheckFornitore;
private String produzioneDefaultCodAnag;
private boolean flagPrintPackingListOnOrderClose;
private boolean flagPrintEtichetteOnOrderClose;
@@ -333,15 +332,6 @@ public class DBSettingsModel {
return this;
}
- public String getDocInterniCheckFornitore() {
- return docInterniCheckFornitore;
- }
-
- public DBSettingsModel setDocInterniCheckFornitore(String docInterniCheckFornitore) {
- this.docInterniCheckFornitore = docInterniCheckFornitore;
- return this;
- }
-
public boolean isFlagAccettazioneUseQtaOrd() {
return flagAccettazioneUseQtaOrd;
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java
index 0974ebb6..af634578 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/settings/SettingsManager.java
@@ -340,11 +340,6 @@ public class SettingsManager {
.setSection("ORDINI_A")
.setKeySection("FLAG_CONSENTI_ORDINE_SENZA_GRIGLIA")
.setSetter(dbSettingsModelIstance::setFlagConsentiOrdineSenzaGriglia));
- stbGestSetupReaderList.add(new StbGestSetupReader<>(String.class)
- .setGestName("PVM")
- .setSection("DOC_INTERNI")
- .setKeySection("CHECK_FORNITORE")
- .setSetter(dbSettingsModelIstance::setDocInterniCheckFornitore));
stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
.setGestName("PICKING")
.setSection("ACCETTAZIONE")
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/SaveDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/SaveDTO.java
index 48c1127c..d75399bc 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/SaveDTO.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/SaveDTO.java
@@ -17,6 +17,8 @@ public class SaveDTO {
private ColloDTO colloDTO;
private InventarioDTO inventarioDTO;
+ private String UUID;
+
public String getGestione() {
return gestione;
}
@@ -112,4 +114,13 @@ public class SaveDTO {
public void setInventarioDTO(InventarioDTO inventarioDTO) {
this.inventarioDTO = inventarioDTO;
}
+
+ public String getUUID() {
+ return UUID;
+ }
+
+ public SaveDTO setUUID(String UUID) {
+ this.UUID = UUID;
+ return this;
+ }
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormActivity.java
index 28c3ab7f..2667cf38 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormActivity.java
@@ -3,9 +3,11 @@ package it.integry.integrywmsnative.gest.contab_doc_interni.edit_form;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
+import android.view.Gravity;
import android.widget.Toast;
import androidx.annotation.Nullable;
+import androidx.appcompat.widget.PopupMenu;
import androidx.databinding.DataBindingUtil;
import androidx.databinding.ObservableArrayList;
import androidx.recyclerview.widget.LinearLayoutManager;
@@ -26,7 +28,6 @@ import it.integry.integrywmsnative.core.data_cache.DataCache;
import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColr;
import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColt;
import it.integry.integrywmsnative.core.data_store.db.repository.MtbColrDataSource;
-import it.integry.integrywmsnative.core.di.BindableBoolean;
import it.integry.integrywmsnative.core.di.BindableInteger;
import it.integry.integrywmsnative.core.di.BindableString;
import it.integry.integrywmsnative.core.expansion.BaseActivity;
@@ -42,7 +43,6 @@ import it.integry.integrywmsnative.gest.contab_doc_interni.dto.TipoDocDTO;
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectDocRows.DialogSelectDocRowsItemListModel;
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.dialog.selectDocRows.DialogSelectDocRowsView;
import it.integry.integrywmsnative.gest.contab_doc_interni.edit_form.ui.DocumentRowsListAdapter;
-import it.integry.integrywmsnative.ui.FabMenuCustomAnimations;
import it.integry.integrywmsnative.view.bottom_sheet__mtb_colr_edit.BottomSheetMtbColrEditModalView;
import it.integry.integrywmsnative.view.dialogs.DialogCommon;
import it.integry.integrywmsnative.view.dialogs.available_items.DialogAvailableItemListModel;
@@ -77,9 +77,11 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter
public BindableString codMgrp = new BindableString();
public BindableString codAnag = new BindableString();
public BindableInteger prodsCount = new BindableInteger(0);
- public BindableBoolean isDocumentExportable = new BindableBoolean(false);
private final ObservableArrayList documentRowsObservableList = new ObservableArrayList<>();
+
+ private PopupMenu fabPopupMenu;
+
public static Intent newInstance(Context context, SqlMtbColt document, List arts, TipoDocDTO tipoDoc, DocInterniSetupDTO mDocInterniSetupDTO) {
Intent myIntent = new Intent(context, DocInterniEditFormActivity.class);
@@ -119,6 +121,7 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter
this.initView();
this.initBindables();
this.initRecyclerView();
+ this.initFab();
}
private void initBindables() {
@@ -151,7 +154,8 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter
setSupportActionBar(binding.toolbar);
binding.toolbar.setTitle(R.string.edit_doc);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
- FabMenuCustomAnimations.changeIconOnFocus(binding.closeActivityFab, R.drawable.ic_menu_24dp, R.drawable.ic_close_24dp);
+
+// FabMenuCustomAnimations.changeIconOnFocus(binding.closeActivityFab, R.drawable.ic_menu_24dp, R.drawable.ic_close_24dp);
}
@@ -162,6 +166,7 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter
private void initRecyclerView() {
this.viewModel.docRows.observe(this, this::refreshList);
+
DocumentRowsListAdapter listAdapter = new DocumentRowsListAdapter(this, documentRowsObservableList);
listAdapter.setEmptyView(binding.scanArtSpinner);
binding.documentRowsList.setAdapter(listAdapter);
@@ -173,11 +178,58 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter
});
}
+ private void initFab() {
+ fabPopupMenu = new PopupMenu(this, this.binding.mainFab,
+ (Gravity.END | Gravity.BOTTOM),
+ androidx.appcompat.R.attr.popupMenuStyle,
+ com.google.android.material.R.style.Widget_Material3_PopupMenu_ContextMenu);
+
+ fabPopupMenu.setForceShowIcon(true);
+ fabPopupMenu.getMenuInflater().inflate(R.menu.doc_interni_edit_fab_menu, fabPopupMenu.getMenu());
+
+
+ fabPopupMenu.setOnMenuItemClickListener(item -> {
+ int itemId = item.getItemId();
+
+ if (itemId == R.id.export_document) {
+ viewModel.exportDocument();
+ } else if (itemId == R.id.delete_document) {
+ viewModel.deleteDocument();
+ } else if (itemId == R.id.hold_document) {
+ viewModel.holdDocument();
+ }
+
+ return false;
+ });
+
+ refreshFabMenu();
+ }
+
+ private void refreshFabMenu() {
+ fabPopupMenu.getMenu()
+ .findItem(R.id.export_document)
+ .setVisible(isDocumentExportable());
+ }
+
+ public void showFabMenu() {
+ fabPopupMenu.show();
+ }
+
+ public void closeFabMenu() {
+ fabPopupMenu.dismiss();
+ }
+
private void refreshList(List sqlMtbColrs) {
this.documentRowsObservableList.clear();
this.documentRowsObservableList.addAll(this.viewModel.docRows.getValue());
+
+ this.prodsCount.set(this.viewModel.docRows.getValue().size());
+ this.refreshFabMenu();
}
+ private boolean isDocumentExportable() {
+ return prodsCount.get() > 0;
+ }
public void closeEdit() {
this.onBackPressed();
@@ -230,7 +282,6 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter
@Override
public void onRowsChanged(List rows) {
this.prodsCount.set(rows.size());
- this.isDocumentExportable.set(rows.size() > 0);
}
@Override
@@ -283,7 +334,8 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter
this.onLoadingStarted();
this.viewModel.saveRow(row, resultDTO);
})
- .setOnAbort(() -> {})
+ .setOnAbort(() -> {
+ })
.show(getSupportFragmentManager(), "tag");
}
@@ -294,7 +346,7 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter
@Override
public void onDocDeleted() {
- this.binding.closeActivityFab.close(true);
+ this.closeFabMenu();
this.closeEdit();
}
@@ -338,7 +390,8 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter
DialogSelectDocRowsView.newInstance(dataset, data -> {
this.viewModel.dispatchRowEdit((SqlMtbColr) data.getOriginalModel(), articolo.isFlagTracciabilita(), articolo.isUntMisDigitale());
- }, () -> {})
+ }, () -> {
+ })
.show(this.getSupportFragmentManager(), "dialogSelectDocRowsNew");
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormViewModel.java
index a98464d2..b96a38e6 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormViewModel.java
@@ -2,12 +2,8 @@ package it.integry.integrywmsnative.gest.contab_doc_interni.edit_form;
import androidx.lifecycle.MutableLiveData;
-import com.annimon.stream.Optional;
import com.annimon.stream.Stream;
-import org.json.JSONException;
-import org.json.JSONObject;
-
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
@@ -26,7 +22,6 @@ import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingL
import it.integry.integrywmsnative.core.rest.model.Ean128Model;
import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel;
import it.integry.integrywmsnative.core.rest.model.documento.DocumentoArtDTO;
-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.gest.contab_doc_interni.dto.ArtDTO;
@@ -49,7 +44,6 @@ public class DocInterniEditFormViewModel {
private TipoDocDTO tipoDoc;
private boolean isCheckPartitaMag = false;
- private JSONObject checkFornitoreRules = null;
public MutableLiveData document = new MutableLiveData<>();
@@ -65,12 +59,6 @@ public class DocInterniEditFormViewModel {
}
public void init() {
- try {
- var docInterniCheckFornitore = SettingsManager.iDB().getDocInterniCheckFornitore();
- this.checkFornitoreRules = docInterniCheckFornitore != null ? new JSONObject(docInterniCheckFornitore) : null;
- } catch (JSONException e) {
- e.printStackTrace();
- }
}
@@ -214,6 +202,7 @@ public class DocInterniEditFormViewModel {
private SaveDTO getSaveDto() {
SqlMtbColt document = this.getDocument();
SaveDTO saveDTO = new SaveDTO();
+ saveDTO.setUUID(String.valueOf(document.getId()));
saveDTO.setIdDisp("1");
saveDTO.setGestione(document.getGestione());
saveDTO.setCodMdep(document.getCodMdep());
@@ -243,6 +232,7 @@ public class DocInterniEditFormViewModel {
artDto.setUntMis(row.getUntMis());
artDto.setCodMart(row.getCodMart());
artDto.setSystemNote(row.getNote());
+ artDto.setPartitaMag(row.getPartitaMag());
if (row.getDataScad() != null) {
artDto.setDataScad(row.getDataScad());
}
@@ -277,27 +267,32 @@ public class DocInterniEditFormViewModel {
if (doc == null || fornitori == null || tipoDocDTO == null)
return;
- List filterFornitori = Stream.of(fornitori).filter(x->x.getCodAnag().equals(doc.getCodAnag())).toList();
+ List filterFornitori = Stream.of(fornitori)
+ .filter(x -> x.getCodAnag().equals(doc.getCodAnag()))
+ .toList();
List checkFornitoreDTO;
- TipoDocDTO tipoDoc = Stream.of(tipoDocDTO).filter(x -> x.getCodDtip().equals(doc.getCodDtipProvv())).findFirst().get();
+ TipoDocDTO tipoDoc = Stream.of(tipoDocDTO)
+ .filter(x -> x.getCodDtip().equals(doc.getCodDtipProvv()))
+ .findFirst()
+ .get();
- if (tipoDoc.isFlagChkTracciabilita()){
+ if (tipoDoc.isFlagChkTracciabilita()) {
this.isCheckPartitaMag = tipoDoc.isFlagChkTracciabilita();
- }else{
+ } else {
if (filterFornitori.isEmpty())
return;
if (doc.getCodVdes() == null) {
checkFornitoreDTO = Stream.of(filterFornitori)
.filter(x -> x.getCodVdes() == null).findFirst().get().getCheckFornitoreDTO();
- } else{
+ } else {
checkFornitoreDTO = Stream.of(filterFornitori)
.filterNot(x -> x.getCodVdes() == null)
.filter(x -> x.getCodVdes().equals(doc.getCodVdes())).findFirst().get().getCheckFornitoreDTO();
}
- if (checkFornitoreDTO != null){
+ if (checkFornitoreDTO != null) {
CheckFornitoreDTO flagCheck = Stream.of(checkFornitoreDTO)
.filter(x -> x.getCodDtip().equals(doc.getCodDtipProvv())).findFirstOrElse(null);
@@ -351,6 +346,7 @@ public class DocInterniEditFormViewModel {
row.setQtaCol(resultDTO.getQtaTot().floatValue());
row.setNote(resultDTO.getNote());
row.setDataScad(resultDTO.getDataScad());
+ row.setPartitaMag(resultDTO.getPartitaMag());
if (row.getId() > 0) {
this.mtbColrRepository.update(row, id -> {
this.fetchDocumentRows();
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 20086b1d..7af712ed 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
@@ -4,8 +4,11 @@ import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
+import android.text.Html;
import android.text.SpannableString;
+import android.view.Gravity;
+import androidx.appcompat.widget.PopupMenu;
import androidx.core.content.ContextCompat;
import androidx.databinding.DataBindingUtil;
import androidx.databinding.ObservableField;
@@ -18,8 +21,10 @@ import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.data_cache.DataCache;
import it.integry.integrywmsnative.core.expansion.BaseActivity;
import it.integry.integrywmsnative.core.model.MtbColt;
+import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.DepositoRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
+import it.integry.integrywmsnative.core.rest.model.uds.DeleteULRequestDTO;
import it.integry.integrywmsnative.databinding.ActivityContenutoBancaleBinding;
import it.integry.integrywmsnative.gest.contenuto_bancale.ui.ContenutoBancaleListAdapter;
import it.integry.integrywmsnative.ui.SimpleDividerItemDecoration;
@@ -38,11 +43,14 @@ public class ContenutoBancaleActivity extends BaseActivity implements ContenutoB
@Inject
PrinterRESTConsumer mPrinterRESTConsumer;
+ @Inject
+ ColliMagazzinoRESTConsumer mColliMagazzinoRESTConsumer;
+
public final ObservableField mtbColt = new ObservableField<>();
public final ObservableField descrizioneDepo = new ObservableField<>();
-
public ObservableField fabVisible = new ObservableField<>(true);
public ObservableField recoverFabMenuVisible = new ObservableField<>(false);
+ private PopupMenu fabPopupMenu;
private String mReportName;
@@ -95,11 +103,11 @@ public class ContenutoBancaleActivity extends BaseActivity implements ContenutoB
recoverFabMenuVisible.set(canRecoverUL);
- initRecyclerView();
- initColloInfo();
+ this.initRecyclerView();
+ this.initColloInfo();
+ this.initFab();
}
-
private void initRecyclerView() {
this.bindings.contenutoBancaleMainList.setNestedScrollingEnabled(false);
@@ -115,13 +123,39 @@ public class ContenutoBancaleActivity extends BaseActivity implements ContenutoB
this.bindings.contenutoBancaleMainList.setAdapter(adapter);
}
-
private void initColloInfo() {
mDepositoRESTConsumer.getDepoByCodMdep(mtbColt.get().getCodMdep(), depo -> {
descrizioneDepo.set("(" + depo.getDescrizione() + ")");
}, this::onError);
}
+ private void initFab() {
+ fabPopupMenu = new PopupMenu(this, this.bindings.accettazioneOrdineInevasoFab,
+ (Gravity.END | Gravity.BOTTOM),
+ androidx.appcompat.R.attr.popupMenuStyle,
+ com.google.android.material.R.style.Widget_Material3_PopupMenu_ContextMenu);
+
+ fabPopupMenu.setForceShowIcon(true);
+ fabPopupMenu.getMenuInflater().inflate(R.menu.contenuto_bancale_fab_menu, fabPopupMenu.getMenu());
+
+ if(mtbColt.get().isDocumentPresent()){
+ fabPopupMenu.getMenu().removeItem(R.id.delete_ul);
+ }
+
+ fabPopupMenu.setOnMenuItemClickListener(item -> {
+ int itemId = item.getItemId();
+
+ if (itemId == R.id.recover_ul) {
+ this.recoverUL();
+ } else if (itemId == R.id.print_ul) {
+ this.printUL();
+ } else if (itemId == R.id.delete_ul) {
+ this.deleteUL();
+ }
+
+ return false;
+ });
+ }
public void recoverUL() {
Intent data = new Intent();
@@ -132,9 +166,7 @@ public class ContenutoBancaleActivity extends BaseActivity implements ContenutoB
this.finish();
}
-
public void printUL() {
- this.bindings.contenutoBancaleFab.close(true);
this.onLoadingStarted();
try {
this.mPrinterRESTConsumer.printCollo(mtbColt.get(),
@@ -153,11 +185,42 @@ public class ContenutoBancaleActivity extends BaseActivity implements ContenutoB
}
}
+ public void deleteUL() {
+ String text = getResources().getString(R.string.alert_delete_UL);
+
+ DialogSimpleMessageView.makeWarningDialog(new SpannableString(Html.fromHtml(text)), null, () -> this.runOnUiThread(() -> {
+ this.onLoadingStarted();
+
+ try {
+ DeleteULRequestDTO deleteULRequestDTO = new DeleteULRequestDTO()
+ .setMtbColt(this.mtbColt.get());
+
+ mColliMagazzinoRESTConsumer.deleteUL(deleteULRequestDTO, () -> {
+ Intent data = new Intent();
+ String key = DataCache.addItem(this.mtbColt.get());
+ String keyDeleteUL = DataCache.addItem(true);
+ data.putExtra("key", key)
+ .putExtra("keyDeleteUL", keyDeleteUL);
+
+ this.onLoadingEnded();
+ this.setResult(RESULT_OK, data);
+ this.finish();
+ }, this::onError);
+ } catch (Exception ex) {
+ this.onError(ex);
+ }
+ }), () -> {
+ }).show(this.getSupportFragmentManager(), "tag");
+ }
+
+ public void showFabMenu() {
+ fabPopupMenu.show();
+ }
+
@Override
public boolean onSupportNavigateUp() {
- onBackPressed();
+ getOnBackPressedDispatcher().onBackPressed();
return true;
}
-
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioViewModel.java
index fb01f61a..4cc4d50c 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/inventario/picking/PickingInventarioViewModel.java
@@ -276,7 +276,7 @@ public class PickingInventarioViewModel extends ViewModel {
initialQtaTot = UtilityBigDecimal.multiply(initialNumCnf, initialQtaCnf);
}
- if (inventarioArtDTO.isPlu()) {
+ if (pickingObjectDTO.getTempPickData() != null && inventarioArtDTO.isPlu()) {
this.saveNewRow(pickingObjectDTO, initialNumCnf, initialQtaCnf, initialQtaTot, null, barcode);
} else {
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/lista_bancali/ListaBancaliActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/lista_bancali/ListaBancaliActivity.java
index 17c27e32..0b3909e3 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/lista_bancali/ListaBancaliActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/lista_bancali/ListaBancaliActivity.java
@@ -24,7 +24,7 @@ import it.integry.integrywmsnative.gest.contenuto_bancale.ContenutoBancaleActivi
import it.integry.integrywmsnative.gest.lista_bancali.ui.ListaColliMainListAdapter;
import it.integry.integrywmsnative.ui.SimpleDividerItemDecoration;
-public class ListaBancaliActivity extends BaseActivity implements ListaBancaliViewModel.Listener{
+public class ListaBancaliActivity extends BaseActivity implements ListaBancaliViewModel.Listener {
private static class Key {
private static final String MtbColtsKey = "mtbColtsKey";
@@ -47,7 +47,6 @@ public class ListaBancaliActivity extends BaseActivity implements ListaBancaliVi
private static final int PICK_UL_REQUEST = 1; // The request code
-
public static Intent createIntent(Context context, List items, RunnableArgsWithReturn canRecoverUlAction, String reportName) {
return createIntent(context, items, canRecoverUlAction, true, reportName);
}
@@ -126,17 +125,16 @@ public class ListaBancaliActivity extends BaseActivity implements ListaBancaliVi
@Override
public boolean onSupportNavigateUp() {
- onBackPressed();
+ getOnBackPressedDispatcher().onBackPressed();
return true;
}
- public void startContenutoBancaleActivity(MtbColt item){
+ public void startContenutoBancaleActivity(MtbColt item) {
Intent myIntent = ContenutoBancaleActivity.createIntent(this, item, mCanRecoverUl.run(item), mReportName);
startActivityForResult(myIntent, PICK_UL_REQUEST);
}
-
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
@@ -144,9 +142,20 @@ public class ListaBancaliActivity extends BaseActivity implements ListaBancaliVi
if (requestCode == PICK_UL_REQUEST) {
// Make sure the request was successful
if (resultCode == RESULT_OK) {
+ Object keyDeleteUL = DataCache.retrieveItem(data.getStringExtra("keyDeleteUL"));
+ boolean deleteUL = keyDeleteUL != null && (boolean) keyDeleteUL;
+
+ if (deleteUL) {
+ this.onLoadingStarted();
+ MtbColt item = DataCache.retrieveItem(data.getStringExtra("key"));
+ mtbColts.remove(item);
+ this.initRecyclerView();
+ this.onLoadingEnded();
+ } else {
+ this.setResult(RESULT_OK, data);
+ this.finish();
+ }
- this.setResult(RESULT_OK, data);
- this.finish();
}
}
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/ProdFabbisognoLineeProdViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/ProdFabbisognoLineeProdViewModel.java
index 7bcfd3ec..19d76b92 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/ProdFabbisognoLineeProdViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/ProdFabbisognoLineeProdViewModel.java
@@ -5,6 +5,7 @@ import com.annimon.stream.Stream;
import java.util.Date;
import java.util.List;
+import it.integry.integrywmsnative.core.exception.NoOrdersScheduledException;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dto.ProdFabbisognoLineeProdDTO;
@@ -29,13 +30,17 @@ public class ProdFabbisognoLineeProdViewModel {
this.sendOnLoadingStarted();
this.mProdFabbisognoLineeProdRESTConsumer.loadFabbisogno(startDate, endDate, codMdep, jtbFasi -> {
- if (jtbFasi != null) Stream.of(jtbFasi)
- .forEach(x -> x
- .setDataInizio(startDate)
- .setDataFine(endDate));
+ if (jtbFasi != null){
+ Stream.of(jtbFasi)
+ .forEach(x -> x
+ .setDataInizio(startDate)
+ .setDataFine(endDate));
- this.sendOnLoadingEnded();
- onComplete.run(jtbFasi);
+ this.sendOnLoadingEnded();
+ onComplete.run(jtbFasi);
+ }else{
+ this.mListener.onError(new NoOrdersScheduledException());
+ }
}, this::sendError);
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java
index 2385784c..f01b9cef 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java
@@ -207,12 +207,12 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi
}
@Override
- public void confirmCheckForUnlistedProduct(String barcode) {
+ public void confirmCheckForUnlistedProduct(String barcode, Runnable onComplete) {
DialogSimpleMessageView.makeInfoDialog(getText(R.string.info).toString(),
Html.fromHtml(getResources().getString(R.string.confirm_order_unlisted_item)),
null,
() -> {
- this.mViewModel.loadArticolo(barcode);
+ this.mViewModel.loadArticolo(barcode, onComplete);
}, this::onLoadingEnded).show(getSupportFragmentManager(), "confirmExceedingQtyOrder");
}
@@ -255,8 +255,7 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi
DialogSimpleMessageView.makeInfoDialog(getText(R.string.warning).toString(),
Html.fromHtml(getResources().getString(R.string.confirm_export_invalid_product)),
null,
- onConfirm
- ,
+ onConfirm,
this::onLoadingEnded).show(getSupportFragmentManager(), "confirmExportInvalidProducts");
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditViewModel.java
index 5a0d48ed..351ac62c 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditViewModel.java
@@ -9,6 +9,7 @@ import org.apache.commons.lang3.StringUtils;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Calendar;
+import java.util.Collections;
import java.util.List;
import javax.inject.Inject;
@@ -25,7 +26,6 @@ import it.integry.integrywmsnative.core.data_store.db.view_model.ArticoloOrdinab
import it.integry.integrywmsnative.core.exception.ArtNotFoundInGridException;
import it.integry.integrywmsnative.core.exception.EmptyOrderException;
import it.integry.integrywmsnative.core.exception.ExpiredProductListException;
-import it.integry.integrywmsnative.core.exception.MultipleResultFromBarcodeException;
import it.integry.integrywmsnative.core.exception.NoArtsInGridException;
import it.integry.integrywmsnative.core.exception.NoResultFromBarcodeException;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
@@ -157,38 +157,49 @@ public class PVOrdineAcquistoEditViewModel {
}
public void processBarcode(String barcode) {
- try {
- this.sendOnLoadingStarted();
+ Runnable onComplete = BarcodeManager::enable;
+ BarcodeManager.disable();
+
+ try {
+ List listArticoli = findArticoliByBarcode(barcode);
+
+ if (listArticoli == null || listArticoli.isEmpty())
+ onNoArtsFoundByBarcode(barcode, onComplete);
+ else
+ addArtFromGriglia(listArticoli, onComplete);
- List listArticoli = matchArticoliForBarcode(barcode);
- if (listArticoli == null || listArticoli.isEmpty()) {
- if (SettingsManager.iDB().isFlagConsentiFuoriPianoLogistico() && UtilityString.isNullOrEmpty(mCurrentOrdine.getCodAlis())) {
- this.mListener.confirmCheckForUnlistedProduct(barcode);
- return;
- } else {
- throw new NoResultFromBarcodeException(barcode);
- }
- }
- if (listArticoli.size() == 1) {
- this.addArticoloToOrdine(
- listArticoli.get(0),
- this::sendOnLoadingEnded,
- this::sendError
- );
- } else {
- this.mListener.chooseArtFromList(listArticoli, (art) -> {
- this.addArticoloToOrdine(
- art,
- this::sendOnLoadingEnded,
- this::sendError);
- });
- }
} catch (Exception e) {
this.sendError(e);
- BarcodeManager.enable();
+ onComplete.run();
}
}
+ private void onNoArtsFoundByBarcode(String barcode, Runnable onComplete) throws NoResultFromBarcodeException {
+ if (SettingsManager.iDB().isFlagConsentiFuoriPianoLogistico() && UtilityString.isNullOrEmpty(mCurrentOrdine.getCodAlis())) {
+ this.mListener.confirmCheckForUnlistedProduct(barcode, onComplete);
+ } else {
+ throw new NoResultFromBarcodeException(barcode);
+ }
+ }
+
+ private void addArtFromGriglia(List listArticoli, Runnable onComplete) {
+ if (listArticoli.size() == 1) {
+ this.addArticoloToOrdine(
+ listArticoli.get(0),
+ onComplete,
+ this::sendError
+ );
+ } else {
+ this.mListener.chooseArtFromList(listArticoli, (art) -> {
+ this.addArticoloToOrdine(
+ art,
+ onComplete,
+ this::sendError);
+ });
+ }
+ }
+
+
private void loadArticoli(Ordine ordine, RunnableArgs> onLoad) {
try {
mArticoliOrdineRepository.findArticoliByOrdine(ordine, onLoad, this::sendError);
@@ -256,10 +267,11 @@ public class PVOrdineAcquistoEditViewModel {
return articolo;
}
- public List matchArticoliForBarcode(String barcode) throws NoArtsInGridException, MultipleResultFromBarcodeException, NoResultFromBarcodeException {
+ public List findArticoliByBarcode(String barcode) throws NoArtsInGridException {
if (mArticoliGriglia == null || mArticoliGriglia.isEmpty()) {
throw new NoArtsInGridException();
}
+
List articoli = Stream.of(mArticoliGriglia).filter(articolo ->
articolo.getCodMart().equalsIgnoreCase(barcode) ||
articolo.getBarcode().contains(barcode) ||
@@ -366,13 +378,17 @@ public class PVOrdineAcquistoEditViewModel {
if (this.mListener != null) mListener.onError(ex);
}
- public void loadArticolo(String barcode) {
+ public void loadArticolo(String barcode, Runnable onComplete) {
this.sendOnLoadingStarted();
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
pvOrdiniAcquistoRESTConsumer.retrieveArticolo(null, codMdep, barcode, (grigliaDTO) -> {
RunnableArgs addArtToOrder = (articolo) -> {
- ArticoloOrdinabileDTO existingArt = Stream.of(mArticoliGriglia).filter(x -> x.getCodMart().equalsIgnoreCase(articolo.getCodMart())).findFirstOrElse(null);
+
+ ArticoloOrdinabileDTO existingArt = Stream.of(mArticoliGriglia)
+ .filter(x -> x.getCodMart().equalsIgnoreCase(articolo.getCodMart()))
+ .findFirstOrElse(null);
+
if (existingArt != null) {
List barcodes = existingArt.getBarcode();
barcodes.addAll(articolo.getBarcode());
@@ -381,7 +397,8 @@ public class PVOrdineAcquistoEditViewModel {
} else {
mArticoliGriglia.add(articolo);
}
- this.processBarcode(barcode);
+
+ this.addArtFromGriglia(Collections.singletonList(existingArt), onComplete);
};
if (grigliaDTO == null || grigliaDTO.getArticoli().isEmpty()) {
@@ -400,7 +417,6 @@ public class PVOrdineAcquistoEditViewModel {
addArtToOrder.run(newArt);
-
}, this::sendError);
}
@@ -420,7 +436,7 @@ public class PVOrdineAcquistoEditViewModel {
void onError(Exception ex);
- void confirmCheckForUnlistedProduct(String barcode);
+ void confirmCheckForUnlistedProduct(String barcode, Runnable onComplete);
void confirmExportInvalidProducts(Runnable onConfirm);
diff --git a/app/src/main/res/drawable/ic_delete_material3.xml b/app/src/main/res/drawable/ic_delete_material3.xml
new file mode 100644
index 00000000..d724c2e0
--- /dev/null
+++ b/app/src/main/res/drawable/ic_delete_material3.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_print_material3.xml b/app/src/main/res/drawable/ic_print_material3.xml
new file mode 100644
index 00000000..f144dac0
--- /dev/null
+++ b/app/src/main/res/drawable/ic_print_material3.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_recover_material3.xml b/app/src/main/res/drawable/ic_recover_material3.xml
new file mode 100644
index 00000000..3a1a828d
--- /dev/null
+++ b/app/src/main/res/drawable/ic_recover_material3.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/layout/activity_contab_doc_interni_edit.xml b/app/src/main/res/layout/activity_contab_doc_interni_edit.xml
index eba83439..079e221e 100644
--- a/app/src/main/res/layout/activity_contab_doc_interni_edit.xml
+++ b/app/src/main/res/layout/activity_contab_doc_interni_edit.xml
@@ -267,81 +267,15 @@
+
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_contenuto_bancale.xml b/app/src/main/res/layout/activity_contenuto_bancale.xml
index 6034aba9..44829935 100644
--- a/app/src/main/res/layout/activity_contenuto_bancale.xml
+++ b/app/src/main/res/layout/activity_contenuto_bancale.xml
@@ -2,12 +2,15 @@
+
+
+
+
+
+
+
+
+
+
@@ -192,67 +218,88 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/menu/contenuto_bancale_fab_menu.xml b/app/src/main/res/menu/contenuto_bancale_fab_menu.xml
new file mode 100644
index 00000000..50023a2e
--- /dev/null
+++ b/app/src/main/res/menu/contenuto_bancale_fab_menu.xml
@@ -0,0 +1,16 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/res/menu/doc_interni_edit_fab_menu.xml b/app/src/main/res/menu/doc_interni_edit_fab_menu.xml
new file mode 100644
index 00000000..fb880ccf
--- /dev/null
+++ b/app/src/main/res/menu/doc_interni_edit_fab_menu.xml
@@ -0,0 +1,17 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index 78b4ac21..a0e808e2 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -64,6 +64,7 @@
Mostra UL giĆ create
Recupera UL
Stampa UL
+ Cancella UL
Stampa
Conferma
Salva
@@ -199,6 +200,7 @@
Check box
This is a regular preference
+ Stai per eliminare una UL. Confermi?
Stai per eliminare una riga. Confermi?
Lista UL
@@ -215,6 +217,7 @@
Nessun articolo da prelevare
Nessun documento da mostrare
Nessun ordine da evadere
+ Nessun ordine programmato sulla linea per il periodo selezionato
Nessun ordine compatibile
Nessun articolo
Nessuna UL versata in produzione
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 5454bb93..ac6c27ee 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -108,8 +108,7 @@
Recover LU
-
-
+ Delete LU
Print LU
Print
Confirm
@@ -201,6 +200,7 @@
Check box
This is a regular preference
+ Are you sure you want to delete this UL? Please confirm
Are you sure to delete? Please confirm
Warehouse
@@ -219,6 +219,7 @@
No items to pick
No documents to show
No orders to dispatch
+ No orders scheduled on the line for the selected period:
No inventory available
no compatible orders found
diff --git a/barcode_base_android_library/build.gradle b/barcode_base_android_library/build.gradle
index 2aef0b1c..71604865 100644
--- a/barcode_base_android_library/build.gradle
+++ b/barcode_base_android_library/build.gradle
@@ -1,12 +1,11 @@
apply plugin: 'com.android.library'
android {
- compileSdkVersion 33
-
+ compileSdk 34
defaultConfig {
minSdkVersion 21
- targetSdkVersion 33
+ targetSdk 34
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles 'consumer-rules.pro'
diff --git a/build.gradle b/build.gradle
index d900b182..b59726d4 100644
--- a/build.gradle
+++ b/build.gradle
@@ -3,7 +3,7 @@
buildscript {
ext {
kotlin_version = '1.9.0'
- agp_version = '8.2.0'
+ agp_version = '8.2.1'
}
repositories {
diff --git a/honeywellscannerlibrary/build.gradle b/honeywellscannerlibrary/build.gradle
index 3f1e9897..56891476 100644
--- a/honeywellscannerlibrary/build.gradle
+++ b/honeywellscannerlibrary/build.gradle
@@ -1,11 +1,11 @@
apply plugin: 'com.android.library'
android {
- compileSdkVersion 33
+ compileSdk 34
defaultConfig {
minSdkVersion 21
- targetSdkVersion 33
+ targetSdk 34
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
diff --git a/keyobardemulatorscannerlibrary/build.gradle b/keyobardemulatorscannerlibrary/build.gradle
index d3630ab3..6b05d719 100644
--- a/keyobardemulatorscannerlibrary/build.gradle
+++ b/keyobardemulatorscannerlibrary/build.gradle
@@ -1,11 +1,11 @@
apply plugin: 'com.android.library'
android {
- compileSdkVersion 33
+ compileSdk 34
defaultConfig {
minSdkVersion 21
- targetSdkVersion 33
+ targetSdk 34
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles 'consumer-rules.pro'
diff --git a/pointmobilescannerlibrary/build.gradle b/pointmobilescannerlibrary/build.gradle
index 5d56e622..b084ab91 100644
--- a/pointmobilescannerlibrary/build.gradle
+++ b/pointmobilescannerlibrary/build.gradle
@@ -1,11 +1,11 @@
apply plugin: 'com.android.library'
android {
- compileSdkVersion 33
+ compileSdk 34
defaultConfig {
minSdkVersion 21
- targetSdkVersion 33
+ targetSdk 34
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
diff --git a/zebrascannerlibrary/build.gradle b/zebrascannerlibrary/build.gradle
index 759e7248..7d952295 100644
--- a/zebrascannerlibrary/build.gradle
+++ b/zebrascannerlibrary/build.gradle
@@ -1,11 +1,11 @@
apply plugin: 'com.android.library'
android {
- compileSdkVersion 33
+ compileSdk 34
defaultConfig {
minSdkVersion 21
- targetSdkVersion 33
+ targetSdk 34
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}