Implementato databinding nelle componenti Room

This commit is contained in:
Giuseppe Scorrano 2020-09-08 12:01:24 +02:00
parent 1112983571
commit 077cff30c1
44 changed files with 893 additions and 533 deletions

View File

@ -47,9 +47,9 @@ android {
signingConfig signingConfigs.release
}
}
dataBinding {
enabled = true
}
android.buildFeatures.dataBinding true
compileOptions {
targetCompatibility 1.8
sourceCompatibility 1.8

View File

@ -1,47 +1,47 @@
package it.integry.integrywmsnative;
import android.content.Intent;
import androidx.annotation.IdRes;
import androidx.databinding.DataBindingUtil;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import com.google.android.material.navigation.NavigationView;
import androidx.core.view.GravityCompat;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.widget.SearchView;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.view.View;
import androidx.annotation.IdRes;
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.widget.SearchView;
import androidx.core.view.GravityCompat;
import androidx.databinding.DataBindingUtil;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import com.google.android.material.navigation.NavigationView;
import java.util.List;
import javax.inject.Inject;
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.data_store.db.AppDatabase;
import it.integry.integrywmsnative.core.expansion.BaseActivity;
import it.integry.integrywmsnative.core.expansion.OnSingleClickListener;
import it.integry.integrywmsnative.core.rest.watcher.ServerStatusChecker;
import it.integry.integrywmsnative.core.interfaces.IFilterableFragment;
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
import it.integry.integrywmsnative.core.interfaces.ISearcableFragment;
import it.integry.integrywmsnative.core.interfaces.ISelectAllFragment;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
import it.integry.integrywmsnative.core.rest.watcher.ServerStatusChecker;
import it.integry.integrywmsnative.core.update.UpdatesManager;
import it.integry.integrywmsnative.core.utility.UtilitySettings;
import it.integry.integrywmsnative.databinding.ActivityMainBinding;
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
import it.integry.integrywmsnative.gest.login.LoginActivity;
import it.integry.integrywmsnative.gest.main.MainFragment;
import it.integry.integrywmsnative.gest.settings.MainSettingsFragment;
@ -54,11 +54,17 @@ public class MainActivity extends BaseActivity
private boolean firstCheckExecution = true;
private boolean mIsOnline = false;
@Inject
AppDatabase mAppDatabase;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MainApplication.appComponent
.mainActivityComponent()
.create()
.inject(this);
mBinding = DataBindingUtil.inflate(LayoutInflater.from(this), R.layout.activity_main, null, false);
setContentView(mBinding.getRoot());
@ -148,7 +154,7 @@ public class MainActivity extends BaseActivity
break;
case R.id.nav_logout:
UtilitySettings.logout();
UtilitySettings.logout(this.mAppDatabase);
ServerStatusChecker.dispose();
startLoginActivity();

View File

@ -0,0 +1,15 @@
package it.integry.integrywmsnative;
import dagger.Subcomponent;
@Subcomponent
public interface MainActivityComponent {
@Subcomponent.Factory
interface Factory {
MainActivityComponent create();
}
void inject(MainActivity mainActivity);
}

View File

@ -0,0 +1,7 @@
package it.integry.integrywmsnative;
import dagger.Module;
@Module(subcomponents = MainActivityComponent.class)
public class MainActivityModule {
}

View File

@ -1,21 +1,11 @@
package it.integry.integrywmsnative;
import android.app.AlarmManager;
import android.app.Application;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.content.res.Configuration;
import android.content.res.Resources;
import dagger.Component;
import dagger.android.DaggerApplication;
import it.integry.integrywmsnative.core.context.AppContext;
import it.integry.integrywmsnative.core.data_store.db.AppDatabase;
import it.integry.integrywmsnative.core.data_store.db.dao.ArticoloGrigliaDao;
import it.integry.integrywmsnative.core.data_store.db.dao.ArticoloOrdineDao;
import it.integry.integrywmsnative.core.data_store.db.dao.GrigliaDao;
import it.integry.integrywmsnative.core.data_store.db.dao.OrdineDao;
import it.integry.integrywmsnative.core.data_store.db.RoomModule;
public class MainApplication extends Application {
@ -25,10 +15,10 @@ public class MainApplication extends Application {
// Reference to the application graph that is used across the whole app
public static MainApplicationComponent appComponent;
public static MainApplicationModule appModule;
public static RoomModule roomModule;
private AppContext appContext = new AppContext(this);
private static AppDatabase appDb;
// Called when the application is starting, before any other application objects have been created.
@ -37,12 +27,14 @@ public class MainApplication extends Application {
public void onCreate() {
super.onCreate();
appModule = new MainApplicationModule(MainApplication.this);
appComponent = DaggerMainApplicationComponent.create();
appModule = new MainApplicationModule(MainApplication.this, this);
roomModule = new RoomModule(this);
appComponent = DaggerMainApplicationComponent.builder()
.mainApplicationModule(appModule)
.roomModule(roomModule)
.build();
appContext.init();
appDb = AppDatabase.getDatabase(this);
//Stash.init(this);
res = getResources();
}
@ -61,25 +53,4 @@ public class MainApplication extends Application {
super.onLowMemory();
}
// DATABASE REPOSITORY FUNCTIONS
public static GrigliaDao getGrigliaRepository() {
return appDb.grigliaDao();
}
public static ArticoloGrigliaDao getArticoliGrigliaRepository() {
return appDb.articoloGrigliaDao();
}
public static OrdineDao getOrdiniRepository() {
return appDb.ordineDao();
}
public static ArticoloOrdineDao getArticoliOrdineRepository() {
return appDb.articoloOrdineDao();
}
public static void clearDB() {
new Thread(() -> appDb.clearAllTables()).start();
}
}

View File

@ -1,9 +1,38 @@
package it.integry.integrywmsnative;
import javax.inject.Singleton;
import dagger.Component;
import it.integry.integrywmsnative.core.data_store.db.RoomModule;
import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoComponent;
import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoModule;
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditComponent;
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditModule;
import it.integry.integrywmsnative.gest.pv_ordini_acquisto.PVOrdineAcquistoGrigliaComponent;
import it.integry.integrywmsnative.gest.pv_ordini_acquisto.PVOrdineAcquistoGrigliaModule;
import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeComponent;
import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeModule;
import it.integry.integrywmsnative.gest.spedizione.SpedizioneComponent;
import it.integry.integrywmsnative.gest.spedizione.SpedizioneModule;
// Definition of the Application graph
@Component(modules = {MainApplicationModule.class})
@Singleton
@Component(modules = {
MainApplicationModule.class,
RoomModule.class,
MainActivityModule.class,
PVOrdineAcquistoGrigliaModule.class,
PVOrdineAcquistoEditModule.class,
PickingLiberoModule.class,
RettificaGiacenzeModule.class,
SpedizioneModule.class})
public interface MainApplicationComponent {
MainActivityComponent.Factory mainActivityComponent();
PVOrdineAcquistoGrigliaComponent.Factory pvOrdineAcquistoGrigliaComponent();
PVOrdineAcquistoEditComponent.Factory pvOrdineAcquistoEditComponent();
PickingLiberoComponent.Factory pickingLiberoComponent();
RettificaGiacenzeComponent.Factory rettificaGiacenzeComponent();
SpedizioneComponent.Factory spedizioneComponent();
}

View File

@ -1,5 +1,6 @@
package it.integry.integrywmsnative;
import android.app.Application;
import android.content.Context;
import javax.inject.Singleton;
@ -18,9 +19,17 @@ import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
public class MainApplicationModule {
private final Context mContext;
private final Application mApplication;
public MainApplicationModule(Context context) {
public MainApplicationModule(Context context, Application application) {
this.mContext = context;
this.mApplication = application;
}
@Provides
@Singleton
Application providesApplication() {
return mApplication;
}
@Provides

View File

@ -1,9 +1,6 @@
package it.integry.integrywmsnative.core.data_store.db;
import android.content.Context;
import androidx.room.Database;
import androidx.room.Room;
import androidx.room.RoomDatabase;
import androidx.room.TypeConverters;
@ -23,7 +20,7 @@ import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
})
public abstract class AppDatabase extends RoomDatabase {
private static volatile AppDatabase INSTANCE;
// private AppDatabase mRoomInstance;
public abstract ArticoloGrigliaDao articoloGrigliaDao();
@ -33,19 +30,26 @@ public abstract class AppDatabase extends RoomDatabase {
public abstract ArticoloOrdineDao articoloOrdineDao();
public static AppDatabase getDatabase(final Context context) {
if (INSTANCE == null) {
synchronized (AppDatabase.class) {
if (INSTANCE == null) {
INSTANCE = Room.databaseBuilder(context.getApplicationContext(),
AppDatabase.class, "integry_wms")
.fallbackToDestructiveMigration()
.build();
}
}
}
return INSTANCE;
}
// public static AppDatabase getDatabase(final Context context) {
// if (INSTANCE == null) {
// synchronized (AppDatabase.class) {
// if (INSTANCE == null) {
// INSTANCE = Room.databaseBuilder(context.getApplicationContext(),
// AppDatabase.class, "integry_wms")
// .fallbackToDestructiveMigration()
// .build();
// }
// }
// }
// return INSTANCE;
// }
// public AppDatabase(Application application) {
// mRoomInstance = Room.databaseBuilder(application,
// AppDatabase.class, "integry_wms")
// .fallbackToDestructiveMigration()
// .build();
// }
}

View File

@ -0,0 +1,10 @@
package it.integry.integrywmsnative.core.data_store.db;
import javax.inject.Singleton;
import dagger.Component;
@Singleton
@Component(modules = {RoomModule.class})
public interface RoomComponent {
}

View File

@ -0,0 +1,7 @@
package it.integry.integrywmsnative.core.data_store.db;
public interface RoomComponentProvider {
RoomComponent provideRoomComponent();
}

View File

@ -0,0 +1,99 @@
package it.integry.integrywmsnative.core.data_store.db;
import android.app.Application;
import androidx.room.Room;
import javax.inject.Singleton;
import dagger.Module;
import dagger.Provides;
import it.integry.integrywmsnative.core.data_store.db.dao.ArticoloGrigliaDao;
import it.integry.integrywmsnative.core.data_store.db.dao.ArticoloOrdineDao;
import it.integry.integrywmsnative.core.data_store.db.dao.GrigliaDao;
import it.integry.integrywmsnative.core.data_store.db.dao.OrdineDao;
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliOrdineRepository;
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoloGrigliaRepository;
import it.integry.integrywmsnative.core.data_store.db.repository.GrigliaRepository;
import it.integry.integrywmsnative.core.data_store.db.repository.OrdineRepository;
import it.integry.integrywmsnative.core.data_store.db.repository.implementations.ArticoliGrigliaDataSource;
import it.integry.integrywmsnative.core.data_store.db.repository.implementations.ArticoliOrdineDataSource;
import it.integry.integrywmsnative.core.data_store.db.repository.implementations.GrigliaDataSource;
import it.integry.integrywmsnative.core.data_store.db.repository.implementations.OrdineDataSource;
@Module
public class RoomModule {
private AppDatabase appDatabase;
public RoomModule(Application application) {
appDatabase = Room.databaseBuilder(application,
AppDatabase.class, "integry_wms")
.fallbackToDestructiveMigration()
.build();
}
@Singleton
@Provides
AppDatabase providesRoomDatabase() {
return appDatabase;
}
@Singleton
@Provides
ArticoloGrigliaDao providesArticoloGrigliaDao(AppDatabase appDatabase) {
return appDatabase.articoloGrigliaDao();
}
@Singleton
@Provides
GrigliaDao providesGrigliaDao(AppDatabase appDatabase) {
return appDatabase.grigliaDao();
}
@Singleton
@Provides
OrdineDao providesOrdineDao(AppDatabase appDatabase) {
return appDatabase.ordineDao();
}
@Singleton
@Provides
ArticoloOrdineDao providesArticoloOrdineDao(AppDatabase appDatabase) {
return appDatabase.articoloOrdineDao();
}
@Singleton
@Provides
ArticoloGrigliaRepository providesArticoloGrigliaRepository(ArticoloGrigliaDao articoloGrigliaDao) {
return new ArticoliGrigliaDataSource(articoloGrigliaDao);
}
@Singleton
@Provides
ArticoliOrdineRepository providesArticoliOrdineRepository(ArticoloOrdineDao articoloOrdineDao) {
return new ArticoliOrdineDataSource(articoloOrdineDao);
}
@Singleton
@Provides
GrigliaRepository providesGrigliaRepository(GrigliaDao grigliaDao) {
return new GrigliaDataSource(grigliaDao);
}
@Singleton
@Provides
OrdineRepository providesOrdineRepository(OrdineDao ordineDao) {
return new OrdineDataSource(ordineDao);
}
}

View File

@ -1,88 +0,0 @@
package it.integry.integrywmsnative.core.data_store.db.repository;
import com.annimon.stream.Collectors;
import com.annimon.stream.Stream;
import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
import java.util.List;
import it.integry.integrywmsnative.MainApplication;
import it.integry.integrywmsnative.core.data_store.db.dao.ArticoloGrigliaDao;
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia;
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
public class ArticoliGrigliaRepository extends Repository{
ArticoloGrigliaDao mRepository;
public ArticoliGrigliaRepository() {
this.mRepository = MainApplication.getArticoliGrigliaRepository();
}
public void saveArticoliToGriglia(List<ArticoloGriglia> articoli, Griglia griglia, Runnable onSuccess, RunnableArgs<Exception> onFail) {
execute(()->{
try{
List<ArticoloGriglia> toUpdate = new ArrayList<>();
List<ArticoloGriglia> toInsert = new ArrayList<>();
List<String> codMarts = new ArrayList<>();
for (ArticoloGriglia art : articoli){
Integer id = mRepository.getIdArticoloByGrigliaAndBarcodeAndCodMart(griglia.getGrigliaId(),art.getBarCode(),art.getCodMart());
codMarts.add(art.getCodMart());
if (id != null){
art.setArticoloGrigliaId(id);
toUpdate.add(art);
}else{
toInsert.add(art);
}
}
mRepository.insertAll(toInsert);
mRepository.updateAll(toUpdate);
List<ArticoloGriglia> articoliGriglia = mRepository.getArticoliFromGriglia(griglia.getGrigliaId());
List<ArticoloGriglia> toDelete =Stream.of(articoliGriglia).filter(articolo-> !codMarts.contains(articolo.getCodMart())).toList();
mRepository.deleteList(toDelete);
onSuccess.run();
}catch (Exception e){
onFail.run(e);
}
});
}
public void findArticoloByBarcodeAndGriglia(String barcode, int idGriglia,RunnableArgs<ArticoloGriglia> onSuccess, RunnableArgs<Exception> onFail ){
execute(()->{
try{
onSuccess.run(mRepository.findArticoloByBarcodeAndGriglia(barcode, idGriglia));
}catch (Exception e){
onFail.run(e);
}
});
}
public void findArticoloByCodMartAndGriglia(String codMart, int idGriglia,RunnableArgs<ArticoloGriglia> onSuccess, RunnableArgs<Exception> onFail ){
execute(()->{
try{
onSuccess.run(mRepository.findArticoloByCodMartAndGriglia(codMart, idGriglia));
}catch (Exception e){
onFail.run(e);
}
});
}
public void findArticoloByScanAndGriglia(String scan, int idGriglia,RunnableArgs<ArticoloGriglia> onSuccess, RunnableArgs<Exception> onFail ){
execute(()->{
try{
ArticoloGriglia articolo = mRepository.findArticoloByCodMartAndGriglia(scan, idGriglia);
if (articolo == null){
articolo = mRepository.findArticoloByBarcodeAndGriglia(scan,idGriglia);
if (articolo==null){
String barcode= StringUtils.leftPad(scan,13,"0");
articolo = mRepository.findArticoloByBarcodeAndGriglia(barcode,idGriglia);
}
}
onSuccess.run(articolo);
}catch (Exception e){
onFail.run(e);
}
});
}
}

View File

@ -1,109 +1,24 @@
package it.integry.integrywmsnative.core.data_store.db.repository;
import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
import java.util.List;
import it.integry.integrywmsnative.MainApplication;
import it.integry.integrywmsnative.core.data_store.db.dao.ArticoloOrdineDao;
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
public class ArticoliOrdineRepository extends Repository {
public interface ArticoliOrdineRepository {
ArticoloOrdineDao mRepository;
void saveArticoliToOrdine(List<ArticoloOrdine> articoli, Runnable onSuccess, RunnableArgs<Exception> onFail);
public ArticoliOrdineRepository() {
this.mRepository = MainApplication.getArticoliOrdineRepository();
}
void saveArticoloToOrdine(ArticoloOrdine articolo, Runnable onSuccess, RunnableArgs<Exception> onFail);
public void saveArticoliToOrdine(List<ArticoloOrdine> articoli, Runnable onSuccess, RunnableArgs<Exception> onFail) {
execute(() -> {
try {
List<ArticoloOrdine> toUpdate = new ArrayList<>();
List<ArticoloOrdine> toInsert = new ArrayList<>();
for (ArticoloOrdine art : articoli) {
if (art.getArticoloOrdineId() > 0) {
toUpdate.add(art);
} else {
toInsert.add(art);
}
}
mRepository.insertAll(toInsert);
mRepository.updateAll(toUpdate);
onSuccess.run();
void findArticoloByOrdineAndBarcode(Ordine ordine, String barcode, RunnableArgs<ArticoloOrdine> onSuccess, RunnableArgs<Exception> onFail);
void findArticoloByScanAndOrdine(Ordine ordine, String barcode, RunnableArgs<ArticoloOrdine> onSuccess, RunnableArgs<Exception> onFail);
} catch (Exception e) {
onFail.run(e);
}
});
}
public void saveArticoloToOrdine(ArticoloOrdine articolo, Runnable onSuccess, RunnableArgs<Exception> onFail) {
execute(() -> {
try {
if (articolo.getArticoloOrdineId() > 0) {
mRepository.update(articolo);
} else {
mRepository.insert(articolo);
}
onSuccess.run();
} catch (Exception e) {
onFail.run(e);
}
});
}
void findArticoliByOrdine(Ordine ordine, RunnableArgs<List<ArticoloOrdine>> onLoad, RunnableArgs<Exception> onError);
public void findArticoloByOrdineAndBarcode(Ordine ordine, String barcode, RunnableArgs<ArticoloOrdine> onSuccess, RunnableArgs<Exception> onFail) {
execute(() -> {
try {
ArticoloOrdine articolo = mRepository.findArticoloByOrdineAndBarcode(ordine.getOrdineId(), barcode);
onSuccess.run(articolo);
} catch (Exception e) {
onFail.run(e);
}
});
}
public void findArticoloByScanAndOrdine(Ordine ordine, String barcode, RunnableArgs<ArticoloOrdine> onSuccess, RunnableArgs<Exception> onFail) {
execute(() -> {
try {
String scannedCode = barcode;
ArticoloOrdine articolo = mRepository.findArticoloByCodMartAndOrdine(ordine.getOrdineId(), scannedCode);
if (articolo == null){
articolo = mRepository.findArticoloByBarcodeAndOrdine(ordine.getOrdineId(), scannedCode);
if (articolo == null){
scannedCode= StringUtils.leftPad(scannedCode,13,'0');
articolo = mRepository.findArticoloByBarcodeAndOrdine(ordine.getOrdineId(), scannedCode);
}
}
onSuccess.run(articolo);
} catch (Exception e) {
onFail.run(e);
}
});
}
void deleteArticolo(ArticoloOrdine articolo, Runnable onSave, RunnableArgs<Exception> onError);
public void findArticoliByOrdine(Ordine ordine, RunnableArgs<List<ArticoloOrdine>> onLoad, RunnableArgs<Exception> onError) {
execute(() -> {
try {
onLoad.run(mRepository.findArticoliByOrdine(ordine.getOrdineId()));
} catch (Exception e) {
onError.run(e);
}
});
}
public void deleteArticolo(ArticoloOrdine articolo, Runnable onSave, RunnableArgs<Exception> onError) {
execute(()->{
try{
mRepository.delete(articolo);
onSave.run();
}catch (Exception e){
onError.run(e);
}
});
}
}

View File

@ -0,0 +1,19 @@
package it.integry.integrywmsnative.core.data_store.db.repository;
import java.util.List;
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia;
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
public interface ArticoloGrigliaRepository {
void saveArticoliToGriglia(List<ArticoloGriglia> articoli, Griglia griglia, Runnable onSuccess, RunnableArgs<Exception> onFail);
void findArticoloByBarcodeAndGriglia(String barcode, int idGriglia, RunnableArgs<ArticoloGriglia> onSuccess, RunnableArgs<Exception> onFail);
void findArticoloByCodMartAndGriglia(String codMart, int idGriglia, RunnableArgs<ArticoloGriglia> onSuccess, RunnableArgs<Exception> onFail);
void findArticoloByScanAndGriglia(String scan, int idGriglia, RunnableArgs<ArticoloGriglia> onSuccess, RunnableArgs<Exception> onFail);
}

View File

@ -2,66 +2,17 @@ package it.integry.integrywmsnative.core.data_store.db.repository;
import java.util.List;
import it.integry.integrywmsnative.MainApplication;
import it.integry.integrywmsnative.core.data_store.db.dao.GrigliaDao;
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
import it.integry.integrywmsnative.core.data_store.db.wrappers.GrigliaWrapper;
import it.integry.integrywmsnative.core.expansion.BaseActivity;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
public class GrigliaRepository extends Repository{
public interface GrigliaRepository {
private GrigliaDao mRepository;
void selectAll(RunnableArgs<List<Griglia>> onSuccess, RunnableArgs<Exception> onError);
public GrigliaRepository() {
this.mRepository = MainApplication.getGrigliaRepository();
}
void findByCodAlis(String codAlis , RunnableArgs<GrigliaWrapper> onSuccess, RunnableArgs<Exception> onError);
public void selectAll(RunnableArgs<List<Griglia>> onSuccess, RunnableArgs<Exception> onError){
Runnable query = ()->{
try{
onSuccess.run(mRepository.getAll());
}catch (Exception e){
onError.run(e);
}
};
execute(query);
}
void saveGriglia(Griglia griglia, RunnableArgs<Integer> onSuccess,RunnableArgs<Exception> onFail);
public void findByCodAlis(String codAlis , RunnableArgs<GrigliaWrapper> onSuccess, RunnableArgs<Exception> onError){
Runnable query = ()->{
try{
onSuccess.run(mRepository.findByCodAlis(codAlis));
}catch (Exception e){
onError.run(e);
}
};
execute(query);
}
public void saveGriglia(Griglia griglia, RunnableArgs<Integer> onSuccess,RunnableArgs<Exception> onFail) {
execute(()->{
try{
if (griglia.getGrigliaId() <= 0){
griglia.setGrigliaId((int) mRepository.insert(griglia));
}else{
mRepository.update(griglia);
}
onSuccess.run(griglia.getGrigliaId());
}catch (Exception e){
onFail.run(e);
}
});
}
public void findGrigliaById(int idGriglia, RunnableArgs<Griglia> onLoad, RunnableArgs<Exception> onFail) {
execute(()->{
try{
onLoad.run(mRepository.findGrigliaById(idGriglia));
}catch (Exception e){
onFail.run(e);
}
});
}
void findGrigliaById(int idGriglia, RunnableArgs<Griglia> onLoad, RunnableArgs<Exception> onFail);
}

View File

@ -2,86 +2,25 @@ package it.integry.integrywmsnative.core.data_store.db.repository;
import java.util.List;
import it.integry.integrywmsnative.MainApplication;
import it.integry.integrywmsnative.core.data_store.db.dao.OrdineDao;
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
import it.integry.integrywmsnative.core.data_store.db.view_model.OrdineWithGriglia;
import it.integry.integrywmsnative.core.data_store.db.wrappers.OrdineWrapper;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
public class OrdineRepository extends Repository {
public interface OrdineRepository {
private OrdineDao mRepository;
void selectAll(RunnableArgs<List<Ordine>> onSuccess, RunnableArgs<Exception> onError);
public OrdineRepository() {
this.mRepository = MainApplication.getOrdiniRepository();
}
void selectAllTransmitted(RunnableArgs<List<OrdineWithGriglia>> onSuccess, RunnableArgs<Exception> onError);
public void selectAll(RunnableArgs<List<Ordine>> onSuccess, RunnableArgs<Exception> onError) {
Runnable query = () -> {
try {
onSuccess.run(mRepository.getAll());
} catch (Exception e) {
onError.run(e);
}
};
execute(query);
}
void selectAllOpenOrders(Griglia griglia, RunnableArgs<List<OrdineWrapper>> onSuccess, RunnableArgs<Exception> onError);
public void selectAllTransmitted(RunnableArgs<List<OrdineWithGriglia>> onSuccess, RunnableArgs<Exception> onError) {
Runnable query = () -> {
try {
onSuccess.run(mRepository.getAllTrasnmitted());
} catch (Exception e) {
onError.run(e);
}
};
execute(query);
}
void insert(Ordine ordine, RunnableArgs<Integer> onSuccess, RunnableArgs<Exception> onError);
public void selectAllOpenOrders(Griglia griglia, RunnableArgs<List<OrdineWrapper>> onSuccess, RunnableArgs<Exception> onError) {
Runnable query = () -> {
try {
onSuccess.run(mRepository.getAllOpenOrdersByGriglia(griglia.getGrigliaId()));
} catch (Exception e) {
onError.run(e);
}
};
execute(query);
}
void updateOrder(Ordine ordine, RunnableArgs<Ordine> onSuccess, RunnableArgs<Exception> onError);
public void insert(Ordine ordine, RunnableArgs<Integer> onSuccess, RunnableArgs<Exception> onError) {
execute(() -> {
try {
Long id = mRepository.insert(ordine);
onSuccess.run(id.intValue());
} catch (Exception e) {
onError.run(e);
}
});
}
void delete(Ordine ordine, Runnable onSuccess, RunnableArgs<Exception> onError);
public void updateOrder(Ordine ordine, RunnableArgs<Ordine> onSuccess, RunnableArgs<Exception> onError) {
execute(() -> {
try {
mRepository.update(ordine);
onSuccess.run(ordine);
} catch (Exception e) {
onError.run(e);
}
});
}
public void delete(Ordine ordine, Runnable onSuccess, RunnableArgs<Exception> onError) {
execute(() -> {
try {
mRepository.delete(ordine);
onSuccess.run();
} catch (Exception e) {
onError.run(e);
}
});
}
}

View File

@ -0,0 +1,92 @@
package it.integry.integrywmsnative.core.data_store.db.repository.implementations;
import com.annimon.stream.Stream;
import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Inject;
import it.integry.integrywmsnative.core.data_store.db.dao.ArticoloGrigliaDao;
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia;
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoloGrigliaRepository;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
public class ArticoliGrigliaDataSource extends Repository implements ArticoloGrigliaRepository {
private final ArticoloGrigliaDao mArticoloGrigliaDao;
@Inject
public ArticoliGrigliaDataSource(ArticoloGrigliaDao articoloGrigliaDao) {
this.mArticoloGrigliaDao = articoloGrigliaDao;
}
public void saveArticoliToGriglia(List<ArticoloGriglia> articoli, Griglia griglia, Runnable onSuccess, RunnableArgs<Exception> onFail) {
execute(() -> {
try {
List<ArticoloGriglia> toUpdate = new ArrayList<>();
List<ArticoloGriglia> toInsert = new ArrayList<>();
List<String> codMarts = new ArrayList<>();
for (ArticoloGriglia art : articoli) {
Integer id = mArticoloGrigliaDao.getIdArticoloByGrigliaAndBarcodeAndCodMart(griglia.getGrigliaId(), art.getBarCode(), art.getCodMart());
codMarts.add(art.getCodMart());
if (id != null) {
art.setArticoloGrigliaId(id);
toUpdate.add(art);
} else {
toInsert.add(art);
}
}
mArticoloGrigliaDao.insertAll(toInsert);
mArticoloGrigliaDao.updateAll(toUpdate);
List<ArticoloGriglia> articoliGriglia = mArticoloGrigliaDao.getArticoliFromGriglia(griglia.getGrigliaId());
List<ArticoloGriglia> toDelete = Stream.of(articoliGriglia).filter(articolo -> !codMarts.contains(articolo.getCodMart())).toList();
mArticoloGrigliaDao.deleteList(toDelete);
onSuccess.run();
} catch (Exception e) {
onFail.run(e);
}
});
}
public void findArticoloByBarcodeAndGriglia(String barcode, int idGriglia, RunnableArgs<ArticoloGriglia> onSuccess, RunnableArgs<Exception> onFail) {
execute(() -> {
try {
onSuccess.run(mArticoloGrigliaDao.findArticoloByBarcodeAndGriglia(barcode, idGriglia));
} catch (Exception e) {
onFail.run(e);
}
});
}
public void findArticoloByCodMartAndGriglia(String codMart, int idGriglia, RunnableArgs<ArticoloGriglia> onSuccess, RunnableArgs<Exception> onFail) {
execute(() -> {
try {
onSuccess.run(mArticoloGrigliaDao.findArticoloByCodMartAndGriglia(codMart, idGriglia));
} catch (Exception e) {
onFail.run(e);
}
});
}
public void findArticoloByScanAndGriglia(String scan, int idGriglia, RunnableArgs<ArticoloGriglia> onSuccess, RunnableArgs<Exception> onFail) {
execute(() -> {
try {
ArticoloGriglia articolo = mArticoloGrigliaDao.findArticoloByCodMartAndGriglia(scan, idGriglia);
if (articolo == null) {
articolo = mArticoloGrigliaDao.findArticoloByBarcodeAndGriglia(scan, idGriglia);
if (articolo == null) {
String barcode = StringUtils.leftPad(scan, 13, "0");
articolo = mArticoloGrigliaDao.findArticoloByBarcodeAndGriglia(barcode, idGriglia);
}
}
onSuccess.run(articolo);
} catch (Exception e) {
onFail.run(e);
}
});
}
}

View File

@ -0,0 +1,114 @@
package it.integry.integrywmsnative.core.data_store.db.repository.implementations;
import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Inject;
import it.integry.integrywmsnative.core.data_store.db.dao.ArticoloOrdineDao;
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliOrdineRepository;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
public class ArticoliOrdineDataSource extends Repository implements ArticoliOrdineRepository {
private final ArticoloOrdineDao mArticoloOrdineDao;
@Inject
public ArticoliOrdineDataSource(ArticoloOrdineDao articoloOrdineDao) {
this.mArticoloOrdineDao = articoloOrdineDao;
}
public void saveArticoliToOrdine(List<ArticoloOrdine> articoli, Runnable onSuccess, RunnableArgs<Exception> onFail) {
execute(() -> {
try {
List<ArticoloOrdine> toUpdate = new ArrayList<>();
List<ArticoloOrdine> toInsert = new ArrayList<>();
for (ArticoloOrdine art : articoli) {
if (art.getArticoloOrdineId() > 0) {
toUpdate.add(art);
} else {
toInsert.add(art);
}
}
mArticoloOrdineDao.insertAll(toInsert);
mArticoloOrdineDao.updateAll(toUpdate);
onSuccess.run();
} catch (Exception e) {
onFail.run(e);
}
});
}
public void saveArticoloToOrdine(ArticoloOrdine articolo, Runnable onSuccess, RunnableArgs<Exception> onFail) {
execute(() -> {
try {
if (articolo.getArticoloOrdineId() > 0) {
mArticoloOrdineDao.update(articolo);
} else {
mArticoloOrdineDao.insert(articolo);
}
onSuccess.run();
} catch (Exception e) {
onFail.run(e);
}
});
}
public void findArticoloByOrdineAndBarcode(Ordine ordine, String barcode, RunnableArgs<ArticoloOrdine> onSuccess, RunnableArgs<Exception> onFail) {
execute(() -> {
try {
ArticoloOrdine articolo = mArticoloOrdineDao.findArticoloByOrdineAndBarcode(ordine.getOrdineId(), barcode);
onSuccess.run(articolo);
} catch (Exception e) {
onFail.run(e);
}
});
}
public void findArticoloByScanAndOrdine(Ordine ordine, String barcode, RunnableArgs<ArticoloOrdine> onSuccess, RunnableArgs<Exception> onFail) {
execute(() -> {
try {
String scannedCode = barcode;
ArticoloOrdine articolo = mArticoloOrdineDao.findArticoloByCodMartAndOrdine(ordine.getOrdineId(), scannedCode);
if (articolo == null) {
articolo = mArticoloOrdineDao.findArticoloByBarcodeAndOrdine(ordine.getOrdineId(), scannedCode);
if (articolo == null) {
scannedCode = StringUtils.leftPad(scannedCode, 13, '0');
articolo = mArticoloOrdineDao.findArticoloByBarcodeAndOrdine(ordine.getOrdineId(), scannedCode);
}
}
onSuccess.run(articolo);
} catch (Exception e) {
onFail.run(e);
}
});
}
public void findArticoliByOrdine(Ordine ordine, RunnableArgs<List<ArticoloOrdine>> onLoad, RunnableArgs<Exception> onError) {
execute(() -> {
try {
onLoad.run(mArticoloOrdineDao.findArticoliByOrdine(ordine.getOrdineId()));
} catch (Exception e) {
onError.run(e);
}
});
}
public void deleteArticolo(ArticoloOrdine articolo, Runnable onSave, RunnableArgs<Exception> onError) {
execute(() -> {
try {
mArticoloOrdineDao.delete(articolo);
onSave.run();
} catch (Exception e) {
onError.run(e);
}
});
}
}

View File

@ -0,0 +1,69 @@
package it.integry.integrywmsnative.core.data_store.db.repository.implementations;
import java.util.List;
import javax.inject.Inject;
import it.integry.integrywmsnative.core.data_store.db.dao.GrigliaDao;
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
import it.integry.integrywmsnative.core.data_store.db.repository.GrigliaRepository;
import it.integry.integrywmsnative.core.data_store.db.wrappers.GrigliaWrapper;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
public class GrigliaDataSource extends Repository implements GrigliaRepository {
private final GrigliaDao mGrigliaDao;
@Inject
public GrigliaDataSource(GrigliaDao grigliaDao) {
this.mGrigliaDao = grigliaDao;
}
public void selectAll(RunnableArgs<List<Griglia>> onSuccess, RunnableArgs<Exception> onError) {
Runnable query = () -> {
try {
onSuccess.run(mGrigliaDao.getAll());
} catch (Exception e) {
onError.run(e);
}
};
execute(query);
}
public void findByCodAlis(String codAlis, RunnableArgs<GrigliaWrapper> onSuccess, RunnableArgs<Exception> onError) {
Runnable query = () -> {
try {
onSuccess.run(mGrigliaDao.findByCodAlis(codAlis));
} catch (Exception e) {
onError.run(e);
}
};
execute(query);
}
public void saveGriglia(Griglia griglia, RunnableArgs<Integer> onSuccess, RunnableArgs<Exception> onFail) {
execute(() -> {
try {
if (griglia.getGrigliaId() <= 0) {
griglia.setGrigliaId((int) mGrigliaDao.insert(griglia));
} else {
mGrigliaDao.update(griglia);
}
onSuccess.run(griglia.getGrigliaId());
} catch (Exception e) {
onFail.run(e);
}
});
}
public void findGrigliaById(int idGriglia, RunnableArgs<Griglia> onLoad, RunnableArgs<Exception> onFail) {
execute(() -> {
try {
onLoad.run(mGrigliaDao.findGrigliaById(idGriglia));
} catch (Exception e) {
onFail.run(e);
}
});
}
}

View File

@ -0,0 +1,90 @@
package it.integry.integrywmsnative.core.data_store.db.repository.implementations;
import java.util.List;
import javax.inject.Inject;
import it.integry.integrywmsnative.core.data_store.db.dao.OrdineDao;
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
import it.integry.integrywmsnative.core.data_store.db.repository.OrdineRepository;
import it.integry.integrywmsnative.core.data_store.db.view_model.OrdineWithGriglia;
import it.integry.integrywmsnative.core.data_store.db.wrappers.OrdineWrapper;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
public class OrdineDataSource extends Repository implements OrdineRepository {
private OrdineDao mOrdineDao;
@Inject
public OrdineDataSource(OrdineDao ordineDao) {
this.mOrdineDao = ordineDao;
}
public void selectAll(RunnableArgs<List<Ordine>> onSuccess, RunnableArgs<Exception> onError) {
Runnable query = () -> {
try {
onSuccess.run(mOrdineDao.getAll());
} catch (Exception e) {
onError.run(e);
}
};
execute(query);
}
public void selectAllTransmitted(RunnableArgs<List<OrdineWithGriglia>> onSuccess, RunnableArgs<Exception> onError) {
Runnable query = () -> {
try {
onSuccess.run(mOrdineDao.getAllTrasnmitted());
} catch (Exception e) {
onError.run(e);
}
};
execute(query);
}
public void selectAllOpenOrders(Griglia griglia, RunnableArgs<List<OrdineWrapper>> onSuccess, RunnableArgs<Exception> onError) {
Runnable query = () -> {
try {
onSuccess.run(mOrdineDao.getAllOpenOrdersByGriglia(griglia.getGrigliaId()));
} catch (Exception e) {
onError.run(e);
}
};
execute(query);
}
public void insert(Ordine ordine, RunnableArgs<Integer> onSuccess, RunnableArgs<Exception> onError) {
execute(() -> {
try {
Long id = mOrdineDao.insert(ordine);
onSuccess.run(id.intValue());
} catch (Exception e) {
onError.run(e);
}
});
}
public void updateOrder(Ordine ordine, RunnableArgs<Ordine> onSuccess, RunnableArgs<Exception> onError) {
execute(() -> {
try {
mOrdineDao.update(ordine);
onSuccess.run(ordine);
} catch (Exception e) {
onError.run(e);
}
});
}
public void delete(Ordine ordine, Runnable onSuccess, RunnableArgs<Exception> onError) {
execute(() -> {
try {
mOrdineDao.delete(ordine);
onSuccess.run();
} catch (Exception e) {
onError.run(e);
}
});
}
}

View File

@ -1,4 +1,4 @@
package it.integry.integrywmsnative.core.data_store.db.repository;
package it.integry.integrywmsnative.core.data_store.db.repository.implementations;
public class Repository {

View File

@ -8,20 +8,18 @@ import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
import it.integry.integrywmsnative.core.data_store.db.repository.OrdineRepository;
import it.integry.integrywmsnative.core.data_store.db.view_model.ArticoloDTO;
import it.integry.integrywmsnative.core.data_store.db.view_model.GrigliaDTO;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.model.DtbOrdt;
import it.integry.integrywmsnative.core.rest.RESTBuilder;
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityLogger;
import it.integry.integrywmsnative.core.utility.UtilityThread;
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dto.ArtDTO;
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dto.OrdineDTO;
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dto.SaveDTO;
@ -41,6 +39,7 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer {
public void onResponse(Call<ServiceRESTResponse<GrigliaDTO>> call, Response<ServiceRESTResponse<GrigliaDTO>> response) {
analyzeAnswer(response, "getArticoliListino", griglia -> {
UtilityThread.executeParallel(() -> {
List<ArticoloDTO> listaArticoli = new ArrayList<>();
Stream.of(griglia.getGrigliaAcquistiChild())
.map(ArticoloDTO::getCodMart)
@ -60,6 +59,7 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer {
});
griglia.setGrigliaAcquistiChild(listaArticoli);
onSuccess.run(griglia);
});
}, onFailed);
}
@ -106,8 +106,7 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer {
ordine.setDataOrdS(dto.getDataOrd());
ordine.setCodMdep(dto.getCodMdep());
ordine.setNumOrd(dto.getNumOrd());
OrdineRepository repository = new OrdineRepository();
repository.updateOrder(ordine,onSuccess,onFailed);
onSuccess.run(ordine);
}else{
onFailed.run(new Exception("Nessun ordine generato"));
}

View File

@ -1,16 +1,15 @@
package it.integry.integrywmsnative.core.utility;
import it.integry.integrywmsnative.MainApplication;
import it.integry.integrywmsnative.core.data_store.db.AppDatabase;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.settings.SettingsModel;
public class UtilitySettings {
public static void logout(){
public static void logout(AppDatabase appDatabase){
SettingsManager.i().user = null;
SettingsManager.i().userSession = null;
MainApplication.clearDB();
UtilityThread.executeParallel(appDatabase::clearAllTables);
SettingsManager.update();
}

View File

@ -0,0 +1,9 @@
package it.integry.integrywmsnative.core.utility;
public class UtilityThread {
public static void executeParallel(Runnable runnable) {
new Thread(runnable).start();
}
}

View File

@ -1,13 +1,15 @@
package it.integry.integrywmsnative.gest.picking_libero;
import javax.inject.Singleton;
import dagger.Subcomponent;
import dagger.Component;
import it.integry.integrywmsnative.MainApplicationComponent;
@Singleton
@Component(modules = {PickingLiberoModule.class}, dependencies = {MainApplicationComponent.class})
@Subcomponent
public interface PickingLiberoComponent {
@Subcomponent.Factory
interface Factory {
PickingLiberoComponent create();
}
void inject(PickingLiberoFragment pickingLiberoFragment);
}

View File

@ -112,12 +112,10 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
// Inflate the layout for this fragment
mBindings = DataBindingUtil.inflate(inflater, R.layout.fragment_picking_libero, container, false);
PickingLiberoComponent pickingLiberoComponent = DaggerPickingLiberoComponent.builder()
.mainApplicationModule(MainApplication.appModule)
.mainApplicationComponent(MainApplication.appComponent)
.build();
pickingLiberoComponent.inject(this);
MainApplication.appComponent
.pickingLiberoComponent()
.create()
.inject(this);
mViewModel.setListener(this);

View File

@ -4,13 +4,12 @@ import javax.inject.Singleton;
import dagger.Module;
import dagger.Provides;
import it.integry.integrywmsnative.MainApplicationModule;
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.PrinterRESTConsumer;
@Module(includes = {MainApplicationModule.class})
@Module(subcomponents = {PickingLiberoComponent.class})
public class PickingLiberoModule {
@Provides

View File

@ -15,7 +15,10 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Inject;
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
import it.integry.integrywmsnative.MainApplication;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
@ -23,6 +26,10 @@ import it.integry.integrywmsnative.core.data_cache.DataCache;
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliOrdineRepository;
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoloGrigliaRepository;
import it.integry.integrywmsnative.core.data_store.db.repository.GrigliaRepository;
import it.integry.integrywmsnative.core.data_store.db.repository.OrdineRepository;
import it.integry.integrywmsnative.core.expansion.BaseActivity;
import it.integry.integrywmsnative.core.rest.consumers.PVOrdiniAcquistoRESTConsumer;
import it.integry.integrywmsnative.core.utility.UtilityDate;
@ -30,10 +37,10 @@ import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityProgress;
import it.integry.integrywmsnative.databinding.ActivityPvOrdineAcquistoEditBinding;
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.adapter.OrdineAcquistoArtListAdapter;
import it.integry.integrywmsnative.view.dialogs.DialogAskAction;
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dialog.EditArticoloDialog;
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.helper.PVEditOrderHelper;
import it.integry.integrywmsnative.ui.FabMenuCustomAnimations;
import it.integry.integrywmsnative.view.dialogs.DialogAskAction;
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleInputHelper;
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
@ -47,11 +54,27 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity {
private int mBarcodeScannerIstanceID;
private OrdineAcquistoArtListAdapter mAdapter;
@Inject
OrdineRepository mOrdineRepository;
@Inject
GrigliaRepository mGrigliaRepository;
@Inject
ArticoliOrdineRepository mArticoliOrdineRepository;
@Inject
ArticoloGrigliaRepository mArticoloGrigliaRepository;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mhelper = new PVEditOrderHelper(this);
MainApplication.appComponent
.pvOrdineAcquistoEditComponent()
.create()
.inject(this);
mhelper = new PVEditOrderHelper(mGrigliaRepository, mArticoliOrdineRepository, mArticoloGrigliaRepository);
mBinding = DataBindingUtil.setContentView(this, R.layout.activity_pv_ordine_acquisto_edit);
mBinding.setViewModel(this);
mOrdine = DataCache.retrieveItem(getIntent().getStringExtra("keyOrdine"));
@ -152,7 +175,7 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity {
}
private void addArticolo(ArticoloOrdine articoloOrdine) {
runOnUiThread(() -> EditArticoloDialog.make(this, articoloOrdine, articolo -> {
runOnUiThread(() -> EditArticoloDialog.make(this, mhelper, articoloOrdine, articolo -> {
BarcodeManager.enable();
if (articolo != null) {
Toast.makeText(this, "Articolo aggiunto all'ordine!", Toast.LENGTH_SHORT).show();
@ -197,6 +220,8 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity {
public void exportOrdine() {
final Dialog progress = UtilityProgress.createDefaultProgressDialog(this);
PVOrdiniAcquistoRESTConsumer.saveOrdine(mOrdine, mArticoli, mGriglia, (ordine) -> {
mOrdineRepository.updateOrder(ordine, ord -> {
progress.dismiss();
runOnUiThread(() -> {
Toast.makeText(this, "Ordine salvato con successo", Toast.LENGTH_SHORT).show();
@ -206,6 +231,11 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity {
progress.dismiss();
UtilityExceptions.defaultException(this, e);
}));
}, e -> runOnUiThread(() -> {
progress.dismiss();
UtilityExceptions.defaultException(this, e);
}));
}
@Override

View File

@ -0,0 +1,15 @@
package it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit;
import dagger.Subcomponent;
@Subcomponent
public interface PVOrdineAcquistoEditComponent {
@Subcomponent.Factory
interface Factory {
PVOrdineAcquistoEditComponent create();
}
void inject(PVOrdineAcquistoEditActivity pvOrdineAcquistoEditActivity);
}

View File

@ -0,0 +1,7 @@
package it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit;
import dagger.Module;
@Module(subcomponents = PVOrdineAcquistoEditComponent.class)
public class PVOrdineAcquistoEditModule {
}

View File

@ -37,10 +37,17 @@ public class EditArticoloDialog {
private boolean mLockedInput = false;
private EditArticoloDialog(Activity context, ArticoloOrdine articolo, RunnableArgs<ArticoloOrdine> onDialogDismiss) {
public static Dialog make(Activity context, PVEditOrderHelper helper, ArticoloOrdine articolo, RunnableArgs<ArticoloOrdine> onDialogDismiss) {
return new EditArticoloDialog(context, helper, articolo, onDialogDismiss).mDialog;
}
private EditArticoloDialog(Activity context, PVEditOrderHelper helper, ArticoloOrdine articolo, RunnableArgs<ArticoloOrdine> onDialogDismiss) {
mContext = context;
mArticolo = articolo;
mHelper = new PVEditOrderHelper(context);
mHelper = helper;
mSavedArt = null;
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
@ -52,11 +59,11 @@ public class EditArticoloDialog {
UtilityDialog.setTo90PercentWidth(mContext, mDialog);
mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
int qtaCnf = (int)Math.ceil(mArticolo.getQtaOrd() / mArticolo.getQtaCnf());
int qtaCnf = (int) Math.ceil(mArticolo.getQtaOrd() / mArticolo.getQtaCnf());
mBinding.qtaTot.setText(String.valueOf(mArticolo.getQtaOrd()));
mBinding.qtaCnf.setText(String.valueOf(qtaCnf));
mDialog.setOnShowListener(dialog -> {
UtilityFocus.focusTextBox(mContext,mBinding.qtaTot);
UtilityFocus.focusTextBox(mContext, mBinding.qtaTot);
});
mDialog.setOnDismissListener(dialog -> {
@ -74,7 +81,7 @@ public class EditArticoloDialog {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
setQtaOrd(s.toString().length() >0 ? Float.parseFloat(s.toString()) : 0);
setQtaOrd(s.toString().length() > 0 ? Float.parseFloat(s.toString()) : 0);
}
@Override
@ -89,7 +96,7 @@ public class EditArticoloDialog {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
setQtaCnf(s.toString().length() >0 ? Integer.parseInt(s.toString()) : 0);
setQtaCnf(s.toString().length() > 0 ? Integer.parseInt(s.toString()) : 0);
}
@Override
@ -98,49 +105,47 @@ public class EditArticoloDialog {
}
});
}
public void setQtaCnf(int qtaCnf){
if (mLockedInput){
public void setQtaCnf(int qtaCnf) {
if (mLockedInput) {
mLockedInput = false;
}else{
} else {
mLockedInput = true;
float qtaTot = qtaCnf * mArticolo.getQtaCnf();
mBinding.qtaTot.setText(String.valueOf(qtaTot));
}
}
public void setQtaOrd(float qtaOrd){
public void setQtaOrd(float qtaOrd) {
mArticolo.setQtaOrd(qtaOrd);
if (mLockedInput){
if (mLockedInput) {
mLockedInput = false;
}else{
} else {
mLockedInput = true;
mBinding.qtaCnf.setText(String.valueOf((int)Math.ceil(qtaOrd / mArticolo.getQtaCnf())));
mBinding.qtaCnf.setText(String.valueOf((int) Math.ceil(qtaOrd / mArticolo.getQtaCnf())));
}
}
public static Dialog make(Activity context, ArticoloOrdine articolo, RunnableArgs<ArticoloOrdine> onDialogDismiss) {
return new EditArticoloDialog(context, articolo, onDialogDismiss).mDialog;
}
public void saveAndExit(){
public void saveAndExit() {
final Dialog progress = UtilityProgress.createDefaultProgressDialog(mContext);
try{
try {
float qtaOrd = Float.parseFloat(mBinding.qtaTot.getText().toString());
if (qtaOrd <= 0){
if (qtaOrd <= 0) {
throw new Exception("La quantità ordinata deve essere maggiore di 0");
}
mArticolo.setQtaOrd(qtaOrd);
}catch (Exception e){
mContext.runOnUiThread(()-> UtilityExceptions.defaultException(mContext,e));
} catch (Exception e) {
mContext.runOnUiThread(() -> UtilityExceptions.defaultException(mContext, e));
progress.dismiss();
return;
}
mHelper.saveArticoloToOrdine(mArticolo, ()->{
mHelper.saveArticoloToOrdine(mArticolo, () -> {
mSavedArt = mArticolo;
progress.dismiss();
mDialog.dismiss();
},e-> mContext.runOnUiThread(()-> UtilityExceptions.defaultException(mContext,e)));
}, e -> mContext.runOnUiThread(() -> UtilityExceptions.defaultException(mContext, e)));
}
public ArticoloOrdine getArticolo() {

View File

@ -1,29 +1,24 @@
package it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.helper;
import android.content.Context;
import java.util.List;
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliGrigliaRepository;
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoloGrigliaRepository;
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliOrdineRepository;
import it.integry.integrywmsnative.core.data_store.db.repository.GrigliaRepository;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.rest.consumers.PVOrdiniAcquistoRESTConsumer;
public class PVEditOrderHelper {
private Context mContext;
private GrigliaRepository mGrigliaRepository;
private ArticoliOrdineRepository mArticoliOrdineRepository;
private ArticoliGrigliaRepository mArticoliGrigliaRepository;
private final GrigliaRepository mGrigliaRepository;
private final ArticoliOrdineRepository mArticoliOrdineRepository;
private final ArticoloGrigliaRepository mArticoliGrigliaRepository;
public PVEditOrderHelper(Context mContext) {
this.mContext = mContext;
mGrigliaRepository = new GrigliaRepository();
mArticoliOrdineRepository = new ArticoliOrdineRepository();
mArticoliGrigliaRepository = new ArticoliGrigliaRepository();
public PVEditOrderHelper(GrigliaRepository grigliaRepository, ArticoliOrdineRepository articoliOrdineRepository, ArticoloGrigliaRepository articoloGrigliaRepository) {
mGrigliaRepository = grigliaRepository;
mArticoliOrdineRepository = articoliOrdineRepository;
mArticoliGrigliaRepository = articoloGrigliaRepository;
}
public void checkArticolo(Ordine ordine, String barcode, RunnableArgs<ArticoloOrdine> onSuccess, RunnableArgs<Exception> onFail) {

View File

@ -0,0 +1,16 @@
package it.integry.integrywmsnative.gest.pv_ordini_acquisto;
import dagger.Subcomponent;
@Subcomponent
public interface PVOrdineAcquistoGrigliaComponent {
@Subcomponent.Factory
interface Factory {
PVOrdineAcquistoGrigliaComponent create();
}
void inject(PVOrdiniAcquistoGrigliaFragment pvOrdiniAcquistoGrigliaFragment);
}

View File

@ -0,0 +1,7 @@
package it.integry.integrywmsnative.gest.pv_ordini_acquisto;
import dagger.Module;
@Module(subcomponents = PVOrdineAcquistoGrigliaComponent.class)
public class PVOrdineAcquistoGrigliaModule {
}

View File

@ -21,15 +21,19 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Inject;
import it.integry.integrywmsnative.MainApplication;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.data_cache.DataCache;
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliOrdineRepository;
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoloGrigliaRepository;
import it.integry.integrywmsnative.core.data_store.db.repository.GrigliaRepository;
import it.integry.integrywmsnative.core.data_store.db.repository.OrdineRepository;
import it.integry.integrywmsnative.core.data_store.db.wrappers.OrdineWrapper;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
@ -37,10 +41,10 @@ import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityProgress;
import it.integry.integrywmsnative.databinding.FragmentPvOrdiniAcquistoBinding;
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditActivity;
import it.integry.integrywmsnative.gest.pv_ordini_acquisto.core.OrdineAcquistoPvOpenListAdapter;
import it.integry.integrywmsnative.gest.pv_ordini_acquisto.dialogs.DialogScanLisA;
import it.integry.integrywmsnative.gest.pv_ordini_acquisto.helper.OrdineAcquistoPvHelper;
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditActivity;
import it.integry.integrywmsnative.ui.ElevatedToolbar;
import it.integry.integrywmsnative.view.dialogs.DialogAskAction;
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
@ -54,9 +58,24 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled
private List<OrdineWrapper> mRenderedOrderList = new ArrayList<>();
private boolean mRedirectToNewOrder = true;
@Inject
GrigliaRepository mGrigliaRepository;
@Inject
ArticoliOrdineRepository mArticoliOrdineRepository;
@Inject
ArticoloGrigliaRepository mArticoloGrigliaRepository;
@Inject
OrdineRepository mOrdineRepository;
public PVOrdiniAcquistoGrigliaFragment() {
mHelper = new OrdineAcquistoPvHelper(getActivity());
// Gets appComponent from MyApplication available in the base Gradle module
MainApplication.appComponent
.pvOrdineAcquistoGrigliaComponent()
.create()
.inject(this);
}
public static PVOrdiniAcquistoGrigliaFragment newInstance() {
@ -73,6 +92,8 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_pv_ordini_acquisto, container, false);
mBinding.setViewmodel(this);
mHelper = new OrdineAcquistoPvHelper(getActivity(), mGrigliaRepository, mArticoloGrigliaRepository, mArticoliOrdineRepository, mOrdineRepository);
init();
initRecyclerView();
return mBinding.getRoot();
@ -81,9 +102,9 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled
private void init() {
BarcodeManager.enable();
DialogScanLisA.make(getActivity(), griglia -> {
DialogScanLisA.make(getActivity(), mGrigliaRepository, mHelper, griglia -> {
if (griglia == null) {
((IPoppableActivity) getActivity()).pop();
if (getActivity() != null) ((IPoppableActivity) getActivity()).pop();
} else {
setGriglia(griglia);
}
@ -109,8 +130,8 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled
private void fetchOrders() {
final Dialog progress = UtilityProgress.createDefaultProgressDialog(getActivity(), getString(R.string.ordini_a_aperti_progress));
OrdineRepository repository = new OrdineRepository();
repository.selectAllOpenOrders(mGriglia, (ordini) -> getActivity().runOnUiThread(() -> {
mOrdineRepository.selectAllOpenOrders(mGriglia, (ordini) -> getActivity().runOnUiThread(() -> {
progress.dismiss();
setOrdini(ordini);
}), (e) -> {
@ -127,7 +148,7 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled
mAdapter.updateItems(mRenderedOrderList);
if (mRenderedOrderList.size() <= 0 && mRedirectToNewOrder) {
createNewOrder();
}else{
} else {
mRedirectToNewOrder = false;
}
}
@ -160,7 +181,6 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled
}
private void selectAction(Ordine ordine) {
getActivity().runOnUiThread(() -> DialogAskAction.make(getActivity(),
Html.fromHtml(String.format(this.getString(R.string.ord_acq_testata), String.valueOf(ordine.getOrdineId()), UtilityDate.formatDate(ordine.getDataIns(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN))).toString(),

View File

@ -16,7 +16,7 @@ import java.util.ArrayList;
import java.util.List;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.data_store.db.repository.OrdineRepository;
import it.integry.integrywmsnative.core.data_store.db.repository.implementations.OrdineDataSource;
import it.integry.integrywmsnative.core.data_store.db.view_model.OrdineWithGriglia;
import it.integry.integrywmsnative.core.interfaces.IFilterableFragment;
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
@ -84,7 +84,9 @@ public class PVOrdiniAcquistoTransmittedListFragment extends Fragment implements
private void init(){
final Dialog progress = UtilityProgress.createDefaultProgressDialog(getActivity());
OrdineRepository repository = new OrdineRepository();
//TODO: resolve databinding
OrdineDataSource repository = null; //new OrdineDataSource();
repository.selectAllTransmitted((ordini)->{
mOriginalOrderList = ordini;

View File

@ -3,10 +3,8 @@ package it.integry.integrywmsnative.gest.pv_ordini_acquisto.dialogs;
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import androidx.databinding.DataBindingUtil;
@ -35,12 +33,16 @@ public class DialogScanLisA {
private RunnableArgs<Griglia> mOnDialogDismiss;
private OrdineAcquistoPvHelper mHelper;
private GrigliaRepository mGrigliaRepository;
private Griglia mGriglia;
private DialogScanLisA(Activity context, RunnableArgs<Griglia> onDialogDismiss) {
private DialogScanLisA(Activity context, GrigliaRepository grigliaRepository, OrdineAcquistoPvHelper helper, RunnableArgs<Griglia> onDialogDismiss) {
mOnDialogDismiss = null;
mContext = context;
mHelper = new OrdineAcquistoPvHelper(context);
mGrigliaRepository = grigliaRepository;
mHelper = helper;
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mGriglia = null;
mBinding = DataBindingUtil.inflate(inflater, R.layout.dialog_scan_codice_griglia, null, false);
@ -53,8 +55,8 @@ public class DialogScanLisA {
initBarcode();
}
public static Dialog make(Activity context, RunnableArgs<Griglia> onDialogDismiss) {
return new DialogScanLisA(context, onDialogDismiss).mDialog;
public static Dialog make(Activity context, GrigliaRepository grigliaRepository, OrdineAcquistoPvHelper helper, RunnableArgs<Griglia> onDialogDismiss) {
return new DialogScanLisA(context, grigliaRepository, helper, onDialogDismiss).mDialog;
}
@ -94,9 +96,8 @@ public class DialogScanLisA {
});
};
GrigliaRepository repository = new GrigliaRepository();
repository.findByCodAlis(data.getStringValue(), griglia -> {
mGrigliaRepository.findByCodAlis(data.getStringValue(), griglia -> {
if (griglia != null) {
griglia.getGriglia().setCountArticoli(griglia.getCountArticoli());
mHelper.updateGriglia(griglia.getGriglia(), onGrigliaAvailable, mOnError);

View File

@ -1,6 +1,6 @@
package it.integry.integrywmsnative.gest.pv_ordini_acquisto.helper;
import android.content.Context;
import android.app.Activity;
import java.util.ArrayList;
import java.util.Date;
@ -9,8 +9,8 @@ import java.util.List;
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia;
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliGrigliaRepository;
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliOrdineRepository;
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoloGrigliaRepository;
import it.integry.integrywmsnative.core.data_store.db.repository.GrigliaRepository;
import it.integry.integrywmsnative.core.data_store.db.repository.OrdineRepository;
import it.integry.integrywmsnative.core.data_store.db.view_model.ArticoloDTO;
@ -19,18 +19,18 @@ import it.integry.integrywmsnative.core.rest.consumers.PVOrdiniAcquistoRESTConsu
public class OrdineAcquistoPvHelper {
private Context mContext;
private Activity mContext;
private GrigliaRepository mGrigliaRepository;
private ArticoliGrigliaRepository mArticoliGrigliaRepository;
private ArticoloGrigliaRepository mArticoliGrigliaRepository;
private ArticoliOrdineRepository mArticoliOrdineRepository;
private OrdineRepository mOrdineRepository;
public OrdineAcquistoPvHelper(Context mContext) {
this.mContext = mContext;
this.mGrigliaRepository = new GrigliaRepository();
this.mArticoliGrigliaRepository = new ArticoliGrigliaRepository();
this.mArticoliOrdineRepository = new ArticoliOrdineRepository();
this.mOrdineRepository = new OrdineRepository();
public OrdineAcquistoPvHelper(Activity context, GrigliaRepository grigliaRepository, ArticoloGrigliaRepository articoloGrigliaRepository, ArticoliOrdineRepository articoliOrdineRepository, OrdineRepository ordineRepository) {
this.mContext = context;
this.mGrigliaRepository = grigliaRepository;
this.mArticoliGrigliaRepository = articoloGrigliaRepository;
this.mArticoliOrdineRepository = articoliOrdineRepository;
this.mOrdineRepository = ordineRepository;
}
@ -42,16 +42,16 @@ public class OrdineAcquistoPvHelper {
public void updateGriglia(Griglia griglia, RunnableArgs<Griglia> onSave, RunnableArgs<Exception> onFail) {
PVOrdiniAcquistoRESTConsumer.getArticoliListino(griglia.getCodAlis(), dto -> {
mContext.runOnUiThread(() -> {
if (dto.getGrigliaAcquistiChild().size() <= 0) {
Exception e = new Exception("La griglia selezionata (" + griglia.getCodAlis() + ") non esiste o non presenta articoli");
onFail.run(e);
onFail.run(new Exception("La griglia selezionata (" + griglia.getCodAlis() + ") non esiste o non presenta articoli"));
return;
}
griglia.setDescrLisa(dto.getDescrLisa());
griglia.setDescrDepo(dto.getDescrDepo());
griglia.setCountArticoli(dto.getGrigliaAcquistiChild().size());
mGrigliaRepository.saveGriglia(griglia, id -> saveLisAToGriglia(dto.getGrigliaAcquistiChild(), griglia, onSave, onFail), onFail);
});
}, onFail);
}
@ -62,7 +62,7 @@ public class OrdineAcquistoPvHelper {
toSave.setIdGriglia(griglia.getGrigliaId());
articoliGriglia.add(toSave);
}
mArticoliGrigliaRepository.saveArticoliToGriglia(articoliGriglia,griglia, () -> onSave.run(griglia), onFail);
mArticoliGrigliaRepository.saveArticoliToGriglia(articoliGriglia, griglia, () -> onSave.run(griglia), onFail);
}
public void createNewOrder(Griglia griglia, RunnableArgs<Ordine> onSuccess, RunnableArgs<Exception> onError) {

View File

@ -1,14 +1,16 @@
package it.integry.integrywmsnative.gest.rettifica_giacenze;
import javax.inject.Singleton;
import dagger.Subcomponent;
import dagger.Component;
import it.integry.integrywmsnative.MainApplicationComponent;
@Singleton
@Component(modules = {RettificaGiacenzeModule.class}, dependencies = {MainApplicationComponent.class})
@Subcomponent
public interface RettificaGiacenzeComponent {
@Subcomponent.Factory
interface Factory {
RettificaGiacenzeComponent create();
}
void inject(RettificaGiacenzeFragment rettificaGiacenzeFragment);
}

View File

@ -103,12 +103,10 @@ public class RettificaGiacenzeFragment extends Fragment implements ITitledFragme
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_main_rettifica_giacenze, container, false);
RettificaGiacenzeComponent rettificaGiacenzeComponent = DaggerRettificaGiacenzeComponent.builder()
.mainApplicationModule(MainApplication.appModule)
.mainApplicationComponent(MainApplication.appComponent)
.build();
rettificaGiacenzeComponent.inject(this);
MainApplication.appComponent
.rettificaGiacenzeComponent()
.create()
.inject(this);
mViewModel.setListener(this);

View File

@ -4,7 +4,6 @@ import javax.inject.Singleton;
import dagger.Module;
import dagger.Provides;
import it.integry.integrywmsnative.MainApplicationModule;
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
@ -12,7 +11,7 @@ import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
import it.integry.integrywmsnative.gest.rettifica_giacenze.core.RettificaGiacenzeRESTConsumer;
@Module(includes = {MainApplicationModule.class})
@Module(subcomponents = RettificaGiacenzeComponent.class)
public class RettificaGiacenzeModule {

View File

@ -109,12 +109,10 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
mBindings = DataBindingUtil.setContentView(this, R.layout.activity_spedizione);
SpedizioneComponent spedizioneComponent = DaggerSpedizioneComponent.builder()
.mainApplicationModule(MainApplication.appModule)
.mainApplicationComponent(MainApplication.appComponent)
.build();
spedizioneComponent.inject(this);
MainApplication.appComponent
.spedizioneComponent()
.create()
.inject(this);
mViewmodel.setListeners(this);

View File

@ -1,14 +1,16 @@
package it.integry.integrywmsnative.gest.spedizione;
import javax.inject.Singleton;
import dagger.Subcomponent;
import dagger.Component;
import it.integry.integrywmsnative.MainApplicationComponent;
@Singleton
@Component(modules = {SpedizioneModule.class}, dependencies = {MainApplicationComponent.class})
@Subcomponent
public interface SpedizioneComponent {
@Subcomponent.Factory
interface Factory {
SpedizioneComponent create();
}
void inject(SpedizioneActivity spedizioneActivity);
}

View File

@ -4,7 +4,6 @@ import javax.inject.Singleton;
import dagger.Module;
import dagger.Provides;
import it.integry.integrywmsnative.MainApplicationModule;
import it.integry.integrywmsnative.core.data_recover.ColliDataRecoverService;
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
@ -13,7 +12,7 @@ import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentViewModel;
@Module(includes = {MainApplicationModule.class})
@Module(subcomponents = SpedizioneComponent.class)
public class SpedizioneModule {
@Provides