Fix su gestione istanze del menu principale.

Parametrizzato il Pickibg Libero in modo che possa lavorare anche con la lavorazione.
This commit is contained in:
2020-09-30 12:54:42 +02:00
parent 216070c608
commit 6d99c1fea4
39 changed files with 624 additions and 170 deletions

View File

@@ -75,7 +75,7 @@ android {
abortOnError false
}
dynamicFeatures = [":dynamic__base", ":dynamic_vgalimenti", ":dynamic_ime", ":dynamic_frudis", ":dynamic_saporiveri_pv", ":dynamic_saporiveri"]
dynamicFeatures = [":dynamic__base", ":dynamic_vgalimenti", ":dynamic_ime", ":dynamic_frudis", ":dynamic_saporiveri_pv", ":dynamic_saporiveri", ':dynamic_gramm']
}
@@ -87,14 +87,14 @@ dependencies {
})
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'com.orhanobut:logger:2.2.0'
implementation 'com.google.firebase:firebase-core:17.4.3'
implementation 'com.google.firebase:firebase-core:17.5.0'
implementation 'com.google.firebase:firebase-crash:16.2.1'
implementation 'com.google.firebase:firebase-perf:19.0.7'
implementation 'com.google.firebase:firebase-crashlytics:17.0.1'
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'com.google.firebase:firebase-perf:19.0.8'
implementation 'com.google.firebase:firebase-crashlytics:17.2.1'
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'com.google.android.material:material:1.3.0-alpha01'
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta6'
implementation 'com.google.android.material:material:1.3.0-alpha02'
implementation 'androidx.constraintlayout:constraintlayout:2.0.1'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.recyclerview:recyclerview:1.1.0'
implementation 'androidx.preference:preference:1.1.1'

View File

@@ -161,7 +161,7 @@ public class MainActivity extends BaseActivity
BaseMenuConfiguration.MenuItem menuItem = getMenuItem(id);
if(menuItem != null) {
fragment = menuItem.getFragmentClass();
fragment = menuItem.getFragmentFactory().run();
this.adaptViewToFragment(fragment);
} else {
switch (id) {
@@ -261,9 +261,6 @@ public class MainActivity extends BaseActivity
for(int i = 0; i < count; i++) {
getSupportFragmentManager().popBackStack();
}
openMain();
}
private void adaptViewToFragment(Fragment fragment){

View File

@@ -53,4 +53,8 @@ public class MainApplication extends Application {
super.onLowMemory();
}
public static void exit() {
System.exit(0);
}
}

View File

@@ -7,7 +7,6 @@ import java.util.ArrayList;
import java.util.List;
import it.integry.integrywmsnative.core.class_router.exceptions.MethodPathNotRegisteredException;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
public class ClassRouter {
@@ -20,7 +19,7 @@ public class ClassRouter {
private static Context context;
private static List<Pair<PATH, Class>> mRouteClasses = new ArrayList<>();
private static List<Pair<PATH, Object>> mRouteClasses = new ArrayList<>();
public static void init(Context context) {
ClassRouter.context = context;
@@ -50,7 +49,13 @@ public class ClassRouter {
//throw new MethodPathAlreadyDeclaredException(path);
}
mRouteClasses.add(new Pair<>(path, clazz));
try {
mRouteClasses.add(new Pair<>(path, clazz.newInstance()));
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
}
}
public static void deregisterPath(PATH path) {
@@ -67,11 +72,11 @@ public class ClassRouter {
throw new MethodPathNotRegisteredException(path);
}
Class clazz = mRouteClasses.get(getClassIndex(path)).second;
Object instance = mRouteClasses.get(getClassIndex(path)).second;
return (T)clazz.newInstance();
return (T)instance;
} catch (InstantiationException | MethodPathNotRegisteredException | IllegalAccessException ex) {
} catch (MethodPathNotRegisteredException ex) {
// UtilityExceptions.defaultException(null, ex, true);
}

View File

@@ -8,6 +8,8 @@ import androidx.fragment.app.Fragment;
import java.util.ArrayList;
import java.util.List;
import it.integry.integrywmsnative.core.expansion.RunnableWithReturn;
public class BaseMenuConfiguration {
@@ -65,7 +67,7 @@ public class BaseMenuConfiguration {
@StringRes private int mTitleText;
@DrawableRes private int mTitleIcon;
@DrawableRes private int mDrawerIcon;
private Fragment fragmentClass;
private RunnableWithReturn<Fragment> fragmentFactory;
public int getID() {
return mID;
@@ -103,12 +105,12 @@ public class BaseMenuConfiguration {
return this;
}
public Fragment getFragmentClass() {
return fragmentClass;
public RunnableWithReturn<Fragment> getFragmentFactory() {
return fragmentFactory;
}
public MenuItem setFragmentClass(Fragment fragmentClass) {
this.fragmentClass = fragmentClass;
public MenuItem setFragmentFactory(RunnableWithReturn<Fragment> fragmentFactory) {
this.fragmentFactory = fragmentFactory;
return this;
}
}

View File

@@ -1,6 +1,7 @@
package it.integry.integrywmsnative.core.class_router.configs;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.gest.accettazione.MainAccettazioneFragment;
import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoFragment;
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.ProdOrdineProduzioneElencoFragment;
@@ -16,112 +17,114 @@ import it.integry.integrywmsnative.gest.versamento_merce.VersamentoMerceFragment
public class MenuConfiguration extends BaseMenuConfiguration {
public MenuConfiguration() {
this
.addGroup(
new MenuGroup()
.setGroupText(R.string.purchase)
.setGroupId(R.id.nav_group_acquisto)
.addGroup(
new MenuGroup()
.setGroupText(R.string.purchase)
.setGroupId(R.id.nav_group_acquisto)
.addItem(new MenuItem()
.setID(R.id.nav_accettazione)
.setTitleText(R.string.accettazione_title_fragment)
.setTitleIcon(R.drawable.ic_dashboard_accettazione)
.setDrawerIcon(R.drawable.ic_black_download)
.setFragmentClass(MainAccettazioneFragment.newInstance()))
.addItem(new MenuItem()
.setID(R.id.nav_accettazione)
.setTitleText(R.string.accettazione_title_fragment)
.setTitleIcon(R.drawable.ic_dashboard_accettazione)
.setDrawerIcon(R.drawable.ic_black_download)
.setFragmentFactory(MainAccettazioneFragment::newInstance))
.addItem(new MenuItem()
.setID(R.id.nav_resi_fornitore)
.setTitleText(R.string.fragment_ultime_arrivi_fornitore_title)
.setTitleIcon(R.drawable.ic_latest_delivery)
.setDrawerIcon(R.drawable.ic_black_latest_delivery)
.setFragmentClass(UltimiArriviFornitoreFragment.newInstance()))
).addGroup(
new MenuGroup()
.setGroupText(R.string.checkout)
.setGroupId(R.id.nav_group_spedizione)
.addItem(new MenuItem()
.setID(R.id.nav_resi_fornitore)
.setTitleText(R.string.fragment_ultime_arrivi_fornitore_title)
.setTitleIcon(R.drawable.ic_latest_delivery)
.setDrawerIcon(R.drawable.ic_black_latest_delivery)
.setFragmentFactory(UltimiArriviFornitoreFragment::newInstance))
).addGroup(
new MenuGroup()
.setGroupText(R.string.checkout)
.setGroupId(R.id.nav_group_spedizione)
.addItem(new MenuItem()
.setID(R.id.nav_spedizione)
.setTitleText(R.string.vendita_title_fragment)
.setTitleIcon(R.drawable.ic_dashboard_spedizione)
.setDrawerIcon(R.drawable.ic_black_upload)
.setFragmentClass(MainVenditaFragment.newInstance()))
.addItem(new MenuItem()
.setID(R.id.nav_spedizione)
.setTitleText(R.string.vendita_title_fragment)
.setTitleIcon(R.drawable.ic_dashboard_spedizione)
.setDrawerIcon(R.drawable.ic_black_upload)
.setFragmentFactory(MainVenditaFragment::newInstance))
.addItem(new MenuItem()
.setID(R.id.nav_free_picking)
.setTitleText(R.string.free_picking)
.setTitleIcon(R.drawable.ic_dashboard_picking_libero)
.setDrawerIcon(R.drawable.ic_black_barcode_scanner)
.setFragmentClass(PickingLiberoFragment.newInstance()))
.addItem(new MenuItem()
.setID(R.id.nav_free_picking)
.setTitleText(R.string.free_picking)
.setTitleIcon(R.drawable.ic_dashboard_picking_libero)
.setDrawerIcon(R.drawable.ic_black_barcode_scanner)
.setFragmentFactory(() -> PickingLiberoFragment.newInstance(GestioneEnum.VENDITA)))
.addItem(new MenuItem()
.setID(R.id.nav_resi_cliente)
.setTitleText(R.string.fragment_ultime_consegne_cliente_title)
.setTitleIcon(R.drawable.ic_latest_delivery_customer)
.setDrawerIcon(R.drawable.ic_black_latest_delivery)
.setFragmentClass(UltimeConsegneClienteFragment.newInstance()))
).addGroup(new MenuGroup()
.setGroupText(R.string.manufacture)
.setGroupId(R.id.nav_group_produzione)
.addItem(new MenuItem()
.setID(R.id.nav_resi_cliente)
.setTitleText(R.string.fragment_ultime_consegne_cliente_title)
.setTitleIcon(R.drawable.ic_latest_delivery_customer)
.setDrawerIcon(R.drawable.ic_black_latest_delivery)
.setFragmentFactory(UltimeConsegneClienteFragment::newInstance))
).addGroup(new MenuGroup()
.setGroupText(R.string.manufacture)
.setGroupId(R.id.nav_group_produzione)
.addItem(new MenuItem()
.setID(R.id.nav_prod_ordine_produzione)
.setTitleText(R.string.prod_ordine_produzione_title_fragment)
.setTitleIcon(R.drawable.ic_dashboard_accettazione)
.setDrawerIcon(R.drawable.ic_black_external)
.setFragmentClass(ProdOrdineProduzioneElencoFragment.newInstance()))
.addItem(new MenuItem()
.setID(R.id.nav_prod_ordine_produzione)
.setTitleText(R.string.prod_ordine_produzione_title_fragment)
.setTitleIcon(R.drawable.ic_dashboard_prod_accettazione_produzione)
.setDrawerIcon(R.drawable.ic_black_external)
.setFragmentFactory(ProdOrdineProduzioneElencoFragment::newInstance))
.addItem(new MenuItem()
.setID(R.id.nav_prod_ordine_lavorazione)
.setTitleText(R.string.prod_ordine_lavorazione_title_fragment)
.setTitleIcon(R.drawable.ic_dashboard_spedizione)
.setDrawerIcon(R.drawable.ic_black_external)
.setFragmentClass(ProdOrdineLavorazioneElencoFragment.newInstance()))
.addItem(new MenuItem()
.setID(R.id.nav_prod_ordine_lavorazione)
.setTitleText(R.string.prod_ordine_lavorazione_title_fragment)
.setTitleIcon(R.drawable.ic_dashboard_prod_picking_lavorazione)
.setDrawerIcon(R.drawable.ic_black_external)
.setFragmentFactory(ProdOrdineLavorazioneElencoFragment::newInstance))
.addItem(new MenuItem()
.setID(R.id.nav_prod_versamento_materiale)
.setTitleText(R.string.prod_versamento_materiale_title_fragment)
.setTitleIcon(R.drawable.ic_dashboard_prod_versamento_materiale)
.setDrawerIcon(R.drawable.ic_black_external)
.setFragmentClass(ProdVersamentoMaterialeFragment.newInstance()))
.addItem(new MenuItem()
.setID(R.id.nav_free_lav_picking)
.setTitleText(it.integry.integrywmsnative.R.string.free_lav_picking)
.setTitleIcon(R.drawable.ic_dashboard_prod_picking_libero)
.setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_barcode_scanner)
.setFragmentFactory(() -> PickingLiberoFragment.newInstance(GestioneEnum.LAVORAZIONE)))
.addItem(new MenuItem()
.setID(R.id.nav_prod_recupero_materiale)
.setTitleText(R.string.prod_recupero_materiale_title_fragment)
.setTitleIcon(R.drawable.ic_dashboard_prod_recupero_materiale)
.setDrawerIcon(R.drawable.ic_black_external)
.setFragmentClass(ProdRecuperoMaterialeFragment.newInstance()))
)
.addGroup(
new MenuGroup()
.setGroupText(R.string.internal_handling)
.setGroupId(R.id.nav_group_movimentazione_interna)
.addItem(new MenuItem()
.setID(R.id.nav_prod_versamento_materiale)
.setTitleText(R.string.prod_versamento_materiale_title_fragment)
.setTitleIcon(R.drawable.ic_dashboard_prod_versamento_materiale)
.setDrawerIcon(R.drawable.ic_black_external)
.setFragmentFactory(ProdVersamentoMaterialeFragment::newInstance))
.addItem(new MenuItem()
.setID(R.id.nav_versamento_merce)
.setTitleText(R.string.versamento_merce_fragment_title)
.setTitleIcon(R.drawable.ic_dashboard_versamento_merce)
.setDrawerIcon(R.drawable.ic_black_load_shelf)
.setFragmentClass(VersamentoMerceFragment.newInstance()))
.addItem(new MenuItem()
.setID(R.id.nav_prod_recupero_materiale)
.setTitleText(R.string.prod_recupero_materiale_title_fragment)
.setTitleIcon(R.drawable.ic_dashboard_prod_recupero_materiale)
.setDrawerIcon(R.drawable.ic_black_external)
.setFragmentFactory(ProdRecuperoMaterialeFragment::newInstance))
)
.addGroup(
new MenuGroup()
.setGroupText(R.string.internal_handling)
.setGroupId(R.id.nav_group_movimentazione_interna)
.addItem(new MenuItem()
.setID(R.id.nav_rettifica_giacenze)
.setTitleText(R.string.rettifica_giacenze_fragment_title)
.setTitleIcon(R.drawable.ic_dashboard_rettifica_giacenze)
.setDrawerIcon(R.drawable.ic_black_empty_box)
.setFragmentClass(RettificaGiacenzeFragment.newInstance()))
.addItem(new MenuItem()
.setID(R.id.nav_versamento_merce)
.setTitleText(R.string.versamento_merce_fragment_title)
.setTitleIcon(R.drawable.ic_dashboard_versamento_merce)
.setDrawerIcon(R.drawable.ic_black_load_shelf)
.setFragmentFactory(VersamentoMerceFragment::newInstance))
.addItem(new MenuItem()
.setID(R.id.nav_rettifica_giacenze)
.setTitleText(R.string.rettifica_giacenze_fragment_title)
.setTitleIcon(R.drawable.ic_dashboard_rettifica_giacenze)
.setDrawerIcon(R.drawable.ic_black_empty_box)
.setFragmentFactory(RettificaGiacenzeFragment::newInstance))
);
);
}
}

View File

@@ -10,7 +10,7 @@ import java.io.File;
import java.io.FileWriter;
import java.io.PrintWriter;
import it.integry.integrywmsnative.BuildConfig;
import it.integry.integrywmsnative.MainApplication;
import it.integry.integrywmsnative.core.utility.UtilityLogger;
import it.integry.integrywmsnative.view.dialogs.exception.DialogException;
@@ -41,7 +41,7 @@ public class ExceptionsHandler implements Thread.UncaughtExceptionHandler {
UtilityLogger.errorMe(new Exception(ex));
} catch (Exception e) {
Log.e(TAG, "Exception Logger failed!", e);
System.exit(0);
MainApplication.exit();
}
appendToFile(new Exception(ex));

View File

@@ -0,0 +1,7 @@
package it.integry.integrywmsnative.core.expansion;
public interface RunnableWithReturn<R> {
R run();
}

View File

@@ -3,38 +3,36 @@ package it.integry.integrywmsnative.gest.main;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.appcompat.widget.AppCompatTextView;
import androidx.databinding.DataBindingUtil;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.GridLayoutManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import it.integry.integrywmsnative.MainActivity;
import it.integry.integrywmsnative.MainApplication;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.class_router.interfaces.IOrdiniVendita;
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
import it.integry.integrywmsnative.core.rest.watcher.ServerStatusChecker;
import it.integry.integrywmsnative.core.class_router.BaseCustomConfiguration;
import it.integry.integrywmsnative.core.class_router.ClassRouter;
import it.integry.integrywmsnative.core.class_router.configs.BaseMenuConfiguration;
import it.integry.integrywmsnative.core.class_router.configs.MenuConfiguration;
import it.integry.integrywmsnative.core.class_router.interfaces.ICustomConfiguration;
import it.integry.integrywmsnative.core.class_router.interfaces.IOrdiniVendita;
import it.integry.integrywmsnative.core.data_recover.ColliDataRecover;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
import it.integry.integrywmsnative.core.rest.watcher.ServerStatusChecker;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityResources;
@@ -99,10 +97,7 @@ public class MainFragment extends Fragment implements ITitledFragment, IScrollab
private void init() {
ServerStatusChecker.getInstance().addCallback(value -> {
if (value && mBindings.noConnectionTopLayout.isExpanded()) {
collapseNoConnectionLayout();
} else if (!value && !mBindings.noConnectionTopLayout.isExpanded()) {
expandNoConnectionLayout();
}

View File

@@ -41,6 +41,7 @@ import it.integry.integrywmsnative.core.model.MtbAart;
import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.model.VtbDest;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityProgress;
@@ -84,13 +85,18 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
private Dialog mCurrentProgress;
private GestioneEnum mCurrentGestione;
public PickingLiberoFragment() {
// Required empty public constructor
}
public static PickingLiberoFragment newInstance() {
public static PickingLiberoFragment newInstance(GestioneEnum gestioneEnum) {
PickingLiberoFragment fragment = new PickingLiberoFragment();
Bundle args = new Bundle();
args.putString("gestione", gestioneEnum.getText());
fragment.setArguments(args);
return fragment;
}
@@ -104,6 +110,8 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mCurrentGestione = GestioneEnum.fromString(getArguments().getString("gestione"));
}
@@ -120,10 +128,6 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
mViewModel.setListener(this);
// mViewModel.init(getActivity(), mBindings, mToolbarTitleText, () -> {
// ((IPoppableActivity) getActivity()).pop();
// });
mBindings.setLifecycleOwner(this);
mBindings.setView(this);
@@ -135,7 +139,7 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
this.initRecyclerView();
boolean flagAskCliente = SettingsManager.iDB().isFlagAskClienteInPickingLibero();
mViewModel.init(flagAskCliente);
mViewModel.init(flagAskCliente, mCurrentGestione);
return mBindings.getRoot();
}

View File

@@ -51,6 +51,7 @@ public class PickingLiberoViewModel {
private boolean mFlagAskCliente;
private GestioneEnum mDefaultGestione;
private Listener mListener;
@@ -68,8 +69,9 @@ public class PickingLiberoViewModel {
}
public void init(boolean flagAskCliente) {
this.mFlagAskCliente = flagAskCliente;
public void init(boolean flagAskCliente, GestioneEnum defaultGestione) {
this.mFlagAskCliente = defaultGestione == GestioneEnum.VENDITA && flagAskCliente;
this.mDefaultGestione = defaultGestione;
}
@@ -190,7 +192,8 @@ public class PickingLiberoViewModel {
private void createNewLU_PostClienteAsk(Integer customNumCollo, String customSerCollo, VtbDest vtbDest, Runnable onComplete) {
MtbColt mtbColt = new MtbColt();
mtbColt.initDefaultFields();
mtbColt.setGestione(GestioneEnum.VENDITA)
mtbColt.setGestione(mDefaultGestione)
.setPosizione(SettingsManager.i().userSession.depo.getCodMdep())
.setSegno(-1)
.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
@@ -246,8 +249,8 @@ public class PickingLiberoViewModel {
if (mtbAart.isFlagQtaCnfFissaBoolean()) {
qtaCnfDaPrelevare = mtbAart.getQtaCnf();
if(manualPickDTO.isEanPeso()) {
if(mtbAart.getUntMisRifPeso() == MtbAart.UntMisRifPesoEnum.M) {
if (manualPickDTO.isEanPeso()) {
if (mtbAart.getUntMisRifPeso() == MtbAart.UntMisRifPesoEnum.M) {
if (UtilityBigDecimal.equalsTo(mtbAart.getPesoKg(), BigDecimal.ZERO)) {
this.sendError(new InvalidPesoKGException());
} else {
@@ -262,9 +265,10 @@ public class PickingLiberoViewModel {
if (qtaColDaPrelevare != null && numCnfDaPrelevare == null) {
if(!mtbAart.isFlagQtaCnfFissaBoolean()) {
if (!mtbAart.isFlagQtaCnfFissaBoolean()) {
numCnfDaPrelevare = UtilityBigDecimal.divideAndRoundToInteger(qtaColDaPrelevare, mtbAart.getQtaCnf());
if(UtilityBigDecimal.equalsTo(numCnfDaPrelevare, BigDecimal.ZERO)) numCnfDaPrelevare = BigDecimal.ONE;
if (UtilityBigDecimal.equalsTo(numCnfDaPrelevare, BigDecimal.ZERO))
numCnfDaPrelevare = BigDecimal.ONE;
qtaCnfDaPrelevare = UtilityBigDecimal.divide(qtaColDaPrelevare, numCnfDaPrelevare);
} else {
numCnfDaPrelevare = UtilityBigDecimal.divideToInteger(qtaColDaPrelevare, mtbAart.getQtaCnf());
@@ -551,7 +555,6 @@ public class PickingLiberoViewModel {
loadRifULFromMtbColr(mtbColrToUpdate, mtbColtRif -> {
BigDecimal totalQtaAvailable = null;
BigDecimal totalNumCnfAvailable = null;
BigDecimal qtaCnfAvailable = null;
@@ -694,7 +697,7 @@ public class PickingLiberoViewModel {
public void closeLU(Runnable onComplete) {
if (mCurrentMtbColt == null) {
if(onComplete != null) onComplete.run();
if (onComplete != null) onComplete.run();
return;
}
@@ -707,7 +710,7 @@ public class PickingLiberoViewModel {
this.sendOnLoadingEnded();
this.mCurrentMtbColt = null;
if(onComplete != null) onComplete.run();
if (onComplete != null) onComplete.run();
});
} else {
mColliMagazzinoRESTConsumer.updateDataFine(mCurrentMtbColt, () -> {
@@ -715,7 +718,7 @@ public class PickingLiberoViewModel {
this.sendOnLoadingEnded();
this.mCurrentMtbColt = null;
if(onComplete != null) onComplete.run();
if (onComplete != null) onComplete.run();
}, this::sendError);
}
}, this::sendError);

View File

@@ -0,0 +1,6 @@
<vector android:height="128dp" android:viewportHeight="512"
android:viewportWidth="512" android:width="128dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#2958B7" android:pathData="M394.7,53.3H117.3L64,128v298.7c0,17.7 14.3,32 32,32h320c17.7,0 32,-14.3 32,-32V128L394.7,53.3z"/>
<path android:fillColor="#0B44A0" android:pathData="M128.3,74.7L90.2,128H192c0,35.3 28.7,64 64,64s64,-28.7 64,-64h101.8l-38.1,-53.3H128.3z"/>
<path android:fillColor="#3DDAE2" android:pathData="M328.8,232l-84.2,84.3l-40.1,-40.1l-23.2,23.2l63.3,63.2L352,255.2L328.8,232z"/>
</vector>

View File

@@ -0,0 +1,8 @@
<vector android:height="128dp" android:viewportHeight="512"
android:viewportWidth="512" android:width="128dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#455A64" android:pathData="M384,42.7H277.3c0,11.8 -9.6,21.3 -21.3,21.3s-21.3,-9.6 -21.3,-21.3H128c-23.5,0 -42.7,19.2 -42.7,42.7v341.3c0,23.5 19.2,42.7 42.7,42.7h256c23.5,0 42.7,-19.2 42.7,-42.7V85.3C426.7,61.9 407.5,42.7 384,42.7z"/>
<path android:fillColor="#FFFFFF" android:pathData="M384,437.3H128c-6.4,0 -10.7,-4.3 -10.7,-10.7V85.3c0,-6.4 4.3,-10.7 10.7,-10.7h256c6.4,0 10.7,4.3 10.7,10.7v341.3C394.7,433.1 390.4,437.3 384,437.3z"/>
<path android:fillColor="#90A4AE" android:pathData="M277.3,42.7c0,11.8 -9.6,21.3 -21.3,21.3s-21.3,-9.6 -21.3,-21.3H160v42.7c0,11.8 9.6,21.3 21.3,21.3h149.3c11.8,0 21.3,-9.6 21.3,-21.3V42.7H277.3z"/>
<path android:fillColor="#90A4AE" android:pathData="M256,0c-23.5,0 -42.7,19.2 -42.7,42.7s19.2,42.7 42.7,42.7s42.7,-19.2 42.7,-42.7S279.5,0 256,0zM256,64c-11.8,0 -21.3,-9.6 -21.3,-21.3s9.6,-21.3 21.3,-21.3s21.3,9.6 21.3,21.3S267.8,64 256,64z"/>
<path android:fillColor="#2958B7" android:pathData="M326.4,198.4l-96,96l-44.8,-45.9l-26.7,26.7l72.5,71.5l121.6,-121.6L326.4,198.4z"/>
</vector>

View File

@@ -0,0 +1,13 @@
<vector android:height="128dp" android:viewportHeight="512"
android:viewportWidth="512" android:width="128dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#607D8B" android:pathData="M139.8,352c-7.5,0 -12.8,-5.3 -13.9,-12.8L98.1,103.5c-2.1,-17 -16,-28.8 -32,-28.8H53.3V96h12.8c5.3,0 9.6,4.3 10.7,9.6l27.8,236.8c2.1,18.1 17,30.9 35.2,30.9H256V352H139.8z"/>
<path android:fillColor="#FFC107" android:pathData="M149.3,330.7h309.3v42.7H149.3V330.7z"/>
<path android:fillColor="#37474F" android:pathData="M437.3,405.3c0,17.7 -14.3,32 -32,32s-32,-14.3 -32,-32s14.3,-32 32,-32S437.3,387.7 437.3,405.3z"/>
<path android:fillColor="#37474F" android:pathData="M234.7,405.3c0,17.7 -14.3,32 -32,32s-32,-14.3 -32,-32s14.3,-32 32,-32S234.7,387.7 234.7,405.3z"/>
<path android:fillColor="#607D8B" android:pathData="M416,405.3c0,5.9 -4.8,10.7 -10.7,10.7s-10.7,-4.8 -10.7,-10.7s4.8,-10.7 10.7,-10.7S416,399.5 416,405.3z"/>
<path android:fillColor="#607D8B" android:pathData="M213.3,405.3c0,5.9 -4.8,10.7 -10.7,10.7s-10.7,-4.8 -10.7,-10.7s4.8,-10.7 10.7,-10.7S213.3,399.5 213.3,405.3z"/>
<path android:fillColor="#2958B7" android:pathData="M405.3,330.7H192c-11.8,0 -21.3,-9.6 -21.3,-21.3V96c0,-11.7 9.6,-21.3 21.3,-21.3h213.3c11.8,0 21.3,9.6 21.3,21.3v213.3C426.7,321.1 417.1,330.7 405.3,330.7z"/>
<path android:fillColor="#0000A5" android:pathData="M320,117.3h-42.7c-6.4,0 -10.7,-4.2 -10.7,-10.7c0,-6.4 4.3,-10.7 10.7,-10.7H320c6.4,0 10.7,4.3 10.7,10.7C330.7,113.1 326.4,117.3 320,117.3z"/>
<path android:fillColor="#0000A5" android:pathData="M320,256h-42.7c-6.4,0 -10.7,-4.3 -10.7,-10.7c0,-6.4 4.3,-10.7 10.7,-10.7H320c6.4,0 10.7,4.3 10.7,10.7C330.7,251.8 326.4,256 320,256z"/>
<path android:fillColor="#182CB7" android:pathData="M170.7,192h256v21.3h-256V192z"/>
</vector>

View File

@@ -186,6 +186,7 @@
</androidx.appcompat.widget.LinearLayoutCompat>
</RelativeLayout>

View File

@@ -227,6 +227,7 @@
<string name="permissions_denied">Tutti i permessi sono stati declinati, riapri l\'applicazione per continuare.</string>
<string name="notification_update_download">Download aggiornamento</string>
<string name="free_picking">Picking libero</string>
<string name="free_lav_picking">Picking libero</string>
<string name="free_picking_suggestion_1">Per iniziare clicca sul + in basso a destra</string>
<string name="free_picking_suggestion_2">Scansiona un articolo per iniziare</string>
<string name="free_picking_title_fragment">Picking libero</string>
@@ -262,11 +263,11 @@
<string name="general">Generale</string>
<string name="purchase">Acquisti</string>
<string name="checkout">Vendita</string>
<string name="manufacture">Lavorazione</string>
<string name="manufacture">Lav. terzi / Trasf. interni</string>
<string name="production">Produzione</string>
<string name="internal_handling">Movimentazione interna</string>
<string name="prod_ordine_produzione_title_fragment">Accettazione da produzione</string>
<string name="prod_ordine_lavorazione_title_fragment">Picking per lavorazione</string>
<string name="prod_ordine_produzione_title_fragment">Accettazione da ordine</string>
<string name="prod_ordine_lavorazione_title_fragment">Picking da ordine</string>
<string name="prod_versamento_materiale_title_fragment">Versamento materiale</string>
<string name="prod_recupero_materiale_title_fragment">Recupero materiale</string>

View File

@@ -17,6 +17,7 @@
<item name="nav_rettifica_giacenze" type="id" />
<item name="nav_versamento_merce" type="id" />
<item name="nav_free_picking" type="id" />
<item name="nav_free_lav_picking" type="id" />
<item name="nav_resi_fornitore" type="id" />
<item name="nav_resi_cliente" type="id" />
<item name="nav_prod_ordine_produzione" type="id" />

View File

@@ -227,6 +227,7 @@
<string name="permissions_denied">All permissions are required, please reopen the app.</string>
<string name="notification_update_download">Downloading update</string>
<string name="free_picking">Free Picking</string>
<string name="free_lav_picking">Free Picking</string>
<string name="free_picking_suggestion_1">Please press + button to start with picking</string>
<string name="free_picking_suggestion_2">Scan an item to start</string>
<string name="error_multiple_gest">Can\'t load orders of different type</string>
@@ -267,7 +268,7 @@
<string name="general">General</string>
<string name="purchase">Purchase</string>
<string name="checkout">Check out</string>
<string name="manufacture">Manufacture</string>
<string name="manufacture">Manufacture / Internal movement</string>
<string name="production">Production</string>
<string name="internal_handling">Internal handling</string>
<string name="prod_ordine_produzione_title_fragment">Production picking</string>
@@ -323,4 +324,5 @@
<string name="basket">Basket</string>
<string name="use">Use</string>
<string name="back">Back</string>
<string name="title_dynamic_gramm">Gramm Customization</string>
</resources>