Finish v1.32.15(355)
This commit is contained in:
commit
a57eadeab3
@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services'
|
|||||||
|
|
||||||
android {
|
android {
|
||||||
|
|
||||||
def appVersionCode = 354
|
def appVersionCode = 355
|
||||||
def appVersionName = '1.32.14'
|
def appVersionName = '1.32.15'
|
||||||
|
|
||||||
signingConfigs {
|
signingConfigs {
|
||||||
release {
|
release {
|
||||||
|
|||||||
@ -70,19 +70,19 @@ public class MainApplication extends Application {
|
|||||||
|
|
||||||
|
|
||||||
// handler listener
|
// handler listener
|
||||||
private Thread.UncaughtExceptionHandler _unCaughtExceptionHandler =
|
private final Thread.UncaughtExceptionHandler _unCaughtExceptionHandler =
|
||||||
new Thread.UncaughtExceptionHandler() {
|
new Thread.UncaughtExceptionHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void uncaughtException(Thread thread, Throwable ex) {
|
public void uncaughtException(Thread thread, Throwable ex) {
|
||||||
try {
|
|
||||||
UtilityLogger.error(new Exception(ex));
|
|
||||||
} catch (Exception e) {
|
|
||||||
Log.e("Uncaught error", "Exception Logger failed!", e);
|
|
||||||
//MainApplication.exit();
|
|
||||||
}
|
|
||||||
|
|
||||||
// re-throw critical exception further to the os (important)
|
// re-throw critical exception further to the os (important)
|
||||||
defaultUncaughtExceptionHandler.uncaughtException(thread, ex);
|
defaultUncaughtExceptionHandler.uncaughtException(thread, ex);
|
||||||
|
|
||||||
|
try {
|
||||||
|
UtilityLogger.error(new Exception(ex));
|
||||||
|
MainApplication.exit();
|
||||||
|
} catch (Exception e) {
|
||||||
|
Log.e("Uncaught error", "Exception Logger failed!", e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -2,6 +2,7 @@ package it.integry.integrywmsnative.core.context;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
|
import com.annimon.stream.Stream;
|
||||||
import com.google.firebase.crashlytics.FirebaseCrashlytics;
|
import com.google.firebase.crashlytics.FirebaseCrashlytics;
|
||||||
import com.orhanobut.logger.AndroidLogAdapter;
|
import com.orhanobut.logger.AndroidLogAdapter;
|
||||||
import com.orhanobut.logger.DiskLogAdapter;
|
import com.orhanobut.logger.DiskLogAdapter;
|
||||||
@ -91,6 +92,32 @@ public class AppContext {
|
|||||||
logsFolder = new File(mApplicationContext.getExternalFilesDir(null).getAbsolutePath());
|
logsFolder = new File(mApplicationContext.getExternalFilesDir(null).getAbsolutePath());
|
||||||
int maxBytesSize = 5 * 1024 * 1024;
|
int maxBytesSize = 5 * 1024 * 1024;
|
||||||
Logger.addLogAdapter(new DiskLogAdapter(logsFolder, maxBytesSize));
|
Logger.addLogAdapter(new DiskLogAdapter(logsFolder, maxBytesSize));
|
||||||
|
|
||||||
|
removeOldLogs(logsFolder);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void removeOldLogs(File logsFolder) {
|
||||||
|
var files = logsFolder.listFiles();
|
||||||
|
|
||||||
|
if (files == null || files.length <= 1)
|
||||||
|
return;
|
||||||
|
|
||||||
|
var logFiles = Stream.of(files)
|
||||||
|
.sortBy(x -> -1 * x.lastModified())
|
||||||
|
.skip(1)
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
for (var logFile : logFiles) {
|
||||||
|
boolean isDeleted = logFile.delete();
|
||||||
|
}
|
||||||
|
|
||||||
|
files = logsFolder.listFiles();
|
||||||
|
|
||||||
|
if (files == null || files.length > 1)
|
||||||
|
return;
|
||||||
|
|
||||||
|
final boolean isRenamed = files[0].renameTo(new File(files[0].getParentFile().getAbsolutePath() + "/" + "logs_0.csv"));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -39,6 +39,9 @@ public class ColliDataRecoverService {
|
|||||||
if(isFilePresent(CommonConst.Files.RECOVER_COLLO_FILE)) {
|
if(isFilePresent(CommonConst.Files.RECOVER_COLLO_FILE)) {
|
||||||
loadLocalFile();
|
loadLocalFile();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(mtbColtsSessions == null)
|
||||||
|
mtbColtsSessions = new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean thereIsAnExistantSession() {
|
public boolean thereIsAnExistantSession() {
|
||||||
@ -47,7 +50,6 @@ public class ColliDataRecoverService {
|
|||||||
|
|
||||||
public List<Integer> getAllSessionIDs() {
|
public List<Integer> getAllSessionIDs() {
|
||||||
if(thereIsAnExistantSession()) {
|
if(thereIsAnExistantSession()) {
|
||||||
|
|
||||||
return Stream.of(mtbColtsSessions)
|
return Stream.of(mtbColtsSessions)
|
||||||
.map(ColliDataRecoverDTO::getId)
|
.map(ColliDataRecoverDTO::getId)
|
||||||
.toList();
|
.toList();
|
||||||
@ -56,7 +58,6 @@ public class ColliDataRecoverService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public ColliDataRecoverDTO getSession(Integer sessionID) {
|
public ColliDataRecoverDTO getSession(Integer sessionID) {
|
||||||
|
|
||||||
if(sessionID == null) return null;
|
if(sessionID == null) return null;
|
||||||
|
|
||||||
return getIfExists(sessionID);
|
return getIfExists(sessionID);
|
||||||
|
|||||||
@ -40,8 +40,7 @@ import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColt;
|
|||||||
InventarioRoomDTO.class,
|
InventarioRoomDTO.class,
|
||||||
InventarioRowRoomDTO.class
|
InventarioRowRoomDTO.class
|
||||||
},
|
},
|
||||||
version = 14,
|
version = 15)
|
||||||
exportSchema = true)
|
|
||||||
@TypeConverters({
|
@TypeConverters({
|
||||||
DateConverter.class,
|
DateConverter.class,
|
||||||
BigDecimalConverter.class,
|
BigDecimalConverter.class,
|
||||||
@ -135,4 +134,24 @@ public abstract class AppDatabase extends RoomDatabase {
|
|||||||
+ " ADD COLUMN new INTEGER");
|
+ " ADD COLUMN new INTEGER");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static final Migration MIGRATION_14_15 = new Migration(14, 15) {
|
||||||
|
@Override
|
||||||
|
public void migrate(@NonNull SupportSQLiteDatabase database) {
|
||||||
|
// rimuovo vincoli "not null" dai campi id_griglia e cod_alis
|
||||||
|
database.execSQL("DROP TABLE IF EXISTS ordini_tmp;");
|
||||||
|
database.execSQL("CREATE TABLE ordini_tmp (ordine_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, data_ins INTEGER, annotazioni TEXT, transmitted INTEGER NOT NULL, transmission_date INTEGER, gestione TEXT, data_ord INTEGER, num_ord INTEGER, cod_mdep TEXT, id_griglia INTEGER, cod_alis TEXT);");
|
||||||
|
database.execSQL("INSERT INTO ordini_tmp(ordine_id,data_ins,annotazioni,transmitted,transmission_date,gestione,data_ord,num_ord,cod_mdep,id_griglia,cod_alis) SELECT ordini.ordine_id,ordini.data_ins,ordini.annotazioni,ordini.transmitted,ordini.transmission_date,ordini.gestione,ordini.data_ord,ordini.num_ord,ordini.cod_mdep,ordini.id_griglia,griglie.cod_alis from ordini left outer join griglie on ordini.id_griglia = griglie.griglia_id;");
|
||||||
|
database.execSQL("DROP TABLE ordini;");
|
||||||
|
database.execSQL("ALTER TABLE ordini_tmp RENAME TO ordini;");
|
||||||
|
// aggiungo campo cod_alis sulle righe dell'ordine
|
||||||
|
database.execSQL("DROP TABLE IF EXISTS art_ord_tmp;");
|
||||||
|
database.execSQL("CREATE TABLE IF NOT EXISTS art_ord_tmp( articolo_ordine_id INTEGER PRIMARY KEY AUTOINCREMENT, cod_mart TEXT, descrizione TEXT, unt_mis TEXT, qta_cnf REAL NOT NULL, bar_code TEXT, merce_da_ric REAL NOT NULL, media_sett REAL NOT NULL, flag_qta_multipla TEXT, qta_min_ordinabile REAL NOT NULL, id_ordine INTEGER NOT NULL, qta_ord REAL NOT NULL, data_ins INTEGER, new_no_promo INTEGER NOT NULL, system_note TEXT, cod_alis TEXT , FOREIGN KEY(id_ordine) REFERENCES ordini(ordine_id) ON UPDATE NO ACTION ON DELETE CASCADE );");
|
||||||
|
database.execSQL("INSERT INTO art_ord_tmp(articolo_ordine_id, cod_mart, descrizione, unt_mis, qta_cnf, bar_code, merce_da_ric, media_sett, flag_qta_multipla, qta_min_ordinabile, id_ordine, qta_ord, data_ins, new_no_promo, system_note, cod_alis) SELECT articolo_ordine_id, cod_mart, descrizione, unt_mis, qta_cnf, bar_code, merce_da_ric, media_sett, flag_qta_multipla, qta_min_ordinabile, id_ordine, qta_ord, data_ins, new_no_promo, system_note, null from articoli_ordine;");
|
||||||
|
database.execSQL("DROP TABLE articoli_ordine;");
|
||||||
|
database.execSQL("ALTER TABLE art_ord_tmp RENAME TO articoli_ordine;");
|
||||||
|
database.execSQL("CREATE INDEX IF NOT EXISTS index_articoli_ordine_id_ordine ON articoli_ordine (id_ordine);");
|
||||||
|
database.execSQL("CREATE UNIQUE INDEX IF NOT EXISTS index_articoli_ordine_id_ordine_cod_mart ON articoli_ordine (id_ordine, cod_mart);");
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -19,7 +19,7 @@ public interface OrdineDao {
|
|||||||
@Query("SELECT ordini.* from ordini where ordini.transmitted = 1")
|
@Query("SELECT ordini.* from ordini where ordini.transmitted = 1")
|
||||||
List<Ordine> getAllTrasnmitted();
|
List<Ordine> getAllTrasnmitted();
|
||||||
|
|
||||||
@Query("SELECT ordini.*, count(articolo_ordine_id) as countArticoli from ordini left join articoli_ordine ON ordini.ordine_id = articoli_ordine.id_ordine where ordini.transmitted = 0 and ordini.cod_alis = :codAlis group by ordini.ordine_id")
|
@Query("SELECT ordini.*, count(articolo_ordine_id) as countArticoli from ordini left join articoli_ordine ON ordini.ordine_id = articoli_ordine.id_ordine where ordini.transmitted = 0 and ((:codAlis is null and ordini.cod_alis is null) OR (ordini.cod_alis = :codAlis)) group by ordini.ordine_id")
|
||||||
List<OrdineWrapper> getAllOpenOrdersByGriglia(String codAlis);
|
List<OrdineWrapper> getAllOpenOrdersByGriglia(String codAlis);
|
||||||
|
|
||||||
@Insert
|
@Insert
|
||||||
|
|||||||
@ -73,6 +73,9 @@ public class ArticoloOrdine {
|
|||||||
@ColumnInfo(name = "system_note")
|
@ColumnInfo(name = "system_note")
|
||||||
private String systemNote;
|
private String systemNote;
|
||||||
|
|
||||||
|
@ColumnInfo(name = "cod_alis")
|
||||||
|
private String codAlis;
|
||||||
|
|
||||||
@Ignore
|
@Ignore
|
||||||
private int ggScadenza = 0;
|
private int ggScadenza = 0;
|
||||||
|
|
||||||
@ -85,6 +88,9 @@ public class ArticoloOrdine {
|
|||||||
@Ignore
|
@Ignore
|
||||||
private BigDecimal qtaProposta = BigDecimal.ZERO;
|
private BigDecimal qtaProposta = BigDecimal.ZERO;
|
||||||
|
|
||||||
|
@Ignore
|
||||||
|
private BigDecimal ctMaxOrd = BigDecimal.ZERO;
|
||||||
|
|
||||||
@Ignore
|
@Ignore
|
||||||
private int bgTint;
|
private int bgTint;
|
||||||
|
|
||||||
@ -277,4 +283,21 @@ public class ArticoloOrdine {
|
|||||||
public void setSystemNote(String systemNote) {
|
public void setSystemNote(String systemNote) {
|
||||||
this.systemNote = systemNote;
|
this.systemNote = systemNote;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getCodAlis() {
|
||||||
|
return codAlis;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCodAlis(String codAlis) {
|
||||||
|
this.codAlis = codAlis;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getCtMaxOrd() {
|
||||||
|
return ctMaxOrd;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdine setCtMaxOrd(BigDecimal ctMaxOrd) {
|
||||||
|
this.ctMaxOrd = ctMaxOrd;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
package it.integry.integrywmsnative.core.data_store.db.entity;
|
package it.integry.integrywmsnative.core.data_store.db.entity;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.room.ColumnInfo;
|
import androidx.room.ColumnInfo;
|
||||||
import androidx.room.Entity;
|
import androidx.room.Entity;
|
||||||
@ -55,7 +54,6 @@ public class Ordine {
|
|||||||
private int idGriglia;
|
private int idGriglia;
|
||||||
|
|
||||||
@ColumnInfo(name = "cod_alis")
|
@ColumnInfo(name = "cod_alis")
|
||||||
@NonNull
|
|
||||||
private String codAlis;
|
private String codAlis;
|
||||||
|
|
||||||
public int getOrdineId() {
|
public int getOrdineId() {
|
||||||
|
|||||||
@ -1,218 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.core.data_store.db.view_model;
|
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import org.json.JSONObject;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.util.HashMap;
|
|
||||||
|
|
||||||
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.utility.UtilityDate;
|
|
||||||
|
|
||||||
public class ArticoloDTO {
|
|
||||||
|
|
||||||
public String codMart;
|
|
||||||
public String descrizione;
|
|
||||||
public String untMis;
|
|
||||||
public float qtaCnf;
|
|
||||||
public String barcode;
|
|
||||||
public float merceDaRic;
|
|
||||||
public float mediaSett;
|
|
||||||
public String flagQtaMultipla;
|
|
||||||
public String flagTracciabilita;
|
|
||||||
public float qtaMinOrdinabile;
|
|
||||||
public boolean newNoPromo;
|
|
||||||
private int ggScadenza;
|
|
||||||
private float giacenza;
|
|
||||||
private float qtaPrevistaVendita;
|
|
||||||
private float qtaProposta;
|
|
||||||
private float qtaOrd;
|
|
||||||
|
|
||||||
|
|
||||||
public String getCodMart() {
|
|
||||||
return codMart;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCodMart(String codMart) {
|
|
||||||
this.codMart = codMart;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDescrizione() {
|
|
||||||
return descrizione;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDescrizione(String descrizione) {
|
|
||||||
this.descrizione = descrizione;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getUntMis() {
|
|
||||||
return untMis;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUntMis(String untMis) {
|
|
||||||
this.untMis = untMis;
|
|
||||||
}
|
|
||||||
|
|
||||||
public float getQtaCnf() {
|
|
||||||
return qtaCnf;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setQtaCnf(float qtaCnf) {
|
|
||||||
this.qtaCnf = qtaCnf;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getBarCode() {
|
|
||||||
return barcode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setBarCode(String barCode) {
|
|
||||||
this.barcode = barCode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public float getMerceDaRic() {
|
|
||||||
return merceDaRic;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMerceDaRic(float merceDaRic) {
|
|
||||||
this.merceDaRic = merceDaRic;
|
|
||||||
}
|
|
||||||
|
|
||||||
public float getMediaSett() {
|
|
||||||
return mediaSett;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMediaSett(float mediaSett) {
|
|
||||||
this.mediaSett = mediaSett;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getFlagQtaMultipla() {
|
|
||||||
return flagQtaMultipla;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFlagQtaMultipla(String flagQtaMultipla) {
|
|
||||||
this.flagQtaMultipla = flagQtaMultipla;
|
|
||||||
}
|
|
||||||
|
|
||||||
public float getQtaMinOrdinabile() {
|
|
||||||
return qtaMinOrdinabile;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setQtaMinOrdinabile(float qtaMinOrdinabile) {
|
|
||||||
this.qtaMinOrdinabile = qtaMinOrdinabile;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getBarcode() {
|
|
||||||
return barcode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setBarcode(String barcode) {
|
|
||||||
this.barcode = barcode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getGgScadenza() {
|
|
||||||
return ggScadenza;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setGgScadenza(int ggScadenza) {
|
|
||||||
this.ggScadenza = ggScadenza;
|
|
||||||
}
|
|
||||||
|
|
||||||
public float getGiacenza() {
|
|
||||||
return giacenza;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setGiacenza(float giacenza) {
|
|
||||||
this.giacenza = giacenza;
|
|
||||||
}
|
|
||||||
|
|
||||||
public float getQtaPrevistaVendita() {
|
|
||||||
return qtaPrevistaVendita;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setQtaPrevistaVendita(float qtaPrevistaVendita) {
|
|
||||||
this.qtaPrevistaVendita = qtaPrevistaVendita;
|
|
||||||
}
|
|
||||||
|
|
||||||
public float getQtaProposta() {
|
|
||||||
return qtaProposta;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setQtaProposta(float 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 float getQtaOrd() {
|
|
||||||
return qtaOrd;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ArticoloDTO setQtaOrd(float qtaOrd) {
|
|
||||||
this.qtaOrd = qtaOrd;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ArticoloOrdine convertToArticoloOrdine(Ordine ordine) {
|
|
||||||
ArticoloOrdine articolo = new ArticoloOrdine();
|
|
||||||
|
|
||||||
articolo.setIdOrdine(ordine.getOrdineId());
|
|
||||||
|
|
||||||
articolo.setBarCode(this.getBarCode());
|
|
||||||
articolo.setCodMart(this.getCodMart());
|
|
||||||
articolo.setMediaSett(this.getMediaSett());
|
|
||||||
articolo.setFlagQtaMultipla(this.getFlagQtaMultipla());
|
|
||||||
articolo.setQtaMinOrdinabile(this.getQtaMinOrdinabile());
|
|
||||||
articolo.setMerceDaRic(this.getMerceDaRic());
|
|
||||||
articolo.setQtaCnf(this.getQtaCnf());
|
|
||||||
articolo.setUntMis(this.getUntMis());
|
|
||||||
articolo.setDescrizione(this.getDescrizione());
|
|
||||||
articolo.setDataIns(UtilityDate.getDateInstance());
|
|
||||||
articolo.setGgScadenza(this.getGgScadenza());
|
|
||||||
articolo.setGiacenza(BigDecimal.valueOf(this.getGiacenza()));
|
|
||||||
articolo.setQtaPrevistaVendita(BigDecimal.valueOf(this.getQtaPrevistaVendita()));
|
|
||||||
articolo.setQtaProposta(BigDecimal.valueOf(this.getQtaProposta()));
|
|
||||||
articolo.setNewNoPromo(this.isNewNoPromo());
|
|
||||||
articolo.setSystemNote(generateSystemNote());
|
|
||||||
articolo.setQtaOrd(this.getQtaOrd());
|
|
||||||
|
|
||||||
return articolo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String generateSystemNote() {
|
|
||||||
HashMap<String, String> pairs = new HashMap<>();
|
|
||||||
pairs.put("qta_proposta", String.valueOf(qtaProposta));
|
|
||||||
pairs.put("giacenza", String.valueOf(giacenza));
|
|
||||||
|
|
||||||
return new JSONObject(pairs).toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public int getSortByBarcodeCondition(String barcode) {
|
|
||||||
if (codMart.equalsIgnoreCase(barcode))
|
|
||||||
return 1;
|
|
||||||
if (barcode != null) {
|
|
||||||
if (barcode.equalsIgnoreCase(barcode))
|
|
||||||
return 2;
|
|
||||||
if (StringUtils.leftPad(barcode, 13, "0").equalsIgnoreCase(barcode))
|
|
||||||
return 3;
|
|
||||||
}
|
|
||||||
return 100;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -0,0 +1,224 @@
|
|||||||
|
package it.integry.integrywmsnative.core.data_store.db.view_model;
|
||||||
|
|
||||||
|
import org.json.JSONObject;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class ArticoloOrdinabileDTO {
|
||||||
|
|
||||||
|
|
||||||
|
private String codAlis;
|
||||||
|
private String codMart;
|
||||||
|
private String descrizione;
|
||||||
|
private String untMis;
|
||||||
|
private float qtaCnf;
|
||||||
|
private float merceDaRic;
|
||||||
|
private float mediaSett;
|
||||||
|
private String flagQtaMultipla;
|
||||||
|
private String flagTracciabilita;
|
||||||
|
private String flagQtaCnfFissa;
|
||||||
|
private boolean newNoPromo;
|
||||||
|
private float qtaMinOrdinabile;
|
||||||
|
private int ggScadenza;
|
||||||
|
private BigDecimal giacenza;
|
||||||
|
private BigDecimal qtaPrevistaVendita;
|
||||||
|
private BigDecimal qtaProposta;
|
||||||
|
private float qtaOrd;
|
||||||
|
|
||||||
|
private float ctMaxOrd;
|
||||||
|
|
||||||
|
private List<String> barcode;
|
||||||
|
|
||||||
|
private String selectedBarcode;
|
||||||
|
|
||||||
|
public String getCodAlis() {
|
||||||
|
return codAlis;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setCodAlis(String codAlis) {
|
||||||
|
this.codAlis = codAlis;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodMart() {
|
||||||
|
return codMart;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setCodMart(String codMart) {
|
||||||
|
this.codMart = codMart;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescrizione() {
|
||||||
|
return descrizione;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setDescrizione(String descrizione) {
|
||||||
|
this.descrizione = descrizione;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUntMis() {
|
||||||
|
return untMis;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setUntMis(String untMis) {
|
||||||
|
this.untMis = untMis;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getQtaCnf() {
|
||||||
|
return qtaCnf;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setQtaCnf(float qtaCnf) {
|
||||||
|
this.qtaCnf = qtaCnf;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getMerceDaRic() {
|
||||||
|
return merceDaRic;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setMerceDaRic(float merceDaRic) {
|
||||||
|
this.merceDaRic = merceDaRic;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getMediaSett() {
|
||||||
|
return mediaSett;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setMediaSett(float mediaSett) {
|
||||||
|
this.mediaSett = mediaSett;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFlagQtaMultipla() {
|
||||||
|
return flagQtaMultipla;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setFlagQtaMultipla(String flagQtaMultipla) {
|
||||||
|
this.flagQtaMultipla = flagQtaMultipla;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFlagTracciabilita() {
|
||||||
|
return flagTracciabilita;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setFlagTracciabilita(String flagTracciabilita) {
|
||||||
|
this.flagTracciabilita = flagTracciabilita;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFlagQtaCnfFissa() {
|
||||||
|
return flagQtaCnfFissa;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setFlagQtaCnfFissa(String flagQtaCnfFissa) {
|
||||||
|
this.flagQtaCnfFissa = flagQtaCnfFissa;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isNewNoPromo() {
|
||||||
|
return newNoPromo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setNewNoPromo(boolean newNoPromo) {
|
||||||
|
this.newNoPromo = newNoPromo;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getQtaMinOrdinabile() {
|
||||||
|
return qtaMinOrdinabile;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setQtaMinOrdinabile(float qtaMinOrdinabile) {
|
||||||
|
this.qtaMinOrdinabile = qtaMinOrdinabile;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getGgScadenza() {
|
||||||
|
return ggScadenza;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setGgScadenza(int ggScadenza) {
|
||||||
|
this.ggScadenza = ggScadenza;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getGiacenza() {
|
||||||
|
return giacenza;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setGiacenza(BigDecimal giacenza) {
|
||||||
|
this.giacenza = giacenza;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getQtaPrevistaVendita() {
|
||||||
|
return qtaPrevistaVendita;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setQtaPrevistaVendita(BigDecimal qtaPrevistaVendita) {
|
||||||
|
this.qtaPrevistaVendita = qtaPrevistaVendita;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getQtaProposta() {
|
||||||
|
return qtaProposta;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setQtaProposta(BigDecimal qtaProposta) {
|
||||||
|
this.qtaProposta = qtaProposta;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getQtaOrd() {
|
||||||
|
return qtaOrd;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setQtaOrd(float qtaOrd) {
|
||||||
|
this.qtaOrd = qtaOrd;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getCtMaxOrd() {
|
||||||
|
return ctMaxOrd;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setCtMaxOrd(float ctMaxOrd) {
|
||||||
|
this.ctMaxOrd = ctMaxOrd;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> getBarcode() {
|
||||||
|
return barcode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setBarcode(List<String> barcode) {
|
||||||
|
this.barcode = barcode;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String generateSystemNote() {
|
||||||
|
HashMap<String, String> pairs = new HashMap<>();
|
||||||
|
pairs.put("qta_proposta", String.valueOf(qtaProposta));
|
||||||
|
pairs.put("giacenza", String.valueOf(giacenza));
|
||||||
|
|
||||||
|
return new JSONObject(pairs).toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSelectedBarcode() {
|
||||||
|
return selectedBarcode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO setSelectedBarcode(String selectedBarcode) {
|
||||||
|
this.selectedBarcode = selectedBarcode;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@ -1,36 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.core.data_store.db.view_model;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.data_store.db.entity.ArticoloGriglia;
|
|
||||||
|
|
||||||
public class GrigliaDTO {
|
|
||||||
private String descrLisa;
|
|
||||||
private String descrDepo;
|
|
||||||
private List<ArticoloDTO> grigliaAcquistiChild;
|
|
||||||
|
|
||||||
|
|
||||||
public String getDescrLisa() {
|
|
||||||
return descrLisa;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDescrLisa(String descrLisa) {
|
|
||||||
this.descrLisa = descrLisa;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDescrDepo() {
|
|
||||||
return descrDepo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDescrDepo(String descrDepo) {
|
|
||||||
this.descrDepo = descrDepo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<ArticoloDTO> getGrigliaAcquistiChild() {
|
|
||||||
return grigliaAcquistiChild;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setGrigliaAcquistiChild(List<ArticoloDTO> grigliaAcquistiChild) {
|
|
||||||
this.grigliaAcquistiChild = grigliaAcquistiChild;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,33 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.core.data_store.db.view_model;
|
|
||||||
|
|
||||||
import androidx.room.Embedded;
|
|
||||||
import androidx.room.Ignore;
|
|
||||||
|
|
||||||
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.di.BindableBoolean;
|
|
||||||
|
|
||||||
public class OrdineWithGriglia {
|
|
||||||
|
|
||||||
@Embedded
|
|
||||||
private Ordine ordine;
|
|
||||||
@Embedded
|
|
||||||
private Griglia griglia;
|
|
||||||
|
|
||||||
|
|
||||||
public Ordine getOrdine() {
|
|
||||||
return ordine;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOrdine(Ordine ordine) {
|
|
||||||
this.ordine = ordine;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Griglia getGriglia() {
|
|
||||||
return griglia;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setGriglia(Griglia griglia) {
|
|
||||||
this.griglia = griglia;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -0,0 +1,40 @@
|
|||||||
|
package it.integry.integrywmsnative.core.data_store.db.view_model;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class OrdiniAcquistoGrigliaDTO {
|
||||||
|
private String descrLisa;
|
||||||
|
|
||||||
|
private String descrDepo;
|
||||||
|
|
||||||
|
private List<ArticoloOrdinabileDTO> articoli;
|
||||||
|
|
||||||
|
public String getDescrLisa() {
|
||||||
|
return descrLisa;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdiniAcquistoGrigliaDTO setDescrLisa(String descrLisa) {
|
||||||
|
this.descrLisa = descrLisa;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescrDepo() {
|
||||||
|
return descrDepo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdiniAcquistoGrigliaDTO setDescrDepo(String descrDepo) {
|
||||||
|
this.descrDepo = descrDepo;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<ArticoloOrdinabileDTO> getArticoli() {
|
||||||
|
return articoli;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdiniAcquistoGrigliaDTO setArticoli(List<ArticoloOrdinabileDTO> articoli) {
|
||||||
|
this.articoli = articoli;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
package it.integry.integrywmsnative.core.exception;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityResources;
|
||||||
|
|
||||||
|
public final class EmptyOrderException extends Exception {
|
||||||
|
public EmptyOrderException() {
|
||||||
|
super(UtilityResources.getString(R.string.empty_order));
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,12 @@
|
|||||||
|
package it.integry.integrywmsnative.core.exception;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityResources;
|
||||||
|
|
||||||
|
public class MaxQtyExceededException extends Exception {
|
||||||
|
|
||||||
|
public MaxQtyExceededException() {
|
||||||
|
super(UtilityResources.getString(R.string.max_qty_exceeded));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -2,8 +2,6 @@ package it.integry.integrywmsnative.core.rest.consumers;
|
|||||||
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import com.annimon.stream.Stream;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
@ -13,8 +11,7 @@ import javax.inject.Singleton;
|
|||||||
|
|
||||||
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.view_model.ArticoloDTO;
|
import it.integry.integrywmsnative.core.data_store.db.view_model.OrdiniAcquistoGrigliaDTO;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.view_model.GrigliaDTO;
|
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
||||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||||
@ -37,47 +34,23 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer {
|
|||||||
this.magazzinoRESTConsumer = magazzinoRESTConsumer;
|
this.magazzinoRESTConsumer = magazzinoRESTConsumer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void getArticoliListino(String codAlis, RunnableArgs<GrigliaDTO> onSuccess, RunnableArgs<Exception> onFailed) {
|
public void retrieveArticoli(String codAlis, String codMdep, RunnableArgs<OrdiniAcquistoGrigliaDTO> onSuccess, RunnableArgs<Exception> onFailed) {
|
||||||
|
|
||||||
PVOrdiniAcquistoRESTConsumerService ordiniARestService = RESTBuilder.getService(PVOrdiniAcquistoRESTConsumerService.class, 300);
|
PVOrdiniAcquistoRESTConsumerService ordiniARestService = RESTBuilder.getService(PVOrdiniAcquistoRESTConsumerService.class, 300);
|
||||||
ordiniARestService
|
ordiniARestService.retrieveArticoli(codAlis, codMdep, null)
|
||||||
.getArticoliListino(codAlis)
|
|
||||||
.enqueue(new Callback<>() {
|
.enqueue(new Callback<>() {
|
||||||
@Override
|
@Override
|
||||||
public void onResponse(Call<ServiceRESTResponse<GrigliaDTO>> call, Response<ServiceRESTResponse<GrigliaDTO>> response) {
|
public void onResponse(Call<ServiceRESTResponse<OrdiniAcquistoGrigliaDTO>> call, Response<ServiceRESTResponse<OrdiniAcquistoGrigliaDTO>> response) {
|
||||||
analyzeAnswer(response, "getArticoliListino", griglia -> {
|
var startTime = new Date().getTime();
|
||||||
|
analyzeAnswer(response, "retrieveArticoliOrdine", articoliOrdineWrapper -> {
|
||||||
UtilityThread.executeParallel(() -> {
|
UtilityThread.executeParallel(() -> {
|
||||||
var startTime = new Date().getTime();
|
|
||||||
|
|
||||||
List<ArticoloDTO> listaArticoli = new ArrayList<>();
|
|
||||||
|
|
||||||
Stream.of(griglia.getGrigliaAcquistiChild())
|
|
||||||
.groupBy(ArticoloDTO::getCodMart)
|
|
||||||
.forEach(entry -> {
|
|
||||||
|
|
||||||
if (entry.getValue().size() == 1) {
|
|
||||||
listaArticoli.add(entry.getValue().get(0));
|
|
||||||
} else {
|
|
||||||
for (ArticoloDTO articolo : entry.getValue()) {
|
|
||||||
if (!articolo.getBarCode().endsWith(articolo.getCodMart())) {
|
|
||||||
listaArticoli.add(articolo);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
griglia.setGrigliaAcquistiChild(listaArticoli);
|
|
||||||
|
|
||||||
Log.d("LOADING TIME 1", "MS: " + (new Date().getTime() - startTime));
|
Log.d("LOADING TIME 1", "MS: " + (new Date().getTime() - startTime));
|
||||||
onSuccess.run(griglia);
|
onSuccess.run(articoliOrdineWrapper);
|
||||||
}, false);
|
}, false);
|
||||||
}, onFailed);
|
}, onFailed);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(Call<ServiceRESTResponse<GrigliaDTO>> call, Throwable t) {
|
public void onFailure(Call<ServiceRESTResponse<OrdiniAcquistoGrigliaDTO>> call, Throwable t) {
|
||||||
Log.e("getArticoliListino_pv", t.toString());
|
Log.e("getArticoliListino_pv", t.toString());
|
||||||
UtilityLogger.error(new Exception(t));
|
UtilityLogger.error(new Exception(t));
|
||||||
onFailed.run(new Exception(t));
|
onFailed.run(new Exception(t));
|
||||||
@ -85,7 +58,31 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void saveOrdine(Ordine ordine, List<ArticoloOrdine> articoli, RunnableArgs<Ordine> onSuccess, RunnableArgs<Exception> onFailed) {
|
public void retrieveArticolo(String codAlis, String codMdep, String barcode, RunnableArgs<OrdiniAcquistoGrigliaDTO> onSuccess, RunnableArgs<Exception> onFailed) {
|
||||||
|
PVOrdiniAcquistoRESTConsumerService ordiniARestService = RESTBuilder.getService(PVOrdiniAcquistoRESTConsumerService.class, 300);
|
||||||
|
ordiniARestService.retrieveArticoli(codAlis, codMdep, barcode)
|
||||||
|
.enqueue(new Callback<>() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(Call<ServiceRESTResponse<OrdiniAcquistoGrigliaDTO>> call, Response<ServiceRESTResponse<OrdiniAcquistoGrigliaDTO>> response) {
|
||||||
|
var startTime = new Date().getTime();
|
||||||
|
analyzeAnswer(response, "retrieveArticoliOrdine", articoliOrdineWrapper -> {
|
||||||
|
UtilityThread.executeParallel(() -> {
|
||||||
|
Log.d("LOADING TIME 1", "MS: " + (new Date().getTime() - startTime));
|
||||||
|
onSuccess.run(articoliOrdineWrapper);
|
||||||
|
}, false);
|
||||||
|
}, onFailed);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Call<ServiceRESTResponse<OrdiniAcquistoGrigliaDTO>> call, Throwable t) {
|
||||||
|
Log.e("getArticoliListino_pv", t.toString());
|
||||||
|
UtilityLogger.error(new Exception(t));
|
||||||
|
onFailed.run(new Exception(t));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void saveOrdine(Ordine ordine, List<ArticoloOrdine> articoli, String codMdep, RunnableArgs<Ordine> onSuccess, RunnableArgs<Exception> onFailed) {
|
||||||
SaveDTO saveDTO = new SaveDTO();
|
SaveDTO saveDTO = new SaveDTO();
|
||||||
OrdineDTO ordineDTO = new OrdineDTO();
|
OrdineDTO ordineDTO = new OrdineDTO();
|
||||||
List<ArtDTO> artRows = new ArrayList<>();
|
List<ArtDTO> artRows = new ArrayList<>();
|
||||||
@ -101,21 +98,36 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer {
|
|||||||
saveDTO.setGestione("O");
|
saveDTO.setGestione("O");
|
||||||
saveDTO.setOrdineDTO(ordineDTO);
|
saveDTO.setOrdineDTO(ordineDTO);
|
||||||
|
|
||||||
|
PVOrdiniAcquistoRESTConsumerService ordiniARestService = RESTBuilder.getService(PVOrdiniAcquistoRESTConsumerService.class, 300);
|
||||||
|
ordiniARestService.save(codMdep, saveDTO)
|
||||||
|
.enqueue(new Callback<>() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(Call<ServiceRESTResponse<Object>> call, Response<ServiceRESTResponse<Object>> response) {
|
||||||
|
var startTime = new Date().getTime();
|
||||||
|
analyzeAnswer(response, "retrieveArticoliOrdine", articoliOrdineWrapper -> {
|
||||||
|
UtilityThread.executeParallel(() -> {
|
||||||
|
// if (data == null) {
|
||||||
|
// onFailed.run(new Exception("Nessun ordine generato"));
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
ordine.setTransmitted(true);
|
||||||
|
ordine.setTransmissionDate(UtilityDate.getDateInstance());
|
||||||
|
// ordine.setGestione(data.getGestione());
|
||||||
|
// ordine.setDataOrdS(data.getDataOrd());
|
||||||
|
// ordine.setCodMdep(data.getCodMdep());
|
||||||
|
// ordine.setNumOrd(data.getNumOrd());
|
||||||
|
onSuccess.run(ordine);
|
||||||
|
}, false);
|
||||||
|
}, onFailed);
|
||||||
|
}
|
||||||
|
|
||||||
magazzinoRESTConsumer.saveOrdine(saveDTO, data -> {
|
@Override
|
||||||
if (data == null) {
|
public void onFailure(Call<ServiceRESTResponse<Object>> call, Throwable t) {
|
||||||
onFailed.run(new Exception("Nessun ordine generato"));
|
Log.e("saveOrdine", t.toString());
|
||||||
return;
|
UtilityLogger.error(new Exception(t));
|
||||||
}
|
onFailed.run(new Exception(t));
|
||||||
|
}
|
||||||
ordine.setTransmitted(true);
|
});
|
||||||
ordine.setTransmissionDate(UtilityDate.getDateInstance());
|
|
||||||
ordine.setGestione(data.getGestione());
|
|
||||||
ordine.setDataOrdS(data.getDataOrd());
|
|
||||||
ordine.setCodMdep(data.getCodMdep());
|
|
||||||
ordine.setNumOrd(data.getNumOrd());
|
|
||||||
onSuccess.run(ordine);
|
|
||||||
}, onFailed);
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -131,6 +143,7 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer {
|
|||||||
dto.setSystemNote(art.getSystemNote());
|
dto.setSystemNote(art.getSystemNote());
|
||||||
dto.setQta(BigDecimal.valueOf(art.getQtaOrd()));
|
dto.setQta(BigDecimal.valueOf(art.getQtaOrd()));
|
||||||
dto.setQtaCnf(BigDecimal.valueOf(art.getQtaCnf()));
|
dto.setQtaCnf(BigDecimal.valueOf(art.getQtaCnf()));
|
||||||
|
dto.setCodAlis(art.getCodAlis());
|
||||||
dto.setColli(BigDecimal.ZERO);
|
dto.setColli(BigDecimal.ZERO);
|
||||||
return dto;
|
return dto;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,13 +1,18 @@
|
|||||||
package it.integry.integrywmsnative.core.rest.consumers;
|
package it.integry.integrywmsnative.core.rest.consumers;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.data_store.db.view_model.GrigliaDTO;
|
import it.integry.integrywmsnative.core.data_store.db.view_model.OrdiniAcquistoGrigliaDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||||
|
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.SaveDTO;
|
||||||
import retrofit2.Call;
|
import retrofit2.Call;
|
||||||
|
import retrofit2.http.Body;
|
||||||
|
import retrofit2.http.GET;
|
||||||
import retrofit2.http.POST;
|
import retrofit2.http.POST;
|
||||||
import retrofit2.http.Query;
|
import retrofit2.http.Query;
|
||||||
|
|
||||||
public interface PVOrdiniAcquistoRESTConsumerService {
|
public interface PVOrdiniAcquistoRESTConsumerService {
|
||||||
|
@GET("wms/ordini-acquisto/articoli")
|
||||||
|
Call<ServiceRESTResponse<OrdiniAcquistoGrigliaDTO>> retrieveArticoli(@Query("chiaveGriglia") String codAlis, @Query("codMdep") String codMdep, @Query("barcodeArt") String barcode);
|
||||||
|
|
||||||
@POST("SM2GetElencoArticoli")
|
@POST("wms/ordini-acquisto/save")
|
||||||
Call<ServiceRESTResponse<GrigliaDTO>> getArticoliListino(@Query("chiaveGriglia") String codAlis);
|
Call<ServiceRESTResponse<Object>> save(@Query("codMdep") String codMdep, @Body() SaveDTO saveDTO);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,23 +8,23 @@ import it.integry.integrywmsnative.core.CommonConst;
|
|||||||
public class UtilityBigDecimal {
|
public class UtilityBigDecimal {
|
||||||
|
|
||||||
public static boolean greaterThan(BigDecimal input, BigDecimal toCompareWith) {
|
public static boolean greaterThan(BigDecimal input, BigDecimal toCompareWith) {
|
||||||
if(input == null) return false;
|
if (input == null) return false;
|
||||||
if(toCompareWith == null) return false;
|
if (toCompareWith == null) return false;
|
||||||
|
|
||||||
return input.compareTo(toCompareWith) > 0;
|
return input.compareTo(toCompareWith) > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean equalsTo(BigDecimal input, BigDecimal toCompareWith) {
|
public static boolean equalsTo(BigDecimal input, BigDecimal toCompareWith) {
|
||||||
if(input == null && toCompareWith == null) return true;
|
if (input == null && toCompareWith == null) return true;
|
||||||
if(input == null) return false;
|
if (input == null) return false;
|
||||||
if(toCompareWith == null) return false;
|
if (toCompareWith == null) return false;
|
||||||
|
|
||||||
return input.compareTo(toCompareWith) == 0;
|
return input.compareTo(toCompareWith) == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean lowerThan(BigDecimal input, BigDecimal toCompareWith) {
|
public static boolean lowerThan(BigDecimal input, BigDecimal toCompareWith) {
|
||||||
if(input == null) return false;
|
if (input == null) return false;
|
||||||
if(toCompareWith == null) return false;
|
if (toCompareWith == null) return false;
|
||||||
|
|
||||||
return input.compareTo(toCompareWith) < 0;
|
return input.compareTo(toCompareWith) < 0;
|
||||||
}
|
}
|
||||||
@ -38,15 +38,15 @@ public class UtilityBigDecimal {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static BigDecimal getLowerBetween(BigDecimal input1, BigDecimal input2) {
|
public static BigDecimal getLowerBetween(BigDecimal input1, BigDecimal input2) {
|
||||||
if(input1 == null) return input2;
|
if (input1 == null) return input2;
|
||||||
if(input2 == null) return input1;
|
if (input2 == null) return input1;
|
||||||
|
|
||||||
return lowerThan(input1, input2) ? input1 : input2;
|
return lowerThan(input1, input2) ? input1 : input2;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static BigDecimal getGreaterBetween(BigDecimal input1, BigDecimal input2) {
|
public static BigDecimal getGreaterBetween(BigDecimal input1, BigDecimal input2) {
|
||||||
if(input1 == null) return input2;
|
if (input1 == null) return input2;
|
||||||
if(input2 == null) return input1;
|
if (input2 == null) return input1;
|
||||||
|
|
||||||
return greaterThan(input1, input2) ? input1 : input2;
|
return greaterThan(input1, input2) ? input1 : input2;
|
||||||
}
|
}
|
||||||
@ -57,14 +57,14 @@ public class UtilityBigDecimal {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static BigDecimal divide(BigDecimal input1, BigDecimal divisor, RoundingMode roundingMode) {
|
public static BigDecimal divide(BigDecimal input1, BigDecimal divisor, RoundingMode roundingMode) {
|
||||||
if(divisor == null || equalsTo(divisor, BigDecimal.ZERO)) return null;
|
if (divisor == null || equalsTo(divisor, BigDecimal.ZERO)) return null;
|
||||||
return input1.divide(divisor, 3, roundingMode);
|
return input1.divide(divisor, 3, roundingMode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static BigDecimal divideToInteger(BigDecimal input1, BigDecimal divisor) {
|
public static BigDecimal divideToInteger(BigDecimal input1, BigDecimal divisor) {
|
||||||
if(divisor == null || equalsTo(divisor, BigDecimal.ZERO)) return null;
|
if (divisor == null || equalsTo(divisor, BigDecimal.ZERO)) return null;
|
||||||
return new BigDecimal(input1.divide(divisor,3, BigDecimal.ROUND_HALF_EVEN).intValue());
|
return new BigDecimal(input1.divide(divisor, 3, BigDecimal.ROUND_HALF_EVEN).intValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -73,8 +73,8 @@ public class UtilityBigDecimal {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static BigDecimal divideAndRoundToInteger(BigDecimal input1, BigDecimal divisor, RoundingMode roundingMode) {
|
public static BigDecimal divideAndRoundToInteger(BigDecimal input1, BigDecimal divisor, RoundingMode roundingMode) {
|
||||||
if(divisor == null || equalsTo(divisor, BigDecimal.ZERO)) return null;
|
if (divisor == null || equalsTo(divisor, BigDecimal.ZERO)) return null;
|
||||||
return new BigDecimal(input1.divide(divisor,0, roundingMode).intValue());
|
return new BigDecimal(input1.divide(divisor, 0, roundingMode).intValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static BigDecimal multiply(BigDecimal input1, BigDecimal multiplier) {
|
public static BigDecimal multiply(BigDecimal input1, BigDecimal multiplier) {
|
||||||
@ -87,4 +87,8 @@ public class UtilityBigDecimal {
|
|||||||
return input.setScale(CommonConst.Config.NUMBER_OF_DECIMAL_DIGITS, RoundingMode.HALF_EVEN);
|
return input.setScale(CommonConst.Config.NUMBER_OF_DECIMAL_DIGITS, RoundingMode.HALF_EVEN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean isNullOrZero(BigDecimal input) {
|
||||||
|
return input == null || equalsTo(input, BigDecimal.ZERO);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,123 +5,133 @@ import java.util.Date;
|
|||||||
|
|
||||||
public class ArtDTO {
|
public class ArtDTO {
|
||||||
|
|
||||||
private Integer rigaOrd;
|
private Integer rigaOrd;
|
||||||
|
|
||||||
private String codMart;
|
private String codMart;
|
||||||
|
|
||||||
private String barcode;
|
private String barcode;
|
||||||
|
|
||||||
private String descrizione;
|
private String descrizione;
|
||||||
|
|
||||||
private Date dataIns;
|
private Date dataIns;
|
||||||
|
|
||||||
private String untMis;
|
private String untMis;
|
||||||
|
|
||||||
private BigDecimal qta;
|
private BigDecimal qta;
|
||||||
|
|
||||||
private BigDecimal qtaCnf;
|
private BigDecimal qtaCnf;
|
||||||
|
|
||||||
private BigDecimal colli;
|
private BigDecimal colli;
|
||||||
|
|
||||||
private String partitaMag;
|
private String partitaMag;
|
||||||
|
|
||||||
private Date dataScad;
|
private Date dataScad;
|
||||||
|
|
||||||
private String systemNote;
|
private String systemNote;
|
||||||
|
private String codAlis;
|
||||||
|
|
||||||
public Integer getRigaOrd() {
|
public Integer getRigaOrd() {
|
||||||
return rigaOrd;
|
return rigaOrd;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setRigaOrd(Integer rigaOrd) {
|
public void setRigaOrd(Integer rigaOrd) {
|
||||||
this.rigaOrd = rigaOrd;
|
this.rigaOrd = rigaOrd;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getCodMart() {
|
public String getCodMart() {
|
||||||
return codMart;
|
return codMart;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setCodMart(String codMart) {
|
public void setCodMart(String codMart) {
|
||||||
this.codMart = codMart;
|
this.codMart = codMart;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getBarcode() {
|
public String getBarcode() {
|
||||||
return barcode;
|
return barcode;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setBarcode(String barcode) {
|
public void setBarcode(String barcode) {
|
||||||
this.barcode = barcode;
|
this.barcode = barcode;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getDescrizione() {
|
public String getDescrizione() {
|
||||||
return descrizione;
|
return descrizione;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDescrizione(String descrizione) {
|
public void setDescrizione(String descrizione) {
|
||||||
this.descrizione = descrizione;
|
this.descrizione = descrizione;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Date getDataIns() {
|
public Date getDataIns() {
|
||||||
return dataIns;
|
return dataIns;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDataIns(Date dataIns) {
|
public void setDataIns(Date dataIns) {
|
||||||
this.dataIns = dataIns;
|
this.dataIns = dataIns;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getUntMis() {
|
public String getUntMis() {
|
||||||
return untMis;
|
return untMis;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setUntMis(String untMis) {
|
public void setUntMis(String untMis) {
|
||||||
this.untMis = untMis;
|
this.untMis = untMis;
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getQta() {
|
public BigDecimal getQta() {
|
||||||
return qta;
|
return qta;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setQta(BigDecimal qta) {
|
public void setQta(BigDecimal qta) {
|
||||||
this.qta = qta;
|
this.qta = qta;
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getQtaCnf() {
|
public BigDecimal getQtaCnf() {
|
||||||
return qtaCnf;
|
return qtaCnf;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setQtaCnf(BigDecimal qtaCnf) {
|
public void setQtaCnf(BigDecimal qtaCnf) {
|
||||||
this.qtaCnf = qtaCnf;
|
this.qtaCnf = qtaCnf;
|
||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getColli() {
|
public BigDecimal getColli() {
|
||||||
return colli;
|
return colli;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setColli(BigDecimal colli) {
|
public void setColli(BigDecimal colli) {
|
||||||
this.colli = colli;
|
this.colli = colli;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getPartitaMag() {
|
public String getPartitaMag() {
|
||||||
return partitaMag;
|
return partitaMag;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPartitaMag(String partitaMag) {
|
public void setPartitaMag(String partitaMag) {
|
||||||
this.partitaMag = partitaMag;
|
this.partitaMag = partitaMag;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Date getDataScad() {
|
public Date getDataScad() {
|
||||||
return dataScad;
|
return dataScad;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDataScad(Date dataScad) {
|
public void setDataScad(Date dataScad) {
|
||||||
this.dataScad = dataScad;
|
this.dataScad = dataScad;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getSystemNote() {
|
public String getSystemNote() {
|
||||||
return systemNote;
|
return systemNote;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSystemNote(String systemNote) {
|
public void setSystemNote(String systemNote) {
|
||||||
this.systemNote = systemNote;
|
this.systemNote = systemNote;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getCodAlis() {
|
||||||
|
return codAlis;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArtDTO setCodAlis(String codAlis) {
|
||||||
|
this.codAlis = codAlis;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -29,7 +29,7 @@ import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
|||||||
import it.integry.integrywmsnative.core.data_cache.DataCache;
|
import it.integry.integrywmsnative.core.data_cache.DataCache;
|
||||||
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.view_model.ArticoloDTO;
|
import it.integry.integrywmsnative.core.data_store.db.view_model.ArticoloOrdinabileDTO;
|
||||||
import it.integry.integrywmsnative.core.expansion.BaseActivity;
|
import it.integry.integrywmsnative.core.expansion.BaseActivity;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
@ -53,7 +53,7 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi
|
|||||||
@Inject
|
@Inject
|
||||||
PVOrdineAcquistoEditViewModel mViewModel;
|
PVOrdineAcquistoEditViewModel mViewModel;
|
||||||
|
|
||||||
public static Intent newInstance(Context context, Ordine ordine, List<ArticoloDTO> listArts) {
|
public static Intent newInstance(Context context, Ordine ordine, List<ArticoloOrdinabileDTO> listArts) {
|
||||||
Intent myIntent = new Intent(context, PVOrdineAcquistoEditActivity.class);
|
Intent myIntent = new Intent(context, PVOrdineAcquistoEditActivity.class);
|
||||||
String keyOrdine = DataCache.addItem(ordine);
|
String keyOrdine = DataCache.addItem(ordine);
|
||||||
String keyListArts = DataCache.addItem(listArts);
|
String keyListArts = DataCache.addItem(listArts);
|
||||||
@ -114,7 +114,7 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi
|
|||||||
ordine.setOrderNewProducts(false);
|
ordine.setOrderNewProducts(false);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
List<ArticoloDTO> articoliGriglia = DataCache.retrieveItem(getIntent().getStringExtra(DATA_LIST_ARTS));
|
List<ArticoloOrdinabileDTO> articoliGriglia = DataCache.retrieveItem(getIntent().getStringExtra(DATA_LIST_ARTS));
|
||||||
|
|
||||||
this.mViewModel.init(ordine, articoliGriglia);
|
this.mViewModel.init(ordine, articoliGriglia);
|
||||||
}
|
}
|
||||||
@ -194,6 +194,14 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi
|
|||||||
}, null).show(this.getSupportFragmentManager(), "DialogEditArticoloView");
|
}, null).show(this.getSupportFragmentManager(), "DialogEditArticoloView");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void confirmExceedingQtyOrder(Runnable onSuccess) {
|
||||||
|
DialogSimpleMessageView.makeInfoDialog(getText(R.string.warning).toString(),
|
||||||
|
Html.fromHtml(getResources().getString(R.string.confirm_orderable_qty_exceeded)),
|
||||||
|
null,
|
||||||
|
onSuccess, this::onLoadingEnded).show(getSupportFragmentManager(), "confirmExceedingQtyOrder");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getColorFromResource(int resId) {
|
public int getColorFromResource(int resId) {
|
||||||
return getResources().getColor(resId);
|
return getResources().getColor(resId);
|
||||||
|
|||||||
@ -21,13 +21,16 @@ import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliOrdineR
|
|||||||
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoloGrigliaRepository;
|
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.data_store.db.repository.OrdineRepository;
|
import it.integry.integrywmsnative.core.data_store.db.repository.OrdineRepository;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.view_model.ArticoloDTO;
|
import it.integry.integrywmsnative.core.data_store.db.view_model.ArticoloOrdinabileDTO;
|
||||||
|
import it.integry.integrywmsnative.core.exception.EmptyOrderException;
|
||||||
import it.integry.integrywmsnative.core.exception.NoArtsInGridException;
|
import it.integry.integrywmsnative.core.exception.NoArtsInGridException;
|
||||||
import it.integry.integrywmsnative.core.exception.NoResultFromBarcodeException;
|
import it.integry.integrywmsnative.core.exception.NoResultFromBarcodeException;
|
||||||
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;
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
|
|
||||||
public class PVOrdineAcquistoEditViewModel {
|
public class PVOrdineAcquistoEditViewModel {
|
||||||
|
|
||||||
@ -52,7 +55,7 @@ public class PVOrdineAcquistoEditViewModel {
|
|||||||
private Listener mListener;
|
private Listener mListener;
|
||||||
|
|
||||||
|
|
||||||
private List<ArticoloDTO> mArticoliGriglia = new ArrayList<>();
|
private List<ArticoloOrdinabileDTO> mArticoliGriglia = new ArrayList<>();
|
||||||
private final MutableLiveData<List<ArticoloOrdine>> mArticoli = new MutableLiveData<>();
|
private final MutableLiveData<List<ArticoloOrdine>> mArticoli = new MutableLiveData<>();
|
||||||
|
|
||||||
|
|
||||||
@ -68,7 +71,7 @@ public class PVOrdineAcquistoEditViewModel {
|
|||||||
this.pvOrdiniAcquistoRESTConsumer = pvOrdiniAcquistoRESTConsumer;
|
this.pvOrdiniAcquistoRESTConsumer = pvOrdiniAcquistoRESTConsumer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void init(Ordine ordine, List<ArticoloDTO> articoliGriglia) {
|
public void init(Ordine ordine, List<ArticoloOrdinabileDTO> articoliGriglia) {
|
||||||
this.mCurrentOrdine = ordine;
|
this.mCurrentOrdine = ordine;
|
||||||
mArticoliGriglia.clear();
|
mArticoliGriglia.clear();
|
||||||
mArticoliGriglia.addAll(articoliGriglia);
|
mArticoliGriglia.addAll(articoliGriglia);
|
||||||
@ -91,18 +94,22 @@ public class PVOrdineAcquistoEditViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private ArticoloOrdine completeDataArticoli(ArticoloOrdine art) {
|
private ArticoloOrdine completeDataArticoli(ArticoloOrdine art) {
|
||||||
ArticoloDTO artGrid = Stream.of(mArticoliGriglia).filter(x -> art.getCodMart().equalsIgnoreCase(x.getCodMart())).findFirstOrElse(new ArticoloDTO());
|
ArticoloOrdinabileDTO artGrid = Stream.of(mArticoliGriglia).filter(x -> art.getCodMart().equalsIgnoreCase(x.getCodMart())).findFirstOrElse(null);
|
||||||
art.setGgScadenza(artGrid.getGgScadenza());
|
if (artGrid != null) {
|
||||||
art.setGiacenza(BigDecimal.valueOf(artGrid.getGiacenza()));
|
art.setGgScadenza(artGrid.getGgScadenza());
|
||||||
art.setQtaProposta(BigDecimal.valueOf(artGrid.getQtaProposta()));
|
art.setGiacenza(artGrid.getGiacenza());
|
||||||
art.setQtaPrevistaVendita(BigDecimal.valueOf(artGrid.getQtaPrevistaVendita()));
|
art.setDescrizione(artGrid.getDescrizione());
|
||||||
art.setBgTint(getBgTint(art));
|
art.setQtaProposta(artGrid.getQtaProposta());
|
||||||
art.setMediaSett(artGrid.getMediaSett());
|
art.setQtaPrevistaVendita(artGrid.getQtaPrevistaVendita());
|
||||||
art.setQtaMinOrdinabile(artGrid.getQtaMinOrdinabile());
|
art.setBgTint(getBgTint(art));
|
||||||
art.setMerceDaRic(artGrid.getMerceDaRic());
|
art.setMediaSett(artGrid.getMediaSett());
|
||||||
art.setNewNoPromo(artGrid.isNewNoPromo());
|
art.setQtaMinOrdinabile(artGrid.getQtaMinOrdinabile());
|
||||||
art.setFlagQtaMultipla(artGrid.getFlagQtaMultipla());
|
art.setMerceDaRic(artGrid.getMerceDaRic());
|
||||||
art.setSystemNote(artGrid.generateSystemNote());
|
art.setNewNoPromo(artGrid.isNewNoPromo());
|
||||||
|
art.setFlagQtaMultipla(artGrid.getFlagQtaMultipla());
|
||||||
|
art.setCtMaxOrd(BigDecimal.valueOf(artGrid.getCtMaxOrd()));
|
||||||
|
art.setSystemNote(artGrid.generateSystemNote());
|
||||||
|
}
|
||||||
return art;
|
return art;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -126,7 +133,7 @@ public class PVOrdineAcquistoEditViewModel {
|
|||||||
try {
|
try {
|
||||||
this.sendOnLoadingStarted();
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
ArticoloDTO articoloDTO = getArticoloFromBarcode(barcode);
|
ArticoloOrdinabileDTO articoloDTO = getArticoloFromBarcode(barcode);
|
||||||
if (articoloDTO == null) {
|
if (articoloDTO == null) {
|
||||||
throw new NoResultFromBarcodeException(barcode);
|
throw new NoResultFromBarcodeException(barcode);
|
||||||
}
|
}
|
||||||
@ -149,16 +156,23 @@ public class PVOrdineAcquistoEditViewModel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addArticoloToOrdine(ArticoloDTO art, Runnable onSuccess, RunnableArgs<Exception> onFail) {
|
public void addArticoloToOrdine(ArticoloOrdinabileDTO art, Runnable onSuccess, RunnableArgs<Exception> onFail) {
|
||||||
try {
|
try {
|
||||||
|
|
||||||
mArticoliOrdineRepository.findArticoloByScanAndOrdine(mCurrentOrdine, art.codMart, foundArt -> {
|
mArticoliOrdineRepository.findArticoloByScanAndOrdine(mCurrentOrdine, art.getCodMart(), foundArt -> {
|
||||||
|
|
||||||
var articolo = foundArt != null ? foundArt : art.convertToArticoloOrdine(mCurrentOrdine);
|
var articolo = foundArt != null ? completeDataArticoli(foundArt) : convertToArticoloOrdine(art, mCurrentOrdine);
|
||||||
|
Runnable saveAction = () -> {
|
||||||
if (isAutoOrderOnScan()) {
|
|
||||||
articolo.setQtaOrd(articolo.getQtaOrd() + articolo.getQtaCnf());
|
articolo.setQtaOrd(articolo.getQtaOrd() + articolo.getQtaCnf());
|
||||||
mArticoliOrdineRepository.saveArticoloToOrdine(articolo, () -> this.refreshListArticoli(onSuccess), onFail);
|
mArticoliOrdineRepository.saveArticoloToOrdine(articolo, () -> this.refreshListArticoli(onSuccess), onFail);
|
||||||
|
};
|
||||||
|
|
||||||
|
if (isAutoOrderOnScan()) {
|
||||||
|
if (!UtilityBigDecimal.isNullOrZero(articolo.getCtMaxOrd()) && UtilityBigDecimal.greaterThan(BigDecimal.valueOf(articolo.getQtaOrd() + articolo.getQtaCnf()), articolo.getCtMaxOrd())) {
|
||||||
|
mListener.confirmExceedingQtyOrder(saveAction);
|
||||||
|
} else {
|
||||||
|
saveAction.run();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
this.sendOnItemDispatched(articolo, onSuccess);
|
this.sendOnItemDispatched(articolo, onSuccess);
|
||||||
}
|
}
|
||||||
@ -172,16 +186,50 @@ public class PVOrdineAcquistoEditViewModel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public ArticoloDTO getArticoloFromBarcode(String barcode) throws NoArtsInGridException {
|
private ArticoloOrdine convertToArticoloOrdine(ArticoloOrdinabileDTO art, Ordine ordine) {
|
||||||
|
ArticoloOrdine articolo = new ArticoloOrdine();
|
||||||
|
|
||||||
|
articolo.setIdOrdine(ordine.getOrdineId());
|
||||||
|
|
||||||
|
articolo.setBarCode(art.getSelectedBarcode());
|
||||||
|
articolo.setCodMart(art.getCodMart());
|
||||||
|
articolo.setMediaSett(art.getMediaSett());
|
||||||
|
articolo.setFlagQtaMultipla(art.getFlagQtaMultipla());
|
||||||
|
articolo.setQtaMinOrdinabile(art.getQtaMinOrdinabile());
|
||||||
|
articolo.setMerceDaRic(art.getMerceDaRic());
|
||||||
|
articolo.setQtaCnf(art.getQtaCnf());
|
||||||
|
articolo.setUntMis(art.getUntMis());
|
||||||
|
articolo.setDescrizione(art.getDescrizione());
|
||||||
|
articolo.setDataIns(UtilityDate.getDateInstance());
|
||||||
|
articolo.setGgScadenza(art.getGgScadenza());
|
||||||
|
articolo.setGiacenza(art.getGiacenza());
|
||||||
|
articolo.setQtaPrevistaVendita(art.getQtaPrevistaVendita());
|
||||||
|
articolo.setQtaProposta(art.getQtaProposta());
|
||||||
|
articolo.setNewNoPromo(art.isNewNoPromo());
|
||||||
|
articolo.setSystemNote(art.generateSystemNote());
|
||||||
|
articolo.setQtaOrd(art.getQtaOrd());
|
||||||
|
articolo.setCodAlis(art.getCodAlis());
|
||||||
|
articolo.setCtMaxOrd(BigDecimal.valueOf(art.getCtMaxOrd()));
|
||||||
|
|
||||||
|
return articolo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArticoloOrdinabileDTO getArticoloFromBarcode(String barcode) throws NoArtsInGridException {
|
||||||
if (mArticoliGriglia == null || mArticoliGriglia.isEmpty()) {
|
if (mArticoliGriglia == null || mArticoliGriglia.isEmpty()) {
|
||||||
throw new NoArtsInGridException();
|
throw new NoArtsInGridException();
|
||||||
}
|
}
|
||||||
|
ArticoloOrdinabileDTO art = Stream.of(mArticoliGriglia).filter(articolo ->
|
||||||
|
articolo.getCodMart().equalsIgnoreCase(barcode) ||
|
||||||
|
articolo.getBarcode().contains(barcode) ||
|
||||||
|
articolo.getBarcode().contains(StringUtils.leftPad(barcode, 13, "0"))
|
||||||
|
|
||||||
return Stream.of(mArticoliGriglia).filter(articolo ->
|
)
|
||||||
articolo.getCodMart().equalsIgnoreCase(barcode) ||
|
// .sortBy(x -> x.getSortByBarcodeCondition(barcode))
|
||||||
articolo.getBarcode().equalsIgnoreCase(barcode) ||
|
.findFirst().orElse(null);
|
||||||
articolo.getBarcode().equalsIgnoreCase(StringUtils.leftPad(barcode, 13, "0"))
|
if (art != null) {
|
||||||
).sortBy(x -> x.getSortByBarcodeCondition(barcode)).findFirst().orElse(null);
|
art.setSelectedBarcode(barcode);
|
||||||
|
}
|
||||||
|
return art;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -189,14 +237,14 @@ public class PVOrdineAcquistoEditViewModel {
|
|||||||
return SettingsManager.iDB().isFlagOrdinaArticoliOnScan();
|
return SettingsManager.iDB().isFlagOrdinaArticoliOnScan();
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<ArticoloDTO> getNewArticoli() {
|
private List<ArticoloOrdinabileDTO> getNewArticoli() {
|
||||||
return mArticoliGriglia.stream()
|
return mArticoliGriglia.stream()
|
||||||
.filter(x -> x.getQtaOrd() > 0f)
|
.filter(x -> x.getQtaOrd() > 0f)
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void orderNewProducts() {
|
public void orderNewProducts() {
|
||||||
List<ArticoloDTO> newArts = getNewArticoli();
|
List<ArticoloOrdinabileDTO> newArts = getNewArticoli();
|
||||||
if (!newArts.isEmpty()) {
|
if (!newArts.isEmpty()) {
|
||||||
List<ArticoloOrdine> articoliToSave = new ArrayList<>();
|
List<ArticoloOrdine> articoliToSave = new ArrayList<>();
|
||||||
|
|
||||||
@ -212,7 +260,7 @@ public class PVOrdineAcquistoEditViewModel {
|
|||||||
.findFirst()
|
.findFirst()
|
||||||
.isEmpty()
|
.isEmpty()
|
||||||
) {
|
) {
|
||||||
ArticoloOrdine dto = articolo.convertToArticoloOrdine(mCurrentOrdine);
|
ArticoloOrdine dto = convertToArticoloOrdine(articolo, mCurrentOrdine);
|
||||||
articoliToSave.add(dto);
|
articoliToSave.add(dto);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -232,7 +280,12 @@ public class PVOrdineAcquistoEditViewModel {
|
|||||||
|
|
||||||
public void exportOrdine(Runnable onComplete) {
|
public void exportOrdine(Runnable onComplete) {
|
||||||
this.sendOnLoadingStarted();
|
this.sendOnLoadingStarted();
|
||||||
pvOrdiniAcquistoRESTConsumer.saveOrdine(mCurrentOrdine, mArticoli.getValue(), (ordine) -> {
|
if (mArticoli.getValue() == null) {
|
||||||
|
this.sendError(new EmptyOrderException());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
||||||
|
pvOrdiniAcquistoRESTConsumer.saveOrdine(mCurrentOrdine, mArticoli.getValue(), codMdep, (ordine) -> {
|
||||||
|
|
||||||
mOrdineRepository.updateOrder(ordine, ord -> {
|
mOrdineRepository.updateOrder(ordine, ord -> {
|
||||||
this.sendOnLoadingEnded();
|
this.sendOnLoadingEnded();
|
||||||
@ -261,6 +314,8 @@ public class PVOrdineAcquistoEditViewModel {
|
|||||||
public interface Listener extends ILoadingListener {
|
public interface Listener extends ILoadingListener {
|
||||||
void onItemDispatched(ArticoloOrdine articoloOrdine, Runnable onSuccess);
|
void onItemDispatched(ArticoloOrdine articoloOrdine, Runnable onSuccess);
|
||||||
|
|
||||||
|
void confirmExceedingQtyOrder(Runnable onSuccess);
|
||||||
|
|
||||||
int getColorFromResource(int resId);
|
int getColorFromResource(int resId);
|
||||||
|
|
||||||
void onError(Exception ex);
|
void onError(Exception ex);
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import android.content.DialogInterface;
|
|||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.graphics.drawable.ColorDrawable;
|
import android.graphics.drawable.ColorDrawable;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.text.Html;
|
||||||
import android.text.InputType;
|
import android.text.InputType;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@ -32,6 +33,7 @@ import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
|||||||
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityObservable;
|
import it.integry.integrywmsnative.core.utility.UtilityObservable;
|
||||||
import it.integry.integrywmsnative.databinding.DialogPvEditArticoloBinding;
|
import it.integry.integrywmsnative.databinding.DialogPvEditArticoloBinding;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
||||||
|
|
||||||
public class DialogEditArticoloView extends BaseDialogFragment implements DialogEditArticoloViewModel.Listener {
|
public class DialogEditArticoloView extends BaseDialogFragment implements DialogEditArticoloViewModel.Listener {
|
||||||
|
|
||||||
@ -185,8 +187,20 @@ public class DialogEditArticoloView extends BaseDialogFragment implements Dialog
|
|||||||
|
|
||||||
|
|
||||||
public void saveAndExit() {
|
public void saveAndExit() {
|
||||||
this.onLoadingStarted();
|
if (!UtilityBigDecimal.isNullOrZero(this.getArticolo().getCtMaxOrd()) && UtilityBigDecimal.greaterThan(this.mViewModel.getNumCnf(), this.getArticolo().getCtMaxOrd())) {
|
||||||
|
DialogSimpleMessageView.makeInfoDialog(getText(R.string.warning).toString(),
|
||||||
|
Html.fromHtml(getActivity().getResources().getString(R.string.confirm_orderable_qty_exceeded)),
|
||||||
|
null,
|
||||||
|
this::save, () -> {
|
||||||
|
this.mBindings.inputNumCnfText.requestFocus();
|
||||||
|
}).show(getActivity().getSupportFragmentManager(), "confirmExceedingQtyOrder");
|
||||||
|
} else {
|
||||||
|
save();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void save() {
|
||||||
|
this.onLoadingStarted();
|
||||||
this.mViewModel.save(newArticolo -> {
|
this.mViewModel.save(newArticolo -> {
|
||||||
this.mOnComplete.run(newArticolo);
|
this.mOnComplete.run(newArticolo);
|
||||||
this.onLoadingEnded();
|
this.onLoadingEnded();
|
||||||
|
|||||||
@ -23,6 +23,8 @@ public class DialogEditArticoloViewModel {
|
|||||||
private BigDecimal internalQtaCnf;
|
private BigDecimal internalQtaCnf;
|
||||||
private BigDecimal internalQtaTot;
|
private BigDecimal internalQtaTot;
|
||||||
|
|
||||||
|
private BigDecimal maxQtaOrd;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public DialogEditArticoloViewModel(ArticoliOrdineRepository articoliOrdineRepository) {
|
public DialogEditArticoloViewModel(ArticoliOrdineRepository articoliOrdineRepository) {
|
||||||
this.mArticoliOrdineRepository = articoliOrdineRepository;
|
this.mArticoliOrdineRepository = articoliOrdineRepository;
|
||||||
@ -86,6 +88,15 @@ public class DialogEditArticoloViewModel {
|
|||||||
return this.internalQtaTot;
|
return this.internalQtaTot;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public BigDecimal getMaxQtaOrd() {
|
||||||
|
return maxQtaOrd;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DialogEditArticoloViewModel setMaxQtaOrd(BigDecimal maxQtaOrd) {
|
||||||
|
this.maxQtaOrd = maxQtaOrd;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public interface Listener {
|
public interface Listener {
|
||||||
void onDataChanged();
|
void onDataChanged();
|
||||||
@ -109,7 +120,6 @@ public class DialogEditArticoloViewModel {
|
|||||||
this.mListener.onError(new InvalidOrderedQtyException());
|
this.mListener.onError(new InvalidOrderedQtyException());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.mCurrentArticolo.setQtaOrd(this.internalQtaTot.floatValue());
|
this.mCurrentArticolo.setQtaOrd(this.internalQtaTot.floatValue());
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|||||||
@ -28,13 +28,14 @@ import it.integry.integrywmsnative.core.data_store.db.repository.ArticoliOrdineR
|
|||||||
import it.integry.integrywmsnative.core.data_store.db.repository.ArticoloGrigliaRepository;
|
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.data_store.db.repository.OrdineRepository;
|
import it.integry.integrywmsnative.core.data_store.db.repository.OrdineRepository;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.view_model.ArticoloDTO;
|
import it.integry.integrywmsnative.core.data_store.db.view_model.ArticoloOrdinabileDTO;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.wrappers.OrdineWrapper;
|
import it.integry.integrywmsnative.core.data_store.db.wrappers.OrdineWrapper;
|
||||||
import it.integry.integrywmsnative.core.expansion.BaseFragment;
|
import it.integry.integrywmsnative.core.expansion.BaseFragment;
|
||||||
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
|
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
|
||||||
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
|
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
|
||||||
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
import it.integry.integrywmsnative.databinding.FragmentPvOrdiniAcquistoBinding;
|
import it.integry.integrywmsnative.databinding.FragmentPvOrdiniAcquistoBinding;
|
||||||
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditActivity;
|
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditActivity;
|
||||||
import it.integry.integrywmsnative.gest.pv_ordini_acquisto.dialogs.DialogScanGrigliaAcquistoView;
|
import it.integry.integrywmsnative.gest.pv_ordini_acquisto.dialogs.DialogScanGrigliaAcquistoView;
|
||||||
@ -50,7 +51,7 @@ public class PVOrdiniAcquistoGrigliaFragment extends BaseFragment implements ITi
|
|||||||
private Griglia mGriglia;
|
private Griglia mGriglia;
|
||||||
private OrdineAcquistoPvOpenListAdapter mAdapter;
|
private OrdineAcquistoPvOpenListAdapter mAdapter;
|
||||||
private final List<OrdineWrapper> mRenderedOrderList = new ArrayList<>();
|
private final List<OrdineWrapper> mRenderedOrderList = new ArrayList<>();
|
||||||
private final List<ArticoloDTO> mListArticoli = new ArrayList<>();
|
private final List<ArticoloOrdinabileDTO> mListArticoli = new ArrayList<>();
|
||||||
private boolean mRedirectToNewOrder = true;
|
private boolean mRedirectToNewOrder = true;
|
||||||
|
|
||||||
private final List<Runnable> mOnPreDestroyList = new ArrayList<>();
|
private final List<Runnable> mOnPreDestroyList = new ArrayList<>();
|
||||||
@ -104,7 +105,8 @@ public class PVOrdiniAcquistoGrigliaFragment extends BaseFragment implements ITi
|
|||||||
if (griglia == null) {
|
if (griglia == null) {
|
||||||
((IPoppableActivity) requireActivity()).pop();
|
((IPoppableActivity) requireActivity()).pop();
|
||||||
} else {
|
} else {
|
||||||
setGriglia(griglia, listArticoli);
|
setGriglia(griglia);
|
||||||
|
setListaArticoli(listArticoli);
|
||||||
}
|
}
|
||||||
}).show(requireActivity().getSupportFragmentManager(), "tag");
|
}).show(requireActivity().getSupportFragmentManager(), "tag");
|
||||||
|
|
||||||
@ -115,17 +117,23 @@ public class PVOrdiniAcquistoGrigliaFragment extends BaseFragment implements ITi
|
|||||||
titleText.setText(context.getText(R.string.pv_elenco_ordiniA_title_fragment).toString());
|
titleText.setText(context.getText(R.string.pv_elenco_ordiniA_title_fragment).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setGriglia(Griglia griglia, List<ArticoloDTO> listArticoli) {
|
private void setGriglia(Griglia griglia) {
|
||||||
mGriglia = griglia;
|
mGriglia = griglia;
|
||||||
|
mBinding.fabNewOrder.setVisibility(View.VISIBLE);
|
||||||
|
if (UtilityString.isNullOrEmpty(griglia.getCodAlis())) {
|
||||||
|
mBinding.infoGriglia.setVisibility(View.GONE);
|
||||||
|
} else {
|
||||||
|
mBinding.codAlis.setText(griglia.getCodAlis());
|
||||||
|
mBinding.descrLis.setText(griglia.getDescrLisa());
|
||||||
|
}
|
||||||
|
mBinding.descrDepo.setText(griglia.getDescrDepo());
|
||||||
|
fetchOrders();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setListaArticoli(List<ArticoloOrdinabileDTO> listArticoli) {
|
||||||
mListArticoli.clear();
|
mListArticoli.clear();
|
||||||
mListArticoli.addAll(listArticoli);
|
mListArticoli.addAll(listArticoli);
|
||||||
mBinding.fabNewOrder.setVisibility(View.VISIBLE);
|
|
||||||
mBinding.codAlis.setText(griglia.getCodAlis());
|
|
||||||
mBinding.descrLis.setText(griglia.getDescrLisa());
|
|
||||||
mBinding.descrDepo.setText(griglia.getDescrDepo());
|
|
||||||
mBinding.countArtLis.setText(String.valueOf(listArticoli.size()));
|
mBinding.countArtLis.setText(String.valueOf(listArticoli.size()));
|
||||||
|
|
||||||
fetchOrders();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void fetchOrders() {
|
private void fetchOrders() {
|
||||||
@ -190,7 +198,6 @@ public class PVOrdiniAcquistoGrigliaFragment extends BaseFragment implements ITi
|
|||||||
});
|
});
|
||||||
}, this::onError);
|
}, this::onError);
|
||||||
}), () -> {
|
}), () -> {
|
||||||
|
|
||||||
}).show(requireActivity().getSupportFragmentManager(), "tag");
|
}).show(requireActivity().getSupportFragmentManager(), "tag");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -210,7 +217,6 @@ public class PVOrdiniAcquistoGrigliaFragment extends BaseFragment implements ITi
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setScrollToolbar(ElevatedToolbar toolbar) {
|
public void setScrollToolbar(ElevatedToolbar toolbar) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -21,12 +21,15 @@ import it.integry.integrywmsnative.R;
|
|||||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
|
||||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
|
import it.integry.integrywmsnative.core.data_store.db.entity.Griglia;
|
||||||
import it.integry.integrywmsnative.core.data_store.db.view_model.ArticoloDTO;
|
import it.integry.integrywmsnative.core.data_store.db.view_model.ArticoloOrdinabileDTO;
|
||||||
import it.integry.integrywmsnative.core.exception.GridNotFoundException;
|
import it.integry.integrywmsnative.core.exception.GridNotFoundException;
|
||||||
|
import it.integry.integrywmsnative.core.exception.NoArtsFoundException;
|
||||||
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.expansion.RunnableArgss;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
||||||
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.UtilityString;
|
||||||
import it.integry.integrywmsnative.databinding.DialogScanCodiceGrigliaBinding;
|
import it.integry.integrywmsnative.databinding.DialogScanCodiceGrigliaBinding;
|
||||||
|
|
||||||
public class DialogScanGrigliaAcquistoView extends BaseDialogFragment {
|
public class DialogScanGrigliaAcquistoView extends BaseDialogFragment {
|
||||||
@ -34,20 +37,20 @@ public class DialogScanGrigliaAcquistoView extends BaseDialogFragment {
|
|||||||
private DialogScanCodiceGrigliaBinding mBinding;
|
private DialogScanCodiceGrigliaBinding mBinding;
|
||||||
private int mBarcodeScannerIstanceID;
|
private int mBarcodeScannerIstanceID;
|
||||||
|
|
||||||
private final RunnableArgss<Griglia, List<ArticoloDTO>> mOnDialogDismiss;
|
private final RunnableArgss<Griglia, List<ArticoloOrdinabileDTO>> mOnDialogDismiss;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
PVOrdiniAcquistoRESTConsumer pvOrdiniAcquistoRESTConsumer;
|
PVOrdiniAcquistoRESTConsumer pvOrdiniAcquistoRESTConsumer;
|
||||||
|
|
||||||
private Griglia mGriglia;
|
private Griglia mGriglia;
|
||||||
private List<ArticoloDTO> mListArticoli;
|
private List<ArticoloOrdinabileDTO> mListArticoli;
|
||||||
|
|
||||||
|
|
||||||
public static DialogScanGrigliaAcquistoView newInstance(RunnableArgss<Griglia, List<ArticoloDTO>> onDialogDismiss) {
|
public static DialogScanGrigliaAcquistoView newInstance(RunnableArgss<Griglia, List<ArticoloOrdinabileDTO>> onDialogDismiss) {
|
||||||
return new DialogScanGrigliaAcquistoView(onDialogDismiss);
|
return new DialogScanGrigliaAcquistoView(onDialogDismiss);
|
||||||
}
|
}
|
||||||
|
|
||||||
private DialogScanGrigliaAcquistoView(RunnableArgss<Griglia, List<ArticoloDTO>> onDialogDismiss) {
|
private DialogScanGrigliaAcquistoView(RunnableArgss<Griglia, List<ArticoloOrdinabileDTO>> onDialogDismiss) {
|
||||||
super();
|
super();
|
||||||
mOnDialogDismiss = onDialogDismiss;
|
mOnDialogDismiss = onDialogDismiss;
|
||||||
}
|
}
|
||||||
@ -76,6 +79,17 @@ public class DialogScanGrigliaAcquistoView extends BaseDialogFragment {
|
|||||||
return alertDialog;
|
return alertDialog;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void ignore() {
|
||||||
|
BarcodeManager.disable();
|
||||||
|
|
||||||
|
RunnableArgs<Exception> mOnError = exception -> {
|
||||||
|
this.onError(exception);
|
||||||
|
BarcodeManager.enable();
|
||||||
|
};
|
||||||
|
|
||||||
|
retrieveArticoli(null, mOnError);
|
||||||
|
}
|
||||||
|
|
||||||
private void initBarcode() {
|
private void initBarcode() {
|
||||||
mBarcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
|
mBarcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
|
||||||
.setOnScanSuccessful(onScanSuccessfull)
|
.setOnScanSuccessful(onScanSuccessfull)
|
||||||
@ -100,15 +114,20 @@ public class DialogScanGrigliaAcquistoView extends BaseDialogFragment {
|
|||||||
BarcodeManager.enable();
|
BarcodeManager.enable();
|
||||||
};
|
};
|
||||||
|
|
||||||
fetchArticoli(data.getStringValue(), mOnError);
|
retrieveArticoli(data.getStringValue(), mOnError);
|
||||||
};
|
};
|
||||||
|
|
||||||
public void fetchArticoli(String codAlis, RunnableArgs<Exception> onFailed) {
|
public void retrieveArticoli(String codAlis, RunnableArgs<Exception> onFailed) {
|
||||||
this.onLoadingStarted();
|
this.onLoadingStarted();
|
||||||
pvOrdiniAcquistoRESTConsumer.getArticoliListino(codAlis, dto -> {
|
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
||||||
|
pvOrdiniAcquistoRESTConsumer.retrieveArticoli(codAlis, codMdep, dto -> {
|
||||||
this.onLoadingEnded();
|
this.onLoadingEnded();
|
||||||
if (dto.getGrigliaAcquistiChild().size() <= 0) {
|
if (dto.getArticoli().size() == 0) {
|
||||||
onFailed.run(new GridNotFoundException(codAlis));
|
if (UtilityString.isNullOrEmpty(codAlis)) {
|
||||||
|
onFailed.run(new NoArtsFoundException());
|
||||||
|
} else {
|
||||||
|
onFailed.run(new GridNotFoundException(codAlis));
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -116,7 +135,7 @@ public class DialogScanGrigliaAcquistoView extends BaseDialogFragment {
|
|||||||
mGriglia.setCodAlis(codAlis);
|
mGriglia.setCodAlis(codAlis);
|
||||||
mGriglia.setDescrLisa(dto.getDescrLisa());
|
mGriglia.setDescrLisa(dto.getDescrLisa());
|
||||||
mGriglia.setDescrDepo(dto.getDescrDepo());
|
mGriglia.setDescrDepo(dto.getDescrDepo());
|
||||||
mListArticoli = dto.getGrigliaAcquistiChild();
|
mListArticoli = dto.getArticoli();
|
||||||
this.dismiss();
|
this.dismiss();
|
||||||
}, onFailed);
|
}, onFailed);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1210,8 +1210,9 @@ public class SpedizioneViewModel {
|
|||||||
.setOrders(orders);
|
.setOrders(orders);
|
||||||
|
|
||||||
this.mColliScaricoRESTConsumer.createUDS(createUDSRequestDTO, createdUDS -> {
|
this.mColliScaricoRESTConsumer.createUDS(createUDSRequestDTO, createdUDS -> {
|
||||||
this.mCurrentMtbColt = createdUDS;
|
|
||||||
mMtbColtSessionID = this.mColliDataRecoverService.startNewSession(createdUDS, mTestateOrdini);
|
mMtbColtSessionID = this.mColliDataRecoverService.startNewSession(createdUDS, mTestateOrdini);
|
||||||
|
|
||||||
|
this.mCurrentMtbColt = createdUDS;
|
||||||
this.mIsNewLU = true;
|
this.mIsNewLU = true;
|
||||||
|
|
||||||
if (onComplete != null) onComplete.run();
|
if (onComplete != null) onComplete.run();
|
||||||
@ -1342,53 +1343,6 @@ public class SpedizioneViewModel {
|
|||||||
this.sendOnRowSaved();
|
this.sendOnRowSaved();
|
||||||
this.sendOnLoadingEnded();
|
this.sendOnLoadingEnded();
|
||||||
}, this::sendError);
|
}, this::sendError);
|
||||||
|
|
||||||
|
|
||||||
// MtbColt mtbColt = new MtbColt()
|
|
||||||
// .setNumCollo(mtbColrToUpdate.getNumCollo())
|
|
||||||
// .setDataCollo(mtbColrToUpdate.getDataColloS())
|
|
||||||
// .setSerCollo(mtbColrToUpdate.getSerCollo())
|
|
||||||
// .setGestione(mtbColrToUpdate.getGestione())
|
|
||||||
// .setMtbColr(new ObservableArrayList<>());
|
|
||||||
// mtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
|
||||||
//
|
|
||||||
// final MtbColr mtbColr = (MtbColr) mtbColrToUpdate.clone();
|
|
||||||
// mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT);
|
|
||||||
// mtbColr.setRiga(null)
|
|
||||||
// .setPesoLordoKg(null)
|
|
||||||
// .setPesoNettoKg(null)
|
|
||||||
// .setNumCnf(numCnf.subtract(mtbColrToUpdate.getNumCnf()))
|
|
||||||
// .setQtaCnf(qtaCnf)
|
|
||||||
// .setQtaCol(qtaTot.subtract(mtbColrToUpdate.getQtaCol()))
|
|
||||||
// .setPartitaMag(partitaMag)
|
|
||||||
// .setDataScadPartita(dataScad);
|
|
||||||
//
|
|
||||||
// mtbColt.getMtbColr().add(mtbColr);
|
|
||||||
//
|
|
||||||
// this.mColliMagazzinoRESTConsumer.saveCollo(mtbColt, (value) -> {
|
|
||||||
//
|
|
||||||
// mtbColr
|
|
||||||
// .setNumCnf(numCnf)
|
|
||||||
// .setQtaCnf(qtaCnf)
|
|
||||||
// .setQtaCol(qtaTot);
|
|
||||||
//
|
|
||||||
// Optional<PickingObjectDTO> pickingObjectDTO = Stream.of(this.mPickingList.getValue())
|
|
||||||
// .filter(x -> Stream.of(x.getWithdrawMtbColrs())
|
|
||||||
// .anyMatch(y -> y == mtbColrToUpdate)).findSingle();
|
|
||||||
//
|
|
||||||
// if (pickingObjectDTO.isPresent()) {
|
|
||||||
// pickingObjectDTO.get().getWithdrawMtbColrs().remove(mtbColrToUpdate);
|
|
||||||
// pickingObjectDTO.get().getWithdrawMtbColrs().add(mtbColr);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// this.mCurrentMtbColt.getMtbColr().remove(mtbColrToUpdate);
|
|
||||||
// this.mCurrentMtbColt.getMtbColr().add(mtbColr);
|
|
||||||
//
|
|
||||||
// this.resetMatchedRows();
|
|
||||||
// this.sendOnRowSaved();
|
|
||||||
// this.sendOnLoadingEnded();
|
|
||||||
//
|
|
||||||
// }, this::sendError);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
5
app/src/main/res/drawable/baseline_skip_next_24.xml
Normal file
5
app/src/main/res/drawable/baseline_skip_next_24.xml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<vector android:height="24dp" android:tint="#000000"
|
||||||
|
android:viewportHeight="24" android:viewportWidth="24"
|
||||||
|
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M6,18l8.5,-6L6,6v12zM16,6v12h2V6h-2z"/>
|
||||||
|
</vector>
|
||||||
@ -8,6 +8,10 @@
|
|||||||
|
|
||||||
<import type="it.integry.integrywmsnative.core.utility.UtilityNumber" />
|
<import type="it.integry.integrywmsnative.core.utility.UtilityNumber" />
|
||||||
|
|
||||||
|
<import type="java.math.BigDecimal" />
|
||||||
|
|
||||||
|
<import type="it.integry.integrywmsnative.core.utility.UtilityBigDecimal" />
|
||||||
|
|
||||||
<import type="android.view.View" />
|
<import type="android.view.View" />
|
||||||
|
|
||||||
<variable
|
<variable
|
||||||
@ -309,6 +313,92 @@
|
|||||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:visibility="@{UtilityBigDecimal.isNullOrZero(view.articolo.ctMaxOrd) ? View.GONE : View.VISIBLE}"
|
||||||
|
android:layout_marginTop="8dp">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Medium"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_toStartOf="@id/max_cnf"
|
||||||
|
android:text="@string/max_orderable_qty"
|
||||||
|
android:textColor="@android:color/black" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:id="@+id/max_cnf"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Medium"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@{UtilityNumber.decimalToString(view.articolo.ctMaxOrd)}"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textStyle="bold"
|
||||||
|
tools:text="1" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Medium"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:layout_marginStart="4dp"
|
||||||
|
android:text="@string/unt_mis_col"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Medium"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:layout_marginStart="4dp"
|
||||||
|
android:text="("
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Medium"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="0dp"
|
||||||
|
android:text="@{UtilityNumber.decimalToString(view.articolo.ctMaxOrd.multiply(BigDecimal.valueOf(view.articolo.qtaCnf)))}"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Medium"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:layout_marginStart="2dp"
|
||||||
|
android:text="@{view.articolo.untMis}"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Medium"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:layout_marginStart="0dp"
|
||||||
|
android:text=")"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
|
|
||||||
@ -318,14 +408,14 @@
|
|||||||
android:layout_marginTop="8dp"
|
android:layout_marginTop="8dp"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
android:weightSum="1">
|
android:weightSum="2">
|
||||||
|
|
||||||
<androidx.appcompat.widget.LinearLayoutCompat
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
android:layout_marginEnd="2dp"
|
android:layout_marginEnd="2dp"
|
||||||
android:layout_weight="0.5"
|
android:layout_weight="1"
|
||||||
android:background="@drawable/badge_round_corner"
|
android:background="@drawable/badge_round_corner"
|
||||||
android:backgroundTint="@color/green_600"
|
android:backgroundTint="@color/green_600"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
@ -424,7 +514,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
android:layout_marginStart="2dp"
|
android:layout_marginStart="2dp"
|
||||||
android:layout_weight="0.5"
|
android:layout_weight="1"
|
||||||
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"
|
||||||
|
|||||||
@ -4,6 +4,7 @@
|
|||||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||||
|
|
||||||
<data>
|
<data>
|
||||||
|
|
||||||
<variable
|
<variable
|
||||||
name="view"
|
name="view"
|
||||||
type="it.integry.integrywmsnative.gest.pv_ordini_acquisto.dialogs.DialogScanGrigliaAcquistoView" />
|
type="it.integry.integrywmsnative.gest.pv_ordini_acquisto.dialogs.DialogScanGrigliaAcquistoView" />
|
||||||
@ -68,18 +69,38 @@
|
|||||||
android:textSize="16sp" />
|
android:textSize="16sp" />
|
||||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:paddingTop="8dp"
|
||||||
|
android:paddingBottom="8dp"
|
||||||
|
android:gravity="bottom|center_horizontal">
|
||||||
|
|
||||||
|
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/button_abort"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
style="@style/Button.DangerOutline"
|
||||||
|
app:icon="@drawable/ic_clear_24dp"
|
||||||
|
app:strokeColor="@color/red_400"
|
||||||
|
android:onClick="@{() -> view.dismiss()}"
|
||||||
|
android:layout_marginEnd="8dp"
|
||||||
|
android:text="@string/abort" />
|
||||||
|
|
||||||
|
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/button_confirm"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
style="@style/Button.PrimaryOutline"
|
||||||
|
android:onClick="@{() -> view.ignore()}"
|
||||||
|
app:strokeColor="@color/blue_600"
|
||||||
|
app:icon="@drawable/baseline_skip_next_24"
|
||||||
|
android:text="@string/ignore" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
<com.google.android.material.button.MaterialButton
|
|
||||||
android:id="@+id/button_no"
|
|
||||||
style="@style/Button.DangerOutline"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="center_horizontal"
|
|
||||||
android:layout_marginTop="16dp"
|
|
||||||
android:text="@string/abort"
|
|
||||||
android:onClick="@{() -> view.dismiss()}"
|
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
|
||||||
app:strokeColor="@color/red_400" />
|
|
||||||
|
|
||||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
|||||||
@ -44,6 +44,7 @@
|
|||||||
android:padding="16dp">
|
android:padding="16dp">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
android:id="@+id/infoGriglia"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
|
|||||||
@ -431,6 +431,7 @@
|
|||||||
<string name="scanner_settings_trigger_scan_mode_summary">Seleziona modalità scansione per lo scanner</string>
|
<string name="scanner_settings_trigger_scan_mode_summary">Seleziona modalità scansione per lo scanner</string>
|
||||||
<string name="action_create_doc">Crea documento</string>
|
<string name="action_create_doc">Crea documento</string>
|
||||||
<string name="no_arts_found">Nessun articolo compatibile trovato</string>
|
<string name="no_arts_found">Nessun articolo compatibile trovato</string>
|
||||||
|
<string name="empty_order">L\'ordine selezionato non presenta articoli</string>
|
||||||
<string name="empty_lu">UL vuota</string>
|
<string name="empty_lu">UL vuota</string>
|
||||||
<string name="ord_ven_qta_omaggio"><![CDATA[Qta omaggio: <b>%s %s</b>]]></string>
|
<string name="ord_ven_qta_omaggio"><![CDATA[Qta omaggio: <b>%s %s</b>]]></string>
|
||||||
<string name="activity_picking_inventario_title">Inventario</string>
|
<string name="activity_picking_inventario_title">Inventario</string>
|
||||||
@ -440,4 +441,8 @@
|
|||||||
<string name="no_arts_in_grid">Nessun articolo presente in griglia</string>
|
<string name="no_arts_in_grid">Nessun articolo presente in griglia</string>
|
||||||
<string name="invalid_quantity_ordered">La quantità ordinata non è valida</string>
|
<string name="invalid_quantity_ordered">La quantità ordinata non è valida</string>
|
||||||
<string name="grid_not_found">La griglia selezionata non esiste o non presenta articoli</string>
|
<string name="grid_not_found">La griglia selezionata non esiste o non presenta articoli</string>
|
||||||
|
<string name="ignore">Ignora</string>
|
||||||
|
<string name="max_orderable_qty">Qta massima ordinabile</string>
|
||||||
|
<string name="max_qty_exceeded">Quantità massima superata</string>
|
||||||
|
<string name="confirm_orderable_qty_exceeded"><![CDATA[La quantità massima consentita per questo articolo è stata superata! <br/> Vuoi cotinuare comunque con il salvataggio?]]>\</string>
|
||||||
</resources>
|
</resources>
|
||||||
@ -2,7 +2,7 @@
|
|||||||
<resources>
|
<resources>
|
||||||
|
|
||||||
|
|
||||||
<style name="Button.PrimaryOutline" parent="Widget.MaterialComponents.Button.OutlinedButton">
|
<style name="Button.PrimaryOutline" parent="Widget.Material3.Button.OutlinedButton">
|
||||||
<!-- <item name="fontFamily">@font/product_sans_regular</item> <!– target android sdk versions < 26 and > 14 if theme other than AppCompat –>-->
|
<!-- <item name="fontFamily">@font/product_sans_regular</item> <!– target android sdk versions < 26 and > 14 if theme other than AppCompat –>-->
|
||||||
<!-- <item name="android:textStyle">bold</item>-->
|
<!-- <item name="android:textStyle">bold</item>-->
|
||||||
<!-- <item name="android:textAllCaps">false</item>-->
|
<!-- <item name="android:textAllCaps">false</item>-->
|
||||||
@ -11,7 +11,7 @@
|
|||||||
<item name="iconTint">@color/colorPrimary</item>
|
<item name="iconTint">@color/colorPrimary</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="Button.PrimaryFull" parent="Widget.MaterialComponents.Button">
|
<style name="Button.PrimaryFull" parent="Widget.Material3.Button.UnelevatedButton">
|
||||||
<!-- <item name="fontFamily">@font/product_sans_regular</item> <!– target android sdk versions < 26 and > 14 if theme other than AppCompat –>-->
|
<!-- <item name="fontFamily">@font/product_sans_regular</item> <!– target android sdk versions < 26 and > 14 if theme other than AppCompat –>-->
|
||||||
<!-- <item name="android:textStyle">bold</item>-->
|
<!-- <item name="android:textStyle">bold</item>-->
|
||||||
<!-- <item name="android:textAllCaps">false</item>-->
|
<!-- <item name="android:textAllCaps">false</item>-->
|
||||||
|
|||||||
@ -437,6 +437,7 @@
|
|||||||
<string name="scanner_settings_trigger_scan_mode_summary">Select scan mode</string>
|
<string name="scanner_settings_trigger_scan_mode_summary">Select scan mode</string>
|
||||||
<string name="action_create_doc">Create document</string>
|
<string name="action_create_doc">Create document</string>
|
||||||
<string name="no_arts_found">No product found</string>
|
<string name="no_arts_found">No product found</string>
|
||||||
|
<string name="empty_order">No products found in order</string>
|
||||||
<string name="empty_lu">Empty LU</string>
|
<string name="empty_lu">Empty LU</string>
|
||||||
<string name="ord_ven_qta_omaggio"><![CDATA[Free qty: <b>%s %s</b>]]></string>
|
<string name="ord_ven_qta_omaggio"><![CDATA[Free qty: <b>%s %s</b>]]></string>
|
||||||
<!-- TODO: Remove or change this placeholder text -->
|
<!-- TODO: Remove or change this placeholder text -->
|
||||||
@ -447,4 +448,8 @@
|
|||||||
<string name="no_arts_in_grid">No product found in grid</string>
|
<string name="no_arts_in_grid">No product found in grid</string>
|
||||||
<string name="invalid_quantity_ordered">Invalid quantity ordered</string>
|
<string name="invalid_quantity_ordered">Invalid quantity ordered</string>
|
||||||
<string name="grid_not_found">The selected grid was not found or is empty</string>
|
<string name="grid_not_found">The selected grid was not found or is empty</string>
|
||||||
|
<string name="ignore">Ignore</string>
|
||||||
|
<string name="max_orderable_qty">Max orderable qty</string>
|
||||||
|
<string name="max_qty_exceeded">Max quantity exceeded</string>
|
||||||
|
<string name="confirm_orderable_qty_exceeded"><![CDATA[Max permitted quantity exceeded for the current product!<br/> Do you wish to continue?]]></string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user