- corretto il metodo di download griglia in modo che elimini gli articoli rimossi dalla griglia,
- corretto bug nel lettore di codici a barre per ignorare il keypress su alcuni pulsanti di controllo (es. pulsante DEL)
This commit is contained in:
parent
8c2b24787a
commit
b1c5aa6f74
@ -1,10 +1,12 @@
|
|||||||
package it.integry.integrywmsnative.core.data_store.db.dao;
|
package it.integry.integrywmsnative.core.data_store.db.dao;
|
||||||
|
|
||||||
import androidx.room.Dao;
|
import androidx.room.Dao;
|
||||||
|
import androidx.room.Delete;
|
||||||
import androidx.room.Insert;
|
import androidx.room.Insert;
|
||||||
import androidx.room.Query;
|
import androidx.room.Query;
|
||||||
import androidx.room.Update;
|
import androidx.room.Update;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia;
|
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia;
|
||||||
@ -13,6 +15,7 @@ import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia;
|
|||||||
public interface ArticoloGrigliaDao {
|
public interface ArticoloGrigliaDao {
|
||||||
@Query("SELECT * from articoli_griglia")
|
@Query("SELECT * from articoli_griglia")
|
||||||
List<ArticoloGriglia> getAll();
|
List<ArticoloGriglia> getAll();
|
||||||
|
|
||||||
@Query("SELECT articolo_griglia_id FROM articoli_griglia WHERE cod_mart = :codMart AND id_griglia = :idGriglia")
|
@Query("SELECT articolo_griglia_id FROM articoli_griglia WHERE cod_mart = :codMart AND id_griglia = :idGriglia")
|
||||||
Integer getIdArticoloByGrigliaAndCodMart(int idGriglia, String codMart);
|
Integer getIdArticoloByGrigliaAndCodMart(int idGriglia, String codMart);
|
||||||
|
|
||||||
@ -25,6 +28,9 @@ public interface ArticoloGrigliaDao {
|
|||||||
@Update
|
@Update
|
||||||
void update(ArticoloGriglia articolo);
|
void update(ArticoloGriglia articolo);
|
||||||
|
|
||||||
|
@Delete
|
||||||
|
void deleteList(List<ArticoloGriglia> toDelete);
|
||||||
|
|
||||||
@Query("SELECT * FROM articoli_griglia WHERE bar_code = :barcode AND id_griglia = :idGriglia LIMIT 1")
|
@Query("SELECT * FROM articoli_griglia WHERE bar_code = :barcode AND id_griglia = :idGriglia LIMIT 1")
|
||||||
ArticoloGriglia findArticoloByBarcodeAndGriglia(String barcode, int idGriglia);
|
ArticoloGriglia findArticoloByBarcodeAndGriglia(String barcode, int idGriglia);
|
||||||
|
|
||||||
@ -36,4 +42,7 @@ public interface ArticoloGrigliaDao {
|
|||||||
|
|
||||||
@Query("SELECT articolo_griglia_id FROM articoli_griglia WHERE (cod_mart = :codMart AND bar_code =:barCode )AND id_griglia = :idGriglia LIMIT 1")
|
@Query("SELECT articolo_griglia_id FROM articoli_griglia WHERE (cod_mart = :codMart AND bar_code =:barCode )AND id_griglia = :idGriglia LIMIT 1")
|
||||||
Integer getIdArticoloByGrigliaAndBarcodeAndCodMart(int idGriglia, String barCode, String codMart);
|
Integer getIdArticoloByGrigliaAndBarcodeAndCodMart(int idGriglia, String barCode, String codMart);
|
||||||
|
|
||||||
|
@Query("SELECT * FROM articoli_griglia WHERE id_griglia = :grigliaId")
|
||||||
|
List<ArticoloGriglia> getArticoliFromGriglia(int grigliaId);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,8 @@
|
|||||||
package it.integry.integrywmsnative.core.data_store.db.repository;
|
package it.integry.integrywmsnative.core.data_store.db.repository;
|
||||||
|
|
||||||
|
import com.annimon.stream.Collectors;
|
||||||
|
import com.annimon.stream.Stream;
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -8,6 +11,7 @@ import java.util.List;
|
|||||||
import it.integry.integrywmsnative.MainApplication;
|
import it.integry.integrywmsnative.MainApplication;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.dao.ArticoloGrigliaDao;
|
import it.integry.integrywmsnative.core.data_store.db.dao.ArticoloGrigliaDao;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia;
|
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia;
|
||||||
|
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
|
||||||
public class ArticoliGrigliaRepository extends Repository{
|
public class ArticoliGrigliaRepository extends Repository{
|
||||||
@ -18,13 +22,15 @@ public class ArticoliGrigliaRepository extends Repository{
|
|||||||
this.mRepository = MainApplication.getArticoliGrigliaRepository();
|
this.mRepository = MainApplication.getArticoliGrigliaRepository();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void saveArticoliToGriglia(List<ArticoloGriglia> articoli, Runnable onSuccess, RunnableArgs<Exception> onFail) {
|
public void saveArticoliToGriglia(List<ArticoloGriglia> articoli, Griglia griglia, Runnable onSuccess, RunnableArgs<Exception> onFail) {
|
||||||
execute(()->{
|
execute(()->{
|
||||||
try{
|
try{
|
||||||
List<ArticoloGriglia> toUpdate = new ArrayList<>();
|
List<ArticoloGriglia> toUpdate = new ArrayList<>();
|
||||||
List<ArticoloGriglia> toInsert = new ArrayList<>();
|
List<ArticoloGriglia> toInsert = new ArrayList<>();
|
||||||
|
List<String> codMarts = new ArrayList<>();
|
||||||
for (ArticoloGriglia art : articoli){
|
for (ArticoloGriglia art : articoli){
|
||||||
Integer id = mRepository.getIdArticoloByGrigliaAndBarcodeAndCodMart(art.getIdGriglia(),art.getBarCode(),art.getCodMart());
|
Integer id = mRepository.getIdArticoloByGrigliaAndBarcodeAndCodMart(griglia.getGrigliaId(),art.getBarCode(),art.getCodMart());
|
||||||
|
codMarts.add(art.getCodMart());
|
||||||
if (id != null){
|
if (id != null){
|
||||||
art.setArticoloGrigliaId(id);
|
art.setArticoloGrigliaId(id);
|
||||||
toUpdate.add(art);
|
toUpdate.add(art);
|
||||||
@ -34,6 +40,9 @@ public class ArticoliGrigliaRepository extends Repository{
|
|||||||
}
|
}
|
||||||
mRepository.insertAll(toInsert);
|
mRepository.insertAll(toInsert);
|
||||||
mRepository.updateAll(toUpdate);
|
mRepository.updateAll(toUpdate);
|
||||||
|
List<ArticoloGriglia> articoliGriglia = mRepository.getArticoliFromGriglia(griglia.getGrigliaId());
|
||||||
|
List<ArticoloGriglia> toDelete =Stream.of(articoliGriglia).filter(articolo-> !codMarts.contains(articolo.getCodMart())).toList();
|
||||||
|
mRepository.deleteList(toDelete);
|
||||||
onSuccess.run();
|
onSuccess.run();
|
||||||
}catch (Exception e){
|
}catch (Exception e){
|
||||||
onFail.run(e);
|
onFail.run(e);
|
||||||
|
|||||||
@ -12,10 +12,20 @@ public class BaseActivity extends AppCompatActivity {
|
|||||||
@Override
|
@Override
|
||||||
public boolean dispatchKeyEvent(KeyEvent event) {
|
public boolean dispatchKeyEvent(KeyEvent event) {
|
||||||
if (BarcodeManager.isEnabled() && BarcodeManager.isKeyboardEmulator()) {
|
if (BarcodeManager.isEnabled() && BarcodeManager.isKeyboardEmulator()) {
|
||||||
if (event.getAction() == KeyEvent.ACTION_DOWN || event.getAction() == KeyEvent.ACTION_MULTIPLE) {
|
if (event.getAction() == KeyEvent.ACTION_DOWN || event.getAction() == KeyEvent.ACTION_MULTIPLE && !isControlKey(event)) {
|
||||||
return BarcodeManager.onKeyDown(event.getKeyCode(), event);
|
return BarcodeManager.onKeyDown(event.getKeyCode(), event);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return super.dispatchKeyEvent(event);
|
return super.dispatchKeyEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean isControlKey(KeyEvent keyEvent) {
|
||||||
|
int keyCode = keyEvent.getKeyCode();
|
||||||
|
return (
|
||||||
|
keyCode == KeyEvent.KEYCODE_BACK ||
|
||||||
|
keyCode == KeyEvent.KEYCODE_SHIFT_LEFT ||
|
||||||
|
keyCode == KeyEvent.KEYCODE_DEL
|
||||||
|
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,7 +18,7 @@ public class BaseDialog extends Dialog {
|
|||||||
|
|
||||||
public BaseDialog(@NonNull Context context) {
|
public BaseDialog(@NonNull Context context) {
|
||||||
super(context);
|
super(context);
|
||||||
if (BarcodeManager.isEnabled() && BarcodeManager.isKeyboardEmulator()){
|
if (BarcodeManager.isEnabled() && BarcodeManager.isKeyboardEmulator()) {
|
||||||
setOnKeyListener((dialog, keyCode, event) -> {
|
setOnKeyListener((dialog, keyCode, event) -> {
|
||||||
if (mBarcodeListener && (event.getAction() == KeyEvent.ACTION_DOWN || event.getAction() == KeyEvent.ACTION_MULTIPLE) && !isControlKey(event)) {
|
if (mBarcodeListener && (event.getAction() == KeyEvent.ACTION_DOWN || event.getAction() == KeyEvent.ACTION_MULTIPLE) && !isControlKey(event)) {
|
||||||
return BarcodeManager.onKeyDown(event.getKeyCode(), event);
|
return BarcodeManager.onKeyDown(event.getKeyCode(), event);
|
||||||
@ -32,8 +32,8 @@ public class BaseDialog extends Dialog {
|
|||||||
int keyCode = keyEvent.getKeyCode();
|
int keyCode = keyEvent.getKeyCode();
|
||||||
return (
|
return (
|
||||||
keyCode == KeyEvent.KEYCODE_BACK ||
|
keyCode == KeyEvent.KEYCODE_BACK ||
|
||||||
keyCode == KeyEvent.KEYCODE_SHIFT_LEFT
|
keyCode == KeyEvent.KEYCODE_SHIFT_LEFT ||
|
||||||
|
keyCode == KeyEvent.KEYCODE_DEL
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -50,9 +50,7 @@ public class OrdineAcquistoPvHelper {
|
|||||||
griglia.setDescrLisa(dto.getDescrLisa());
|
griglia.setDescrLisa(dto.getDescrLisa());
|
||||||
griglia.setDescrDepo(dto.getDescrDepo());
|
griglia.setDescrDepo(dto.getDescrDepo());
|
||||||
griglia.setCountArticoli(dto.getGrigliaAcquistiChild().size());
|
griglia.setCountArticoli(dto.getGrigliaAcquistiChild().size());
|
||||||
mGrigliaRepository.saveGriglia(griglia, id -> {
|
mGrigliaRepository.saveGriglia(griglia, id -> saveLisAToGriglia(dto.getGrigliaAcquistiChild(), griglia, onSave, onFail), onFail);
|
||||||
saveLisAToGriglia(dto.getGrigliaAcquistiChild(), griglia, onSave, onFail);
|
|
||||||
}, onFail);
|
|
||||||
|
|
||||||
}, onFail);
|
}, onFail);
|
||||||
}
|
}
|
||||||
@ -64,7 +62,7 @@ public class OrdineAcquistoPvHelper {
|
|||||||
toSave.setIdGriglia(griglia.getGrigliaId());
|
toSave.setIdGriglia(griglia.getGrigliaId());
|
||||||
articoliGriglia.add(toSave);
|
articoliGriglia.add(toSave);
|
||||||
}
|
}
|
||||||
mArticoliGrigliaRepository.saveArticoliToGriglia(articoliGriglia, () -> onSave.run(griglia), onFail);
|
mArticoliGrigliaRepository.saveArticoliToGriglia(articoliGriglia,griglia, () -> onSave.run(griglia), onFail);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void createNewOrder(Griglia griglia, RunnableArgs<Ordine> onSuccess, RunnableArgs<Exception> onError) {
|
public void createNewOrder(Griglia griglia, RunnableArgs<Ordine> onSuccess, RunnableArgs<Exception> onError) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user