Finish v1.24.2(270)

This commit is contained in:
Valerio Castellana 2022-03-22 10:12:21 +01:00
commit 012d7caa52
14 changed files with 211 additions and 55 deletions

View File

@ -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 {

View File

@ -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 {

View File

@ -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();
}
}

View File

@ -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);

View File

@ -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;
} }
} }

View File

@ -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);
} }

View File

@ -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;
}
}

View File

@ -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;
}
} }

View File

@ -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);
@ -294,6 +294,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")
@ -334,6 +338,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) {

View File

@ -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();
} }

View File

@ -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,15 +72,29 @@ 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() {
return mCurrentGriglia; return mCurrentGriglia;
} }
@ -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);
} }

View File

@ -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;
} }

View File

@ -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" />

View File

@ -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>