[CARELLI - ORDINI A]

aggiunti automaticamente all'ordine gli articoli nuovi in griglia
[CARELLI - DOC INTERNI]
modificato controllo sul lotto per partire solo nei documenti richiesti (tramite setup)
This commit is contained in:
Valerio Castellana 2022-02-21 16:31:11 +01:00
parent 6dcc711006
commit 8e40092130
25 changed files with 441 additions and 182 deletions

View File

@ -18,7 +18,7 @@ import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColr; 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.entity.SqlMtbColt;
@Database(entities = {ArticoloGriglia.class, Griglia.class, Ordine.class, ArticoloOrdine.class, SqlMtbColt.class, SqlMtbColr.class}, version = 5, exportSchema = false) @Database(entities = {ArticoloGriglia.class, Griglia.class, Ordine.class, ArticoloOrdine.class, SqlMtbColt.class, SqlMtbColr.class}, version = 7, exportSchema = false)
@TypeConverters({ @TypeConverters({
DateConverter.class DateConverter.class
}) })

View File

@ -6,7 +6,6 @@ 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;
@ -21,10 +20,13 @@ public interface ArticoloGrigliaDao {
@Insert @Insert
void insertAll(List<ArticoloGriglia> articoli); void insertAll(List<ArticoloGriglia> articoli);
@Insert @Insert
Long insert(ArticoloGriglia articolo); Long insert(ArticoloGriglia articolo);
@Update @Update
void updateAll(List<ArticoloGriglia> articoli); void updateAll(List<ArticoloGriglia> articoli);
@Update @Update
void update(ArticoloGriglia articolo); void update(ArticoloGriglia articolo);
@ -45,4 +47,7 @@ public interface ArticoloGrigliaDao {
@Query("SELECT * FROM articoli_griglia WHERE id_griglia = :grigliaId") @Query("SELECT * FROM articoli_griglia WHERE id_griglia = :grigliaId")
List<ArticoloGriglia> getArticoliFromGriglia(int grigliaId); List<ArticoloGriglia> getArticoliFromGriglia(int grigliaId);
@Query("SELECT * FROM articoli_griglia WHERE id_griglia = :grigliaId and new_no_promo = 1")
List<ArticoloGriglia> getNewArticoliInGriglia(int grigliaId);
} }

View File

@ -71,6 +71,9 @@ public class ArticoloGriglia {
@ColumnInfo(name = "id_griglia") @ColumnInfo(name = "id_griglia")
private int idGriglia; private int idGriglia;
@ColumnInfo(name = "new_no_promo")
private boolean newNoPromo = false;
public int getArticoloGrigliaId() { public int getArticoloGrigliaId() {
return articoloGrigliaId; return articoloGrigliaId;
} }
@ -191,6 +194,14 @@ public class ArticoloGriglia {
this.qtaProposta = qtaProposta; this.qtaProposta = qtaProposta;
} }
public boolean isNewNoPromo() {
return newNoPromo;
}
public void setNewNoPromo(boolean newNoPromo) {
this.newNoPromo = newNoPromo;
}
public ArticoloOrdine convertToArticoloOrdine(Ordine ordine) { public ArticoloOrdine convertToArticoloOrdine(Ordine ordine) {
ArticoloOrdine articolo = new ArticoloOrdine(); ArticoloOrdine articolo = new ArticoloOrdine();
@ -210,6 +221,7 @@ public class ArticoloGriglia {
articolo.setGiacenza(BigDecimal.valueOf(this.getGiacenza())); articolo.setGiacenza(BigDecimal.valueOf(this.getGiacenza()));
articolo.setQtaPrevistaVendita(BigDecimal.valueOf(this.getQtaPrevistaVendita())); articolo.setQtaPrevistaVendita(BigDecimal.valueOf(this.getQtaPrevistaVendita()));
articolo.setQtaProposta(BigDecimal.valueOf(this.getQtaProposta())); articolo.setQtaProposta(BigDecimal.valueOf(this.getQtaProposta()));
articolo.setNewNoPromo(this.isNewNoPromo());
articolo.setQtaOrd(0); articolo.setQtaOrd(0);

View File

@ -29,7 +29,7 @@ import java.util.Date;
public class ArticoloOrdine { public class ArticoloOrdine {
@PrimaryKey(autoGenerate = true) @PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "articolo_ordine_id") @ColumnInfo(name = "articolo_ordine_id")
private int articoloOrdineId; private Integer articoloOrdineId;
@ColumnInfo(name = "cod_mart") @ColumnInfo(name = "cod_mart")
private String codMart; private String codMart;
@ -67,6 +67,8 @@ public class ArticoloOrdine {
@ColumnInfo(name = "data_ins") @ColumnInfo(name = "data_ins")
private Date dataIns; private Date dataIns;
@ColumnInfo(name = "new_no_promo")
private boolean newNoPromo;
@Ignore @Ignore
private int ggScadenza = 0; private int ggScadenza = 0;
@ -81,7 +83,7 @@ public class ArticoloOrdine {
private BigDecimal qtaProposta = BigDecimal.ZERO; private BigDecimal qtaProposta = BigDecimal.ZERO;
public int getArticoloOrdineId() { public Integer getArticoloOrdineId() {
return articoloOrdineId; return articoloOrdineId;
} }
@ -221,14 +223,23 @@ public class ArticoloOrdine {
return this; return this;
} }
public BigDecimal getQtaCnfPrevistaVendita(){ public BigDecimal getQtaCnfPrevistaVendita() {
return qtaPrevistaVendita.equals(BigDecimal.ZERO) ? BigDecimal.ZERO : qtaPrevistaVendita.divide(BigDecimal.valueOf(qtaCnf),0, RoundingMode.CEILING); return qtaPrevistaVendita.equals(BigDecimal.ZERO) ? BigDecimal.ZERO : qtaPrevistaVendita.divide(BigDecimal.valueOf(qtaCnf), 0, RoundingMode.CEILING);
} }
public BigDecimal getQtaCnfProposta(){ public BigDecimal getQtaCnfProposta() {
return qtaProposta.equals(BigDecimal.ZERO) ? BigDecimal.ZERO : qtaProposta.divide(BigDecimal.valueOf(qtaCnf),0, RoundingMode.CEILING); return qtaProposta.equals(BigDecimal.ZERO) ? BigDecimal.ZERO : qtaProposta.divide(BigDecimal.valueOf(qtaCnf), 0, RoundingMode.CEILING);
} }
public BigDecimal getQtaCnfGiacenza(){
return giacenza.equals(BigDecimal.ZERO) ? BigDecimal.ZERO : giacenza.divide(BigDecimal.valueOf(qtaCnf),0, RoundingMode.CEILING); public BigDecimal getQtaCnfGiacenza() {
return giacenza.equals(BigDecimal.ZERO) ? BigDecimal.ZERO : giacenza.divide(BigDecimal.valueOf(qtaCnf), 0, RoundingMode.CEILING);
}
public boolean isNewNoPromo() {
return newNoPromo;
}
public void setNewNoPromo(boolean newNoPromo) {
this.newNoPromo = newNoPromo;
} }
} }

View File

@ -16,4 +16,6 @@ public interface ArticoloGrigliaRepository {
void findArticoloByScanAndGriglia(String scan, int idGriglia, RunnableArgs<ArticoloGriglia> onSuccess, RunnableArgs<Exception> onFail); void findArticoloByScanAndGriglia(String scan, int idGriglia, RunnableArgs<ArticoloGriglia> onSuccess, RunnableArgs<Exception> onFail);
void findNewArticoliInGrigla(int idGriglia, RunnableArgs<List<ArticoloGriglia>> onSuccess, RunnableArgs<Exception> onFail);
} }

View File

@ -89,4 +89,14 @@ public class ArticoliGrigliaDataSource extends Repository implements ArticoloGri
} }
}); });
} }
public void findNewArticoliInGrigla(int idGriglia, RunnableArgs<List<ArticoloGriglia>> onSuccess, RunnableArgs<Exception> onFail) {
execute(() -> {
try {
onSuccess.run(mArticoloGrigliaDao.getNewArticoliInGriglia(idGriglia));
} catch (Exception e) {
onFail.run(e);
}
});
}
} }

View File

@ -28,13 +28,15 @@ public class ArticoliOrdineDataSource extends Repository implements ArticoliOrdi
List<ArticoloOrdine> toUpdate = new ArrayList<>(); List<ArticoloOrdine> toUpdate = new ArrayList<>();
List<ArticoloOrdine> toInsert = new ArrayList<>(); List<ArticoloOrdine> toInsert = new ArrayList<>();
for (ArticoloOrdine art : articoli) { for (ArticoloOrdine art : articoli) {
if (art.getArticoloOrdineId() > 0) { if (art.getArticoloOrdineId() != null && art.getArticoloOrdineId() > 0) {
toUpdate.add(art); toUpdate.add(art);
} else { } else {
toInsert.add(art); toInsert.add(art);
} }
} }
mArticoloOrdineDao.insertAll(toInsert); for (ArticoloOrdine newArt : toInsert) {
mArticoloOrdineDao.insert(newArt);
}
mArticoloOrdineDao.updateAll(toUpdate); mArticoloOrdineDao.updateAll(toUpdate);
onSuccess.run(); onSuccess.run();
@ -48,7 +50,7 @@ public class ArticoliOrdineDataSource extends Repository implements ArticoliOrdi
public void saveArticoloToOrdine(ArticoloOrdine articolo, Runnable onSuccess, RunnableArgs<Exception> onFail) { public void saveArticoloToOrdine(ArticoloOrdine articolo, Runnable onSuccess, RunnableArgs<Exception> onFail) {
execute(() -> { execute(() -> {
try { try {
if (articolo.getArticoloOrdineId() > 0) { if (articolo.getArticoloOrdineId() != null && articolo.getArticoloOrdineId() > 0) {
mArticoloOrdineDao.update(articolo); mArticoloOrdineDao.update(articolo);
} else { } else {
mArticoloOrdineDao.insert(articolo); mArticoloOrdineDao.insert(articolo);

View File

@ -1,35 +1,23 @@
package it.integry.integrywmsnative.core.data_store.db.view_model; package it.integry.integrywmsnative.core.data_store.db.view_model;
import androidx.room.ColumnInfo;
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia; import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia;
public class ArticoloDTO { public class ArticoloDTO {
private String codMart; public String codMart;
public String descrizione;
private String descrizione; public String untMis;
public float qtaCnf;
private String untMis; public String barcode;
public float merceDaRic;
private String barcode; public float mediaSett;
public String flagQtaMultipla;
private String flagQtaMultipla; public String flagTracciabilita;
public float qtaMinOrdinabile;
private float qtaCnf; public boolean newNoPromo;
private float merceDaRic;
private float mediaSett;
private float qtaMinOrdinabile;
private int ggScadenza; private int ggScadenza;
private float giacenza; private float giacenza;
private float qtaPrevistaVendita; private float qtaPrevistaVendita;
private float qtaProposta; private float qtaProposta;
@ -145,6 +133,24 @@ public class ArticoloDTO {
this.qtaProposta = qtaProposta; this.qtaProposta = qtaProposta;
} }
public String getFlagTracciabilita() {
return flagTracciabilita;
}
public ArticoloDTO setFlagTracciabilita(String flagTracciabilita) {
this.flagTracciabilita = flagTracciabilita;
return this;
}
public boolean isNewNoPromo() {
return newNoPromo;
}
public ArticoloDTO setNewNoPromo(boolean newNoPromo) {
this.newNoPromo = newNoPromo;
return this;
}
public ArticoloGriglia toArticoloGriglia() { public ArticoloGriglia toArticoloGriglia() {
ArticoloGriglia result = new ArticoloGriglia(); ArticoloGriglia result = new ArticoloGriglia();
result.setBarCode(this.getBarCode()); result.setBarCode(this.getBarCode());
@ -157,6 +163,7 @@ public class ArticoloDTO {
result.setFlagQtaMultipla(this.getFlagQtaMultipla()); result.setFlagQtaMultipla(this.getFlagQtaMultipla());
result.setQtaMinOrdinabile(this.getQtaMinOrdinabile()); result.setQtaMinOrdinabile(this.getQtaMinOrdinabile());
result.setGgScadenza(this.ggScadenza); result.setGgScadenza(this.ggScadenza);
result.setNewNoPromo(this.newNoPromo);
result.setGiacenza(this.giacenza); result.setGiacenza(this.giacenza);
result.setQtaPrevistaVendita(this.qtaPrevistaVendita); result.setQtaPrevistaVendita(this.qtaPrevistaVendita);
result.setQtaProposta(this.qtaProposta); result.setQtaProposta(this.qtaProposta);

View File

@ -1,12 +1,14 @@
package it.integry.integrywmsnative.core.settings; package it.integry.integrywmsnative.core.settings;
import org.json.JSONObject;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import it.integry.integrywmsnative.core.rest.model.AvailableCodMdepsDTO;
import it.integry.integrywmsnative.core.rest.model.DistribuzioneColloDTO;
import it.integry.integrywmsnative.core.model.Azienda; import it.integry.integrywmsnative.core.model.Azienda;
import it.integry.integrywmsnative.core.model.MtbDepoPosizione; import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
import it.integry.integrywmsnative.core.rest.model.AvailableCodMdepsDTO;
import it.integry.integrywmsnative.core.rest.model.DistribuzioneColloDTO;
public class DBSettingsModel { public class DBSettingsModel {
@ -36,6 +38,8 @@ public class DBSettingsModel {
private boolean flagSpedizioneCanSelectMultipleOrders; private boolean flagSpedizioneCanSelectMultipleOrders;
private List<String> notePerditaDocInterni = new ArrayList<>(); private List<String> notePerditaDocInterni = new ArrayList<>();
private boolean flagSpedizioneUseQtaOrd; private boolean flagSpedizioneUseQtaOrd;
private boolean flagOrdinaNuoviArticoliInGriglia;
private JSONObject docInterniCheckFornitore;
private String produzioneDefaultCodAnag; private String produzioneDefaultCodAnag;
private String reportNameSpedizionChiudiOrdine; private String reportNameSpedizionChiudiOrdine;
private int onNumCnfInputChanged = 1; private int onNumCnfInputChanged = 1;
@ -72,7 +76,7 @@ public class DBSettingsModel {
} }
public DBSettingsModel setDatiAzienda(Azienda datiAzienda) { public DBSettingsModel setDatiAzienda(Azienda datiAzienda) {
this.datiAzienda = datiAzienda; this.datiAzienda = datiAzienda;
return this; return this;
} }
@ -247,6 +251,15 @@ public class DBSettingsModel {
return this; return this;
} }
public DBSettingsModel setFlagOrdinaNuoviArticoliInGriglia(boolean flagOrdinaNuoviArticoliInGriglia) {
this.flagOrdinaNuoviArticoliInGriglia = flagOrdinaNuoviArticoliInGriglia;
return this;
}
public boolean getFlagOrdinaNuoviArticoliInGriglia() {
return this.flagOrdinaNuoviArticoliInGriglia;
}
public String getProduzioneDefaultCodAnag() { public String getProduzioneDefaultCodAnag() {
return produzioneDefaultCodAnag; return produzioneDefaultCodAnag;
} }
@ -282,4 +295,13 @@ public class DBSettingsModel {
this.notePerditaDocInterni = notePerditaDocInterni; this.notePerditaDocInterni = notePerditaDocInterni;
return this; return this;
} }
public JSONObject getDocInterniCheckFornitore() {
return docInterniCheckFornitore;
}
public DBSettingsModel setDocInterniCheckFornitore(JSONObject docInterniCheckFornitore) {
this.docInterniCheckFornitore = docInterniCheckFornitore;
return this;
}
} }

View File

@ -5,6 +5,9 @@ import android.content.Context;
import com.annimon.stream.Stream; import com.annimon.stream.Stream;
import com.google.firebase.perf.metrics.Trace; import com.google.firebase.perf.metrics.Trace;
import org.json.JSONException;
import org.json.JSONObject;
import java.net.SocketTimeoutException; import java.net.SocketTimeoutException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
@ -270,6 +273,14 @@ public class SettingsManager {
.setGestName("PVM") .setGestName("PVM")
.setSection("DOC_INTERNI") .setSection("DOC_INTERNI")
.setKeySection("NOTE_PERDITA")); .setKeySection("NOTE_PERDITA"));
stbGestSetupList.add(new StbGestSetup()
.setGestName("PVM")
.setSection("ORDINI_A")
.setKeySection("ORDINA_NUOVI_ARTICOLI"));
stbGestSetupList.add(new StbGestSetup()
.setGestName("PVM")
.setSection("DOC_INTERNI")
.setKeySection("CHECK_FORNITORE"));
GestSetupRESTConsumer.getValues(stbGestSetupList, list -> { GestSetupRESTConsumer.getValues(stbGestSetupList, list -> {
@ -294,8 +305,15 @@ public class SettingsManager {
dbSettingsModelIstance.setFlagSpedizioneCanSelectMultipleOrders(getValueFromList(list, "SPEDIZIONE", "FLAG_CAN_SELECT_MULTIPLE_ORDERS", Boolean.class)); dbSettingsModelIstance.setFlagSpedizioneCanSelectMultipleOrders(getValueFromList(list, "SPEDIZIONE", "FLAG_CAN_SELECT_MULTIPLE_ORDERS", Boolean.class));
dbSettingsModelIstance.setReportNameSpedizionChiudiOrdine(getValueFromList(list, "SPEDIZIONE", "REPORT_PACKING_LIST", String.class)); dbSettingsModelIstance.setReportNameSpedizionChiudiOrdine(getValueFromList(list, "SPEDIZIONE", "REPORT_PACKING_LIST", String.class));
dbSettingsModelIstance.setFlagSpedizioneUseQtaOrd(getValueFromList(list, "SPEDIZIONE", "FLAG_USE_QTA_ORD", Boolean.class)); dbSettingsModelIstance.setFlagSpedizioneUseQtaOrd(getValueFromList(list, "SPEDIZIONE", "FLAG_USE_QTA_ORD", Boolean.class));
String notePerdita = getValueFromList(list,"DOC_INTERNI","NOTE_PERDITA",String.class); dbSettingsModelIstance.setFlagOrdinaNuoviArticoliInGriglia(getValueFromList(list, "ORDINI_A", "ORDINA_NUOVI_ARTICOLI", Boolean.class));
if (notePerdita != null){ String docTypeCheckFornitore = getValueFromList(list, "DOC_INTERNI", "CHECK_FORNITORE", String.class);
try {
dbSettingsModelIstance.setDocInterniCheckFornitore(new JSONObject(docTypeCheckFornitore));
} catch (JSONException e) {
e.printStackTrace();
}
String notePerdita = getValueFromList(list, "DOC_INTERNI", "NOTE_PERDITA", String.class);
if (notePerdita != null) {
dbSettingsModelIstance.setNotePerditaDocInterni(Arrays.asList(notePerdita.split("\\|"))); dbSettingsModelIstance.setNotePerditaDocInterni(Arrays.asList(notePerdita.split("\\|")));
} }

View File

@ -8,7 +8,8 @@ public class UtilityFocus {
public static void focusTextBox(Context context, EditText editTextToFocus) { public static void focusTextBox(Context context, EditText editTextToFocus) {
editTextToFocus.requestFocus(); editTextToFocus.requestFocus();
editTextToFocus.setSelectAllOnFocus(true);
editTextToFocus.selectAll();
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editTextToFocus, InputMethodManager.SHOW_IMPLICIT); imm.showSoftInput(editTextToFocus, InputMethodManager.SHOW_IMPLICIT);
} }

View File

@ -14,6 +14,7 @@ public class GrigliaAcquistiChildDTO {
public String flagQtaMultipla; public String flagQtaMultipla;
public String flagTracciabilita; public String flagTracciabilita;
public BigDecimal qtaMinOrdinabile; public BigDecimal qtaMinOrdinabile;
public boolean newNoPromo;
private int ggScadenza; private int ggScadenza;
private float giacenza; private float giacenza;
private float qtaPrevistaVendita; private float qtaPrevistaVendita;
@ -144,4 +145,13 @@ public class GrigliaAcquistiChildDTO {
this.qtaProposta = qtaProposta; this.qtaProposta = qtaProposta;
return this; return this;
} }
public boolean isNewNoPromo() {
return newNoPromo;
}
public GrigliaAcquistiChildDTO setNewNoPromo(boolean newNoPromo) {
this.newNoPromo = newNoPromo;
return this;
}
} }

View File

@ -5,6 +5,7 @@ import androidx.lifecycle.MutableLiveData;
import com.annimon.stream.Stream; import com.annimon.stream.Stream;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.json.JSONObject;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
@ -18,6 +19,7 @@ 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.MtbColrRepository;
import it.integry.integrywmsnative.core.data_store.db.repository.MtbColtRepository; import it.integry.integrywmsnative.core.data_store.db.repository.MtbColtRepository;
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener; import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityDate; import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.ArtDTO; import it.integry.integrywmsnative.gest.contab_doc_interni.dto.ArtDTO;
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.ColloDTO; import it.integry.integrywmsnative.gest.contab_doc_interni.dto.ColloDTO;
@ -35,7 +37,8 @@ public class DocInterniEditFormViewModel {
private final DocInterniRESTConsumer docInterniRESTConsumer; private final DocInterniRESTConsumer docInterniRESTConsumer;
private DocInterniEditFormViewModel.Listener listener; private DocInterniEditFormViewModel.Listener listener;
private List<GrigliaAcquistiChildDTO> productsList; private List<GrigliaAcquistiChildDTO> productsList;
private boolean isCheckPartitaMag = false;
private JSONObject checkFornitoreRules = null;
public MutableLiveData<SqlMtbColt> document = new MutableLiveData<>(); public MutableLiveData<SqlMtbColt> document = new MutableLiveData<>();
public MutableLiveData<List<SqlMtbColr>> docRows = new MutableLiveData<>(); public MutableLiveData<List<SqlMtbColr>> docRows = new MutableLiveData<>();
@ -44,6 +47,7 @@ public class DocInterniEditFormViewModel {
this.docInterniRESTConsumer = docInterniRESTConsumer; this.docInterniRESTConsumer = docInterniRESTConsumer;
this.mtbColrRepository = mtbColrRepository; this.mtbColrRepository = mtbColrRepository;
this.mtbColtRepository = mtbColtRepository; this.mtbColtRepository = mtbColtRepository;
this.checkFornitoreRules = SettingsManager.iDB().getDocInterniCheckFornitore();
this.docRows.setValue(new ArrayList<>()); this.docRows.setValue(new ArrayList<>());
} }
@ -120,7 +124,7 @@ public class DocInterniEditFormViewModel {
} }
SqlMtbColr row = this.getRowForArticolo(articolo); SqlMtbColr row = this.getRowForArticolo(articolo);
this.sendOnLoadingEnded(); this.sendOnLoadingEnded();
this.editRow(row, articolo.getFlagTracciabilita().equalsIgnoreCase("S")); this.editRow(row, (articolo.getFlagTracciabilita().equalsIgnoreCase("S") && this.isCheckPartitaMag));
} }
@ -208,6 +212,26 @@ public class DocInterniEditFormViewModel {
public void setDocument(SqlMtbColt document) { public void setDocument(SqlMtbColt document) {
this.document.setValue(document); this.document.setValue(document);
this.initCheckFornitore();
}
private void initCheckFornitore() {
SqlMtbColt doc = this.document.getValue();
boolean isCheckPartitaMag = false;
if (doc != null && this.checkFornitoreRules != null) {
String key = doc.getCodAnag();
if (doc.getCodVdes() != null && !doc.getCodVdes().isEmpty()) {
key += "-" + doc.getCodVdes();
}
try {
if (this.checkFornitoreRules.has(key) && ((String) ((JSONObject) this.checkFornitoreRules.get(key)).get(doc.getCodDtipProvv())).equalsIgnoreCase("check-partitaMag")) {
isCheckPartitaMag = true;
}
} catch (Exception ignored) {
}
}
this.isCheckPartitaMag = isCheckPartitaMag;
} }
public SqlMtbColt getDocument() { public SqlMtbColt getDocument() {

View File

@ -12,6 +12,8 @@ import androidx.core.content.ContextCompat;
import androidx.databinding.DataBindingUtil; import androidx.databinding.DataBindingUtil;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import com.annimon.stream.Stream;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -32,6 +34,7 @@ import it.integry.integrywmsnative.core.data_store.db.repository.GrigliaReposito
import it.integry.integrywmsnative.core.data_store.db.repository.OrdineRepository; import it.integry.integrywmsnative.core.data_store.db.repository.OrdineRepository;
import it.integry.integrywmsnative.core.expansion.BaseActivity; import it.integry.integrywmsnative.core.expansion.BaseActivity;
import it.integry.integrywmsnative.core.rest.consumers.PVOrdiniAcquistoRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.PVOrdiniAcquistoRESTConsumer;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityDate; import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.databinding.ActivityPvOrdineAcquistoEditBinding; import it.integry.integrywmsnative.databinding.ActivityPvOrdineAcquistoEditBinding;
@ -65,7 +68,7 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity {
ArticoloGrigliaRepository mArticoloGrigliaRepository; ArticoloGrigliaRepository mArticoloGrigliaRepository;
public static Intent newInstance(Context context, Ordine ordine){ public static Intent newInstance(Context context, Ordine ordine) {
Intent myIntent = new Intent(context, PVOrdineAcquistoEditActivity.class); Intent myIntent = new Intent(context, PVOrdineAcquistoEditActivity.class);
String keyOrdine = DataCache.addItem(ordine); String keyOrdine = DataCache.addItem(ordine);
myIntent.putExtra(DATA_KEY_ORDER, keyOrdine); myIntent.putExtra(DATA_KEY_ORDER, keyOrdine);
@ -110,6 +113,7 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity {
.setOnScanFailed(this::handleException)); .setOnScanFailed(this::handleException));
} }
@Override @Override
public boolean onSupportNavigateUp() { public boolean onSupportNavigateUp() {
@ -159,6 +163,7 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity {
private void handleException(Exception ex) { private void handleException(Exception ex) {
runOnUiThread(() -> { runOnUiThread(() -> {
this.closeProgress();
BarcodeManager.enable(); BarcodeManager.enable();
UtilityExceptions.defaultException(this, ex, false); UtilityExceptions.defaultException(this, ex, false);
}); });
@ -198,6 +203,32 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity {
fetchArticoli(); fetchArticoli();
} }
private void orderNewProducts() {
this.openProgress();
mhelper.getNewArticoli(mOrdine.getIdGriglia(), articoli -> {
if (articoli != null && !articoli.isEmpty()) {
List<ArticoloOrdine> articoliToSave = new ArrayList<>();
Stream.of(articoli).forEach(articolo -> {
if (
Stream.of(mArticoli).filter(x -> x.getCodMart().equalsIgnoreCase(articolo.getCodMart())).findFirst().isEmpty()
&& Stream.of(articoliToSave).filter(x -> x.getCodMart().equalsIgnoreCase(articolo.getCodMart())).findFirst().isEmpty()
) {
ArticoloOrdine dto = articolo.convertToArticoloOrdine(mOrdine);
dto.setQtaOrd(dto.getQtaCnf());
articoliToSave.add(dto);
}
});
if (!articoliToSave.isEmpty()) {
mhelper.saveArticoliToOrdine(articoliToSave, this::fetchArticoli, this::handleException);
} else {
this.closeProgress();
}
} else {
this.closeProgress();
}
}, this::handleException);
}
private void fetchGriglia() { private void fetchGriglia() {
mhelper.loadGriglia(mOrdine.getIdGriglia(), griglia -> { mhelper.loadGriglia(mOrdine.getIdGriglia(), griglia -> {
runOnUiThread(() -> { runOnUiThread(() -> {
@ -218,6 +249,9 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity {
mBinding.pvOrdineExport.setVisibility(mArticoli.size() > 0 ? View.INVISIBLE : View.GONE); mBinding.pvOrdineExport.setVisibility(mArticoli.size() > 0 ? View.INVISIBLE : View.GONE);
mBinding.closeActivityFab.close(false); mBinding.closeActivityFab.close(false);
mBinding.scanArtSpinner.setVisibility(mArticoli.size() > 0 ? View.GONE : View.VISIBLE); mBinding.scanArtSpinner.setVisibility(mArticoli.size() > 0 ? View.GONE : View.VISIBLE);
if (mArticoli.isEmpty() && isOrderNewProdsForced()) {
orderNewProducts();
}
}); });
}, this::handleException); }, this::handleException);
} }
@ -253,9 +287,9 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity {
super.onBackPressed(); super.onBackPressed();
} }
public void manualSearch(){ public void manualSearch() {
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.openProgress(); this.openProgress();
mhelper.checkArticolo( mhelper.checkArticolo(
mOrdine, mOrdine,
@ -272,4 +306,7 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity {
}, BarcodeManager::enable).show(); }, BarcodeManager::enable).show();
} }
private boolean isOrderNewProdsForced() {
return SettingsManager.iDB().getFlagOrdinaNuoviArticoliInGriglia();
}
} }

View File

@ -10,6 +10,7 @@ import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.WindowManager; import android.view.WindowManager;
import android.view.inputmethod.EditorInfo;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
@ -27,7 +28,6 @@ import it.integry.integrywmsnative.core.di.BindableInteger;
import it.integry.integrywmsnative.core.expansion.BaseDialogFragment; import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityFocus;
import it.integry.integrywmsnative.databinding.DialogPvEditArticoloBinding; import it.integry.integrywmsnative.databinding.DialogPvEditArticoloBinding;
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.helper.PVEditOrderHelper; import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.helper.PVEditOrderHelper;
@ -53,7 +53,7 @@ public class EditArticoloDialog extends BaseDialogFragment {
mArticolo.setValue(articolo); mArticolo.setValue(articolo);
mHelper = helper; mHelper = helper;
qtaOrd.set(BigDecimal.valueOf(articolo.getQtaOrd())); qtaOrd.set(BigDecimal.valueOf(articolo.getQtaOrd()));
numCnf.set(BigDecimal.valueOf(articolo.getQtaOrd()).divide(BigDecimal.valueOf(articolo.getQtaCnf()),0,RoundingMode.CEILING).intValue()); numCnf.set(BigDecimal.valueOf(articolo.getQtaOrd()).divide(BigDecimal.valueOf(articolo.getQtaCnf()), 0, RoundingMode.CEILING).intValue());
qtaCnf.set(BigDecimal.valueOf(articolo.getQtaCnf())); qtaCnf.set(BigDecimal.valueOf(articolo.getQtaCnf()));
this.onDialogDismiss = onDialogDismiss; this.onDialogDismiss = onDialogDismiss;
@ -71,7 +71,7 @@ public class EditArticoloDialog extends BaseDialogFragment {
public void onDismiss(@NonNull DialogInterface dialog) { public void onDismiss(@NonNull DialogInterface dialog) {
super.onDismiss(dialog); super.onDismiss(dialog);
ArticoloOrdine articolo = mArticolo.getValue(); ArticoloOrdine articolo = mArticolo.getValue();
if (articolo != null && articolo.getQtaOrd() <= 0f){ if (articolo != null && articolo.getQtaOrd() <= 0f) {
articolo = null; articolo = null;
} }
onDialogDismiss.run(articolo); onDialogDismiss.run(articolo);
@ -87,14 +87,12 @@ public class EditArticoloDialog extends BaseDialogFragment {
getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
initBindings(); initBindings();
return mBinding.getRoot(); return mBinding.getRoot();
} }
@Override @Override
public void onStart() { public void onStart() {
super.onStart(); super.onStart();
UtilityFocus.focusTextBox(mContext, mBinding.inputQtaOrd);
} }
private void initBindings() { private void initBindings() {
@ -106,17 +104,17 @@ public class EditArticoloDialog extends BaseDialogFragment {
ArticoloOrdine articoloOrdine = mArticolo.getValue(); ArticoloOrdine articoloOrdine = mArticolo.getValue();
BigDecimal qtaCnf = BigDecimal.valueOf(articoloOrdine.getQtaCnf()); BigDecimal qtaCnf = BigDecimal.valueOf(articoloOrdine.getQtaCnf());
int cnf = 0; int cnf = 0;
if (qtaOrd.get() != null && qtaOrd.get().compareTo(BigDecimal.ZERO) > 0){ if (qtaOrd.get() != null && qtaOrd.get().compareTo(BigDecimal.ZERO) > 0) {
cnf = qtaOrd.get().divide(qtaCnf, 0, RoundingMode.CEILING).intValue(); cnf = qtaOrd.get().divide(qtaCnf, 0, RoundingMode.CEILING).intValue();
} }
this.numCnf.set( cnf); this.numCnf.set(cnf);
this.mBinding.executePendingBindings(); this.mBinding.executePendingBindings();
mLockedInput = false; mLockedInput = false;
} }
}); });
BindableInteger.registerListener(numCnf, qta -> { BindableInteger.registerListener(numCnf, qta -> {
if (!mLockedInput){ if (!mLockedInput) {
mLockedInput = true; mLockedInput = true;
ArticoloOrdine articoloOrdine = mArticolo.getValue(); ArticoloOrdine articoloOrdine = mArticolo.getValue();
@ -127,6 +125,22 @@ public class EditArticoloDialog extends BaseDialogFragment {
mLockedInput = false; mLockedInput = false;
} }
}); });
mBinding.inputQtaOrd.setOnEditorActionListener((v, actionId, event) -> {
if (actionId == EditorInfo.IME_ACTION_DONE) {
// saveAndExit();
mBinding.inputNumCnfText.requestFocus();
return true;
}
return false;
});
mBinding.inputNumCnfText.setOnEditorActionListener((v, actionId, event) -> {
if (actionId == EditorInfo.IME_ACTION_DONE) {
saveAndExit();
return true;
}
return false;
});
} }
public void saveAndExit() { public void saveAndExit() {

View File

@ -2,11 +2,12 @@ package it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.helper;
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.Griglia; 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.entity.Ordine;
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoloGrigliaRepository;
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliOrdineRepository; import it.integry.integrywmsnative.core.data_store.db.repository.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.GrigliaRepository;
import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.expansion.RunnableArgs;
@ -63,7 +64,15 @@ public class PVEditOrderHelper {
mArticoliOrdineRepository.saveArticoloToOrdine(articolo, onSave, onFail); mArticoliOrdineRepository.saveArticoloToOrdine(articolo, onSave, onFail);
} }
public void removeArticoloFromOrdine(ArticoloOrdine articolo, Runnable onSave, RunnableArgs<Exception> onError){ public void saveArticoliToOrdine(List<ArticoloOrdine> articoli, Runnable onSave, RunnableArgs<Exception> onFail) {
mArticoliOrdineRepository.saveArticoliToOrdine(articoli, onSave, onFail);
}
public void removeArticoloFromOrdine(ArticoloOrdine articolo, Runnable onSave, RunnableArgs<Exception> onError) {
mArticoliOrdineRepository.deleteArticolo(articolo, onSave, onError); mArticoliOrdineRepository.deleteArticolo(articolo, onSave, onError);
} }
public void getNewArticoli(int idGrigla, RunnableArgs<List<ArticoloGriglia>> onSuccess, RunnableArgs<Exception> onError) {
mArticoliGrigliaRepository.findNewArticoliInGrigla(idGrigla, onSuccess, onError);
}
} }

View File

@ -29,7 +29,7 @@ public class DialogScanLisA {
private BaseDialog mDialog; private BaseDialog mDialog;
private Dialog mCurrentProgress; private Dialog mCurrentProgress;
private DialogScanCodiceGrigliaBinding mBinding; private final DialogScanCodiceGrigliaBinding mBinding;
private RunnableArgs<Griglia> mOnDialogDismiss; private RunnableArgs<Griglia> mOnDialogDismiss;
@ -54,6 +54,13 @@ public class DialogScanLisA {
mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
mOnDialogDismiss = onDialogDismiss; mOnDialogDismiss = onDialogDismiss;
initBarcode(); initBarcode();
BarcodeScanDTO fakeScan = new BarcodeScanDTO();
fakeScan.setStringValue("4AP001");
onScanSuccessfull.run(fakeScan);
} }
public static Dialog make(Activity context, GrigliaRepository grigliaRepository, OrdineAcquistoPvHelper helper, RunnableArgs<Griglia> onDialogDismiss) { public static Dialog make(Activity context, GrigliaRepository grigliaRepository, OrdineAcquistoPvHelper helper, RunnableArgs<Griglia> onDialogDismiss) {

View File

@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M23,12l-2.44,-2.78 0.34,-3.68 -3.61,-0.82 -1.89,-3.18L12,3 8.6,1.54 6.71,4.72l-3.61,0.81 0.34,3.68L1,12l2.44,2.78 -0.34,3.69 3.61,0.82 1.89,3.18L12,21l3.4,1.46 1.89,-3.18 3.61,-0.82 -0.34,-3.68L23,12zM13,17h-2v-2h2v2zM13,13h-2L11,7h2v6z"/>
</vector>

View File

@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M20,4H4C2.89,4 2.01,4.89 2.01,6L2,18c0,1.11 0.89,2 2,2h16c1.11,0 2,-0.89 2,-2V6C22,4.89 21.11,4 20,4zM8.5,15H7.3l-2.55,-3.5V15H3.5V9h1.25l2.5,3.5V9H8.5V15zM13.5,10.26H11v1.12h2.5v1.26H11v1.11h2.5V15h-4V9h4V10.26zM20.5,14c0,0.55 -0.45,1 -1,1h-4c-0.55,0 -1,-0.45 -1,-1V9h1.25v4.51h1.13V9.99h1.25v3.51h1.12V9h1.25V14z"/>
</vector>

View File

@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M11.99,2C6.47,2 2,6.48 2,12s4.47,10 9.99,10C17.52,22 22,17.52 22,12S17.52,2 11.99,2zM16.23,18L12,15.45 7.77,18l1.12,-4.81 -3.73,-3.23 4.92,-0.42L12,5l1.92,4.53 4.92,0.42 -3.73,3.23L16.23,18z"/>
</vector>

View File

@ -7,6 +7,7 @@
<data> <data>
<import type="it.integry.integrywmsnative.core.utility.UtilityNumber" /> <import type="it.integry.integrywmsnative.core.utility.UtilityNumber" />
<import type="android.view.View" /> <import type="android.view.View" />
<variable <variable
@ -84,6 +85,29 @@
android:textColor="@color/red_600" android:textColor="@color/red_600"
tools:text="BOSCAIOLA DI POLLO" /> tools:text="BOSCAIOLA DI POLLO" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="@{view.articolo.newNoPromo ? View.VISIBLE : View.GONE}"
android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/bottom_sheet_actions_delete_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/white"
android:src="@drawable/ic_baseline_new_24"
android:tint="@color/orange_600" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="2dp"
android:textColor="@color/mainOrange"
android:text='@string/newly_inserted_prod'
android:textSize="16sp" />
</LinearLayout>
<LinearLayout <LinearLayout
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -105,6 +129,15 @@
android:textStyle="bold" android:textStyle="bold"
tools:text="5" /> tools:text="5" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text='@string/days'
android:textSize="16sp"
android:layout_marginStart="4dp"
android:textStyle="bold"
tools:text="days" />
</LinearLayout> </LinearLayout>
@ -310,8 +343,7 @@
android:background="@drawable/badge_round_corner" android:background="@drawable/badge_round_corner"
android:backgroundTint="@color/colorPrimary" android:backgroundTint="@color/colorPrimary"
android:orientation="vertical" android:orientation="vertical"
android:padding="8dp" android:padding="8dp">
>
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
@ -411,8 +443,6 @@
android:background="@color/gray_400" /> android:background="@color/gray_400" />
<androidx.appcompat.widget.LinearLayoutCompat <androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -435,6 +465,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:hint="@string/num_pcks" android:hint="@string/num_pcks"
android:imeOptions="actionDone" android:imeOptions="actionDone"
android:selectAllOnFocus="true"
android:inputType="number" android:inputType="number"
app:binding="@{view.numCnf}" /> app:binding="@{view.numCnf}" />
@ -480,6 +511,7 @@
android:digits="0123456789" android:digits="0123456789"
android:hint="@string/tot_qty" android:hint="@string/tot_qty"
android:inputType="number" android:inputType="number"
android:selectAllOnFocus="true"
app:binding="@{view.qtaOrd}" /> app:binding="@{view.qtaOrd}" />
</com.google.android.material.textfield.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>

View File

@ -29,15 +29,31 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.LinearLayoutCompat
<androidx.appcompat.widget.AppCompatTextView android:layout_width="match_parent"
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@{articolo.codMart}" android:orientation="horizontal">
android:textColor="@color/colorPrimary"
android:textSize="14sp" <androidx.appcompat.widget.AppCompatImageView
android:textStyle="bold" android:id="@+id/bottom_sheet_actions_delete_btn"
tools:text="COD MART" /> android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/white"
android:scaleX="1"
android:scaleY="1"
android:visibility="@{articolo.newNoPromo ? View.VISIBLE : View.GONE}"
android:src="@drawable/ic_baseline_new_24"
android:tint="@color/orange_600" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{articolo.codMart}"
android:textColor="@color/colorPrimary"
android:textSize="18sp"
android:textStyle="bold"
tools:text="COD MART" />
</androidx.appcompat.widget.LinearLayoutCompat>
<TextView <TextView

View File

@ -3,9 +3,10 @@
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:fab="http://schemas.android.com/apk/res-auto"> xmlns:fab="http://schemas.android.com/apk/res-auto">
<data> <data>
<import type="android.view.View"/> <import type="android.view.View" />
<import type="it.integry.integrywmsnative.core.utility.UtilityString" /> <import type="it.integry.integrywmsnative.core.utility.UtilityString" />
@ -15,132 +16,121 @@
</data> </data>
<androidx.coordinatorlayout.widget.CoordinatorLayout android:layout_width="match_parent" <androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical" android:orientation="vertical"
android:background="@color/full_white"> android:background="@color/full_white">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:descendantFocusability="blocksDescendants"
android:paddingTop="8dp">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="wrap_content"
android:background="@drawable/gray_detail_background_round8"
android:orientation="vertical" android:orientation="vertical"
android:descendantFocusability="blocksDescendants" android:layout_marginLeft="8dp"
android:paddingTop="8dp"> android:layout_marginRight="8dp"
android:padding="16dp">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/gray_detail_background_round8" android:orientation="horizontal">
android:orientation="vertical"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:padding="16dp">
<LinearLayout <TextView
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal"> android:text="@string/cod_alis_name"
android:textColor="@android:color/black"
android:layout_marginEnd="8dp"
android:textSize="16sp" />
<TextView <TextView
android:layout_width="wrap_content" android:id="@+id/cod_alis"
android:layout_height="wrap_content" android:layout_width="wrap_content"
android:text="@string/cod_alis_name"
android:textColor="@android:color/black"
android:layout_marginEnd="8dp"
android:textSize="16sp" />
<TextView
android:id="@+id/cod_alis"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="4SECCO"
android:textColor="@android:color/black"
android:textSize="16sp"
android:textStyle="bold" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal"> tools:text="4SECCO"
android:textColor="@android:color/black"
android:textSize="16sp"
android:textStyle="bold" />
<TextView <TextView
android:layout_width="wrap_content" android:id="@+id/descr_lis"
android:layout_height="wrap_content" android:layout_width="wrap_content"
android:text="@string/descrizione_griglia"
android:textColor="@android:color/black"
android:layout_marginEnd="8dp"
android:textSize="14sp" />
<TextView
android:id="@+id/descr_lis"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="LISTINO FORMAT CEDI SECCO"
android:textColor="@android:color/black"
android:textSize="14sp"
android:textStyle="italic" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal"> tools:text="LISTINO FORMAT CEDI SECCO"
android:textColor="@android:color/black"
<TextView android:textSize="14sp"
android:layout_width="wrap_content" android:layout_marginStart="4dp"
android:layout_height="wrap_content" android:textStyle="italic" />
android:text="@string/descrizione_deposito"
android:textColor="@android:color/black"
android:layout_marginEnd="8dp"
android:textSize="14sp" />
<TextView
android:id="@+id/descr_depo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="LISTINO FORMAT CEDI SECCO"
android:textColor="@android:color/black"
android:textSize="14sp"
android:textStyle="italic" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/articoli_in_griglia"
android:textColor="@android:color/black"
android:layout_marginEnd="8dp"
android:textSize="14sp" />
<TextView
android:id="@+id/count_art_lis"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="10"
android:textColor="@android:color/black"
android:textSize="14sp"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout> </LinearLayout>
<RelativeLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/deposit"
android:textColor="@android:color/black"
android:layout_marginEnd="8dp"
android:textSize="14sp" />
<TextView
android:id="@+id/descr_depo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="D09-PRIMO PREZZO - TRAETTA"
android:textColor="@android:color/black"
android:textSize="14sp"
android:textStyle="italic" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/articoli_in_griglia"
android:textColor="@android:color/black"
android:layout_marginEnd="8dp"
android:textSize="14sp" />
<TextView
android:id="@+id/count_art_lis"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="10"
android:textColor="@android:color/black"
android:textSize="14sp"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
>
>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/ordini_a_aperti_main_list" android:id="@+id/ordini_a_aperti_main_list"
android:layout_width="match_parent" android:layout_width="match_parent"
@ -148,7 +138,7 @@
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:background="@color/full_white" android:background="@color/full_white"
android:paddingStart="2dp" android:paddingStart="2dp"
android:paddingEnd="2dp"/> android:paddingEnd="2dp" />
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/ordini_a_empty_view" android:id="@+id/ordini_a_empty_view"
@ -191,7 +181,7 @@
android:layout_width="72dp" android:layout_width="72dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:src="@drawable/ic_playlist_add_check_24dp" android:src="@drawable/ic_playlist_add_check_24dp"
android:adjustViewBounds="true"/> android:adjustViewBounds="true" />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -199,19 +189,17 @@
android:gravity="center_horizontal" android:gravity="center_horizontal"
android:textColor="@android:color/black" android:textColor="@android:color/black"
android:textSize="18sp" android:textSize="18sp"
android:text="@string/no_orders_found_message"/> android:text="@string/no_orders_found_message" />
</LinearLayout> </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</RelativeLayout> </RelativeLayout>
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
@ -222,7 +210,7 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
android:orientation="horizontal" android:orientation="horizontal"
app:layout_constraintGuide_percent="0.3"/> app:layout_constraintGuide_percent="0.3" />
<androidx.constraintlayout.widget.Guideline <androidx.constraintlayout.widget.Guideline
android:id="@+id/free_picking__suggestion_1__guideline_left" android:id="@+id/free_picking__suggestion_1__guideline_left"
@ -241,8 +229,6 @@
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
<com.github.clans.fab.FloatingActionButton <com.github.clans.fab.FloatingActionButton
android:id="@+id/fab_newOrder" android:id="@+id/fab_newOrder"
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -255,7 +241,7 @@
android:visibility="gone" android:visibility="gone"
fab:fab_colorNormal="@color/success_color" fab:fab_colorNormal="@color/success_color"
fab:fab_colorPressed="@color/green_500" fab:fab_colorPressed="@color/green_500"
fab:fab_colorRipple="#66FFFFFF"/> fab:fab_colorRipple="#66FFFFFF" />
</androidx.coordinatorlayout.widget.CoordinatorLayout> </androidx.coordinatorlayout.widget.CoordinatorLayout>
</layout> </layout>

View File

@ -375,4 +375,6 @@
<string name="selling_prediction">Previsione di vendita</string> <string name="selling_prediction">Previsione di vendita</string>
<string name="giacenza">Giacenza</string> <string name="giacenza">Giacenza</string>
<string name="order_suggestion">Qtà proposta</string> <string name="order_suggestion">Qtà proposta</string>
<string name="days">giorni</string>
<string name="newly_inserted_prod">Nuovo articolo in griglia</string>
</resources> </resources>

View File

@ -384,4 +384,6 @@
<string name="selling_prediction">Sales prediction</string> <string name="selling_prediction">Sales prediction</string>
<string name="giacenza">Stock</string> <string name="giacenza">Stock</string>
<string name="order_suggestion">Suggested Qty</string> <string name="order_suggestion">Suggested Qty</string>
<string name="days">days</string>
<string name="newly_inserted_prod">Newly added product</string>
</resources> </resources>