diff --git a/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java b/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java index dc9d9392..29167b5c 100644 --- a/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java +++ b/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java @@ -61,6 +61,7 @@ import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dialog.DialogEdi import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dialog.DialogEditArticoloModule; import it.integry.integrywmsnative.gest.pv_ordini_acquisto.PVOrdiniAcquistoGrigliaComponent; import it.integry.integrywmsnative.gest.pv_ordini_acquisto.PVOrdiniAcquistoGrigliaModule; +import it.integry.integrywmsnative.gest.pv_ordini_acquisto.dialogs.DialogScanLisAComponent; import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeComponent; import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeModule; import it.integry.integrywmsnative.gest.spedizione.SpedizioneComponent; @@ -200,6 +201,8 @@ public interface MainApplicationComponent { DialogAskMagazzinoProssimitaComponent.Factory dialogAskMagazzinoProssimitaComponent(); + DialogScanLisAComponent.Factory dialogScanLisAComponent(); + DialogChooseBatchLotComponent.Factory dialogChooseBatchLotComponent(); DialogRowInfoProdFabbisognoLineeProdComponent.Factory dialogRowInfoProdFabbisognoLineeProdComponent(); diff --git a/app/src/main/java/it/integry/integrywmsnative/MainApplicationModule.java b/app/src/main/java/it/integry/integrywmsnative/MainApplicationModule.java index 33a0d4a4..be87d28a 100644 --- a/app/src/main/java/it/integry/integrywmsnative/MainApplicationModule.java +++ b/app/src/main/java/it/integry/integrywmsnative/MainApplicationModule.java @@ -1,6 +1,13 @@ package it.integry.integrywmsnative; import android.app.Application; +import android.os.Handler; +import android.os.Looper; + +import androidx.core.os.HandlerCompat; + +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; import javax.inject.Singleton; @@ -24,6 +31,7 @@ import it.integry.integrywmsnative.core.rest.consumers.GiacenzaRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.MagazzinoRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.MesRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer; +import it.integry.integrywmsnative.core.rest.consumers.PVOrdiniAcquistoRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.ProductionLinesRESTConsumer; @@ -50,6 +58,18 @@ public class MainApplicationModule { return mApplication; } + @Provides + @Singleton + public static ExecutorService providesExecutorService() { + return Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors()); + } + + @Provides + @Singleton + public static Handler providesMainThreadHandler() { + return HandlerCompat.createAsync(Looper.getMainLooper()); + } + @Provides @Singleton AppContext providesAppContext() { @@ -172,6 +192,12 @@ public class MainApplicationModule { return new SystemRESTConsumer(); } + @Provides + @Singleton + PVOrdiniAcquistoRESTConsumer providesPVOrdiniAcquistoRESTConsumer(MagazzinoRESTConsumer magazzinoRESTConsumer) { + return new PVOrdiniAcquistoRESTConsumer(magazzinoRESTConsumer); + } + @Provides @Singleton PosizioniRESTConsumer providesPosizioniRESTConsumer(SystemRESTConsumer systemRESTConsumer) { @@ -186,8 +212,8 @@ public class MainApplicationModule { @Provides @Singleton - DocInterniRESTConsumer provideDocInterniRESTConsumer() { - return new DocInterniRESTConsumer(); + DocInterniRESTConsumer provideDocInterniRESTConsumer(MagazzinoRESTConsumer magazzinoRESTConsumer) { + return new DocInterniRESTConsumer(magazzinoRESTConsumer); } @Provides diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/RoomModule.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/RoomModule.java index b2577066..8aa80e60 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/RoomModule.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/RoomModule.java @@ -1,9 +1,12 @@ package it.integry.integrywmsnative.core.data_store.db; import android.app.Application; +import android.os.Handler; import androidx.room.Room; +import java.util.concurrent.ExecutorService; + import javax.inject.Singleton; import dagger.Module; @@ -17,7 +20,7 @@ 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.MtbColrRepository; +import it.integry.integrywmsnative.core.data_store.db.repository.MtbColrDataSource; import it.integry.integrywmsnative.core.data_store.db.repository.MtbColtRepository; import it.integry.integrywmsnative.core.data_store.db.repository.OrdineRepository; import it.integry.integrywmsnative.core.data_store.db.repository.implementations.ArticoliGrigliaDataSource; @@ -92,38 +95,38 @@ public class RoomModule { @Singleton @Provides - ArticoloGrigliaRepository providesArticoloGrigliaRepository(ArticoloGrigliaDao articoloGrigliaDao) { - return new ArticoliGrigliaDataSource(articoloGrigliaDao); + ArticoloGrigliaRepository providesArticoloGrigliaRepository(ExecutorService executorService, Handler handler, ArticoloGrigliaDao articoloGrigliaDao) { + return new ArticoliGrigliaDataSource(executorService, handler, articoloGrigliaDao); } @Singleton @Provides - ArticoliOrdineRepository providesArticoliOrdineRepository(ArticoloOrdineDao articoloOrdineDao) { - return new ArticoliOrdineDataSource(articoloOrdineDao); + ArticoliOrdineRepository providesArticoliOrdineRepository(ExecutorService executorService, Handler handler, ArticoloOrdineDao articoloOrdineDao) { + return new ArticoliOrdineDataSource(executorService, handler, articoloOrdineDao); } @Singleton @Provides - GrigliaRepository providesGrigliaRepository(GrigliaDao grigliaDao) { - return new GrigliaDataSource(grigliaDao); + GrigliaRepository providesGrigliaRepository(ExecutorService executorService, Handler handler, GrigliaDao grigliaDao) { + return new GrigliaDataSource(executorService, handler, grigliaDao); } @Singleton @Provides - OrdineRepository providesOrdineRepository(OrdineDao ordineDao) { - return new OrdineDataSource(ordineDao); + OrdineRepository providesOrdineRepository(ExecutorService executorService, Handler handler, OrdineDao ordineDao) { + return new OrdineDataSource(executorService, handler, ordineDao); } @Singleton @Provides - MtbColtRepository providesMtbColtRepository(MtbColtDao mtbColtDao) { - return new SqlMtbColtDataSource(mtbColtDao); + MtbColtRepository providesMtbColtRepository(ExecutorService executorService, Handler handler, MtbColtDao mtbColtDao) { + return new SqlMtbColtDataSource(executorService, handler, mtbColtDao); } @Singleton @Provides - MtbColrRepository providesMtbColrRepository(MtbColrDao mtbColrDao) { - return new SqlMtbColrDataSource(mtbColrDao); + MtbColrDataSource providesMtbColrRepository(ExecutorService executorService, Handler handler, MtbColrDao mtbColrDao) { + return new SqlMtbColrDataSource(executorService, handler, mtbColrDao); } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/MtbColrDao.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/MtbColrDao.java index 6ab430fd..f5d16abf 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/MtbColrDao.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/MtbColrDao.java @@ -9,7 +9,6 @@ import androidx.room.Update; import java.util.List; import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColr; -import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColt; @Dao public interface MtbColrDao { @@ -26,5 +25,5 @@ public interface MtbColrDao { void delete(SqlMtbColr mtbColr); @Query("SELECT * from mtb_colr where id_collo = :idDocument") - List getDocumentRows(int idDocument); + List getDocumentRows(long idDocument); } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/MtbColrRepository.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/MtbColrDataSource.java similarity index 79% rename from app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/MtbColrRepository.java rename to app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/MtbColrDataSource.java index 30741319..ee949079 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/MtbColrRepository.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/MtbColrDataSource.java @@ -3,19 +3,18 @@ package it.integry.integrywmsnative.core.data_store.db.repository; import java.util.List; import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColr; -import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColt; import it.integry.integrywmsnative.core.expansion.RunnableArgs; -public interface MtbColrRepository { +public interface MtbColrDataSource { void selectAll(RunnableArgs> onSuccess, RunnableArgs onError); + void selectAllByDocumentID(long documentID, RunnableArgs> onSuccess, RunnableArgs onError); + void insert(SqlMtbColr mtbColr, RunnableArgs onSuccess, RunnableArgs onError); void update(SqlMtbColr mtbColr, RunnableArgs onSuccess, RunnableArgs onError); void delete(SqlMtbColr mtbColr, Runnable onSuccess, RunnableArgs onError); - void getDocumentRows(SqlMtbColt sqlMtbColt, RunnableArgs> onSuccess, RunnableArgs onError); - } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/ArticoliGrigliaDataSource.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/ArticoliGrigliaDataSource.java index da7ecbeb..3fecc7e7 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/ArticoliGrigliaDataSource.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/ArticoliGrigliaDataSource.java @@ -1,5 +1,7 @@ package it.integry.integrywmsnative.core.data_store.db.repository.implementations; +import android.os.Handler; + import com.annimon.stream.Stream; import org.apache.commons.lang3.StringUtils; @@ -9,9 +11,8 @@ import java.util.HashMap; import java.util.List; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; -import java.util.concurrent.Executors; +import java.util.concurrent.ExecutorService; import java.util.concurrent.Future; -import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; import javax.inject.Inject; @@ -21,24 +22,29 @@ 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; +import it.integry.integrywmsnative.core.utility.UtilityHashMap; -public class ArticoliGrigliaDataSource extends Repository implements ArticoloGrigliaRepository { +public class ArticoliGrigliaDataSource extends BaseDataSource implements ArticoloGrigliaRepository { private final ArticoloGrigliaDao mArticoloGrigliaDao; @Inject - public ArticoliGrigliaDataSource(ArticoloGrigliaDao articoloGrigliaDao) { + public ArticoliGrigliaDataSource(ExecutorService executorService, + Handler handler, + ArticoloGrigliaDao articoloGrigliaDao) { + super(executorService, handler); this.mArticoloGrigliaDao = articoloGrigliaDao; } - public void saveArticoliToGriglia(List updatedArts, Griglia griglia, Runnable onSuccess, RunnableArgs onFail) { - execute(() -> { - try { - var tmp = calcItemsToInsertAndUpdate(updatedArts); - var toInsert = (List) tmp.get("toInsert"); - var toUpdate = (List) tmp.get("toUpdate"); - var codMarts = (List) tmp.get("codMarts"); + public void saveArticoliToGriglia(List updatedArts, Griglia griglia, Runnable onSuccess, RunnableArgs onError) { + try { + var tmp = calcItemsToInsertAndUpdate(updatedArts); + var toInsert = UtilityHashMap.>getValue(tmp, "toInsert"); + var toUpdate = UtilityHashMap.>getValue(tmp, "toUpdate"); + var codMarts = UtilityHashMap.>getValue(tmp, "codMarts"); + + executorService.execute(() -> { mArticoloGrigliaDao.insertAll(toInsert); mArticoloGrigliaDao.updateAll(toUpdate); @@ -46,11 +52,12 @@ public class ArticoliGrigliaDataSource extends Repository implements ArticoloGri List toDelete = Stream.of(articoliGriglia).filter(articolo -> !codMarts.contains(articolo.getCodMart())).toList(); mArticoloGrigliaDao.deleteList(toDelete); - onSuccess.run(); - } catch (Exception e) { - onFail.run(e); - } - }); + handler.post(onSuccess); + }); + + } catch (Exception e) { + onError.run(e); + } } private HashMap calcItemsToInsertAndUpdate(List updatedArts) throws InterruptedException, ExecutionException { @@ -58,12 +65,11 @@ public class ArticoliGrigliaDataSource extends Repository implements ArticoloGri var toUpdate = new ArrayList(); var codMarts = new ArrayList(); - int cores = Runtime.getRuntime().availableProcessors(); - ThreadPoolExecutor executor = (ThreadPoolExecutor) Executors.newFixedThreadPool(cores); List> calls = new ArrayList<>(); for (int i = 0; i < updatedArts.size(); i++) { int finalI = i; + Callable callableTask = () -> { var updatedArt = updatedArts.get(finalI); Integer id = mArticoloGrigliaDao.getIdArticoloByGrigliaAndBarcodeAndCodMart(updatedArt.getIdGriglia(), updatedArt.getBarCode(), updatedArt.getCodMart()); @@ -78,7 +84,7 @@ public class ArticoliGrigliaDataSource extends Repository implements ArticoloGri calls.add(callableTask); } - List> futures = executor.invokeAll(calls, Long.MAX_VALUE, TimeUnit.MILLISECONDS); + List> futures = executorService.invokeAll(calls, Long.MAX_VALUE, TimeUnit.MILLISECONDS); for (Future future : futures) { if (future.isDone()) { @@ -99,51 +105,38 @@ public class ArticoliGrigliaDataSource extends Repository implements ArticoloGri return tmp; } - public void findArticoloByBarcodeAndGriglia(String barcode, int idGriglia, RunnableArgs onSuccess, RunnableArgs onFail) { - execute(() -> { - try { - onSuccess.run(mArticoloGrigliaDao.findArticoloByBarcodeAndGriglia(barcode, idGriglia)); - } catch (Exception e) { - onFail.run(e); - } - }); + public void findArticoloByBarcodeAndGriglia(String barcode, int idGriglia, RunnableArgs onSuccess, RunnableArgs onError) { + execute(() -> mArticoloGrigliaDao.findArticoloByBarcodeAndGriglia(barcode, idGriglia), onSuccess, onError); } - public void findArticoloByCodMartAndGriglia(String codMart, int idGriglia, RunnableArgs onSuccess, RunnableArgs onFail) { - execute(() -> { - try { - onSuccess.run(mArticoloGrigliaDao.findArticoloByCodMartAndGriglia(codMart, idGriglia)); - } catch (Exception e) { - onFail.run(e); - } - }); + public void findArticoloByCodMartAndGriglia(String codMart, int idGriglia, RunnableArgs onSuccess, RunnableArgs onError) { + execute(() -> mArticoloGrigliaDao.findArticoloByCodMartAndGriglia(codMart, idGriglia), onSuccess, onError); } - public void findArticoloByScanAndGriglia(String scan, int idGriglia, RunnableArgs onSuccess, RunnableArgs onFail) { - execute(() -> { + public void findArticoloByScanAndGriglia(String scan, int idGriglia, RunnableArgs onSuccess, RunnableArgs onError) { + + executorService.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); + + if (articolo == null) { + String barcode = StringUtils.leftPad(scan, 13, "0"); + articolo = mArticoloGrigliaDao.findArticoloByBarcodeAndGriglia(barcode, idGriglia); + } + + final ArticoloGriglia finalArticolo = articolo; + handler.post(() -> onSuccess.run(finalArticolo)); } catch (Exception e) { - onFail.run(e); + onError.run(e); } }); } - public void findNewArticoliInGrigla(int idGriglia, RunnableArgs> onSuccess, RunnableArgs onFail) { - execute(() -> { - try { - onSuccess.run(mArticoloGrigliaDao.getNewArticoliInGriglia(idGriglia)); - } catch (Exception e) { - onFail.run(e); - } - }); + public void findNewArticoliInGrigla(int idGriglia, RunnableArgs> onSuccess, RunnableArgs onError) { + execute(() -> mArticoloGrigliaDao.getNewArticoliInGriglia(idGriglia), onSuccess, onError); } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/ArticoliOrdineDataSource.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/ArticoliOrdineDataSource.java index cd1c3403..f82cac17 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/ArticoliOrdineDataSource.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/ArticoliOrdineDataSource.java @@ -1,11 +1,14 @@ package it.integry.integrywmsnative.core.data_store.db.repository.implementations; +import android.os.Handler; + import com.annimon.stream.Stream; import org.apache.commons.lang3.StringUtils; import java.util.ArrayList; import java.util.List; +import java.util.concurrent.ExecutorService; import javax.inject.Inject; @@ -16,17 +19,20 @@ import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliOrdineR import it.integry.integrywmsnative.core.data_store.db.wrappers.ArticoloOrdineWrapper; import it.integry.integrywmsnative.core.expansion.RunnableArgs; -public class ArticoliOrdineDataSource extends Repository implements ArticoliOrdineRepository { +public class ArticoliOrdineDataSource extends BaseDataSource implements ArticoliOrdineRepository { private final ArticoloOrdineDao mArticoloOrdineDao; @Inject - public ArticoliOrdineDataSource(ArticoloOrdineDao articoloOrdineDao) { + public ArticoliOrdineDataSource(ExecutorService executorService, + Handler handler, + ArticoloOrdineDao articoloOrdineDao) { + super(executorService, handler); this.mArticoloOrdineDao = articoloOrdineDao; } - public void saveArticoliToOrdine(List articoli, Runnable onSuccess, RunnableArgs onFail) { - execute(() -> { + public void saveArticoliToOrdine(List articoli, Runnable onSuccess, RunnableArgs onError) { + executorService.execute(() -> { try { List toUpdate = new ArrayList<>(); List toInsert = new ArrayList<>(); @@ -41,87 +47,72 @@ public class ArticoliOrdineDataSource extends Repository implements ArticoliOrdi mArticoloOrdineDao.insert(newArt); } mArticoloOrdineDao.updateAll(toUpdate); - onSuccess.run(); - + handler.post(onSuccess); } catch (Exception e) { - onFail.run(e); + onError.run(e); } }); } - public void saveArticoloToOrdine(ArticoloOrdine articolo, Runnable onSuccess, RunnableArgs onFail) { - execute(() -> { - try { - if (articolo.getArticoloOrdineId() != null && articolo.getArticoloOrdineId() > 0) { - mArticoloOrdineDao.update(articolo); - } else { - mArticoloOrdineDao.insert(articolo); - } - onSuccess.run(); - } catch (Exception e) { - onFail.run(e); - } - }); + public void saveArticoloToOrdine(ArticoloOrdine articolo, Runnable onSuccess, RunnableArgs onError) { + if (articolo.getArticoloOrdineId() != null && articolo.getArticoloOrdineId() > 0) { + execute(() -> mArticoloOrdineDao.update(articolo), onSuccess, onError); + } else { + execute(() -> mArticoloOrdineDao.insert(articolo), onSuccess, onError); + } } - public void findArticoloByOrdineAndBarcode(Ordine ordine, String barcode, RunnableArgs onSuccess, RunnableArgs onFail) { - execute(() -> { - try { - ArticoloOrdine articolo = mArticoloOrdineDao.findArticoloByOrdineAndBarcode(ordine.getOrdineId(), barcode); - onSuccess.run(articolo); - } catch (Exception e) { - onFail.run(e); - } - }); + public void findArticoloByOrdineAndBarcode(Ordine ordine, String barcode, RunnableArgs onSuccess, RunnableArgs onError) { + execute(() -> mArticoloOrdineDao.findArticoloByOrdineAndBarcode(ordine.getOrdineId(), barcode), onSuccess, onError); } - public void findArticoloByScanAndOrdine(Ordine ordine, String barcode, RunnableArgs onSuccess, RunnableArgs onFail) { - execute(() -> { + public void findArticoloByScanAndOrdine(Ordine ordine, String barcode, RunnableArgs onSuccess, RunnableArgs onError) { + executorService.execute(() -> { try { - String scannedCode = barcode; - ArticoloOrdine articolo = mArticoloOrdineDao.findArticoloByCodMartAndOrdine(ordine.getOrdineId(), scannedCode); + ArticoloOrdine articolo = mArticoloOrdineDao.findArticoloByCodMartAndOrdine(ordine.getOrdineId(), barcode); + if (articolo == null) { - articolo = mArticoloOrdineDao.findArticoloByBarcodeAndOrdine(ordine.getOrdineId(), scannedCode); - if (articolo == null) { - scannedCode = StringUtils.leftPad(scannedCode, 13, '0'); - articolo = mArticoloOrdineDao.findArticoloByBarcodeAndOrdine(ordine.getOrdineId(), scannedCode); - } + articolo = mArticoloOrdineDao.findArticoloByBarcodeAndOrdine(ordine.getOrdineId(), barcode); } - onSuccess.run(articolo); + + if (articolo == null) { + String scannedCode = StringUtils.leftPad(barcode, 13, '0'); + articolo = mArticoloOrdineDao.findArticoloByBarcodeAndOrdine(ordine.getOrdineId(), scannedCode); + } + + final ArticoloOrdine finalArticolo = articolo; + handler.post(() -> onSuccess.run(finalArticolo)); } catch (Exception e) { - onFail.run(e); + onError.run(e); } }); } - public void findArticoliByOrdine(Ordine ordine, RunnableArgs> onLoad, RunnableArgs onError) { - execute(() -> { + public void findArticoliByOrdine(Ordine ordine, RunnableArgs> onSuccess, RunnableArgs onError) { + executorService.execute(() -> { try { List list = mArticoloOrdineDao.findArticoliByOrdine(ordine.getOrdineId()); - onLoad.run(Stream.of(list).map(x -> { + var tmpList = Stream.of(list).map(x -> { ArticoloOrdine art = x.getArticoloOrdine(); art.setGgScadenza(x.getGgScadenza()); art.setGiacenza(x.getGiacenza()); art.setQtaProposta(x.getQtaProposta()); art.setQtaPrevistaVendita(x.getQtaPrevistaVendita()); return art; - }).toList()); + }).toList(); + + handler.post(() -> onSuccess.run(tmpList)); } catch (Exception e) { onError.run(e); } }); } - public void deleteArticolo(ArticoloOrdine articolo, Runnable onSave, RunnableArgs onError) { - execute(() -> { - try { - mArticoloOrdineDao.delete(articolo); - onSave.run(); - } catch (Exception e) { - onError.run(e); - } - }); + public void deleteArticolo(ArticoloOrdine articolo, Runnable onSuccess, RunnableArgs onError) { + execute(() -> mArticoloOrdineDao.delete(articolo), + onSuccess, + onError); } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/BaseDataSource.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/BaseDataSource.java new file mode 100644 index 00000000..b19983f3 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/BaseDataSource.java @@ -0,0 +1,41 @@ +package it.integry.integrywmsnative.core.data_store.db.repository.implementations; + +import android.os.Handler; + +import java.util.concurrent.ExecutorService; + +import it.integry.integrywmsnative.core.expansion.RunnableArgs; +import it.integry.integrywmsnative.core.expansion.RunnableWithReturn; + +public class BaseDataSource { + + protected final ExecutorService executorService; + protected final Handler handler; + + protected BaseDataSource(ExecutorService executorService, Handler handler) { + this.executorService = executorService; + this.handler = handler; + } + + protected void execute(RunnableWithReturn query, RunnableArgs onSuccess, RunnableArgs onError) { + executorService.execute(() -> { + try { + var data = query.run(); + handler.post(() -> onSuccess.run(data)); + } catch (Exception ex) { + handler.post(() -> onError.run(ex)); + } + }); + } + + protected void execute(Runnable query, Runnable onSuccess, RunnableArgs onError) { + executorService.execute(() -> { + try { + query.run(); + handler.post(onSuccess); + } catch (Exception ex) { + handler.post(() -> onError.run(ex)); + } + }); + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/GrigliaDataSource.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/GrigliaDataSource.java index b73a9105..f4c08fcf 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/GrigliaDataSource.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/GrigliaDataSource.java @@ -1,6 +1,9 @@ package it.integry.integrywmsnative.core.data_store.db.repository.implementations; +import android.os.Handler; + import java.util.List; +import java.util.concurrent.ExecutorService; import javax.inject.Inject; @@ -10,60 +13,40 @@ import it.integry.integrywmsnative.core.data_store.db.repository.GrigliaReposito import it.integry.integrywmsnative.core.data_store.db.wrappers.GrigliaWrapper; import it.integry.integrywmsnative.core.expansion.RunnableArgs; -public class GrigliaDataSource extends Repository implements GrigliaRepository { +public class GrigliaDataSource extends BaseDataSource implements GrigliaRepository { private final GrigliaDao mGrigliaDao; @Inject - public GrigliaDataSource(GrigliaDao grigliaDao) { + public GrigliaDataSource(ExecutorService executorService, + Handler handler, + GrigliaDao grigliaDao) { + super(executorService, handler); this.mGrigliaDao = grigliaDao; } public void selectAll(RunnableArgs> onSuccess, RunnableArgs onError) { - Runnable query = () -> { - try { - onSuccess.run(mGrigliaDao.getAll()); - } catch (Exception e) { - onError.run(e); - } - }; - execute(query); + execute(mGrigliaDao::getAll, onSuccess, onError); } public void findByCodAlis(String codAlis, RunnableArgs onSuccess, RunnableArgs onError) { - Runnable query = () -> { - try { - onSuccess.run(mGrigliaDao.findByCodAlis(codAlis)); - } catch (Exception e) { - onError.run(e); - } - }; - execute(query); + execute(() -> mGrigliaDao.findByCodAlis(codAlis), onSuccess, onError); } public void saveGriglia(Griglia griglia, RunnableArgs onSuccess, RunnableArgs 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); - } - }); + if (griglia.getGrigliaId() <= 0) { + execute(() -> (int) mGrigliaDao.insert(griglia), grigliaId -> { + griglia.setGrigliaId(grigliaId); + onSuccess.run(grigliaId); + }, onFail); + } else { + execute(() -> mGrigliaDao.update(griglia), () -> onSuccess.run(griglia.getGrigliaId()), onFail); + } + } - public void findGrigliaById(int idGriglia, RunnableArgs onLoad, RunnableArgs onFail) { - execute(() -> { - try { - onLoad.run(mGrigliaDao.findGrigliaById(idGriglia)); - } catch (Exception e) { - onFail.run(e); - } - }); + public void findGrigliaById(int idGriglia, RunnableArgs onSuccess, RunnableArgs onError) { + execute(() -> mGrigliaDao.findGrigliaById(idGriglia), onSuccess, onError); } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/OrdineDataSource.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/OrdineDataSource.java index 93edfaee..9b37898c 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/OrdineDataSource.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/OrdineDataSource.java @@ -1,6 +1,9 @@ package it.integry.integrywmsnative.core.data_store.db.repository.implementations; +import android.os.Handler; + import java.util.List; +import java.util.concurrent.ExecutorService; import javax.inject.Inject; @@ -12,79 +15,46 @@ import it.integry.integrywmsnative.core.data_store.db.view_model.OrdineWithGrigl import it.integry.integrywmsnative.core.data_store.db.wrappers.OrdineWrapper; import it.integry.integrywmsnative.core.expansion.RunnableArgs; -public class OrdineDataSource extends Repository implements OrdineRepository { +public class OrdineDataSource extends BaseDataSource implements OrdineRepository { - private OrdineDao mOrdineDao; + private final OrdineDao mOrdineDao; @Inject - public OrdineDataSource(OrdineDao ordineDao) { + public OrdineDataSource(ExecutorService executorService, + Handler handler, + OrdineDao ordineDao) { + super(executorService, handler); this.mOrdineDao = ordineDao; } public void selectAll(RunnableArgs> onSuccess, RunnableArgs onError) { - Runnable query = () -> { - try { - onSuccess.run(mOrdineDao.getAll()); - } catch (Exception e) { - onError.run(e); - } - }; - execute(query); + execute(mOrdineDao::getAll, onSuccess, onError); } public void selectAllTransmitted(RunnableArgs> onSuccess, RunnableArgs onError) { - Runnable query = () -> { - try { - onSuccess.run(mOrdineDao.getAllTrasnmitted()); - } catch (Exception e) { - onError.run(e); - } - }; - execute(query); + execute(mOrdineDao::getAllTrasnmitted, onSuccess, onError); } public void selectAllOpenOrders(Griglia griglia, RunnableArgs> onSuccess, RunnableArgs onError) { - Runnable query = () -> { - try { - onSuccess.run(mOrdineDao.getAllOpenOrdersByGriglia(griglia.getGrigliaId())); - } catch (Exception e) { - onError.run(e); - } - }; - execute(query); + execute(() -> mOrdineDao.getAllOpenOrdersByGriglia(griglia.getGrigliaId()), onSuccess, onError); } public void insert(Ordine ordine, RunnableArgs onSuccess, RunnableArgs onError) { - execute(() -> { - try { - Long id = mOrdineDao.insert(ordine); - onSuccess.run(id.intValue()); - } catch (Exception e) { - onError.run(e); - } - }); + execute(() -> mOrdineDao.insert(ordine), + ordineId -> onSuccess.run(ordineId.intValue()), + onError); } public void updateOrder(Ordine ordine, RunnableArgs onSuccess, RunnableArgs onError) { - execute(() -> { - try { - mOrdineDao.update(ordine); - onSuccess.run(ordine); - } catch (Exception e) { - onError.run(e); - } - }); + execute(() -> mOrdineDao.update(ordine), + () -> onSuccess.run(ordine), + onError); } public void delete(Ordine ordine, Runnable onSuccess, RunnableArgs onError) { - execute(() -> { - try { - mOrdineDao.delete(ordine); - onSuccess.run(); - } catch (Exception e) { - onError.run(e); - } - }); + execute(() -> mOrdineDao.delete(ordine), + onSuccess, + onError); } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/Repository.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/Repository.java deleted file mode 100644 index 0637fde2..00000000 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/Repository.java +++ /dev/null @@ -1,9 +0,0 @@ -package it.integry.integrywmsnative.core.data_store.db.repository.implementations; - -public class Repository { - - - public void execute(Runnable query){ - new Thread(query).start(); - } -} diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/SqlMtbColrDataSource.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/SqlMtbColrDataSource.java index 3ad66cbe..5ebad272 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/SqlMtbColrDataSource.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/SqlMtbColrDataSource.java @@ -1,77 +1,53 @@ package it.integry.integrywmsnative.core.data_store.db.repository.implementations; +import android.os.Handler; + import java.util.List; +import java.util.concurrent.ExecutorService; import javax.inject.Inject; import it.integry.integrywmsnative.core.data_store.db.dao.MtbColrDao; import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColr; -import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColt; -import it.integry.integrywmsnative.core.data_store.db.repository.MtbColrRepository; +import it.integry.integrywmsnative.core.data_store.db.repository.MtbColrDataSource; import it.integry.integrywmsnative.core.expansion.RunnableArgs; -public class SqlMtbColrDataSource extends Repository implements MtbColrRepository { +public class SqlMtbColrDataSource extends BaseDataSource implements MtbColrDataSource { - private MtbColrDao mMtbColrDao; + private final MtbColrDao mMtbColrDao; @Inject - public SqlMtbColrDataSource(MtbColrDao mtbColrDao) { + public SqlMtbColrDataSource(ExecutorService executorService, + Handler handler, + MtbColrDao mtbColrDao) { + super(executorService, handler); this.mMtbColrDao = mtbColrDao; } public void selectAll(RunnableArgs> onSuccess, RunnableArgs onError) { - Runnable query = () -> { - try { - onSuccess.run(mMtbColrDao.getAll()); - } catch (Exception e) { - onError.run(e); - } - }; - execute(query); + execute(mMtbColrDao::getAll, onSuccess, onError); + } + + public void selectAllByDocumentID(long documentId, RunnableArgs> onSuccess, RunnableArgs onError) { + execute(() -> mMtbColrDao.getDocumentRows(documentId), onSuccess, onError); } public void insert(SqlMtbColr mtbColr, RunnableArgs onSuccess, RunnableArgs onError) { - execute(() -> { - try { - Long id = mMtbColrDao.insert(mtbColr); - onSuccess.run(id.intValue()); - } catch (Exception e) { - onError.run(e); - } - }); + execute(() -> mMtbColrDao.insert(mtbColr), + mtbColrId -> onSuccess.run(mtbColrId.intValue()), + onError); } public void update(SqlMtbColr mtbColr, RunnableArgs onSuccess, RunnableArgs onError) { - execute(() -> { - try { - mMtbColrDao.update(mtbColr); - onSuccess.run(mtbColr); - } catch (Exception e) { - onError.run(e); - } - }); + execute(() -> mMtbColrDao.update(mtbColr), + () -> onSuccess.run(mtbColr), + onError); } public void delete(SqlMtbColr mtbColr, Runnable onSuccess, RunnableArgs onError) { - execute(() -> { - try { - mMtbColrDao.delete(mtbColr); - onSuccess.run(); - } catch (Exception e) { - onError.run(e); - } - }); - } - - public void getDocumentRows(SqlMtbColt document, RunnableArgs> onSuccess, RunnableArgs onError) { - Runnable query = () -> { - try { - onSuccess.run(mMtbColrDao.getDocumentRows(document.getId())); - } catch (Exception e) { - onError.run(e); - } - }; - execute(query); + execute(() -> mMtbColrDao.delete(mtbColr), + onSuccess, + onError); } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/SqlMtbColtDataSource.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/SqlMtbColtDataSource.java index 307332be..341bbe32 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/SqlMtbColtDataSource.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/SqlMtbColtDataSource.java @@ -1,7 +1,10 @@ package it.integry.integrywmsnative.core.data_store.db.repository.implementations; +import android.os.Handler; + import java.util.Date; import java.util.List; +import java.util.concurrent.ExecutorService; import javax.inject.Inject; @@ -11,82 +14,53 @@ import it.integry.integrywmsnative.core.data_store.db.repository.MtbColtReposito import it.integry.integrywmsnative.core.data_store.db.wrappers.DocInternoWrapper; import it.integry.integrywmsnative.core.expansion.RunnableArgs; -public class SqlMtbColtDataSource extends Repository implements MtbColtRepository { +public class SqlMtbColtDataSource extends BaseDataSource implements MtbColtRepository { - private MtbColtDao mMtbColtDao; + private final MtbColtDao mMtbColtDao; @Inject - public SqlMtbColtDataSource(MtbColtDao mtbColtDao) { + public SqlMtbColtDataSource(ExecutorService executorService, + Handler handler, + MtbColtDao mtbColtDao) { + super(executorService, handler); this.mMtbColtDao = mtbColtDao; } public void selectAll(RunnableArgs> onSuccess, RunnableArgs onError) { - Runnable query = () -> { - try { - onSuccess.run(mMtbColtDao.getAll()); - } catch (Exception e) { - onError.run(e); - } - }; - execute(query); + execute(mMtbColtDao::getAll, onSuccess, onError); } public void insert(SqlMtbColt mtbColt, RunnableArgs onSuccess, RunnableArgs onError) { - execute(() -> { - try { - Long id = mMtbColtDao.insert(mtbColt); - onSuccess.run(id.intValue()); - } catch (Exception e) { - onError.run(e); - } - }); + execute(() -> mMtbColtDao.insert(mtbColt), + mtbColtId -> onSuccess.run(mtbColtId.intValue()), + onError); } public void update(SqlMtbColt mtbColt, RunnableArgs onSuccess, RunnableArgs onError) { - execute(() -> { - try { - mMtbColtDao.update(mtbColt); - onSuccess.run(mtbColt); - } catch (Exception e) { - onError.run(e); - } - }); + execute(() -> mMtbColtDao.update(mtbColt), + () -> onSuccess.run(mtbColt), + onError); } public void delete(SqlMtbColt mtbColt, Runnable onSuccess, RunnableArgs onError) { - execute(() -> { - try { - mMtbColtDao.delete(mtbColt); - onSuccess.run(); - } catch (Exception e) { - onError.run(e); - } - }); + execute(() -> mMtbColtDao.delete(mtbColt), + onSuccess, + onError); } @Override public void getLocalDocumentsByCodDtip(String codDtip, String codAnag, String codVdes, Date dataDoc, String numDoc, RunnableArgs> onSuccess, RunnableArgs onError) { - Runnable query = () -> { - try { - onSuccess.run(mMtbColtDao.getLocalDocumentsByCodDtip(codDtip,codAnag,codVdes,dataDoc,numDoc)); - } catch (Exception e) { - onError.run(e); - } - }; - execute(query); + execute(() -> mMtbColtDao.getLocalDocumentsByCodDtip(codDtip, codAnag, codVdes, dataDoc, numDoc), + onSuccess, + onError); } @Override public void getNextNumCollo(RunnableArgs onSuccess, RunnableArgs onError) { - Runnable query = () -> { - try { - onSuccess.run(mMtbColtDao.getNextNumCollo()); - } catch (Exception e) { - onError.run(e); - } - }; - execute(query); + execute(mMtbColtDao::getNextNumCollo, + onSuccess, + onError); } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MagazzinoRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MagazzinoRESTConsumer.java index 91df4313..165e2a5a 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MagazzinoRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MagazzinoRESTConsumer.java @@ -10,7 +10,13 @@ import javax.inject.Singleton; import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.model.MtbTCol; +import it.integry.integrywmsnative.core.rest.RESTBuilder; +import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; import it.integry.integrywmsnative.core.utility.UtilityDB; +import it.integry.integrywmsnative.gest.contab_doc_interni.dto.SaveDTO; +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; @Singleton public class MagazzinoRESTConsumer extends _BaseRESTConsumer { @@ -62,4 +68,23 @@ public class MagazzinoRESTConsumer extends _BaseRESTConsumer { } }); } + + + + + public void saveTerminalino(SaveDTO saveDTO, RunnableArgs onComplete, RunnableArgs onFailed){ + MagazzinoRESTConsumerService service = RESTBuilder.getService(MagazzinoRESTConsumerService.class); + service.saveTerminalino(saveDTO) + .enqueue(new Callback>() { + @Override + public void onResponse(Call> call, Response> response) { + analyzeAnswer(response, "saveTerminalino", onComplete, onFailed); + } + + @Override + public void onFailure(Call> call, Throwable t) { + onFailed.run(new Exception(t)); + } + }); + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MagazzinoRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MagazzinoRESTConsumerService.java index 18b07b0f..90440393 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MagazzinoRESTConsumerService.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/MagazzinoRESTConsumerService.java @@ -1,4 +1,14 @@ package it.integry.integrywmsnative.core.rest.consumers; +import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; +import it.integry.integrywmsnative.gest.contab_doc_interni.dto.SaveDTO; +import retrofit2.Call; +import retrofit2.http.Body; +import retrofit2.http.POST; + public interface MagazzinoRESTConsumerService { + + @POST("SM2SaveTerminalinoWMS") + Call> saveTerminalino(@Body SaveDTO saveDTO); + } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PVOrdiniAcquistoRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PVOrdiniAcquistoRESTConsumer.java index 33ddaf0d..2f0a67d1 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PVOrdiniAcquistoRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PVOrdiniAcquistoRESTConsumer.java @@ -23,9 +23,9 @@ import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; import it.integry.integrywmsnative.core.utility.UtilityDate; 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; +import it.integry.integrywmsnative.gest.contab_doc_interni.dto.ArtDTO; +import it.integry.integrywmsnative.gest.contab_doc_interni.dto.OrdineDTO; +import it.integry.integrywmsnative.gest.contab_doc_interni.dto.SaveDTO; import retrofit2.Call; import retrofit2.Callback; import retrofit2.Response; @@ -33,12 +33,14 @@ import retrofit2.Response; @Singleton public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer { + private final MagazzinoRESTConsumer magazzinoRESTConsumer; - public void getArticoliListino(String codAlis, RunnableArgs onSuccess, RunnableArgs onFailed) { - getArticoliListinoStatic(codAlis, onSuccess, onFailed); + public PVOrdiniAcquistoRESTConsumer(MagazzinoRESTConsumer magazzinoRESTConsumer) { + this.magazzinoRESTConsumer = magazzinoRESTConsumer; } - public static void getArticoliListinoStatic(String codAlis, RunnableArgs onSuccess, RunnableArgs onFailed) { + public void getArticoliListino(String codAlis, RunnableArgs onSuccess, RunnableArgs onFailed) { + PVOrdiniAcquistoRESTConsumerService ordiniARestService = RESTBuilder.getService(PVOrdiniAcquistoRESTConsumerService.class); ordiniARestService .getArticoliListino(codAlis) @@ -97,43 +99,26 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer { } ordineDTO.setChiaveGriglia(griglia.getCodAlis()); - ordineDTO.setDataConsD(UtilityDate.getDateInstance()); + ordineDTO.setDataCons(UtilityDate.getDateInstance()); ordineDTO.setArtRows(artRows); saveDTO.setGestione("O"); saveDTO.setOrdineDTO(ordineDTO); - PVOrdiniAcquistoRESTConsumerService ordiniARestService = RESTBuilder.getService(PVOrdiniAcquistoRESTConsumerService.class); - ordiniARestService - .saveOrdine(saveDTO) - .enqueue(new Callback>>() { - @Override - public void onResponse(Call>> call, Response>> response) { - if (response.body() != null && response.body().size() > 0) { - analyzeListOfAnswers(response, "getArticoliListino", dtoList -> { - if (dtoList.size() > 0) { - DtbOrdt dto = dtoList.get(0); - ordine.setTransmitted(true); - ordine.setTransmissionDate(UtilityDate.getDateInstance()); - ordine.setGestione(dto.getGestione()); - ordine.setDataOrdS(dto.getDataOrd()); - ordine.setCodMdep(dto.getCodMdep()); - ordine.setNumOrd(dto.getNumOrd()); - onSuccess.run(ordine); - } else { - onFailed.run(new Exception("Nessun ordine generato")); - } - }, onFailed); - } - } + magazzinoRESTConsumer.saveTerminalino(saveDTO, data -> { + if(data == null) { + onFailed.run(new Exception("Nessun ordine generato")); + return; + } - @Override - public void onFailure(Call>> call, Throwable t) { - Log.e("saveOrdineTerminale_pv", t.toString()); - UtilityLogger.error(new Exception(t)); - onFailed.run(new Exception(t)); - } - }); + ordine.setTransmitted(true); + ordine.setTransmissionDate(UtilityDate.getDateInstance()); + ordine.setGestione(data.getGestione()); + ordine.setDataOrdS(data.getDataOrd()); + ordine.setCodMdep(data.getCodMdep()); + ordine.setNumOrd(data.getNumOrd()); + onSuccess.run(ordine); + }, onFailed); } @@ -144,7 +129,7 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer { dto.setCodMart(art.getCodMart()); dto.setBarcode(art.getBarCode()); dto.setDescrizione(art.getDescrizione()); - dto.setDataInsD(art.getDataIns()); + dto.setDataIns(art.getDataIns()); dto.setUntMis(art.getUntMis()); dto.setSystemNote(art.getSystemNote()); dto.setQta(BigDecimal.valueOf(art.getQtaOrd())); diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PVOrdiniAcquistoRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PVOrdiniAcquistoRESTConsumerService.java index 427e65ec..4123f9f0 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PVOrdiniAcquistoRESTConsumerService.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PVOrdiniAcquistoRESTConsumerService.java @@ -1,14 +1,8 @@ package it.integry.integrywmsnative.core.rest.consumers; -import java.util.List; - import it.integry.integrywmsnative.core.data_store.db.view_model.GrigliaDTO; -import it.integry.integrywmsnative.core.model.DtbOrdt; import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; -import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dto.SaveDTO; import retrofit2.Call; -import retrofit2.http.Body; -import retrofit2.http.Header; import retrofit2.http.POST; import retrofit2.http.Query; @@ -16,7 +10,4 @@ public interface PVOrdiniAcquistoRESTConsumerService { @POST("SM2GetElencoArticoli") Call> getArticoliListino(@Query("chiaveGriglia") String codAlis); - - @POST("SM2SaveTerminalino") - Call>> saveOrdine(@Body SaveDTO saveDTO); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/ArtDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/ArtDTO.java index 3a61eb81..3f95ed4b 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/ArtDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/dto/ArtDTO.java @@ -27,6 +27,8 @@ public class ArtDTO { private Date dataScad; + private String systemNote; + public Integer getRigaOrd() { return rigaOrd; } @@ -114,4 +116,12 @@ public class ArtDTO { public void setDataScad(Date dataScad) { this.dataScad = dataScad; } + + public String getSystemNote() { + return systemNote; + } + + public void setSystemNote(String systemNote) { + this.systemNote = systemNote; + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormActivity.java index 3355f832..fdc71f7b 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormActivity.java @@ -27,7 +27,7 @@ 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.SqlMtbColr; import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColt; -import it.integry.integrywmsnative.core.data_store.db.repository.MtbColrRepository; +import it.integry.integrywmsnative.core.data_store.db.repository.MtbColrDataSource; import it.integry.integrywmsnative.core.di.BindableBoolean; import it.integry.integrywmsnative.core.di.BindableInteger; import it.integry.integrywmsnative.core.di.BindableString; @@ -56,7 +56,7 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter private static final String DATA_KEY_TIPO_DOC = "docType"; @Inject - MtbColrRepository documentRowsRepository; + MtbColrDataSource documentRowsRepository; @Inject DocInterniEditFormViewModel viewModel; diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormModule.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormModule.java index fda802b1..a6d16d39 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormModule.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormModule.java @@ -2,10 +2,8 @@ package it.integry.integrywmsnative.gest.contab_doc_interni.edit_form; import dagger.Module; import dagger.Provides; -import it.integry.integrywmsnative.core.data_store.db.repository.MtbColrRepository; +import it.integry.integrywmsnative.core.data_store.db.repository.MtbColrDataSource; import it.integry.integrywmsnative.core.data_store.db.repository.MtbColtRepository; -import it.integry.integrywmsnative.gest.contab_doc_interni.DocInterniComponent; -import it.integry.integrywmsnative.gest.contab_doc_interni.DocInterniViewModel; import it.integry.integrywmsnative.gest.contab_doc_interni.rest.DocInterniRESTConsumer; @Module(subcomponents = DocInterniEditFormComponent.class) @@ -13,7 +11,7 @@ public class DocInterniEditFormModule { @Provides - DocInterniEditFormViewModel docInterniEditFormViewModel(DocInterniRESTConsumer docInterniRESTConsumer, MtbColrRepository mtbColrRepository, MtbColtRepository mtbColtRepository) { + DocInterniEditFormViewModel docInterniEditFormViewModel(DocInterniRESTConsumer docInterniRESTConsumer, MtbColrDataSource mtbColrRepository, MtbColtRepository mtbColtRepository) { return new DocInterniEditFormViewModel(docInterniRESTConsumer,mtbColrRepository, mtbColtRepository); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormViewModel.java index 17658dae..e88674a2 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/edit_form/DocInterniEditFormViewModel.java @@ -17,7 +17,7 @@ import javax.inject.Inject; import it.integry.barcode_base_android_library.model.BarcodeScanDTO; import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColr; import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColt; -import it.integry.integrywmsnative.core.data_store.db.repository.MtbColrRepository; +import it.integry.integrywmsnative.core.data_store.db.repository.MtbColrDataSource; import it.integry.integrywmsnative.core.data_store.db.repository.MtbColtRepository; import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener; import it.integry.integrywmsnative.core.settings.SettingsManager; @@ -33,7 +33,7 @@ import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQua public class DocInterniEditFormViewModel { @Inject - MtbColrRepository mtbColrRepository; + MtbColrDataSource mtbColrRepository; @Inject MtbColtRepository mtbColtRepository; private final DocInterniRESTConsumer docInterniRESTConsumer; @@ -46,7 +46,7 @@ public class DocInterniEditFormViewModel { public MutableLiveData> docRows = new MutableLiveData<>(); @Inject - public DocInterniEditFormViewModel(DocInterniRESTConsumer docInterniRESTConsumer, MtbColrRepository mtbColrRepository, MtbColtRepository mtbColtRepository) { + public DocInterniEditFormViewModel(DocInterniRESTConsumer docInterniRESTConsumer, MtbColrDataSource mtbColrRepository, MtbColtRepository mtbColtRepository) { this.docInterniRESTConsumer = docInterniRESTConsumer; this.mtbColrRepository = mtbColrRepository; this.mtbColtRepository = mtbColtRepository; @@ -77,7 +77,7 @@ public class DocInterniEditFormViewModel { public void fetchDocumentRows() { this.sendOnLoadingStarted(); - mtbColrRepository.getDocumentRows(this.document.getValue(), rows -> { + mtbColrRepository.selectAllByDocumentID(this.document.getValue().getId(), rows -> { this.docRows.postValue(rows); this.listener.onRowsChanged(rows); this.sendOnLoadingEnded(); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/rest/DocInterniRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/rest/DocInterniRESTConsumer.java index 333fd525..ddee9417 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/rest/DocInterniRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/rest/DocInterniRESTConsumer.java @@ -6,6 +6,7 @@ import javax.inject.Singleton; import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.rest.RESTBuilder; +import it.integry.integrywmsnative.core.rest.consumers.MagazzinoRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers._BaseRESTConsumer; import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; import it.integry.integrywmsnative.gest.contab_doc_interni.dto.GrigliaAcquistiDTO; @@ -18,6 +19,12 @@ import retrofit2.Response; @Singleton public class DocInterniRESTConsumer extends _BaseRESTConsumer { + private final MagazzinoRESTConsumer magazzinoRESTConsumer; + + public DocInterniRESTConsumer(MagazzinoRESTConsumer magazzinoRESTConsumer) { + this.magazzinoRESTConsumer = magazzinoRESTConsumer; + } + public void getDocInterniSetup(RunnableArgs onComplete, RunnableArgs onFailed) { DocInterniRESTConsumerService service = RESTBuilder.getService(DocInterniRESTConsumerService.class); service.getSetupDocInterni().enqueue(new Callback<>() { @@ -50,17 +57,6 @@ public class DocInterniRESTConsumer extends _BaseRESTConsumer { public void saveDoc(SaveDTO saveDTO, RunnableArgs onComplete, RunnableArgs onFailed){ - DocInterniRESTConsumerService service = RESTBuilder.getService(DocInterniRESTConsumerService.class); - service.save(saveDTO).enqueue(new Callback<>() { - @Override - public void onResponse(Call> call, Response> response) { - analyzeAnswer(response, "saveDoc", onComplete, onFailed); - } - - @Override - public void onFailure(Call> call, Throwable t) { - onFailed.run(new Exception(t)); - } - }); + magazzinoRESTConsumer.saveTerminalino(saveDTO, onComplete, onFailed); } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/rest/DocInterniRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/rest/DocInterniRESTConsumerService.java index 0f20c77f..6988eed8 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/rest/DocInterniRESTConsumerService.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/contab_doc_interni/rest/DocInterniRESTConsumerService.java @@ -1,15 +1,10 @@ package it.integry.integrywmsnative.gest.contab_doc_interni.rest; -import com.google.gson.JsonObject; - import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; -import it.integry.integrywmsnative.gest.contab_doc_interni.dto.GrigliaAcquistiDTO; -import it.integry.integrywmsnative.gest.contab_doc_interni.dto.SaveDTO; import it.integry.integrywmsnative.gest.contab_doc_interni.dto.DocInterniSetupDTO; +import it.integry.integrywmsnative.gest.contab_doc_interni.dto.GrigliaAcquistiDTO; import retrofit2.Call; -import retrofit2.http.Body; import retrofit2.http.GET; -import retrofit2.http.POST; import retrofit2.http.Query; @@ -18,9 +13,6 @@ public interface DocInterniRESTConsumerService { @GET("getDocInterniSetup") Call> getSetupDocInterni(); - @POST("SM2SaveTerminalinoWMS") - Call> save(@Body SaveDTO saveDTO); - @GET("getElencoArticoli") Call> fetchProducts(@Query("codDtip") String codDtip, @Query("codMgrp") String codMgrp, @Query("gestione") String gestione); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dialog_ask_mag_prossimita/DialogAskMagazzinoProssimitaView.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dialog_ask_mag_prossimita/DialogAskMagazzinoProssimitaView.java index 47a04a68..62b8d83b 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dialog_ask_mag_prossimita/DialogAskMagazzinoProssimitaView.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_fabbisogno_linee_prod/dialog_ask_mag_prossimita/DialogAskMagazzinoProssimitaView.java @@ -49,7 +49,6 @@ public class DialogAskMagazzinoProssimitaView extends BaseDialogFragment impleme private DialogAskMagazzinoProssimitaView(RunnableArgsss onItemSelected) { super(); - this.mOnItemSelected = onItemSelected; } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java index 18fcb4a6..41fb7787 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java @@ -35,7 +35,7 @@ import it.integry.integrywmsnative.databinding.FragmentPvArticoliOrdineAcquistoL import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dialog.DialogEditArticoloView; import it.integry.integrywmsnative.ui.FabMenuCustomAnimations; import it.integry.integrywmsnative.ui.SimpleDividerItemDecoration; -import it.integry.integrywmsnative.view.dialogs.DialogAskAction; +import it.integry.integrywmsnative.view.dialogs.DialogAskActionView; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleInputHelper; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView; @@ -152,24 +152,22 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi private void selectAction(ArticoloOrdine articoloOrdine) { mBinding.closeActivityFab.close(false); BarcodeManager.disable(); - runOnUiThread(() -> { - DialogAskAction.make(this, - articoloOrdine.getDescrizione(), - articoloOrdine.getQtaOrd() + " " + articoloOrdine.getUntMis(), - () -> { - this.mViewModel.checkArticolo(mOrdine, articoloOrdine.getCodMart(), - artOrd -> { - this.onItemDispatched(artOrd); - BarcodeManager.enable(); - }, - this::onError); - BarcodeManager.enable(); - }, - () -> { - this.deleteArticolo(articoloOrdine); - BarcodeManager.enable(); - }).show(); - }); + + DialogAskActionView.newInstance(articoloOrdine.getDescrizione(), + articoloOrdine.getQtaOrd() + " " + articoloOrdine.getUntMis(), + () -> { + this.mViewModel.checkArticolo(mOrdine, articoloOrdine.getCodMart(), + artOrd -> { + this.onItemDispatched(artOrd); + BarcodeManager.enable(); + }, + this::onError); + BarcodeManager.enable(); + }, + () -> { + this.deleteArticolo(articoloOrdine); + BarcodeManager.enable(); + }).show(getSupportFragmentManager(), "tag"); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditModule.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditModule.java index d81cd2f6..b738b4a4 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditModule.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditModule.java @@ -1,7 +1,5 @@ package it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit; -import javax.inject.Singleton; - import dagger.Module; import dagger.Provides; import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliOrdineRepository; @@ -13,14 +11,6 @@ import it.integry.integrywmsnative.core.rest.consumers.PVOrdiniAcquistoRESTConsu @Module(subcomponents = PVOrdineAcquistoEditComponent.class) public class PVOrdineAcquistoEditModule { - - - @Provides - @Singleton - PVOrdiniAcquistoRESTConsumer providesPVOrdiniAcquistoRESTConsumer() { - return new PVOrdiniAcquistoRESTConsumer(); - } - @Provides PVOrdineAcquistoEditViewModel providesPvOrdineAcquistoEditViewModel(OrdineRepository ordineRepository, GrigliaRepository grigliaRepository, diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/dto/ArtDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/dto/ArtDTO.java deleted file mode 100644 index 9b0bcf4a..00000000 --- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/dto/ArtDTO.java +++ /dev/null @@ -1,146 +0,0 @@ -package it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dto; - -import java.math.BigDecimal; -import java.util.Date; - -import it.integry.integrywmsnative.core.utility.UtilityDate; - -public class ArtDTO { - private Integer rigaOrd; - - private String codMart; - - private String barcode; - - private String descrizione; - - private String dataIns; - - private String untMis; - - private BigDecimal qta; - - private BigDecimal qtaCnf; - - private BigDecimal colli; - - private String partitaMag; - - private String dataScad; - - private String systemNote; - - public Integer getRigaOrd() { - return rigaOrd; - } - - public void setRigaOrd(Integer rigaOrd) { - this.rigaOrd = rigaOrd; - } - - public String getCodMart() { - return codMart; - } - - public void setCodMart(String codMart) { - this.codMart = codMart; - } - - public String getBarcode() { - return barcode; - } - - public void setBarcode(String barcode) { - this.barcode = barcode; - } - - public String getDescrizione() { - return descrizione; - } - - public void setDescrizione(String descrizione) { - this.descrizione = descrizione; - } - - public String getDataIns() { - return dataIns; - } - - public Date getDataInsD() { - return UtilityDate.recognizeDateWithExceptionHandler(getDataIns()); - } - - public void setDataIns(String dataIns) { - this.dataIns = dataIns; - } - - public void setDataInsD(Date dataIns) { - setDataIns(UtilityDate.formatDate(dataIns, UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH)); - } - - - public String getUntMis() { - return untMis; - } - - public void setUntMis(String untMis) { - this.untMis = untMis; - } - - public BigDecimal getQta() { - return qta; - } - - public void setQta(BigDecimal qta) { - this.qta = qta; - } - - public BigDecimal getQtaCnf() { - return qtaCnf; - } - - public void setQtaCnf(BigDecimal qtaCnf) { - this.qtaCnf = qtaCnf; - } - - public BigDecimal getColli() { - return colli; - } - - public void setColli(BigDecimal colli) { - this.colli = colli; - } - - public String getPartitaMag() { - return partitaMag; - } - - public void setPartitaMag(String partitaMag) { - this.partitaMag = partitaMag; - } - - public String getDataScad() { - return dataScad; - } - - public void setDataScad(String dataScad) { - this.dataScad = dataScad; - } - - public Date getDataScadD() { - return UtilityDate.recognizeDateWithExceptionHandler(getDataScad()); - } - - public void setDataScadD(Date dataScad) { - setDataScad(UtilityDate.formatDate(dataScad, UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH)); - } - - public String getSystemNote() { - return systemNote; - } - - public ArtDTO setSystemNote(String systemNote) { - this.systemNote = systemNote; - return this; - } -} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/dto/OrdineDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/dto/OrdineDTO.java deleted file mode 100644 index 1fe38bb4..00000000 --- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/dto/OrdineDTO.java +++ /dev/null @@ -1,46 +0,0 @@ -package it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dto; - -import java.util.Date; -import java.util.List; - -import it.integry.integrywmsnative.core.utility.UtilityDate; - -public class OrdineDTO { - private String chiaveGriglia; - private String dataCons; - - private List artRows; - - public String getChiaveGriglia() { - return chiaveGriglia; - } - - public void setChiaveGriglia(String chiaveGriglia) { - this.chiaveGriglia = chiaveGriglia; - } - - public String getDataCons() { - return dataCons; - } - - public void setDataCons(String dataCons) { - this.dataCons = dataCons; - } - - public List getArtRows() { - return artRows; - } - - public void setArtRows(List artRows) { - this.artRows = artRows; - } - public Date getDataConsD() { - return UtilityDate.recognizeDateWithExceptionHandler(getDataCons()); - } - - public void setDataConsD(Date dataCons) { - setDataCons(UtilityDate.formatDate(dataCons, UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH)); - } - - -} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/dto/SaveDTO.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/dto/SaveDTO.java deleted file mode 100644 index 442ed0a5..00000000 --- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/dto/SaveDTO.java +++ /dev/null @@ -1,24 +0,0 @@ -package it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dto; - -public class SaveDTO { - private String gestione = "O"; - - - private OrdineDTO ordineDTO; - - public String getGestione() { - return gestione; - } - - public void setGestione(String gestione) { - this.gestione = gestione; - } - - public OrdineDTO getOrdineDTO() { - return ordineDTO; - } - - public void setOrdineDTO(OrdineDTO ordineDTO) { - this.ordineDTO = ordineDTO; - } -} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/PVOrdiniAcquistoGrigliaFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/PVOrdiniAcquistoGrigliaFragment.java index 0d5c1a58..cdb6807f 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/PVOrdiniAcquistoGrigliaFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/PVOrdiniAcquistoGrigliaFragment.java @@ -12,7 +12,6 @@ import android.widget.Toast; import androidx.appcompat.widget.AppCompatTextView; import androidx.core.content.ContextCompat; import androidx.databinding.DataBindingUtil; -import androidx.fragment.app.Fragment; import androidx.recyclerview.widget.LinearLayoutManager; import java.util.ArrayList; @@ -30,27 +29,24 @@ import it.integry.integrywmsnative.core.data_store.db.repository.ArticoloGriglia 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.BaseFragment; import it.integry.integrywmsnative.core.interfaces.IPoppableActivity; import it.integry.integrywmsnative.core.interfaces.IScrollableFragment; import it.integry.integrywmsnative.core.interfaces.ITitledFragment; 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.dialogs.DialogScanLisA; -import it.integry.integrywmsnative.gest.pv_ordini_acquisto.helper.OrdineAcquistoPvHelper; +import it.integry.integrywmsnative.gest.pv_ordini_acquisto.dialogs.DialogScanLisAView; import it.integry.integrywmsnative.gest.pv_ordini_acquisto.ui.OrdineAcquistoPvOpenListAdapter; import it.integry.integrywmsnative.ui.ElevatedToolbar; import it.integry.integrywmsnative.ui.SimpleDividerItemDecoration; -import it.integry.integrywmsnative.view.dialogs.DialogAskAction; +import it.integry.integrywmsnative.view.dialogs.DialogAskActionView; import it.integry.integrywmsnative.view.dialogs.DialogProgressView; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView; -public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitledFragment, IScrollableFragment { +public class PVOrdiniAcquistoGrigliaFragment extends BaseFragment implements ITitledFragment, IScrollableFragment { private FragmentPvOrdiniAcquistoBinding mBinding; - private OrdineAcquistoPvHelper mHelper; private Griglia mGriglia; private OrdineAcquistoPvOpenListAdapter mAdapter; private DialogProgressView mCurrentProgress; @@ -71,14 +67,15 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled @Inject OrdineRepository mOrdineRepository; + @Inject + PVOrdiniAcquistoGrigliaViewModel mPvOrdiniAcquistoGrigliaViewModel; + public PVOrdiniAcquistoGrigliaFragment() { // Gets appComponent from MyApplication available in the base Gradle module MainApplication.appComponent .pvOrdineAcquistoGrigliaComponent() .create() .inject(this); - - } public static PVOrdiniAcquistoGrigliaFragment newInstance() { @@ -95,23 +92,20 @@ 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(requireActivity(), mGrigliaRepository, mArticoloGrigliaRepository, mArticoliOrdineRepository, mOrdineRepository); - init(); initRecyclerView(); return mBinding.getRoot(); } private void init() { - BarcodeManager.enable(); - DialogScanLisA.make(requireActivity(), mGrigliaRepository, mHelper, griglia -> { + DialogScanLisAView.newInstance(griglia -> { if (griglia == null) { ((IPoppableActivity) requireActivity()).pop(); } else { setGriglia(griglia); } - }).show(); + }).show(requireActivity().getSupportFragmentManager(), "tag"); } @@ -132,18 +126,15 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled } private void fetchOrders() { - this.openProgress(); + this.onLoadingStarted(); - mOrdineRepository.selectAllOpenOrders(mGriglia, (ordini) -> requireActivity().runOnUiThread(() -> { - this.closeProgress(); - setOrdini(ordini); - }), (e) -> { - this.closeProgress(); - String errorMessage = e.getMessage(); - requireActivity().runOnUiThread(() -> DialogSimpleMessageView - .makeErrorDialog(new SpannableString(errorMessage), null, null) - .show(requireActivity().getSupportFragmentManager(), "tag")); - }); + mOrdineRepository.selectAllOpenOrders(mGriglia, ordini -> { + this.onLoadingEnded(); + + requireActivity().runOnUiThread(() -> { + setOrdini(ordini); + }); + }, this::onError); } private void setOrdini(List ordini) { @@ -164,7 +155,6 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled private void initRecyclerView() { mBinding.ordiniAApertiMainList.setHasFixedSize(true); - mBinding.ordiniAApertiMainList.setLayoutManager(new LinearLayoutManager(requireActivity())); SimpleDividerItemDecoration itemDecorator = new SimpleDividerItemDecoration(requireActivity(), SimpleDividerItemDecoration.VERTICAL); @@ -180,11 +170,11 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled private void selectAction(Ordine ordine) { - requireActivity().runOnUiThread(() -> DialogAskAction.make(requireActivity(), - 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(), - ordine.getCountArticoli() + " articoli", - () -> this.editOrdine(ordine), - () -> this.deleteOrdine(ordine)).show()); + DialogAskActionView.newInstance(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(), + ordine.getCountArticoli() + " articoli", + () -> this.editOrdine(ordine), + () -> this.deleteOrdine(ordine)) + .show(requireActivity().getSupportFragmentManager(), "tag"); } @@ -192,18 +182,16 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled String text = "Stai per eliminare un ordine sei sicuro?"; DialogSimpleMessageView.makeWarningDialog(new SpannableString(Html.fromHtml(text)), null, () -> requireActivity().runOnUiThread(() -> { - this.openProgress(); - mHelper.deleteOrder(ordine, () -> { + this.onLoadingStarted(); + mPvOrdiniAcquistoGrigliaViewModel.deleteOrder(ordine, () -> { requireActivity().runOnUiThread(() -> { - this.closeProgress(); + this.onLoadingEnded(); Toast.makeText(requireActivity(), "Ordine eliminato!", Toast.LENGTH_SHORT).show(); fetchOrders(); }); - }, e -> { - this.closeProgress(); - requireActivity().runOnUiThread(() -> UtilityExceptions.defaultException(requireActivity(), e)); - }); + }, this::onError); }), () -> { + }).show(requireActivity().getSupportFragmentManager(), "tag"); } @@ -213,15 +201,12 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled } public void createNewOrder() { - this.openProgress(); - mHelper.createNewOrder(mGriglia, order -> { - this.closeProgress(); + this.onLoadingStarted(); + + mPvOrdiniAcquistoGrigliaViewModel.createNewOrder(mGriglia, order -> { + this.onLoadingEnded(); requireActivity().runOnUiThread(() -> editOrdine(order)); - }, e -> requireActivity().runOnUiThread(() -> { - UtilityExceptions.defaultException(requireActivity(), e); - this.closeProgress(); - } - )); + }, this::onError); } @Override @@ -251,21 +236,4 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled this.mOnPreDestroyList.add(onPreDestroy); } - protected void openProgress() { - requireActivity().runOnUiThread(() -> { - if (this.mCurrentProgress == null) { - this.mCurrentProgress = UtilityProgress.createDefaultProgressDialog(requireActivity()); - } - }); - } - - protected void closeProgress() { - requireActivity().runOnUiThread(() -> { - if (mCurrentProgress != null) { - mCurrentProgress.dismiss(); - mCurrentProgress = null; - } - }); - } - } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/PVOrdiniAcquistoGrigliaModule.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/PVOrdiniAcquistoGrigliaModule.java index 997d2b0d..69573276 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/PVOrdiniAcquistoGrigliaModule.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/PVOrdiniAcquistoGrigliaModule.java @@ -1,7 +1,23 @@ package it.integry.integrywmsnative.gest.pv_ordini_acquisto; import dagger.Module; +import dagger.Provides; +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.rest.consumers.PVOrdiniAcquistoRESTConsumer; @Module(subcomponents = PVOrdiniAcquistoGrigliaComponent.class) public class PVOrdiniAcquistoGrigliaModule { + + + + @Provides + PVOrdiniAcquistoGrigliaViewModel providesPvOrdiniAcquistoGrigliaViewModel(PVOrdiniAcquistoRESTConsumer pvOrdiniAcquistoRESTConsumer, + ArticoloGrigliaRepository articoloGrigliaRepository, + OrdineRepository ordineRepository, + GrigliaRepository grigliaRepository){ + return new PVOrdiniAcquistoGrigliaViewModel(pvOrdiniAcquistoRESTConsumer, articoloGrigliaRepository, ordineRepository, grigliaRepository); + } + } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/PVOrdiniAcquistoGrigliaViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/PVOrdiniAcquistoGrigliaViewModel.java new file mode 100644 index 00000000..636547a3 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/PVOrdiniAcquistoGrigliaViewModel.java @@ -0,0 +1,47 @@ +package it.integry.integrywmsnative.gest.pv_ordini_acquisto; + +import javax.inject.Inject; + +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.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.RunnableArgs; +import it.integry.integrywmsnative.core.rest.consumers.PVOrdiniAcquistoRESTConsumer; +import it.integry.integrywmsnative.core.utility.UtilityDate; + +public class PVOrdiniAcquistoGrigliaViewModel { + + private final PVOrdiniAcquistoRESTConsumer pvOrdiniAcquistoRESTConsumer; + private final ArticoloGrigliaRepository articoloGrigliaRepository; + private final OrdineRepository ordineRepository; + private final GrigliaRepository grigliaRepository; + + @Inject + public PVOrdiniAcquistoGrigliaViewModel(PVOrdiniAcquistoRESTConsumer pvOrdiniAcquistoRESTConsumer, + ArticoloGrigliaRepository articoloGrigliaRepository, + OrdineRepository ordineRepository, + GrigliaRepository grigliaRepository) { + this.pvOrdiniAcquistoRESTConsumer = pvOrdiniAcquistoRESTConsumer; + this.articoloGrigliaRepository = articoloGrigliaRepository; + this.ordineRepository = ordineRepository; + this.grigliaRepository = grigliaRepository; + } + + public void createNewOrder(Griglia griglia, RunnableArgs onSuccess, RunnableArgs onError) { + Ordine ordine = new Ordine(); + ordine.setDataIns(UtilityDate.getDateInstance()); + ordine.setIdGriglia(griglia.getGrigliaId()); + ordine.setOrderNewProducts(true); + ordineRepository.insert(ordine, id -> { + ordine.setOrdineId(id); + onSuccess.run(ordine); + }, onError); + } + + public void deleteOrder(Ordine ordine, Runnable onSuccess, RunnableArgs onFail) { + ordineRepository.delete(ordine, onSuccess, onFail); + } + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/dialogs/DialogScanLisA.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/dialogs/DialogScanLisA.java deleted file mode 100644 index 1f8c1998..00000000 --- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/dialogs/DialogScanLisA.java +++ /dev/null @@ -1,130 +0,0 @@ -package it.integry.integrywmsnative.gest.pv_ordini_acquisto.dialogs; - -import android.app.Dialog; -import android.content.Context; -import android.graphics.Color; -import android.graphics.drawable.ColorDrawable; -import android.view.LayoutInflater; - -import androidx.databinding.DataBindingUtil; -import androidx.fragment.app.FragmentActivity; - -import it.integry.barcode_base_android_library.model.BarcodeScanDTO; -import it.integry.integrywmsnative.R; -import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO; -import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; -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.expansion.BaseDialog; -import it.integry.integrywmsnative.core.expansion.RunnableArgs; -import it.integry.integrywmsnative.core.utility.UtilityExceptions; -import it.integry.integrywmsnative.core.utility.UtilityProgress; -import it.integry.integrywmsnative.databinding.DialogScanCodiceGrigliaBinding; -import it.integry.integrywmsnative.gest.pv_ordini_acquisto.helper.OrdineAcquistoPvHelper; -import it.integry.integrywmsnative.view.dialogs.DialogProgressView; - -public class DialogScanLisA { - - private FragmentActivity mContext; - - private BaseDialog mDialog; - private DialogProgressView mCurrentProgress; - - private final DialogScanCodiceGrigliaBinding mBinding; - - private RunnableArgs mOnDialogDismiss; - - private OrdineAcquistoPvHelper mHelper; - - private GrigliaRepository mGrigliaRepository; - private Griglia mGriglia; - - private DialogScanLisA(FragmentActivity context, GrigliaRepository grigliaRepository, OrdineAcquistoPvHelper helper, RunnableArgs onDialogDismiss) { - mOnDialogDismiss = null; - mContext = 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); - - mDialog = new BaseDialog(context); - mDialog.setContentView(mBinding.getRoot()); - mDialog.setCanceledOnTouchOutside(false); - mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); - mOnDialogDismiss = onDialogDismiss; - initBarcode(); - - } - - public static Dialog make(FragmentActivity context, GrigliaRepository grigliaRepository, OrdineAcquistoPvHelper helper, RunnableArgs onDialogDismiss) { - return new DialogScanLisA(context, grigliaRepository, helper, onDialogDismiss).mDialog; - } - - - private void initBarcode() { - - int barcodeIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO() - .setOnScanSuccessful(onScanSuccessfull) - .setOnScanFailed(ex -> UtilityExceptions.defaultException(mContext, ex, false))); - - mDialog.setBarcodeListener(true); - mDialog.setOnDismissListener(dialog -> { - BarcodeManager.removeCallback(barcodeIstanceID); - BarcodeManager.enable(); - mOnDialogDismiss.run(mGriglia); - }); - } - - private final RunnableArgs onScanSuccessfull = data -> { - BarcodeManager.disable(); - - this.openProgress(); - Context context = mContext; - RunnableArgs mOnError = exception -> { - mContext.runOnUiThread(() -> { - this.closeProgress(); - UtilityExceptions.defaultException(context, exception); - BarcodeManager.enable(); - }); - }; - - RunnableArgs onGrigliaAvailable = griglia -> { - mContext.runOnUiThread(() -> { - this.closeProgress(); - mGriglia = griglia; - mDialog.dismiss(); - }); - }; - - - mGrigliaRepository.findByCodAlis(data.getStringValue(), griglia -> { - if (griglia != null) { - griglia.getGriglia().setCountArticoli(griglia.getCountArticoli()); - mHelper.updateGriglia(griglia.getGriglia(), onGrigliaAvailable, mOnError); - } else { - mHelper.downloadAndSaveLisA(data.getStringValue(), onGrigliaAvailable, mOnError); - } - }, mOnError); - - - }; - - protected void openProgress() { - mContext.runOnUiThread(() -> { - if (this.mCurrentProgress == null) { - this.mCurrentProgress = UtilityProgress.createDefaultProgressDialog(mContext); - } - }); - } - - protected void closeProgress() { - mContext.runOnUiThread(() -> { - if (mCurrentProgress != null) { - mCurrentProgress.dismiss(); - mCurrentProgress = null; - } - }); - } -} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/dialogs/DialogScanLisAComponent.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/dialogs/DialogScanLisAComponent.java new file mode 100644 index 00000000..35d52963 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/dialogs/DialogScanLisAComponent.java @@ -0,0 +1,14 @@ +package it.integry.integrywmsnative.gest.pv_ordini_acquisto.dialogs; + +import dagger.Subcomponent; + +@Subcomponent +public interface DialogScanLisAComponent { + + @Subcomponent.Factory + interface Factory { + DialogScanLisAComponent create(); + } + + void inject(DialogScanLisAView dialogScanLisAView); +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/dialogs/DialogScanLisAView.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/dialogs/DialogScanLisAView.java new file mode 100644 index 00000000..18464383 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/dialogs/DialogScanLisAView.java @@ -0,0 +1,166 @@ +package it.integry.integrywmsnative.gest.pv_ordini_acquisto.dialogs; + +import android.app.Dialog; +import android.content.DialogInterface; +import android.os.Bundle; +import android.view.LayoutInflater; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.databinding.DataBindingUtil; + +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + +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; +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.data_store.db.repository.GrigliaRepository; +import it.integry.integrywmsnative.core.data_store.db.view_model.ArticoloDTO; +import it.integry.integrywmsnative.core.expansion.BaseDialogFragment; +import it.integry.integrywmsnative.core.expansion.RunnableArgs; +import it.integry.integrywmsnative.core.rest.consumers.PVOrdiniAcquistoRESTConsumer; +import it.integry.integrywmsnative.databinding.DialogScanCodiceGrigliaBinding; + +public class DialogScanLisAView extends BaseDialogFragment { + + private DialogScanCodiceGrigliaBinding mBinding; + private int mBarcodeScannerIstanceID; + + private final RunnableArgs mOnDialogDismiss; + + @Inject + PVOrdiniAcquistoRESTConsumer pvOrdiniAcquistoRESTConsumer; + + @Inject + ArticoloGrigliaRepository articoloGrigliaRepository; + + @Inject + GrigliaRepository grigliaRepository; + + private Griglia mGriglia; + + + public static DialogScanLisAView newInstance(RunnableArgs onDialogDismiss) { + return new DialogScanLisAView(onDialogDismiss); + } + + private DialogScanLisAView(RunnableArgs onDialogDismiss) { + super(); + mOnDialogDismiss = onDialogDismiss; + } + + @NonNull + @Override + public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { + this.initBarcode(); + + MainApplication.appComponent + .dialogScanLisAComponent() + .create() + .inject(this); + + mBinding = DataBindingUtil.inflate(LayoutInflater.from(requireContext()), R.layout.dialog_scan_codice_griglia, null, false); + mBinding.setLifecycleOwner(this); + + var alertDialogBuilder = new MaterialAlertDialogBuilder(requireContext()) + .setView(mBinding.getRoot()) + .setCancelable(true); + + var alertDialog = alertDialogBuilder.create(); + alertDialog.setCanceledOnTouchOutside(true); + return alertDialog; + } + + private void initBarcode() { + mBarcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO() + .setOnScanSuccessful(onScanSuccessfull) + .setOnScanFailed(this::onError)); + + this.setBarcodeListener(true); + } + + @Override + public void onDismiss(@NonNull DialogInterface dialog) { + BarcodeManager.removeCallback(mBarcodeScannerIstanceID); + mOnDialogDismiss.run(mGriglia); + + super.onDismiss(dialog); + } + + private final RunnableArgs onScanSuccessfull = data -> { + BarcodeManager.disable(); + this.onLoadingStarted(); + + RunnableArgs mOnError = exception -> { + this.onError(exception); + BarcodeManager.enable(); + }; + + RunnableArgs onGrigliaAvailable = griglia -> { + this.onLoadingEnded(); + mGriglia = griglia; + dismiss(); + }; + + + grigliaRepository.findByCodAlis(data.getStringValue(), grigliaWrapper -> { + if (grigliaWrapper != null) { + var griglia = grigliaWrapper.getGriglia(); + + griglia.setCountArticoli(grigliaWrapper.getCountArticoli()); + updateGriglia(griglia, onGrigliaAvailable, mOnError); + } else { + downloadAndSaveLisA(data.getStringValue(), onGrigliaAvailable, mOnError); + } + }, mOnError); + }; + + + + + + public void downloadAndSaveLisA(String codAlis, RunnableArgs onSave, RunnableArgs onFailed) { + Griglia griglia = new Griglia(); + griglia.setCodAlis(codAlis); + updateGriglia(griglia, onSave, onFailed); + } + + public void updateGriglia(Griglia griglia, RunnableArgs onSaved, RunnableArgs onFailed) { + pvOrdiniAcquistoRESTConsumer.getArticoliListino(griglia.getCodAlis(), dto -> { + + if (dto.getGrigliaAcquistiChild().size() <= 0) { + onFailed.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()); + + grigliaRepository.saveGriglia(griglia, id -> { + saveLisAToGriglia(dto.getGrigliaAcquistiChild(), griglia, onSaved, onFailed); + }, onFailed); + }, onFailed); + } + + private void saveLisAToGriglia(List articoli, Griglia griglia, RunnableArgs onSave, RunnableArgs onFail) { + List articoliGriglia = new ArrayList<>(); + for (ArticoloDTO articolo : articoli) { + ArticoloGriglia toSave = articolo.toArticoloGriglia(); + toSave.setIdGriglia(griglia.getGrigliaId()); + articoliGriglia.add(toSave); + } + + articoloGrigliaRepository.saveArticoliToGriglia(articoliGriglia, griglia, () -> onSave.run(griglia), onFail); + } +} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/helper/OrdineAcquistoPvHelper.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/helper/OrdineAcquistoPvHelper.java deleted file mode 100644 index f32b2c6f..00000000 --- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/helper/OrdineAcquistoPvHelper.java +++ /dev/null @@ -1,86 +0,0 @@ -package it.integry.integrywmsnative.gest.pv_ordini_acquisto.helper; - -import android.app.Activity; - -import java.util.ArrayList; -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.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; -import it.integry.integrywmsnative.core.expansion.RunnableArgs; -import it.integry.integrywmsnative.core.rest.consumers.PVOrdiniAcquistoRESTConsumer; -import it.integry.integrywmsnative.core.utility.UtilityDate; - -public class OrdineAcquistoPvHelper { - - private Activity mContext; - private GrigliaRepository mGrigliaRepository; - private ArticoloGrigliaRepository mArticoliGrigliaRepository; - private ArticoliOrdineRepository mArticoliOrdineRepository; - private OrdineRepository mOrdineRepository; - - 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; - - } - - public void downloadAndSaveLisA(String codAlis, RunnableArgs onSave, RunnableArgs onFail) { - Griglia griglia = new Griglia(); - griglia.setCodAlis(codAlis); - updateGriglia(griglia, onSave, onFail); - } - - public void updateGriglia(Griglia griglia, RunnableArgs onSaved, RunnableArgs onFail) { - PVOrdiniAcquistoRESTConsumer.getArticoliListinoStatic(griglia.getCodAlis(), dto -> { - mContext.runOnUiThread(() -> { - if (dto.getGrigliaAcquistiChild().size() <= 0) { - 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, onSaved, onFail); - }, onFail); - }); - }, onFail); - } - - private void saveLisAToGriglia(List articoli, Griglia griglia, RunnableArgs onSave, RunnableArgs onFail) { - List articoliGriglia = new ArrayList<>(); - for (ArticoloDTO articolo : articoli) { - ArticoloGriglia toSave = articolo.toArticoloGriglia(); - toSave.setIdGriglia(griglia.getGrigliaId()); - articoliGriglia.add(toSave); - } - mArticoliGrigliaRepository.saveArticoliToGriglia(articoliGriglia, griglia, () -> onSave.run(griglia), onFail); - } - - public void createNewOrder(Griglia griglia, RunnableArgs onSuccess, RunnableArgs onError) { - Ordine ordine = new Ordine(); - ordine.setDataIns(UtilityDate.getDateInstance()); - ordine.setIdGriglia(griglia.getGrigliaId()); - ordine.setOrderNewProducts(true); - mOrdineRepository.insert(ordine, id -> { - ordine.setOrdineId(id); - onSuccess.run(ordine); - }, onError); - } - - public void deleteOrder(Ordine ordine, Runnable onSuccess, RunnableArgs onFail) { - mOrdineRepository.delete(ordine, onSuccess, onFail); - } -} diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogAskAction.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogAskAction.java deleted file mode 100644 index 90ebbbaa..00000000 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogAskAction.java +++ /dev/null @@ -1,58 +0,0 @@ -package it.integry.integrywmsnative.view.dialogs; - -import android.app.Activity; -import android.app.Dialog; -import android.content.Context; -import android.graphics.Color; -import android.graphics.drawable.ColorDrawable; -import android.view.LayoutInflater; - -import androidx.databinding.DataBindingUtil; - -import it.integry.integrywmsnative.R; -import it.integry.integrywmsnative.core.expansion.BaseDialog; -import it.integry.integrywmsnative.core.utility.UtilityDialog; -import it.integry.integrywmsnative.databinding.DialogAskActionEditDeleteBinding; - -public class DialogAskAction { - private Activity mContext; - private Dialog mDialog; - private Runnable mOnEditSelected; - private Runnable mOnDeleteSelected; - - private DialogAskAction(Activity context,String title, String subTitle, Runnable onEditSelected, Runnable onDeleteSelected) { - mContext = context; - mOnEditSelected = onEditSelected; - mOnDeleteSelected = onDeleteSelected; - - LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); - DialogAskActionEditDeleteBinding mBinding = DataBindingUtil.inflate(inflater, R.layout.dialog_ask_action_edit_delete, null, false); - mBinding.setViewmodel(this); - - mDialog = new BaseDialog(context); - mDialog.setContentView(mBinding.getRoot()); - UtilityDialog.setTo90PercentWidth(mContext, mDialog); - mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); - - mBinding.bottomSheetActionsTitle.setText(title); - mBinding.bottomSheetActionsSubtitle.setText(subTitle); - - } - - - public static Dialog make(Activity context, String title, String subtitle, Runnable onEdit, Runnable onDelete) { - return new DialogAskAction(context, title,subtitle,onEdit,onDelete).mDialog; - } - - - public void onEdit(){ - mDialog.dismiss(); - mOnEditSelected.run(); - } - public void onDelete(){ - mDialog.dismiss(); - mOnDeleteSelected.run(); - } - -} - diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogAskActionView.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogAskActionView.java new file mode 100644 index 00000000..05535a7d --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogAskActionView.java @@ -0,0 +1,66 @@ +package it.integry.integrywmsnative.view.dialogs; + +import android.app.Dialog; +import android.os.Bundle; +import android.view.LayoutInflater; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + +import it.integry.integrywmsnative.core.expansion.BaseDialogFragment; +import it.integry.integrywmsnative.databinding.DialogAskActionEditDeleteBinding; + +public class DialogAskActionView extends BaseDialogFragment { + + private final String mTitle; + private final String mSubtitle; + + private final Runnable mOnEditSelected; + private final Runnable mOnDeleteSelected; + + + + public static DialogAskActionView newInstance(String title, String subtitle, Runnable onEdit, Runnable onDelete) { + return new DialogAskActionView(title, subtitle, onEdit, onDelete); + } + + private DialogAskActionView(String title, String subTitle, Runnable onEditSelected, Runnable onDeleteSelected) { + super(); + + mTitle = title; + mSubtitle = subTitle; + + mOnEditSelected = onEditSelected; + mOnDeleteSelected = onDeleteSelected; + } + + @NonNull + @Override + public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { + DialogAskActionEditDeleteBinding mBinding = DialogAskActionEditDeleteBinding.inflate(LayoutInflater.from(requireContext()), null, false); + mBinding.setLifecycleOwner(this); + mBinding.setViewmodel(this); + + var alertDialogBuilder = new MaterialAlertDialogBuilder(requireContext()) + .setView(mBinding.getRoot()); + + mBinding.bottomSheetActionsTitle.setText(mTitle); + mBinding.bottomSheetActionsSubtitle.setText(mSubtitle); + + return alertDialogBuilder.create(); + } + + public void onEdit() { + dismiss(); + mOnEditSelected.run(); + } + + public void onDelete() { + dismiss(); + mOnDeleteSelected.run(); + } + +} + diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_art/DialogScanArtView.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_art/DialogScanArtView.java index 4488525f..291b1ff7 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_art/DialogScanArtView.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_art/DialogScanArtView.java @@ -10,7 +10,6 @@ import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.databinding.DataBindingUtil; import com.annimon.stream.Stream; @@ -20,7 +19,6 @@ 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; import it.integry.integrywmsnative.core.expansion.BaseDialogFragment; @@ -62,7 +60,7 @@ public class DialogScanArtView extends BaseDialogFragment implements DialogScanA public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { this.initBarcode(); - mBindings = DataBindingUtil.inflate(inflater, R.layout.dialog_scan_art, container, false); + mBindings = DialogScanArtBinding.inflate(inflater, container, false); mBindings.setLifecycleOwner(this); MainApplication.appComponent diff --git a/app/src/main/res/layout/dialog_ask_action_edit_delete.xml b/app/src/main/res/layout/dialog_ask_action_edit_delete.xml index 055aa010..912e71e3 100644 --- a/app/src/main/res/layout/dialog_ask_action_edit_delete.xml +++ b/app/src/main/res/layout/dialog_ask_action_edit_delete.xml @@ -7,7 +7,7 @@ + type="it.integry.integrywmsnative.view.dialogs.DialogAskActionView" /> diff --git a/app/src/main/res/layout/dialog_base.xml b/app/src/main/res/layout/dialog_base.xml index 2525d373..800e6e51 100644 --- a/app/src/main/res/layout/dialog_base.xml +++ b/app/src/main/res/layout/dialog_base.xml @@ -29,7 +29,7 @@ + + + + - - - - - - - - - - - + android:orientation="vertical" + android:paddingStart="24dp" + android:paddingTop="24dp" + android:paddingEnd="24dp" + android:paddingBottom="12dp"> - + android:gravity="center_horizontal" + android:text="@string/title_open_grid_pv" /> - + + + + + + android:layout_gravity="center_vertical" + android:layout_marginStart="8dp" + android:layout_marginEnd="12dp" + android:gravity="center_horizontal" + android:text="@string/scan_grid" + android:textSize="16sp" /> + - + - - + + - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/layout/fragment_pv_ordini_acquisto__list_single_item.xml b/app/src/main/res/layout/fragment_pv_ordini_acquisto__list_single_item.xml index 74516a07..aab6b20d 100644 --- a/app/src/main/res/layout/fragment_pv_ordini_acquisto__list_single_item.xml +++ b/app/src/main/res/layout/fragment_pv_ordini_acquisto__list_single_item.xml @@ -2,69 +2,58 @@ + + - + android:paddingEnd="8dp" + android:paddingBottom="8dp"> - + android:layout_marginEnd="4dp" + android:layout_toStartOf="@id/data_ord" + android:ellipsize="end" + android:singleLine="true" + android:textColor="@android:color/black" + tools:text="IDENTIFIER" /> + - - - - - - - - + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6e6b19a4..1240cf05 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -341,7 +341,7 @@ Purchase Orders Transmitted Orders Select grid - scan the barcode for the wanted grid + Scan the barcode for the wanted grid Open orders Checking for open orders %s items]]>