Merge remote-tracking branch 'origin/develop' into develop
This commit is contained in:
commit
34d8a93c01
@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services'
|
|||||||
|
|
||||||
android {
|
android {
|
||||||
|
|
||||||
def appVersionCode = 269
|
def appVersionCode = 270
|
||||||
def appVersionName = '1.24.1'
|
def appVersionName = '1.24.2'
|
||||||
|
|
||||||
signingConfigs {
|
signingConfigs {
|
||||||
release {
|
release {
|
||||||
@ -85,7 +85,6 @@ android {
|
|||||||
dynamicFeatures = [":dynamic__base", ":dynamic_vgalimenti"]
|
dynamicFeatures = [":dynamic__base", ":dynamic_vgalimenti"]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import androidx.room.Database;
|
|||||||
import androidx.room.RoomDatabase;
|
import androidx.room.RoomDatabase;
|
||||||
import androidx.room.TypeConverters;
|
import androidx.room.TypeConverters;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.data_store.db.converter.BigDecimalConverter;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.converter.DateConverter;
|
import it.integry.integrywmsnative.core.data_store.db.converter.DateConverter;
|
||||||
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.dao.ArticoloOrdineDao;
|
import it.integry.integrywmsnative.core.data_store.db.dao.ArticoloOrdineDao;
|
||||||
@ -20,7 +21,8 @@ import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColt;
|
|||||||
|
|
||||||
@Database(entities = {ArticoloGriglia.class, Griglia.class, Ordine.class, ArticoloOrdine.class, SqlMtbColt.class, SqlMtbColr.class}, version = 8, exportSchema = false)
|
@Database(entities = {ArticoloGriglia.class, Griglia.class, Ordine.class, ArticoloOrdine.class, SqlMtbColt.class, SqlMtbColr.class}, version = 8, exportSchema = false)
|
||||||
@TypeConverters({
|
@TypeConverters({
|
||||||
DateConverter.class
|
DateConverter.class,
|
||||||
|
BigDecimalConverter.class
|
||||||
})
|
})
|
||||||
public abstract class AppDatabase extends RoomDatabase {
|
public abstract class AppDatabase extends RoomDatabase {
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,17 @@
|
|||||||
|
package it.integry.integrywmsnative.core.data_store.db.converter;
|
||||||
|
|
||||||
|
import androidx.room.TypeConverter;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
public class BigDecimalConverter {
|
||||||
|
@TypeConverter
|
||||||
|
public static BigDecimal fromFloat(Float value) {
|
||||||
|
return value == null ? null : BigDecimal.valueOf(value.doubleValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
@TypeConverter
|
||||||
|
public static Float dateToTimestamp(BigDecimal value) {
|
||||||
|
return value == null ? null : value.floatValue();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -8,9 +8,8 @@ import androidx.room.Update;
|
|||||||
|
|
||||||
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.ArticoloOrdine;
|
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
|
import it.integry.integrywmsnative.core.data_store.db.wrappers.ArticoloOrdineWrapper;
|
||||||
|
|
||||||
@Dao
|
@Dao
|
||||||
public interface ArticoloOrdineDao {
|
public interface ArticoloOrdineDao {
|
||||||
@ -34,8 +33,17 @@ public interface ArticoloOrdineDao {
|
|||||||
@Update
|
@Update
|
||||||
void update(ArticoloOrdine articolo);
|
void update(ArticoloOrdine articolo);
|
||||||
|
|
||||||
@Query("SELECT * FROM articoli_ordine where id_ordine = :ordineId")
|
@Query("SELECT articoli_ordine.*," +
|
||||||
List<ArticoloOrdine> findArticoliByOrdine(int ordineId);
|
"articoli_griglia.gg_scadenza," +
|
||||||
|
"articoli_griglia.giacenza," +
|
||||||
|
"articoli_griglia.qta_prevista_vendita," +
|
||||||
|
"articoli_griglia.qta_proposta " +
|
||||||
|
"FROM articoli_ordine " +
|
||||||
|
"INNER JOIN ordini on articoli_ordine.id_ordine = ordini.ordine_id " +
|
||||||
|
"LEFT OUTER JOIN articoli_griglia " +
|
||||||
|
"on articoli_ordine.cod_mart = articoli_griglia.cod_mart and ordini.id_griglia = articoli_griglia.id_griglia and articoli_ordine.bar_code = articoli_griglia.bar_code " +
|
||||||
|
"where id_ordine = :ordineId")
|
||||||
|
List<ArticoloOrdineWrapper> findArticoliByOrdine(int ordineId);
|
||||||
|
|
||||||
@Query("SELECt * from articoli_ordine where cod_mart = :codMart and id_ordine = :ordineId LIMIT 1")
|
@Query("SELECt * from articoli_ordine where cod_mart = :codMart and id_ordine = :ordineId LIMIT 1")
|
||||||
ArticoloOrdine findArticoloByCodMartAndOrdine(int ordineId, String codMart);
|
ArticoloOrdine findArticoloByCodMartAndOrdine(int ordineId, String codMart);
|
||||||
|
|||||||
@ -82,6 +82,9 @@ public class ArticoloOrdine {
|
|||||||
@Ignore
|
@Ignore
|
||||||
private BigDecimal qtaProposta = BigDecimal.ZERO;
|
private BigDecimal qtaProposta = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
@Ignore
|
||||||
|
private int bgTint;
|
||||||
|
|
||||||
|
|
||||||
public Integer getArticoloOrdineId() {
|
public Integer getArticoloOrdineId() {
|
||||||
return articoloOrdineId;
|
return articoloOrdineId;
|
||||||
@ -244,6 +247,23 @@ public class ArticoloOrdine {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public float getCnfDaRic() {
|
public float getCnfDaRic() {
|
||||||
return qtaCnf > 0.f ? merceDaRic / qtaCnf : 0;
|
return qtaCnf > 0.f ? merceDaRic * qtaCnf : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int checkQtaProposta() {
|
||||||
|
int check = 0;
|
||||||
|
if (!qtaProposta.equals(BigDecimal.ZERO)) {
|
||||||
|
check = BigDecimal.valueOf(qtaOrd).compareTo(qtaProposta);
|
||||||
|
}
|
||||||
|
return check;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getBgTint() {
|
||||||
|
return bgTint;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdine setBgTint(int bgTint) {
|
||||||
|
this.bgTint = bgTint;
|
||||||
|
return this;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,7 @@
|
|||||||
package it.integry.integrywmsnative.core.data_store.db.repository.implementations;
|
package it.integry.integrywmsnative.core.data_store.db.repository.implementations;
|
||||||
|
|
||||||
|
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;
|
||||||
@ -11,6 +13,7 @@ import it.integry.integrywmsnative.core.data_store.db.dao.ArticoloOrdineDao;
|
|||||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
|
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
|
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.ArticoliOrdineRepository;
|
||||||
|
import it.integry.integrywmsnative.core.data_store.db.wrappers.ArticoloOrdineWrapper;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
|
||||||
public class ArticoliOrdineDataSource extends Repository implements ArticoliOrdineRepository {
|
public class ArticoliOrdineDataSource extends Repository implements ArticoliOrdineRepository {
|
||||||
@ -95,7 +98,15 @@ public class ArticoliOrdineDataSource extends Repository implements ArticoliOrdi
|
|||||||
public void findArticoliByOrdine(Ordine ordine, RunnableArgs<List<ArticoloOrdine>> onLoad, RunnableArgs<Exception> onError) {
|
public void findArticoliByOrdine(Ordine ordine, RunnableArgs<List<ArticoloOrdine>> onLoad, RunnableArgs<Exception> onError) {
|
||||||
execute(() -> {
|
execute(() -> {
|
||||||
try {
|
try {
|
||||||
onLoad.run(mArticoloOrdineDao.findArticoliByOrdine(ordine.getOrdineId()));
|
List<ArticoloOrdineWrapper> list = mArticoloOrdineDao.findArticoliByOrdine(ordine.getOrdineId());
|
||||||
|
onLoad.run(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());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
onError.run(e);
|
onError.run(e);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,65 @@
|
|||||||
|
package it.integry.integrywmsnative.core.data_store.db.wrappers;
|
||||||
|
|
||||||
|
import androidx.room.ColumnInfo;
|
||||||
|
import androidx.room.Embedded;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
|
||||||
|
|
||||||
|
public class ArticoloOrdineWrapper {
|
||||||
|
@Embedded
|
||||||
|
private ArticoloOrdine articoloOrdine;
|
||||||
|
|
||||||
|
@ColumnInfo(name = "gg_scadenza")
|
||||||
|
private int ggScadenza = 0;
|
||||||
|
|
||||||
|
@ColumnInfo(name = "giacenza")
|
||||||
|
private BigDecimal giacenza = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
@ColumnInfo(name = "qta_prevista_vendita")
|
||||||
|
private BigDecimal qtaPrevistaVendita = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
@ColumnInfo(name = "qta_proposta")
|
||||||
|
private BigDecimal qtaProposta = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
public ArticoloOrdine getArticoloOrdine() {
|
||||||
|
return articoloOrdine;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setArticoloOrdine(ArticoloOrdine articoloOrdine) {
|
||||||
|
this.articoloOrdine = articoloOrdine;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getGgScadenza() {
|
||||||
|
return ggScadenza;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGgScadenza(int ggScadenza) {
|
||||||
|
this.ggScadenza = ggScadenza;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getGiacenza() {
|
||||||
|
return giacenza;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGiacenza(BigDecimal giacenza) {
|
||||||
|
this.giacenza = giacenza;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getQtaPrevistaVendita() {
|
||||||
|
return qtaPrevistaVendita;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setQtaPrevistaVendita(BigDecimal qtaPrevistaVendita) {
|
||||||
|
this.qtaPrevistaVendita = qtaPrevistaVendita;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getQtaProposta() {
|
||||||
|
return qtaProposta;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setQtaProposta(BigDecimal qtaProposta) {
|
||||||
|
this.qtaProposta = qtaProposta;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -39,6 +39,7 @@ public class DBSettingsModel {
|
|||||||
private List<String> notePerditaDocInterni = new ArrayList<>();
|
private List<String> notePerditaDocInterni = new ArrayList<>();
|
||||||
private boolean flagSpedizioneUseQtaOrd;
|
private boolean flagSpedizioneUseQtaOrd;
|
||||||
private boolean flagOrdinaNuoviArticoliInGriglia;
|
private boolean flagOrdinaNuoviArticoliInGriglia;
|
||||||
|
private boolean flagOrdinaArticoliOnScan;
|
||||||
private String docInterniCheckFornitore;
|
private String docInterniCheckFornitore;
|
||||||
private String produzioneDefaultCodAnag;
|
private String produzioneDefaultCodAnag;
|
||||||
private String reportNameSpedizionChiudiOrdine;
|
private String reportNameSpedizionChiudiOrdine;
|
||||||
@ -333,4 +334,14 @@ public class DBSettingsModel {
|
|||||||
this.flagPickLiberoAllowEmptyDest = flagPickLiberoAllowEmptyDest;
|
this.flagPickLiberoAllowEmptyDest = flagPickLiberoAllowEmptyDest;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public boolean getFlagOrdinaArticoliOnScan() {
|
||||||
|
return flagOrdinaArticoliOnScan;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DBSettingsModel setFlagOrdinaArticoliOnScan(boolean flagOrdinaArticoliOnScan) {
|
||||||
|
this.flagOrdinaArticoliOnScan = flagOrdinaArticoliOnScan;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -92,7 +92,6 @@ public class SettingsManager {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
onProgress.run("depositi");
|
onProgress.run("depositi");
|
||||||
loadAvailableCodMdeps(() -> {
|
loadAvailableCodMdeps(() -> {
|
||||||
|
|
||||||
@ -114,7 +113,7 @@ public class SettingsManager {
|
|||||||
SystemRESTConsumer.getAzienda(datiAzienda -> {
|
SystemRESTConsumer.getAzienda(datiAzienda -> {
|
||||||
SettingsManager.iDB().setDatiAzienda(datiAzienda);
|
SettingsManager.iDB().setDatiAzienda(datiAzienda);
|
||||||
|
|
||||||
if(!SettingsManager.iDB().isFlagUseCodAnagAziendale()) {
|
if (!SettingsManager.iDB().isFlagUseCodAnagAziendale()) {
|
||||||
onComplete.run();
|
onComplete.run();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -127,7 +126,8 @@ public class SettingsManager {
|
|||||||
"LEFT OUTER JOIN vtb_clie vc on ga.cod_anag = vc.cod_anag AND vc.flag_stato = 'A'\n" +
|
"LEFT OUTER JOIN vtb_clie vc on ga.cod_anag = vc.cod_anag AND vc.flag_stato = 'A'\n" +
|
||||||
"LEFT OUTER JOIN atb_forn af on ga.cod_anag = af.cod_anag AND af.flag_stato = 'A'";
|
"LEFT OUTER JOIN atb_forn af on ga.cod_anag = af.cod_anag AND af.flag_stato = 'A'";
|
||||||
|
|
||||||
Type type = new TypeToken<List<InternalCodAnagsDTO>>() {}.getType();
|
Type type = new TypeToken<List<InternalCodAnagsDTO>>() {
|
||||||
|
}.getType();
|
||||||
SystemRESTConsumer.<List<InternalCodAnagsDTO>>processSqlStatic(internalCodAnagsQuery, type, internalCodAnagsList -> {
|
SystemRESTConsumer.<List<InternalCodAnagsDTO>>processSqlStatic(internalCodAnagsQuery, type, internalCodAnagsList -> {
|
||||||
SettingsManager.iDB().setInternalCodAnags(internalCodAnagsList);
|
SettingsManager.iDB().setInternalCodAnags(internalCodAnagsList);
|
||||||
|
|
||||||
@ -290,6 +290,10 @@ public class SettingsManager {
|
|||||||
.setGestName("PVM")
|
.setGestName("PVM")
|
||||||
.setSection("ORDINI_A")
|
.setSection("ORDINI_A")
|
||||||
.setKeySection("ORDINA_NUOVI_ARTICOLI"));
|
.setKeySection("ORDINA_NUOVI_ARTICOLI"));
|
||||||
|
stbGestSetupList.add(new StbGestSetup()
|
||||||
|
.setGestName("PVM")
|
||||||
|
.setSection("ORDINI_A")
|
||||||
|
.setKeySection("ORDINA_ARTICOLI_ON_SCAN"));
|
||||||
stbGestSetupList.add(new StbGestSetup()
|
stbGestSetupList.add(new StbGestSetup()
|
||||||
.setGestName("PVM")
|
.setGestName("PVM")
|
||||||
.setSection("DOC_INTERNI")
|
.setSection("DOC_INTERNI")
|
||||||
@ -329,6 +333,7 @@ public class SettingsManager {
|
|||||||
dbSettingsModelIstance.setDocInterniCheckFornitore(getValueFromList(list, "DOC_INTERNI", "CHECK_FORNITORE", String.class));
|
dbSettingsModelIstance.setDocInterniCheckFornitore(getValueFromList(list, "DOC_INTERNI", "CHECK_FORNITORE", String.class));
|
||||||
dbSettingsModelIstance.setFlagAccettazioneUseQtaOrd(getValueFromList(list, "ACCETTAZIONE", "FLAG_USE_QTA_ORD", Boolean.class));
|
dbSettingsModelIstance.setFlagAccettazioneUseQtaOrd(getValueFromList(list, "ACCETTAZIONE", "FLAG_USE_QTA_ORD", Boolean.class));
|
||||||
dbSettingsModelIstance.setFlagPickLiberoAllowEmptyDest(getValueFromList(list, "PICKING_LIBERO", "FLAG_ALLOW_EMPTY_DEST", Boolean.class));
|
dbSettingsModelIstance.setFlagPickLiberoAllowEmptyDest(getValueFromList(list, "PICKING_LIBERO", "FLAG_ALLOW_EMPTY_DEST", Boolean.class));
|
||||||
|
dbSettingsModelIstance.setFlagOrdinaArticoliOnScan(getValueFromList(list, "ORDINI_A", "ORDINA_ARTICOLI_ON_SCAN", Boolean.class));
|
||||||
|
|
||||||
String notePerdita = getValueFromList(list, "DOC_INTERNI", "NOTE_PERDITA", String.class);
|
String notePerdita = getValueFromList(list, "DOC_INTERNI", "NOTE_PERDITA", String.class);
|
||||||
if (notePerdita != null) {
|
if (notePerdita != null) {
|
||||||
|
|||||||
@ -160,7 +160,12 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi
|
|||||||
articoloOrdine.getDescrizione(),
|
articoloOrdine.getDescrizione(),
|
||||||
articoloOrdine.getQtaOrd() + " " + articoloOrdine.getUntMis(),
|
articoloOrdine.getQtaOrd() + " " + articoloOrdine.getUntMis(),
|
||||||
() -> {
|
() -> {
|
||||||
this.onItemDispatched(articoloOrdine);
|
this.mViewModel.checkArticolo(mOrdine, articoloOrdine.getCodMart(),
|
||||||
|
artOrd -> {
|
||||||
|
this.onItemDispatched(artOrd);
|
||||||
|
BarcodeManager.enable();
|
||||||
|
},
|
||||||
|
this::onError);
|
||||||
BarcodeManager.enable();
|
BarcodeManager.enable();
|
||||||
},
|
},
|
||||||
() -> {
|
() -> {
|
||||||
@ -185,9 +190,7 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi
|
|||||||
mBinding.closeActivityFab.close(false);
|
mBinding.closeActivityFab.close(false);
|
||||||
this.onLoadingStarted();
|
this.onLoadingStarted();
|
||||||
|
|
||||||
this.mViewModel.processBarcodeDTO(data, () -> {
|
this.mViewModel.processBarcodeDTO(data, this::onLoadingEnded);
|
||||||
this.onLoadingEnded();
|
|
||||||
});
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -208,6 +211,11 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi
|
|||||||
}).show(this.getSupportFragmentManager(), "tag");
|
}).show(this.getSupportFragmentManager(), "tag");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getColorFromResource(int resId) {
|
||||||
|
return getResources().getColor(resId);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public void exportOrdine() {
|
public void exportOrdine() {
|
||||||
this.mViewModel.exportOrdine(() -> {
|
this.mViewModel.exportOrdine(() -> {
|
||||||
@ -233,11 +241,13 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi
|
|||||||
BarcodeManager.disable();
|
BarcodeManager.disable();
|
||||||
DialogSimpleInputHelper.makeInputDialog(this, "Inserisci il codice a barre/codice articolo da cercare", codice -> {
|
DialogSimpleInputHelper.makeInputDialog(this, "Inserisci il codice a barre/codice articolo da cercare", codice -> {
|
||||||
this.onLoadingStarted();
|
this.onLoadingStarted();
|
||||||
this.mViewModel.loadArticolo(codice,
|
this.mViewModel.checkArticolo(mOrdine, codice,
|
||||||
() -> {
|
articoloOrdine -> {
|
||||||
|
this.onItemDispatched(articoloOrdine);
|
||||||
this.onLoadingEnded();
|
this.onLoadingEnded();
|
||||||
BarcodeManager.enable();
|
BarcodeManager.enable();
|
||||||
}
|
},
|
||||||
|
this::onError
|
||||||
);
|
);
|
||||||
}, BarcodeManager::enable).show();
|
}, BarcodeManager::enable).show();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,6 +12,7 @@ import java.util.Objects;
|
|||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
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.ArticoloOrdine;
|
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
|
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
|
||||||
@ -23,6 +24,7 @@ import it.integry.integrywmsnative.core.data_store.db.repository.OrdineRepositor
|
|||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
|
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.PVOrdiniAcquistoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.PVOrdiniAcquistoRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
|
|
||||||
public class PVOrdineAcquistoEditViewModel {
|
public class PVOrdineAcquistoEditViewModel {
|
||||||
|
|
||||||
@ -70,13 +72,27 @@ public class PVOrdineAcquistoEditViewModel {
|
|||||||
|
|
||||||
this.loadGriglia(ordine.getIdGriglia(), griglia -> {
|
this.loadGriglia(ordine.getIdGriglia(), griglia -> {
|
||||||
mCurrentGriglia.postValue(griglia);
|
mCurrentGriglia.postValue(griglia);
|
||||||
|
|
||||||
this.loadArticoli(mCurrentOrdine, articoli -> {
|
this.loadArticoli(mCurrentOrdine, articoli -> {
|
||||||
|
articoli = Stream.of(articoli).map(this::setBgTint).toList();
|
||||||
this.mArticoli.postValue(articoli);
|
this.mArticoli.postValue(articoli);
|
||||||
this.sendOnLoadingEnded();
|
this.sendOnLoadingEnded();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
});
|
private ArticoloOrdine setBgTint(ArticoloOrdine art) {
|
||||||
});
|
int chk = art.checkQtaProposta();
|
||||||
|
switch (chk) {
|
||||||
|
case -1:
|
||||||
|
art.setBgTint(this.mListener.getColorFromResource(R.color.red_600));
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
art.setBgTint(this.mListener.getColorFromResource(R.color.orange_600));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
art.setBgTint(this.mListener.getColorFromResource(R.color.colorPrimary));
|
||||||
|
}
|
||||||
|
return art;
|
||||||
}
|
}
|
||||||
|
|
||||||
public MutableLiveData<Griglia> getCurrentGriglia() {
|
public MutableLiveData<Griglia> getCurrentGriglia() {
|
||||||
@ -88,6 +104,7 @@ public class PVOrdineAcquistoEditViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void saveArticolo(ArticoloOrdine articolo) {
|
public void saveArticolo(ArticoloOrdine articolo) {
|
||||||
|
setBgTint(articolo);
|
||||||
var newList = this.mArticoli.getValue();
|
var newList = this.mArticoli.getValue();
|
||||||
|
|
||||||
var alreadySavedItem = Stream.of(newList)
|
var alreadySavedItem = Stream.of(newList)
|
||||||
@ -101,29 +118,6 @@ public class PVOrdineAcquistoEditViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void loadArticolo(String barcode, Runnable onSuccess) {
|
|
||||||
try {
|
|
||||||
mArticoliOrdineRepository.findArticoloByScanAndOrdine(mCurrentOrdine, barcode, (articolo) -> {
|
|
||||||
if (articolo != null) {
|
|
||||||
onSuccess.run();
|
|
||||||
this.sendOnItemDispatched(articolo);
|
|
||||||
} else {
|
|
||||||
mArticoloGrigliaRepository.findArticoloByScanAndGriglia(barcode, mCurrentOrdine.getIdGriglia(), artGrid -> {
|
|
||||||
if (artGrid != null) {
|
|
||||||
onSuccess.run();
|
|
||||||
this.sendOnItemDispatched(artGrid.convertToArticoloOrdine(mCurrentOrdine));
|
|
||||||
} else {
|
|
||||||
this.sendError(new Exception("L' articolo ( " + barcode + " ) non è presente nella griglia"));
|
|
||||||
}
|
|
||||||
}, this::sendError);
|
|
||||||
}
|
|
||||||
}, this::sendError);
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
|
||||||
this.sendError(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
|
public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
|
||||||
this.checkArticolo(
|
this.checkArticolo(
|
||||||
mCurrentOrdine,
|
mCurrentOrdine,
|
||||||
@ -153,15 +147,12 @@ public class PVOrdineAcquistoEditViewModel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void checkArticolo(Ordine ordine, String barcode, RunnableArgs<ArticoloOrdine> onSuccess, RunnableArgs<Exception> onFail) {
|
public void checkArticolo(Ordine ordine, String barcode, RunnableArgs<ArticoloOrdine> onSuccess, RunnableArgs<Exception> onFail) {
|
||||||
try {
|
try {
|
||||||
mArticoloGrigliaRepository.findArticoloByScanAndGriglia(barcode, ordine.getIdGriglia(), artGrid -> {
|
mArticoloGrigliaRepository.findArticoloByScanAndGriglia(barcode, ordine.getIdGriglia(), artGrid -> {
|
||||||
if (artGrid != null) {
|
if (artGrid != null) {
|
||||||
|
|
||||||
|
|
||||||
mArticoliOrdineRepository.findArticoloByScanAndOrdine(ordine, barcode, (articolo) -> {
|
mArticoliOrdineRepository.findArticoloByScanAndOrdine(ordine, barcode, (articolo) -> {
|
||||||
if (articolo != null) {
|
if (articolo != null) {
|
||||||
|
|
||||||
articolo
|
articolo
|
||||||
.setQtaPrevistaVendita(BigDecimal.valueOf(artGrid.getQtaPrevistaVendita()))
|
.setQtaPrevistaVendita(BigDecimal.valueOf(artGrid.getQtaPrevistaVendita()))
|
||||||
.setQtaProposta(BigDecimal.valueOf(artGrid.getQtaProposta()))
|
.setQtaProposta(BigDecimal.valueOf(artGrid.getQtaProposta()))
|
||||||
@ -175,7 +166,17 @@ public class PVOrdineAcquistoEditViewModel {
|
|||||||
|
|
||||||
onSuccess.run(articolo);
|
onSuccess.run(articolo);
|
||||||
} else {
|
} else {
|
||||||
onSuccess.run(artGrid.convertToArticoloOrdine(ordine));
|
ArticoloOrdine art = artGrid.convertToArticoloOrdine(ordine);
|
||||||
|
if (isAutoOrderOnScan()) {
|
||||||
|
art.setQtaOrd(art.getQtaCnf());
|
||||||
|
mArticoliOrdineRepository.saveArticoloToOrdine(art, () -> {
|
||||||
|
saveArticolo(art);
|
||||||
|
this.sendOnLoadingEnded();
|
||||||
|
|
||||||
|
}, this::sendError);
|
||||||
|
} else {
|
||||||
|
onSuccess.run(art);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}, onFail);
|
}, onFail);
|
||||||
|
|
||||||
@ -190,6 +191,10 @@ public class PVOrdineAcquistoEditViewModel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean isAutoOrderOnScan() {
|
||||||
|
return SettingsManager.iDB().getFlagOrdinaNuoviArticoliInGriglia();
|
||||||
|
}
|
||||||
|
|
||||||
private void getNewArticoli(int idGrigla, RunnableArgs<List<ArticoloGriglia>> onSuccess, RunnableArgs<Exception> onError) {
|
private void getNewArticoli(int idGrigla, RunnableArgs<List<ArticoloGriglia>> onSuccess, RunnableArgs<Exception> onError) {
|
||||||
mArticoloGrigliaRepository.findNewArticoliInGrigla(idGrigla, onSuccess, onError);
|
mArticoloGrigliaRepository.findNewArticoliInGrigla(idGrigla, onSuccess, onError);
|
||||||
}
|
}
|
||||||
@ -269,6 +274,8 @@ public class PVOrdineAcquistoEditViewModel {
|
|||||||
public interface Listener extends ILoadingListener {
|
public interface Listener extends ILoadingListener {
|
||||||
void onItemDispatched(ArticoloOrdine articoloOrdine);
|
void onItemDispatched(ArticoloOrdine articoloOrdine);
|
||||||
|
|
||||||
|
int getColorFromResource(int resId);
|
||||||
|
|
||||||
void onError(Exception ex);
|
void onError(Exception ex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -66,7 +66,7 @@ public class DialogEditArticoloViewModel {
|
|||||||
|
|
||||||
public void setQtaTot(BigDecimal newValue) {
|
public void setQtaTot(BigDecimal newValue) {
|
||||||
this.internalQtaTot = newValue;
|
this.internalQtaTot = newValue;
|
||||||
|
if (newValue == null) return;
|
||||||
this.internalNumCnf = UtilityBigDecimal.divide(newValue, internalQtaCnf)
|
this.internalNumCnf = UtilityBigDecimal.divide(newValue, internalQtaCnf)
|
||||||
.setScale(0, RoundingMode.CEILING);
|
.setScale(0, RoundingMode.CEILING);
|
||||||
|
|
||||||
@ -104,7 +104,7 @@ public class DialogEditArticoloViewModel {
|
|||||||
|
|
||||||
|
|
||||||
public void save(RunnableArgs<ArticoloOrdine> onComplete) {
|
public void save(RunnableArgs<ArticoloOrdine> onComplete) {
|
||||||
if(UtilityBigDecimal.equalsOrLowerThan(this.internalQtaTot, BigDecimal.ZERO)) {
|
if (UtilityBigDecimal.equalsOrLowerThan(this.internalQtaTot, BigDecimal.ZERO)) {
|
||||||
this.mListener.onError(new Exception("La quantità ordinata deve essere maggiore di 0"));
|
this.mListener.onError(new Exception("La quantità ordinata deve essere maggiore di 0"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -250,7 +250,7 @@
|
|||||||
style="@style/AppTheme.NewMaterial.Text.Medium"
|
style="@style/AppTheme.NewMaterial.Text.Medium"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@{UtilityNumber.decimalToString(view.articolo.getCnfDaRic())}"
|
android:text="@{UtilityNumber.decimalToString(view.articolo.merceDaRic)}"
|
||||||
android:textColor="@android:color/black"
|
android:textColor="@android:color/black"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
tools:text="1" />
|
tools:text="1" />
|
||||||
@ -281,7 +281,7 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="0dp"
|
android:layout_marginStart="0dp"
|
||||||
android:text="@{UtilityNumber.decimalToString(view.articolo.merceDaRic)}"
|
android:text="@{UtilityNumber.decimalToString(view.articolo.getCnfDaRic())}"
|
||||||
android:textColor="@android:color/black"
|
android:textColor="@android:color/black"
|
||||||
android:textStyle="bold" />
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
|||||||
@ -94,7 +94,7 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:background="@drawable/badge_round_corner"
|
android:background="@drawable/badge_round_corner"
|
||||||
android:backgroundTint="@color/colorPrimary"
|
android:backgroundTint="@{articolo.bgTint}"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:paddingLeft="6dp"
|
android:paddingLeft="6dp"
|
||||||
android:paddingTop="2dp"
|
android:paddingTop="2dp"
|
||||||
@ -104,6 +104,7 @@
|
|||||||
android:textColor="@android:color/white"
|
android:textColor="@android:color/white"
|
||||||
android:textSize="16sp"
|
android:textSize="16sp"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
|
tools:backgroundTint="@color/colorPrimary"
|
||||||
tools:text="280.45\nCONF" />
|
tools:text="280.45\nCONF" />
|
||||||
|
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user