Finish v1.28.9(303)

This commit is contained in:
Giuseppe Scorrano 2022-07-29 19:41:11 +02:00
commit 208653223c
53 changed files with 2255 additions and 568 deletions

View File

@ -1,25 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="deploymentTargetDropDown">
<runningDeviceTargetsSelectedWithDialog>
<Target>
<type value="RUNNING_DEVICE_TARGET" />
<deviceKey>
<Key>
<type value="SERIAL_NUMBER" />
<value value="adb-R52T60AZ93A-MF0VBc._adb-tls-connect._tcp" />
</Key>
</deviceKey>
</Target>
<Target>
<type value="RUNNING_DEVICE_TARGET" />
<deviceKey>
<Key>
<type value="SERIAL_NUMBER" />
<value value="21088B8EFD" />
</Key>
</deviceKey>
</Target>
</runningDeviceTargetsSelectedWithDialog>
</component>
</project>

View File

@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services'
android { android {
def appVersionCode = 294 def appVersionCode = 303
def appVersionName = '1.28.0' def appVersionName = '1.28.9'
signingConfigs { signingConfigs {
release { release {

View File

@ -86,6 +86,8 @@ import it.integry.integrywmsnative.view.dialogs.input_lu_prod.DialogInputLUProdC
import it.integry.integrywmsnative.view.dialogs.input_lu_prod.DialogInputLUProdModule; import it.integry.integrywmsnative.view.dialogs.input_lu_prod.DialogInputLUProdModule;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2Component; import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2Component;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2Module; import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2Module;
import it.integry.integrywmsnative.view.dialogs.printSsccUl.DialogPrintUlSSCCComponent;
import it.integry.integrywmsnative.view.dialogs.printSsccUl.DialogPrintUlSSCCModule;
import it.integry.integrywmsnative.view.dialogs.scan_art.DialogScanArtComponent; import it.integry.integrywmsnative.view.dialogs.scan_art.DialogScanArtComponent;
import it.integry.integrywmsnative.view.dialogs.scan_art.DialogScanArtModule; import it.integry.integrywmsnative.view.dialogs.scan_art.DialogScanArtModule;
import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLUComponent; import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLUComponent;
@ -137,7 +139,8 @@ import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCr
DialogEditArticoloModule.class, DialogEditArticoloModule.class,
DialogPrintOrderSSCCListModule.class, DialogPrintOrderSSCCListModule.class,
ProdLineeProduzioneModule.class, ProdLineeProduzioneModule.class,
ProdDettaglioLineaModule.class ProdDettaglioLineaModule.class,
DialogPrintUlSSCCModule.class
}) })
public interface MainApplicationComponent { public interface MainApplicationComponent {
@ -231,6 +234,8 @@ public interface MainApplicationComponent {
ProdDettaglioLineaComponent.Factory prodDettaglioLineaComponent(); ProdDettaglioLineaComponent.Factory prodDettaglioLineaComponent();
DialogPrintUlSSCCComponent.Factory dialogPrintUlSSCCComponent();
void inject(MainApplication mainApplication); void inject(MainApplication mainApplication);
void inject(AppContext mainApplication); void inject(AppContext mainApplication);

View File

@ -19,7 +19,7 @@ import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColr; import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColr;
import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColt; import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColt;
@Database(entities = {ArticoloGriglia.class, Griglia.class, Ordine.class, ArticoloOrdine.class, SqlMtbColt.class, SqlMtbColr.class}, version = 9, exportSchema = false) @Database(entities = {ArticoloGriglia.class, Griglia.class, Ordine.class, ArticoloOrdine.class, SqlMtbColt.class, SqlMtbColr.class}, version = 10, exportSchema = false)
@TypeConverters({ @TypeConverters({
DateConverter.class, DateConverter.class,
BigDecimalConverter.class BigDecimalConverter.class

View File

@ -53,6 +53,6 @@ public interface ArticoloGrigliaDao {
@Query("SELECT * FROM articoli_griglia WHERE id_griglia = :grigliaId") @Query("SELECT * FROM articoli_griglia WHERE id_griglia = :grigliaId")
List<ArticoloGriglia> getArticoliFromGriglia(int grigliaId); List<ArticoloGriglia> getArticoliFromGriglia(int grigliaId);
@Query("SELECT * FROM articoli_griglia WHERE id_griglia = :grigliaId AND new_no_promo = 1") @Query("SELECT * FROM articoli_griglia WHERE id_griglia = :grigliaId AND qta_ord >= 1")
List<ArticoloGriglia> getNewArticoliInGriglia(int grigliaId); List<ArticoloGriglia> getNewArticoliInGriglia(int grigliaId);
} }

View File

@ -71,6 +71,9 @@ public class ArticoloGriglia {
@ColumnInfo(name = "qta_proposta") @ColumnInfo(name = "qta_proposta")
private float qtaProposta; private float qtaProposta;
@ColumnInfo(name = "qta_ord")
private float qtaOrd;
@ColumnInfo(name = "id_griglia") @ColumnInfo(name = "id_griglia")
private int idGriglia; private int idGriglia;
@ -205,6 +208,14 @@ public class ArticoloGriglia {
this.newNoPromo = newNoPromo; this.newNoPromo = newNoPromo;
} }
public float getQtaOrd() {
return qtaOrd;
}
public void setQtaOrd(float qtaOrd) {
this.qtaOrd = qtaOrd;
}
public String generateSystemNote() { public String generateSystemNote() {
HashMap<String, String> pairs = new HashMap<>(); HashMap<String, String> pairs = new HashMap<>();
pairs.put("qta_proposta", String.valueOf(qtaProposta)); pairs.put("qta_proposta", String.valueOf(qtaProposta));
@ -234,8 +245,7 @@ public class ArticoloGriglia {
articolo.setQtaProposta(BigDecimal.valueOf(this.getQtaProposta())); articolo.setQtaProposta(BigDecimal.valueOf(this.getQtaProposta()));
articolo.setNewNoPromo(this.isNewNoPromo()); articolo.setNewNoPromo(this.isNewNoPromo());
articolo.setSystemNote(generateSystemNote()); articolo.setSystemNote(generateSystemNote());
articolo.setQtaOrd(this.getQtaOrd());
articolo.setQtaOrd(0);
return articolo; return articolo;
} }

View File

@ -50,6 +50,9 @@ public class Ordine {
@Ignore @Ignore
private int countArticoli = 0; private int countArticoli = 0;
@Ignore
private boolean orderNewProducts = false;
@ColumnInfo(name = "id_griglia") @ColumnInfo(name = "id_griglia")
private int idGriglia; private int idGriglia;
@ -149,4 +152,13 @@ public class Ordine {
public void setDataOrdS(String dataOrd) { public void setDataOrdS(String dataOrd) {
setDataOrd(UtilityDate.recognizeDateWithExceptionHandler(dataOrd)); setDataOrd(UtilityDate.recognizeDateWithExceptionHandler(dataOrd));
} }
public boolean isOrderNewProducts() {
return orderNewProducts;
}
public Ordine setOrderNewProducts(boolean orderNewProducts) {
this.orderNewProducts = orderNewProducts;
return this;
}
} }

View File

@ -19,6 +19,7 @@ public class ArticoloDTO {
private float giacenza; private float giacenza;
private float qtaPrevistaVendita; private float qtaPrevistaVendita;
private float qtaProposta; private float qtaProposta;
private float qtaOrd;
public String getCodMart() { public String getCodMart() {
@ -151,6 +152,15 @@ public class ArticoloDTO {
return this; return this;
} }
public float getQtaOrd() {
return qtaOrd;
}
public ArticoloDTO setQtaOrd(float qtaOrd) {
this.qtaOrd = qtaOrd;
return this;
}
public ArticoloGriglia toArticoloGriglia() { public ArticoloGriglia toArticoloGriglia() {
ArticoloGriglia result = new ArticoloGriglia(); ArticoloGriglia result = new ArticoloGriglia();
result.setBarCode(this.getBarCode()); result.setBarCode(this.getBarCode());
@ -164,6 +174,7 @@ public class ArticoloDTO {
result.setQtaMinOrdinabile(this.getQtaMinOrdinabile()); result.setQtaMinOrdinabile(this.getQtaMinOrdinabile());
result.setGgScadenza(this.ggScadenza); result.setGgScadenza(this.ggScadenza);
result.setNewNoPromo(this.newNoPromo); result.setNewNoPromo(this.newNoPromo);
result.setQtaOrd(this.getQtaOrd());
result.setGiacenza(this.giacenza); result.setGiacenza(this.giacenza);
result.setQtaPrevistaVendita(this.qtaPrevistaVendita); result.setQtaPrevistaVendita(this.qtaPrevistaVendita);
result.setQtaProposta(this.qtaProposta); result.setQtaProposta(this.qtaProposta);

View File

@ -27,7 +27,6 @@ public class BaseDialogFragment extends DialogFragment {
private boolean mBarcodeListener = false; private boolean mBarcodeListener = false;
@Override @Override
public void show(FragmentManager manager, String tag) { public void show(FragmentManager manager, String tag) {
try { try {

View File

@ -28,11 +28,11 @@ public class RESTBuilder {
} }
public static <T> T getService(final Class<T> service, String host, int port, boolean addInterceptors) { public static <T> T getService(final Class<T> service, String host, int port, boolean addInterceptors) {
return getService(service, host, port, addInterceptors, true, 30); return getService(service, host, port, addInterceptors, true, 60);
} }
public static <T> T getService(final Class<T> service, String host, int port, boolean addInterceptors, boolean addEmsApi) { public static <T> T getService(final Class<T> service, String host, int port, boolean addInterceptors, boolean addEmsApi) {
return getService(service, host, port, addInterceptors, addEmsApi, 30); return getService(service, host, port, addInterceptors, addEmsApi, 60);
} }
public static <T> T getService(final Class<T> service, String host, int port, boolean addInterceptors, boolean addEmsApi, int timeout) { public static <T> T getService(final Class<T> service, String host, int port, boolean addInterceptors, boolean addEmsApi, int timeout) {

View File

@ -36,7 +36,9 @@ public class ArticoloRESTConsumer extends _BaseRESTConsumer {
@Override @Override
public void onResponse(Call<ServiceRESTResponse<MtbAart>> call, Response<ServiceRESTResponse<MtbAart>> response) { public void onResponse(Call<ServiceRESTResponse<MtbAart>> call, Response<ServiceRESTResponse<MtbAart>> response) {
analyzeAnswer(response, "getByBarcodeProd", (m) -> { analyzeAnswer(response, "getByBarcodeProd", (m) -> {
onComplete.run(response.body().getEntityList()); List<MtbAart> aartList = response.body().getEntityList();
aartList = aartList != null ? Stream.of(aartList).filter(x -> x.getFlagStato().equalsIgnoreCase("A")).toList() : null;
onComplete.run(aartList);
}, onFailed); }, onFailed);
} }

View File

@ -700,4 +700,29 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
}); });
} }
public void loadShipmentUlFromProductionUL(MtbColt mtbColt, RunnableArgs<MtbColt> onComplete, RunnableArgs<Exception> onFailed) {
HashMap<String, Object> params = new HashMap<>();
params.put("mtb_colr.gestione_rif", mtbColt.getGestione());
params.put("mtb_colr.ser_collo_rif", mtbColt.getSerCollo());
params.put("mtb_colr.num_collo_rif", mtbColt.getNumCollo());
params.put("mtb_colr.data_collo_rif", mtbColt.getDataColloD());
String whereCond = UtilityQuery.concatFieldsInWhereCond(params);
String query = "select distinct mtb_colt.*\n" +
"from mtb_colt\n" +
" left join mtb_colr on mtb_colt.gestione = mtb_colr.gestione and mtb_colt.data_collo = mtb_colr.data_collo and\n" +
" mtb_colt.ser_collo = mtb_colr.ser_collo and mtb_colt.num_collo = mtb_colr.num_collo\n" +
"where mtb_colt.gestione = 'V'" +
" AND " + whereCond;
Type typeOfObjectsList = new TypeToken<ArrayList<MtbColt>>() {
}.getType();
this.mSystemRESTConsumer.<ArrayList<MtbColt>>processSql(query, typeOfObjectsList, data -> {
onComplete.run(data.get(0));
}, onFailed);
}
} }

View File

@ -78,9 +78,9 @@ public class GestSetupRESTConsumer extends _BaseRESTConsumer {
} }
public static void getValues(List<StbGestSetup> stbGestSetupList, RunnableArgs<List<StbGestSetup>> onComplete, RunnableArgs<Exception> onFailed) { public static void getValues(String codMdep, List<StbGestSetup> stbGestSetupList, RunnableArgs<List<StbGestSetup>> onComplete, RunnableArgs<Exception> onFailed) {
GestSetupRESTConsumerService service = RESTBuilder.getService(GestSetupRESTConsumerService.class); GestSetupRESTConsumerService service = RESTBuilder.getService(GestSetupRESTConsumerService.class);
service.getGestSetupValues(stbGestSetupList).enqueue(new Callback<>() { service.getGestSetupValues(codMdep, stbGestSetupList).enqueue(new Callback<>() {
@Override @Override
public void onResponse(Call<ServiceRESTResponse<List<StbGestSetup>>> call, Response<ServiceRESTResponse<List<StbGestSetup>>> response) { public void onResponse(Call<ServiceRESTResponse<List<StbGestSetup>>> call, Response<ServiceRESTResponse<List<StbGestSetup>>> response) {
analyzeAnswer(response, "GestSetup", onComplete, onFailed); analyzeAnswer(response, "GestSetup", onComplete, onFailed);

View File

@ -28,6 +28,7 @@ public interface GestSetupRESTConsumerService {
@POST("gestSetupList") @POST("gestSetupList")
Call<ServiceRESTResponse<List<StbGestSetup>>> getGestSetupValues( Call<ServiceRESTResponse<List<StbGestSetup>>> getGestSetupValues(
@Query("codMdep") String codMdep,
@Body List<StbGestSetup> stbGestSetupList); @Body List<StbGestSetup> stbGestSetupList);
} }

View File

@ -46,10 +46,10 @@ public class MesRESTConsumer extends _BaseRESTConsumer {
}); });
} }
public void getOrdiniLavorazione(String flagEvaso, String codJfas, RunnableArgs<List<OrdineLavorazioneDTO>> onComplete, RunnableArgs<Exception> onFailed) { public void getOrdiniLavorazione(String flagEvaso, String codJfas, String codAnag, RunnableArgs<List<OrdineLavorazioneDTO>> onComplete, RunnableArgs<Exception> onFailed) {
MesRESTConsumerService mesRESTConsumerService = RESTBuilder.getService(MesRESTConsumerService.class); MesRESTConsumerService mesRESTConsumerService = RESTBuilder.getService(MesRESTConsumerService.class);
mesRESTConsumerService.getOrdiniLavorazione(flagEvaso, codJfas) mesRESTConsumerService.getOrdiniLavorazione(null, flagEvaso, codJfas, codAnag)
.enqueue(new Callback<>() { .enqueue(new Callback<>() {
@Override @Override
public void onResponse(Call<ServiceRESTResponse<List<OrdineLavorazioneDTO>>> call, Response<ServiceRESTResponse<List<OrdineLavorazioneDTO>>> response) { public void onResponse(Call<ServiceRESTResponse<List<OrdineLavorazioneDTO>>> call, Response<ServiceRESTResponse<List<OrdineLavorazioneDTO>>> response) {
@ -63,6 +63,7 @@ public class MesRESTConsumer extends _BaseRESTConsumer {
}); });
} }
public void getOrdiniLavorazione(Date dateStart, String flagEvaso, String codJfas, RunnableArgs<List<OrdineLavorazioneDTO>> onComplete, RunnableArgs<Exception> onFailed) { public void getOrdiniLavorazione(Date dateStart, String flagEvaso, String codJfas, RunnableArgs<List<OrdineLavorazioneDTO>> onComplete, RunnableArgs<Exception> onFailed) {
MesRESTConsumerService mesRESTConsumerService = RESTBuilder.getService(MesRESTConsumerService.class); MesRESTConsumerService mesRESTConsumerService = RESTBuilder.getService(MesRESTConsumerService.class);
@ -82,7 +83,8 @@ public class MesRESTConsumer extends _BaseRESTConsumer {
public void getLineeProduzione(String codJfasParent, RunnableArgs<List<JtbFasi>> onComplete, RunnableArgs<Exception> onFailed) { public void getLineeProduzione(String codJfasParent, RunnableArgs<List<JtbFasi>> onComplete, RunnableArgs<Exception> onFailed) {
Type typeOfObjectsList = new TypeToken<ArrayList<JtbFasi>>() {}.getType(); Type typeOfObjectsList = new TypeToken<ArrayList<JtbFasi>>() {
}.getType();
this.mSystemRESTConsumer.processSql( this.mSystemRESTConsumer.processSql(
"SELECT * FROM jtb_fasi WHERE cod_jfas_parent = " + UtilityDB.valueToString(codJfasParent), "SELECT * FROM jtb_fasi WHERE cod_jfas_parent = " + UtilityDB.valueToString(codJfasParent),
typeOfObjectsList, typeOfObjectsList,

View File

@ -22,4 +22,7 @@ public interface MesRESTConsumerService {
@GET("mes_v2/getOrdiniLavorazione") @GET("mes_v2/getOrdiniLavorazione")
Call<ServiceRESTResponse<List<OrdineLavorazioneDTO>>> getOrdiniLavorazione(@Query("startDate") String startDate, @Query("flagEvaso") String flagEvaso, @Query("codJfas") String codJfas); Call<ServiceRESTResponse<List<OrdineLavorazioneDTO>>> getOrdiniLavorazione(@Query("startDate") String startDate, @Query("flagEvaso") String flagEvaso, @Query("codJfas") String codJfas);
@GET("mes_v2/getOrdiniLavorazione")
Call<ServiceRESTResponse<List<OrdineLavorazioneDTO>>> getOrdiniLavorazione(@Query("startDate") String startDate, @Query("flagEvaso") String flagEvaso, @Query("codJfas") String codJfas, @Query("codAnag") String codAnag);
} }

View File

@ -48,6 +48,8 @@ public class DBSettingsModel {
private int onQtaTotInputChanged = 1; private int onQtaTotInputChanged = 1;
private boolean flagAccettazioneUseQtaOrd = false; private boolean flagAccettazioneUseQtaOrd = false;
private boolean flagPickLiberoAllowEmptyDest = false; private boolean flagPickLiberoAllowEmptyDest = false;
private boolean flagAskInfoAggiuntiveSpedizione = false;
private String filterFornitoreProd;
public boolean isFlagSpedizioneEnableFakeGiacenza() { public boolean isFlagSpedizioneEnableFakeGiacenza() {
return flagSpedizioneEnableFakeGiacenza; return flagSpedizioneEnableFakeGiacenza;
@ -364,4 +366,22 @@ public class DBSettingsModel {
this.flagOrdinaArticoliOnScan = flagOrdinaArticoliOnScan; this.flagOrdinaArticoliOnScan = flagOrdinaArticoliOnScan;
return this; return this;
} }
public boolean isFlagAskInfoAggiuntiveSpedizione() {
return flagAskInfoAggiuntiveSpedizione;
}
public DBSettingsModel setFlagAskInfoAggiuntiveSpedizione(boolean flagAskInfoAggiuntiveSpedizione) {
this.flagAskInfoAggiuntiveSpedizione = flagAskInfoAggiuntiveSpedizione;
return this;
}
public String getFilterFornitoreProd() {
return filterFornitoreProd;
}
public DBSettingsModel setFilterFornitoreProd(String filterFornitoreProd) {
this.filterFornitoreProd = filterFornitoreProd;
return this;
}
} }

View File

@ -258,6 +258,10 @@ public class SettingsManager {
.setGestName("PICKING") .setGestName("PICKING")
.setSection("PRODUZIONE") .setSection("PRODUZIONE")
.setKeySection("FLAG_VERSAMENTO_DIRETTO")); .setKeySection("FLAG_VERSAMENTO_DIRETTO"));
stbGestSetupList.add(new StbGestSetup()
.setGestName("PICKING")
.setSection("PRODUZIONE")
.setKeySection("FILTER_FORNTIORE_PROD"));
stbGestSetupList.add(new StbGestSetup() stbGestSetupList.add(new StbGestSetup()
.setGestName("PICKING") .setGestName("PICKING")
.setSection("SPEDIZIONE") .setSection("SPEDIZIONE")
@ -306,9 +310,25 @@ public class SettingsManager {
.setGestName("PICKING") .setGestName("PICKING")
.setSection("PICKING_LIBERO") .setSection("PICKING_LIBERO")
.setKeySection("FLAG_ALLOW_EMPTY_DEST")); .setKeySection("FLAG_ALLOW_EMPTY_DEST"));
stbGestSetupList.add(new StbGestSetup()
.setGestName("PICKING")
.setSection("SPEDIZIONE")
.setKeySection("FLAG_PRINT_PACKING_LIST_ON_CLOSE"));
stbGestSetupList.add(new StbGestSetup()
.setGestName("PICKING")
.setSection("SPEDIZIONE")
.setKeySection("FLAG_PRINT_ETICHETTE_ON_CLOSE"));
stbGestSetupList.add(new StbGestSetup()
.setGestName("PICKING")
.setSection("SPEDIZIONE")
.setKeySection("FLAG_ALLOW_EMPTY_DEST"));
stbGestSetupList.add(new StbGestSetup()
.setGestName("PICKING")
.setSection("SPEDIZIONE")
.setKeySection("FLAG_ASK_INFO_AGGIUNTIVE"));
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
GestSetupRESTConsumer.getValues(codMdep, stbGestSetupList, list -> {
GestSetupRESTConsumer.getValues(stbGestSetupList, list -> {
dbSettingsModelIstance.setDefaultCausaleRettificaGiacenze(getValueFromList(list, "SETUP", "DEFAULT_CAUSALE_RETTIFICA_GIACENZE", String.class)); dbSettingsModelIstance.setDefaultCausaleRettificaGiacenze(getValueFromList(list, "SETUP", "DEFAULT_CAUSALE_RETTIFICA_GIACENZE", String.class));
dbSettingsModelIstance.setEnableCheckPartitaMagCheckPickingV(getValueFromList(list, "SETUP", "ENABLE_CHECK_PARTITA_MAG_PICKING_V", Boolean.class)); dbSettingsModelIstance.setEnableCheckPartitaMagCheckPickingV(getValueFromList(list, "SETUP", "ENABLE_CHECK_PARTITA_MAG_PICKING_V", Boolean.class));
dbSettingsModelIstance.setFlagMultiClienteOrdV(getValueFromList(list, "SETUP", "FLAG_MULTI_CLIENTE_ORD_VENDITA", Boolean.class)); dbSettingsModelIstance.setFlagMultiClienteOrdV(getValueFromList(list, "SETUP", "FLAG_MULTI_CLIENTE_ORD_VENDITA", Boolean.class));
@ -333,29 +353,24 @@ public class SettingsManager {
dbSettingsModelIstance.setFlagAccettazioneUseQtaOrd(getValueFromList(list, "ACCETTAZIONE", "FLAG_USE_QTA_ORD", Boolean.class)); dbSettingsModelIstance.setFlagAccettazioneUseQtaOrd(getValueFromList(list, "ACCETTAZIONE", "FLAG_USE_QTA_ORD", Boolean.class));
dbSettingsModelIstance.setFlagPickLiberoAllowEmptyDest(getValueFromList(list, "PICKING_LIBERO", "FLAG_ALLOW_EMPTY_DEST", Boolean.class)); dbSettingsModelIstance.setFlagPickLiberoAllowEmptyDest(getValueFromList(list, "PICKING_LIBERO", "FLAG_ALLOW_EMPTY_DEST", Boolean.class));
dbSettingsModelIstance.setFlagOrdinaArticoliOnScan(getValueFromList(list, "ORDINI_A", "ORDINA_ARTICOLI_ON_SCAN", Boolean.class)); dbSettingsModelIstance.setFlagOrdinaArticoliOnScan(getValueFromList(list, "ORDINI_A", "ORDINA_ARTICOLI_ON_SCAN", Boolean.class));
dbSettingsModelIstance.setFlagPrintPackingListOnOrderClose(getValueFromList(list, "SPEDIZIONE", "FLAG_PRINT_PACKING_LIST_ON_CLOSE", Boolean.class));
dbSettingsModelIstance.setFlagPrintEtichetteOnOrderClose(getValueFromList(list, "SPEDIZIONE", "FLAG_PRINT_ETICHETTE_ON_CLOSE", Boolean.class));
dbSettingsModelIstance.setFlagAskInfoAggiuntiveSpedizione(getValueFromList(list, "SPEDIZIONE", "FLAG_ASK_INFO_AGGIUNTIVE", Boolean.class));
dbSettingsModelIstance.setFilterFornitoreProd(getValueFromList(list, "PRODUZIONE", "FILTER_FORNTIORE_PROD", String.class));
String notePerdita = getValueFromList(list, "DOC_INTERNI", "NOTE_PERDITA", String.class); String notePerdita = getValueFromList(list, "DOC_INTERNI", "NOTE_PERDITA", String.class);
if (notePerdita != null) { if (notePerdita != null)
dbSettingsModelIstance.setNotePerditaDocInterni(Arrays.asList(notePerdita.split("\\|"))); dbSettingsModelIstance.setNotePerditaDocInterni(Arrays.asList(notePerdita.split("\\|")));
}
Integer onNumCnfInputChanged = getValueFromList(list, "SETUP", "ON_NUM_CNF_INPUT_CHANGED", Integer.class); Integer onNumCnfInputChanged = getValueFromList(list, "SETUP", "ON_NUM_CNF_INPUT_CHANGED", Integer.class);
if (onNumCnfInputChanged != null) { if (onNumCnfInputChanged != null)
dbSettingsModelIstance.setOnNumCnfInputChanged(onNumCnfInputChanged); dbSettingsModelIstance.setOnNumCnfInputChanged(onNumCnfInputChanged);
}
Integer onQtaTotInputChanged = getValueFromList(list, "SETUP", "ON_QTA_TOT_INPUT_CHANGED", Integer.class); Integer onQtaTotInputChanged = getValueFromList(list, "SETUP", "ON_QTA_TOT_INPUT_CHANGED", Integer.class);
if (onQtaTotInputChanged != null) { if (onQtaTotInputChanged != null)
dbSettingsModelIstance.setOnQtaTotInputChanged(onQtaTotInputChanged); dbSettingsModelIstance.setOnQtaTotInputChanged(onQtaTotInputChanged);
}
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep(); if (onComplete != null) onComplete.run();
GestSetupRESTConsumer.getBooleanValue("PICKING", "SPEDIZIONE", "FLAG_PRINT_PACKING_LIST_ON_CLOSE", codMdep, (value) -> {
dbSettingsModelIstance.setFlagPrintPackingListOnOrderClose(value);
GestSetupRESTConsumer.getBooleanValue("PICKING", "SPEDIZIONE", "FLAG_PRINT_ETICHETTE_ON_CLOSE", codMdep, (setupValue) -> {
dbSettingsModelIstance.setFlagPrintEtichetteOnOrderClose(setupValue);
if (onComplete != null) onComplete.run();
}, onFailed);
}, onFailed);
}, onFailed); }, onFailed);
} }
@ -365,7 +380,7 @@ public class SettingsManager {
StbGestSetup value = Stream.of(stbGestSetupList) StbGestSetup value = Stream.of(stbGestSetupList)
.filter(x -> x.getSection().equalsIgnoreCase(section) && x.getKeySection().equalsIgnoreCase(keySectionName)) .filter(x -> x.getSection().equalsIgnoreCase(section) && x.getKeySection().equalsIgnoreCase(keySectionName))
.findFirst().get(); .findFirstOrElse(new StbGestSetup());
if (clazz == String.class) { if (clazz == String.class) {
return clazz.cast(value.getValue()); return clazz.cast(value.getValue());

View File

@ -35,6 +35,13 @@ public class DialogSelectDocInfoViewModel {
public void init(DocInterniSetupDTO initialList) { public void init(DocInterniSetupDTO initialList) {
this.mDocInterniSetupDTO = initialList; this.mDocInterniSetupDTO = initialList;
this.mTipoDoc = null;
this.mGruppoArt = null;
this.mFornitore = null;
this.mDataDoc = null;
this.mNumDoc = null;
this.mNote = null;
this.mListener = null;
} }
public String getCodDtip() { public String getCodDtip() {

View File

@ -19,6 +19,8 @@ public class GrigliaAcquistiChildDTO {
private float giacenza; private float giacenza;
private float qtaPrevistaVendita; private float qtaPrevistaVendita;
private float qtaProposta; private float qtaProposta;
private BigDecimal qtaOrd;
public String getCodMart() { public String getCodMart() {
return codMart; return codMart;
@ -154,4 +156,13 @@ public class GrigliaAcquistiChildDTO {
this.newNoPromo = newNoPromo; this.newNoPromo = newNoPromo;
return this; return this;
} }
public BigDecimal getQtaOrd() {
return qtaOrd;
}
public GrigliaAcquistiChildDTO setQtaOrd(BigDecimal qtaOrd) {
this.qtaOrd = qtaOrd;
return this;
}
} }

View File

@ -250,6 +250,7 @@ public class DocInterniEditFormActivity extends BaseActivity implements DocInter
.setNotesMandatory(this.viewModel.isNotesMandatory()) .setNotesMandatory(this.viewModel.isNotesMandatory())
.setDataScadMandatory(flagTracciabilita) .setDataScadMandatory(flagTracciabilita)
.setCanPartitaMagBeChanged(flagTracciabilita) .setCanPartitaMagBeChanged(flagTracciabilita)
.setNumCnfEditable(false)
.setSuggestPartitaMag(data -> { .setSuggestPartitaMag(data -> {
Date dataScad = data.getDataScad(); Date dataScad = data.getDataScad();
String partitaMag = null; String partitaMag = null;

View File

@ -276,7 +276,7 @@ public class ProdDettaglioLineaActivity extends BaseActivity implements ProdDett
getSupportFragmentManager() getSupportFragmentManager()
.beginTransaction() .beginTransaction()
.add(R.id.frame_layout_container, .add(R.id.frame_layout_container,
ProdRecuperoMaterialeFragment.newInstance(mViewModel.lineaProd.getValue().getCodJfas(), DATA_KEY_FRAGMENT_LISTENER)) ProdRecuperoMaterialeFragment.newInstance(null, DATA_KEY_FRAGMENT_LISTENER))
.addToBackStack("ProdRecuperoMaterialeFragment") .addToBackStack("ProdRecuperoMaterialeFragment")
.commit(); .commit();

View File

@ -9,6 +9,7 @@ import javax.inject.Inject;
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener; import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.IOrdersLoadingListener; import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.IOrdersLoadingListener;
import it.integry.integrywmsnative.core.rest.consumers.MesRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.MesRESTConsumer;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO; import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO;
import it.integry.integrywmsnative.gest.spedizione.exceptions.OrdersLoadException; import it.integry.integrywmsnative.gest.spedizione.exceptions.OrdersLoadException;
@ -28,8 +29,8 @@ public class ProdRientroMerceViewModel {
public void refreshOrderList() { public void refreshOrderList() {
new Thread(this::sendOnOrdersLoadingStarted).start(); new Thread(this::sendOnOrdersLoadingStarted).start();
String codAnag = SettingsManager.iDB().getFilterFornitoreProd();
this.mMesRESTConsumer.getOrdiniLavorazione("I", null, ordiniLavorazioneList -> { this.mMesRESTConsumer.getOrdiniLavorazione("I", null, codAnag, ordiniLavorazioneList -> {
this.mOrdiniLavorazioneAperti.postValue(ordiniLavorazioneList); this.mOrdiniLavorazioneAperti.postValue(ordiniLavorazioneList);
this.sendOnOrdersLoadingEnded(); this.sendOnOrdersLoadingEnded();
}, ex -> this.sendError(new OrdersLoadException(ex))); }, ex -> this.sendError(new OrdersLoadException(ex)));

View File

@ -18,6 +18,7 @@ import androidx.lifecycle.MutableLiveData;
import androidx.preference.PreferenceManager; import androidx.preference.PreferenceManager;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import com.annimon.stream.ComparatorCompat;
import com.annimon.stream.Stream; import com.annimon.stream.Stream;
import com.google.gson.reflect.TypeToken; import com.google.gson.reflect.TypeToken;
import com.harrysoft.androidbluetoothserial.BluetoothManager; import com.harrysoft.androidbluetoothserial.BluetoothManager;
@ -43,12 +44,15 @@ import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
import it.integry.integrywmsnative.core.utility.UtilityDB; import it.integry.integrywmsnative.core.utility.UtilityDB;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.FragmentProdRientroMerceOrderDetailBinding; import it.integry.integrywmsnative.databinding.FragmentProdRientroMerceOrderDetailBinding;
import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO; import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO;
import it.integry.integrywmsnative.gest.settings.MainSettingsFragment; import it.integry.integrywmsnative.gest.settings.MainSettingsFragment;
import it.integry.integrywmsnative.ui.SimpleDividerItemDecoration; import it.integry.integrywmsnative.ui.SimpleDividerItemDecoration;
import it.integry.integrywmsnative.view.dialogs.input_lu_prod.DialogInputLUProdDTO; import it.integry.integrywmsnative.view.dialogs.input_lu_prod.DialogInputLUProdDTO;
import it.integry.integrywmsnative.view.dialogs.input_lu_prod.DialogInputLUProdView; import it.integry.integrywmsnative.view.dialogs.input_lu_prod.DialogInputLUProdView;
import it.integry.integrywmsnative.view.dialogs.printSsccUl.DialogPrintUlSSCCView;
import it.integry.integrywmsnative.view.dialogs.printSsccUl.dto.PrintUlDTO;
/** /**
* A simple {@link Fragment} subclass. * A simple {@link Fragment} subclass.
@ -76,12 +80,15 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements
private BluetoothManager bluetoothManager; private BluetoothManager bluetoothManager;
private BluetoothSerialDevice mConnectedBluetoothDevice; private BluetoothSerialDevice mConnectedBluetoothDevice;
private String mLatestCodTcol;
public ObservableField<BigDecimal> sumLUNumber = new ObservableField<>(BigDecimal.ZERO); public ObservableField<BigDecimal> sumLUNumber = new ObservableField<>(BigDecimal.ZERO);
public ObservableField<BigDecimal> sumColliNumber = new ObservableField<>(BigDecimal.ZERO); public ObservableField<BigDecimal> sumColliNumber = new ObservableField<>(BigDecimal.ZERO);
public ObservableField<BigDecimal> sumNetKG = new ObservableField<>(BigDecimal.ZERO); public ObservableField<BigDecimal> sumNetKG = new ObservableField<>(BigDecimal.ZERO);
public ObservableField<BigDecimal> sumGrossKG = new ObservableField<>(BigDecimal.ZERO); public ObservableField<BigDecimal> sumGrossKG = new ObservableField<>(BigDecimal.ZERO);
public ObservableField<Integer> progress = new ObservableField<>(0);
public boolean isOrderColli = false;
public ProdRientroMerceOrderDetailFragment() { public ProdRientroMerceOrderDetailFragment() {
// Required empty public constructor // Required empty public constructor
@ -113,8 +120,10 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements
mViewModel.setListener(this); mViewModel.setListener(this);
if(currentOrder.getValue() != null) if (currentOrder.getValue() != null) {
refreshOrder(); refreshOrder();
isOrderColli = currentOrder.getValue().getQtaCnf().compareTo(BigDecimal.ONE) == 0;
}
this.mViewModel.mtbColtsOfOrder.observe(getViewLifecycleOwner(), this::refreshList); this.mViewModel.mtbColtsOfOrder.observe(getViewLifecycleOwner(), this::refreshList);
this.initRecyclerView(); this.initRecyclerView();
@ -178,6 +187,7 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements
@Override @Override
public void onDetach() { public void onDetach() {
mLatestCodTcol = null;
if (mConnectedBluetoothDevice != null) if (mConnectedBluetoothDevice != null)
bluetoothManager.close(); bluetoothManager.close();
@ -191,9 +201,9 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements
} }
private void refreshOrder() { private void refreshOrder() {
if(mBindings != null) mBindings.invalidateAll(); if (mBindings != null) mBindings.invalidateAll();
if(mAdapter != null) mAdapter.clearDataset(); if (mAdapter != null) mAdapter.clearDataset();
if(mViewModel != null) mViewModel.setOrder(currentOrder.getValue()); if (mViewModel != null) mViewModel.setOrder(currentOrder.getValue());
} }
private void refreshList(List<MtbColt> mtbColts) { private void refreshList(List<MtbColt> mtbColts) {
@ -203,15 +213,31 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements
AtomicBigDecimal sumColli = new AtomicBigDecimal(BigDecimal.ZERO); AtomicBigDecimal sumColli = new AtomicBigDecimal(BigDecimal.ZERO);
AtomicBigDecimal sumNet = new AtomicBigDecimal(BigDecimal.ZERO); AtomicBigDecimal sumNet = new AtomicBigDecimal(BigDecimal.ZERO);
AtomicBigDecimal sumGross = new AtomicBigDecimal(BigDecimal.ZERO); AtomicBigDecimal sumGross = new AtomicBigDecimal(BigDecimal.ZERO);
AtomicBigDecimal sumQtaCol = new AtomicBigDecimal(BigDecimal.ZERO);
Stream.of(mtbColts) Stream.of(mtbColts)
.forEach(x -> Stream.of(x.getMtbColr()).forEach(y -> { .forEach(x -> Stream.of(x.getMtbColr()).forEach(y -> {
sumColli.getAndAdd(y.getNumCnf()); sumColli.getAndAdd(y.getNumCnf());
sumNet.getAndAdd(y.getPesoNettoKg()); sumNet.getAndAdd(y.getPesoNettoKg());
sumGross.getAndAdd(y.getPesoLordoKg()); sumGross.getAndAdd(y.getPesoLordoKg());
sumQtaCol.getAndAdd(y.getQtaCol());
})); }));
ComparatorCompat<MtbColt> c = ComparatorCompat
.chain(
new ComparatorCompat<MtbColt>((x, y) -> x.getDataVersD().compareTo(y.getDataVersD()))
)
.reversed();
MtbColt lastUl = Stream.of(mtbColts).sorted(c).findFirstOrElse(null);
if (lastUl != null && !UtilityString.isNullOrEmpty(lastUl.getCodTcol())) {
mLatestCodTcol = lastUl.getCodTcol();
}
currentOrder.getValue().setQtaTrasferite(sumQtaCol.get());
this.progress.set(currentOrder.getValue().getProgress());
sumColliNumber.set(sumColli.get()); sumColliNumber.set(sumColli.get());
sumGrossKG.set(sumGross.get()); sumGrossKG.set(sumGross.get());
progress.set(currentOrder.getValue().getProgress());
sumNetKG.set(sumNet.get()); sumNetKG.set(sumNet.get());
} else { } else {
sumLUNumber.set(BigDecimal.ZERO); sumLUNumber.set(BigDecimal.ZERO);
@ -224,7 +250,19 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements
} }
@Override @Override
public void onDataSaved() { public void onDataSaved(MtbColt mtbColt) {
PrintUlDTO dto = new PrintUlDTO();
dto.setMtbColt(mtbColt);
String codJcom = currentOrder.getValue().getCodJcom();
dto.setFlagPrintShipmentLabel(!UtilityString.isNullOrEmpty(codJcom));
dto.setFlagPrintProductionLabel(UtilityString.isNullOrEmpty(codJcom));
DialogPrintUlSSCCView.newInstance(dto, result -> {
if (result.isFlagPrintShipmentLabel() || result.isFlagPrintProductionLabel()) {
this.mViewModel.printSavedMtbColt(result);
} else {
this.mViewModel.refreshMtbColts();
}
}).show(requireActivity().getSupportFragmentManager(), "DialogPrintUlSSCC");
} }
@ -232,7 +270,12 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements
public void addULButtonClick() { public void addULButtonClick() {
this.onLoadingStarted(); this.onLoadingStarted();
String codProd = this.currentOrder.getValue().getCodProd(); OrdineLavorazioneDTO currentOrder = this.currentOrder.getValue();
if (currentOrder == null) {
this.onError(new Exception("Nessun ordine rilevato!"));
return;
}
String codProd = currentOrder.getCodProd();
mArticoloRESTConsumer.getByCodMart(codProd, mtbAart -> { mArticoloRESTConsumer.getByCodMart(codProd, mtbAart -> {
String sql = "SELECT TOP 1 * " + String sql = "SELECT TOP 1 * " +
@ -241,9 +284,9 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements
" * " + " * " +
" FROM dtb_ord_steps " + " FROM dtb_ord_steps " +
" WHERE cod_jfas IS NOT NULL " + " WHERE cod_jfas IS NOT NULL " +
" AND gestione = " + UtilityDB.valueToString(this.currentOrder.getValue().getGestione()) + " AND gestione = " + UtilityDB.valueToString(currentOrder.getGestione()) +
" AND num_ord = " + UtilityDB.valueToString(this.currentOrder.getValue().getNumOrd()) + " AND num_ord = " + UtilityDB.valueToString(currentOrder.getNumOrd()) +
" AND data_ord = " + UtilityDB.valueToString(this.currentOrder.getValue().getDataOrdD()) + " AND data_ord = " + UtilityDB.valueToString(currentOrder.getDataOrdD()) +
" ) tmp " + " ) tmp " +
"WHERE data_iniz IS NOT NULL " + "WHERE data_iniz IS NOT NULL " +
" AND (data_fine IS NULL OR last_step = id_step) " + " AND (data_fine IS NULL OR last_step = id_step) " +
@ -254,15 +297,24 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements
this.onLoadingEnded(); this.onLoadingEnded();
String codTcol = currentOrder.getCodTcolUl();
if (UtilityString.isNullOrEmpty(codTcol)) {
if (!UtilityString.isNullOrEmpty(mLatestCodTcol)) {
codTcol = mLatestCodTcol;
} else {
codTcol = mtbAart.getCodTcolUl();
}
}
DialogInputLUProdDTO dialogInputLUProdDTO = new DialogInputLUProdDTO() DialogInputLUProdDTO dialogInputLUProdDTO = new DialogInputLUProdDTO()
.setMtbAart(mtbAart) .setMtbAart(mtbAart)
.setNumCnf(this.currentOrder.getValue().getColliPedana()) .setNumCnf(currentOrder.getColliPedana())
.setQtaCnf(mtbAart.getQtaCnf()) .setQtaCnf(mtbAart.getQtaCnf())
.setQtaTot(this.currentOrder.getValue().getColliPedana().multiply(mtbAart.getQtaCnf())) .setQtaTot(currentOrder.getColliPedana().multiply(mtbAart.getQtaCnf()))
.setPartitaMag(this.currentOrder.getValue().getPartitaMag()) .setPartitaMag(currentOrder.getPartitaMag())
.setDataScad(this.currentOrder.getValue().getDataScadD()) .setDataScad(currentOrder.getDataScadD())
.setCodJfasParent(this.currentOrder.getValue().getCodJfas()) .setCodJfasParent(currentOrder.getCodJfas())
.setCodTcol(this.currentOrder.getValue().getCodTcolUl()) .setCodTcol(codTcol)
.setSuggestedCodJfas(dtbOrdStep != null && dtbOrdStep.size() > 0 ? dtbOrdStep.get(0).getCodJfas() : null); .setSuggestedCodJfas(dtbOrdStep != null && dtbOrdStep.size() > 0 ? dtbOrdStep.get(0).getCodJfas() : null);

View File

@ -3,6 +3,7 @@ package it.integry.integrywmsnative.gest.prod_rientro_merce.order_detail;
import dagger.Module; import dagger.Module;
import dagger.Provides; import dagger.Provides;
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
import it.integry.integrywmsnative.gest.prod_rientro_merce.order_detail.rest.ProdRientroMerceOrderDetailRESTConsumer; import it.integry.integrywmsnative.gest.prod_rientro_merce.order_detail.rest.ProdRientroMerceOrderDetailRESTConsumer;
@ -17,8 +18,9 @@ public class ProdRientroMerceOrderDetailModule {
@Provides @Provides
ProdRientroMerceOrderDetailViewModel provideProdRientroMerceOrderDetailViewModel( ProdRientroMerceOrderDetailViewModel provideProdRientroMerceOrderDetailViewModel(
ProdRientroMerceOrderDetailRESTConsumer prodRientroMerceOrderDetailRESTConsumer, ProdRientroMerceOrderDetailRESTConsumer prodRientroMerceOrderDetailRESTConsumer,
ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer) { ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
return new ProdRientroMerceOrderDetailViewModel(prodRientroMerceOrderDetailRESTConsumer, colliMagazzinoRESTConsumer); PrinterRESTConsumer printerRESTConsumer) {
return new ProdRientroMerceOrderDetailViewModel(prodRientroMerceOrderDetailRESTConsumer, colliMagazzinoRESTConsumer, printerRESTConsumer);
} }
} }

View File

@ -6,32 +6,42 @@ import com.annimon.stream.Optional;
import com.annimon.stream.Stream; import com.annimon.stream.Stream;
import java.util.Date; import java.util.Date;
import java.util.HashMap;
import java.util.List; import java.util.List;
import javax.inject.Inject; import javax.inject.Inject;
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.model.MtbColt; import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.report.ReportType;
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.gest.prod_rientro_merce.order_detail.rest.ProdRientroMerceOrderDetailRESTConsumer; import it.integry.integrywmsnative.gest.prod_rientro_merce.order_detail.rest.ProdRientroMerceOrderDetailRESTConsumer;
import it.integry.integrywmsnative.gest.prod_rientro_merce.order_detail.rest.dto.ImportColliDaProduzioneRequestDTO; import it.integry.integrywmsnative.gest.prod_rientro_merce.order_detail.rest.dto.ImportColliDaProduzioneRequestDTO;
import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO; import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO;
import it.integry.integrywmsnative.view.dialogs.printSsccUl.dto.PrintUlDTO;
public class ProdRientroMerceOrderDetailViewModel { public class ProdRientroMerceOrderDetailViewModel {
public MutableLiveData<List<MtbColt>> mtbColtsOfOrder = new MutableLiveData<>(); public final MutableLiveData<List<MtbColt>> mtbColtsOfOrder = new MutableLiveData<>();
private OrdineLavorazioneDTO currentOrder; private OrdineLavorazioneDTO currentOrder;
private final ProdRientroMerceOrderDetailRESTConsumer mProdRientroMerceOrderDetailRESTConsumer; private final ProdRientroMerceOrderDetailRESTConsumer mProdRientroMerceOrderDetailRESTConsumer;
private final ColliMagazzinoRESTConsumer mColliMagazzinoRESTConsumer; private final ColliMagazzinoRESTConsumer mColliMagazzinoRESTConsumer;
private final PrinterRESTConsumer mPrinterRESTConsumer;
private Listener mListener; private Listener mListener;
@Inject @Inject
public ProdRientroMerceOrderDetailViewModel(ProdRientroMerceOrderDetailRESTConsumer prodRientroMerceOrderDetailRESTConsumer, public ProdRientroMerceOrderDetailViewModel(ProdRientroMerceOrderDetailRESTConsumer prodRientroMerceOrderDetailRESTConsumer,
ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer) { ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
PrinterRESTConsumer printerRESTConsumer) {
this.mProdRientroMerceOrderDetailRESTConsumer = prodRientroMerceOrderDetailRESTConsumer; this.mProdRientroMerceOrderDetailRESTConsumer = prodRientroMerceOrderDetailRESTConsumer;
this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer; this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer;
this.mPrinterRESTConsumer = printerRESTConsumer;
} }
public void setOrder(OrdineLavorazioneDTO order) { public void setOrder(OrdineLavorazioneDTO order) {
@ -40,7 +50,7 @@ public class ProdRientroMerceOrderDetailViewModel {
refreshMtbColts(); refreshMtbColts();
} }
private void refreshMtbColts() { public void refreshMtbColts() {
this.sendOnLoadingStarted(); this.sendOnLoadingStarted();
this.mtbColtsOfOrder.postValue(null); this.mtbColtsOfOrder.postValue(null);
@ -81,12 +91,9 @@ public class ProdRientroMerceOrderDetailViewModel {
.setPesoNetto(pickedQuantityDTO.getPesoNetto()); .setPesoNetto(pickedQuantityDTO.getPesoNetto());
this.mProdRientroMerceOrderDetailRESTConsumer.importColloDaProduzione(importColliDaProduzioneRequestDTO, mtbColtSaved -> { this.mProdRientroMerceOrderDetailRESTConsumer.importColloDaProduzione(importColliDaProduzioneRequestDTO, mtbColtSaved -> {
synchronized (this.mtbColtsOfOrder) { synchronized (this.mtbColtsOfOrder) {
refreshMtbColts(); this.mListener.onDataSaved(mtbColtSaved);
} }
this.sendOnLoadingEnded();
}, this::sendError); }, this::sendError);
@ -136,9 +143,39 @@ public class ProdRientroMerceOrderDetailViewModel {
if (this.mListener != null) mListener.onError(ex); if (this.mListener != null) mListener.onError(ex);
} }
public void printSavedMtbColt(PrintUlDTO result) {
if (result.isFlagPrintProductionLabel()) {
this.startPrint(result.getMtbColt(), ReportType.ETICHETTA_SSCC_LAVORAZIONE, currentOrder.getCodAnag());
} else {
this.loadShipmentUlFromProductionUL(result.getMtbColt(), mtbColt -> {
this.startPrint(mtbColt, ReportType.ETICHETTA_SSCC_SPEDIZIONE, mtbColt.getCodAnag());
}, this::sendError);
}
}
private void loadShipmentUlFromProductionUL(MtbColt productionUL, RunnableArgs<MtbColt> onLoad, RunnableArgs<Exception> onError) {
this.mColliMagazzinoRESTConsumer.loadShipmentUlFromProductionUL(productionUL, onLoad, onError);
}
private void startPrint(MtbColt mtbColt, ReportType reportType, String codAnag) {
HashMap<String, Object> params = new HashMap<>();
params.put("gestione", mtbColt.getGestione());
params.put("ser_collo", mtbColt.getSerCollo());
params.put("num_collo", mtbColt.getNumCollo());
params.put("data_collo", UtilityDate.formatDate(mtbColt.getDataColloD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_DASH));
this.mPrinterRESTConsumer.printReportType(
reportType,
SettingsManager.i().getUserSession().getDepo().getCodMdep(),
codAnag,
params,
this::refreshMtbColts,
this::sendError);
}
public interface Listener extends ILoadingListener { public interface Listener extends ILoadingListener {
void onDataSaved(); void onDataSaved(MtbColt mtbColt);
void onError(Exception ex); void onError(Exception ex);

View File

@ -129,15 +129,18 @@ public class ProdRientroMerceOrderListAdapter extends SectionedRecyclerViewAdapt
case START: case START:
holder.mBinding.ordineStateIcon.setImageResource(R.drawable.ic_play_circle_filled_24dp); holder.mBinding.ordineStateIcon.setImageResource(R.drawable.ic_play_circle_filled_24dp);
holder.mBinding.ordineStateIcon.setColorFilter(ContextCompat.getColor(mContext, R.color.green_800), android.graphics.PorterDuff.Mode.SRC_IN); holder.mBinding.ordineStateIcon.setColorFilter(ContextCompat.getColor(mContext, R.color.green_800), android.graphics.PorterDuff.Mode.SRC_IN);
holder.mBinding.orderProgress.setVisibility(View.VISIBLE);
break; break;
case PAUSE: case PAUSE:
holder.mBinding.ordineStateIcon.setImageResource(R.drawable.ic_pause_circle_filled_24dp); holder.mBinding.ordineStateIcon.setImageResource(R.drawable.ic_pause_circle_filled_24dp);
holder.mBinding.ordineStateIcon.setColorFilter(ContextCompat.getColor(mContext, R.color.yellow_800), android.graphics.PorterDuff.Mode.SRC_IN); holder.mBinding.ordineStateIcon.setColorFilter(ContextCompat.getColor(mContext, R.color.yellow_800), android.graphics.PorterDuff.Mode.SRC_IN);
holder.mBinding.orderProgress.setVisibility(View.VISIBLE);
break; break;
case SCHEDULED: case SCHEDULED:
default: default:
holder.mBinding.ordineStateIcon.setImageResource(R.drawable.ic_clock_circle_outline_24dp); holder.mBinding.ordineStateIcon.setImageResource(R.drawable.ic_clock_circle_outline_24dp);
holder.mBinding.ordineStateIcon.setColorFilter(ContextCompat.getColor(mContext, R.color.blue_700), android.graphics.PorterDuff.Mode.SRC_IN); holder.mBinding.ordineStateIcon.setColorFilter(ContextCompat.getColor(mContext, R.color.blue_700), android.graphics.PorterDuff.Mode.SRC_IN);
holder.mBinding.orderProgress.setVisibility(View.GONE);
break; break;
} }
@ -166,6 +169,8 @@ public class ProdRientroMerceOrderListAdapter extends SectionedRecyclerViewAdapt
holder.mBinding.rightSubDescrizione.setVisibility(View.VISIBLE); holder.mBinding.rightSubDescrizione.setVisibility(View.VISIBLE);
} else holder.mBinding.rightSubDescrizione.setVisibility(View.GONE); } else holder.mBinding.rightSubDescrizione.setVisibility(View.GONE);
holder.mBinding.orderProgress.setProgress(listModel.getProgress());
holder.mBinding.executePendingBindings(); holder.mBinding.executePendingBindings();
holder.mBinding.getRoot().setOnClickListener(v -> { holder.mBinding.getRoot().setOnClickListener(v -> {

View File

@ -15,6 +15,7 @@ import androidx.recyclerview.widget.RecyclerView;
import com.annimon.stream.ComparatorCompat; import com.annimon.stream.ComparatorCompat;
import com.annimon.stream.Stream; import com.annimon.stream.Stream;
import java.math.RoundingMode;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -70,7 +71,7 @@ public class ProdRientroMerceOrderListFragment extends Fragment {
mBindings.setLifecycleOwner(this); mBindings.setLifecycleOwner(this);
if(savedInstanceState == null) this.initRecyclerView(); if (savedInstanceState == null) this.initRecyclerView();
return mBindings.getRoot(); return mBindings.getRoot();
} }
@ -84,7 +85,8 @@ public class ProdRientroMerceOrderListFragment extends Fragment {
ProdRientroMerceOrderListAdapter prodRientroMerceOrderListAdapter = new ProdRientroMerceOrderListAdapter(getActivity(), mOrdiniApertiMutableData) ProdRientroMerceOrderListAdapter prodRientroMerceOrderListAdapter = new ProdRientroMerceOrderListAdapter(getActivity(), mOrdiniApertiMutableData)
.setEmptyView(this.mBindings.emptyView) .setEmptyView(this.mBindings.emptyView)
.setOnItemChecked(x -> { .setOnItemChecked(x -> {
if(mOnItemSelectedRunnable != null) mOnItemSelectedRunnable.run(x.getOriginalModel()); if (mOnItemSelectedRunnable != null)
mOnItemSelectedRunnable.run(x.getOriginalModel());
}); });
this.mBindings.mainList.setAdapter(prodRientroMerceOrderListAdapter); this.mBindings.mainList.setAdapter(prodRientroMerceOrderListAdapter);
@ -93,7 +95,7 @@ public class ProdRientroMerceOrderListFragment extends Fragment {
this.mToolbar.setRecyclerView(mBindings.mainList); this.mToolbar.setRecyclerView(mBindings.mainList);
this.mBindings.swiperefresh.setOnRefreshListener(() -> { this.mBindings.swiperefresh.setOnRefreshListener(() -> {
if(onRefreshListener != null) onRefreshListener.onRefresh(); if (onRefreshListener != null) onRefreshListener.onRefresh();
}); });
} }
@ -115,11 +117,13 @@ public class ProdRientroMerceOrderListFragment extends Fragment {
private List<ProdRientroMerceOrderListModel> convertDataModelToListModel(List<OrdineLavorazioneDTO> dataList) { private List<ProdRientroMerceOrderListModel> convertDataModelToListModel(List<OrdineLavorazioneDTO> dataList) {
ComparatorCompat<OrdineLavorazioneDTO> comparator = ComparatorCompat ComparatorCompat<OrdineLavorazioneDTO> comparator = ComparatorCompat
.comparing(OrdineLavorazioneDTO::getCodJfas) .comparing(OrdineLavorazioneDTO::getCodAnag)
.thenComparing(ComparatorCompat.comparing(ordineLavorazioneDTO -> ordineLavorazioneDTO.getDescCommessa() != null ? ordineLavorazioneDTO.getDescCommessa() : "zzzzzzzz"))
.thenComparing(ComparatorCompat.comparing(ordineLavorazioneDTO -> ordineLavorazioneDTO.getDataConsCommessaD() != null ? String.valueOf(ordineLavorazioneDTO.getDataConsCommessaD().getTime()) : "999999999999")).reversed()
.thenComparing(ComparatorCompat.comparing(ordineLavorazioneDTO -> ordineLavorazioneDTO.getDataOrd() != null ? ordineLavorazioneDTO.getDataOrd() : "zzzzzzzz")).reversed() .thenComparing(ComparatorCompat.comparing(ordineLavorazioneDTO -> ordineLavorazioneDTO.getDataOrd() != null ? ordineLavorazioneDTO.getDataOrd() : "zzzzzzzz")).reversed()
.thenComparing(ComparatorCompat.comparing(OrdineLavorazioneDTO::getNumOrd)); .thenComparing(ComparatorCompat.comparing(OrdineLavorazioneDTO::getNumOrd));
if(dataList == null) return new ArrayList<>(); if (dataList == null) return new ArrayList<>();
List<ProdRientroMerceOrderListModel> notHiddenElements = Stream.of(dataList) List<ProdRientroMerceOrderListModel> notHiddenElements = Stream.of(dataList)
.sorted(comparator) .sorted(comparator)
@ -139,10 +143,14 @@ public class ProdRientroMerceOrderListFragment extends Fragment {
break; break;
} }
listModel.setGroupTitle(x.getCodJfas()); listModel.setGroupTitle(x.getRagSocAnag());
if(!UtilityString.isNullOrEmpty(x.getRagSocAnag())) if (!UtilityString.isNullOrEmpty(x.getDataConsCommessa())) {
listModel.setPreDescription("Provenienza: " + x.getRagSocAnag()); listModel.setPreDescription("Consegna: " + UtilityDate.formatDate(x.getDataConsCommessaD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
} else {
/* if (!UtilityString.isNullOrEmpty(x.getRagSocAnag()))
listModel.setPreDescription("Provenienza: " + x.getRagSocAnag());*/
}
String testataOrdString = "" + x.getNumOrd(); String testataOrdString = "" + x.getNumOrd();
listModel.setDescription(testataOrdString); listModel.setDescription(testataOrdString);
@ -151,11 +159,27 @@ public class ProdRientroMerceOrderListFragment extends Fragment {
listModel.setRightDescription(x.getCodJcom() != null ? (x.getDescCommessa() + " (" + x.getCodJcom() + ")") : ""); listModel.setRightDescription(x.getCodJcom() != null ? (x.getDescCommessa() + " (" + x.getCodJcom() + ")") : "");
try { listModel.setProgress(x.getProgress());
int numPedane = x.getNumCnf().divide(x.getColliPedana(), 0, RoundingMode.DOWN).intValue();
int numCnf = x.getNumCnf().remainder(x.getColliPedana()).intValue();
String qtaOrdLabel = "";
if (numPedane > 0) {
qtaOrdLabel += numPedane + "UL x " + x.getColliPedana().stripTrailingZeros().toPlainString() + " COL";
if (numCnf > 0) {
qtaOrdLabel += " + ";
}
}
if (numCnf > 0) {
qtaOrdLabel += numCnf + " COL";
}
// listModel.setRightSubDescription(x.getNumCnf().stripTrailingZeros().toPlainString() + " COL");
listModel.setRightSubDescription(qtaOrdLabel);
/*try {
listModel.setRightSubDescription(UtilityDate.formatDate(x.getDataOrdD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)); listModel.setRightSubDescription(UtilityDate.formatDate(x.getDataOrdD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
} catch (Exception ex) { } catch (Exception ex) {
} }*/
listModel.setOriginalModel(x); listModel.setOriginalModel(x);

View File

@ -11,6 +11,7 @@ public class ProdRientroMerceOrderListModel implements Cloneable {
private String subDescription; private String subDescription;
private String rightDescription; private String rightDescription;
private String rightSubDescription; private String rightSubDescription;
private int progress;
private boolean hidden; private boolean hidden;
@ -105,4 +106,13 @@ public class ProdRientroMerceOrderListModel implements Cloneable {
START, START,
SCHEDULED SCHEDULED
} }
public int getProgress() {
return progress;
}
public ProdRientroMerceOrderListModel setProgress(int progress) {
this.progress = progress;
return this;
}
} }

View File

@ -1,6 +1,7 @@
package it.integry.integrywmsnative.gest.prod_versamento_materiale.dto; package it.integry.integrywmsnative.gest.prod_versamento_materiale.dto;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Date; import java.util.Date;
import it.integry.integrywmsnative.core.di.BindableFloat; import it.integry.integrywmsnative.core.di.BindableFloat;
@ -50,6 +51,7 @@ public class OrdineLavorazioneDTO {
private String dataScad; private String dataScad;
private String partitaMagSuggested; private String partitaMagSuggested;
private String dataScadSuggested; private String dataScadSuggested;
@ -90,6 +92,8 @@ public class OrdineLavorazioneDTO {
private String descCommessa; private String descCommessa;
private String dataConsCommessa;
private BigDecimal prodStd; private BigDecimal prodStd;
private Object mtbColtToEdit; private Object mtbColtToEdit;
@ -135,6 +139,7 @@ public class OrdineLavorazioneDTO {
public String getDataOrd() { public String getDataOrd() {
return dataOrd; return dataOrd;
} }
public Date getDataOrdD() { public Date getDataOrdD() {
return UtilityDate.recognizeDateWithExceptionHandler(dataOrd); return UtilityDate.recognizeDateWithExceptionHandler(dataOrd);
} }
@ -490,4 +495,32 @@ public class OrdineLavorazioneDTO {
public OrdineLavorazioneStatoEnum getStatoEnum() { public OrdineLavorazioneStatoEnum getStatoEnum() {
return OrdineLavorazioneStatoEnum.fromString(getStato()); return OrdineLavorazioneStatoEnum.fromString(getStato());
} }
public String getDataConsCommessa() {
return dataConsCommessa;
}
public Date getDataConsCommessaD() {
return UtilityDate.recognizeDateWithExceptionHandler(getDataConsCommessa());
}
public void setDataConsCommessa(String dataConsCommessa) {
this.dataConsCommessa = dataConsCommessa;
}
public int getProgress() {
int progress = 0;
if (this.getQtaProd().compareTo(BigDecimal.ZERO) > 0) {
if (this.getQtaTrasferite().compareTo(this.getQtaProd()) > 0) {
progress = 100;
} else {
progress = this.getQtaTrasferite().multiply(BigDecimal.valueOf(100)).divide(this.getQtaProd(), 0, RoundingMode.UP).intValue();
}
}
return progress;
}
} }

View File

@ -108,8 +108,9 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi
mBinding.closeActivityFab.close(false); mBinding.closeActivityFab.close(false);
mBinding.scanArtSpinner.setVisibility(articoli.size() > 0 ? View.GONE : View.VISIBLE); mBinding.scanArtSpinner.setVisibility(articoli.size() > 0 ? View.GONE : View.VISIBLE);
if (articoli.isEmpty() && isOrderNewProdsForced()) { if (mOrdine.isOrderNewProducts() && articoli.isEmpty() && isOrderNewProdsForced()) {
this.mViewModel.orderNewProducts(); this.mViewModel.orderNewProducts();
mOrdine.setOrderNewProducts(false);
} }
}); });

View File

@ -220,7 +220,6 @@ public class PVOrdineAcquistoEditViewModel {
.isEmpty() .isEmpty()
) { ) {
ArticoloOrdine dto = articolo.convertToArticoloOrdine(mCurrentOrdine); ArticoloOrdine dto = articolo.convertToArticoloOrdine(mCurrentOrdine);
dto.setQtaOrd(dto.getQtaCnf());
articoliToSave.add(dto); articoliToSave.add(dto);
} }
}); });

View File

@ -75,6 +75,7 @@ public class OrdineAcquistoPvHelper {
Ordine ordine = new Ordine(); Ordine ordine = new Ordine();
ordine.setDataIns(UtilityDate.getDateInstance()); ordine.setDataIns(UtilityDate.getDateInstance());
ordine.setIdGriglia(griglia.getGrigliaId()); ordine.setIdGriglia(griglia.getGrigliaId());
ordine.setOrderNewProducts(true);
mOrdineRepository.insert(ordine, id -> { mOrdineRepository.insert(ordine, id -> {
ordine.setOrdineId(id); ordine.setOrdineId(id);
onSuccess.run(ordine); onSuccess.run(ordine);

View File

@ -336,14 +336,13 @@ public class RettificaGiacenzeFragment extends BaseFragment implements ITitledFr
@Override @Override
public void onError(Exception ex) { public void onError(Exception ex) {
this.onLoadingEnded(); this.onLoadingEnded();
BarcodeManager.enable();
if (ex instanceof InvalidPesoKGException) { if (ex instanceof InvalidPesoKGException) {
UtilityToast.showToast(ex.getMessage()); UtilityToast.showToast(ex.getMessage());
} else { } else {
UtilityExceptions.defaultException(requireActivity(), ex, mCurrentProgress); UtilityExceptions.defaultException(requireActivity(), ex, mCurrentProgress);
} }
BarcodeManager.enable();
} }
@Override @Override
@ -494,7 +493,7 @@ public class RettificaGiacenzeFragment extends BaseFragment implements ITitledFr
@Override @Override
public void onPreDestroy(Runnable onComplete) { public void onPreDestroy(Runnable onComplete) {
BarcodeManager.removeCallback(barcodeScannerIstanceID); // BarcodeManager.removeCallback(barcodeScannerIstanceID);
mViewModel.closeLU(false); mViewModel.closeLU(false);
} }
} }

View File

@ -44,6 +44,7 @@ import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.model.MtbDepoPosizione; import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
import it.integry.integrywmsnative.core.model.MtbPartitaMag; import it.integry.integrywmsnative.core.model.MtbPartitaMag;
import it.integry.integrywmsnative.core.model.MtbTCol;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum; import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO; import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO; import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO;
@ -72,6 +73,7 @@ import it.integry.integrywmsnative.view.dialogs.ask_should_print.DialogAskShould
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleInputHelper; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleInputHelper;
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
import it.integry.integrywmsnative.view.dialogs.choose_batch_lot.DialogChooseBatchLotView; import it.integry.integrywmsnative.view.dialogs.choose_batch_lot.DialogChooseBatchLotView;
import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.InfoAggiuntiveLUDialog;
import it.integry.integrywmsnative.view.dialogs.input_peso_lu.DialogInputPeso; import it.integry.integrywmsnative.view.dialogs.input_peso_lu.DialogInputPeso;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO; import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View; import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
@ -176,8 +178,8 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayHomeAsUpEnabled(true);
ICustomConfiguration customConfiguration = ClassRouter.getInstance(ClassRouter.PATH.CUSTOM_CONFIGURATION); ICustomConfiguration customConfiguration = ClassRouter.getInstance(ClassRouter.PATH.CUSTOM_CONFIGURATION);
mFlagShowCodForn = customConfiguration.getConfig(BaseCustomConfiguration.Keys.FLAG_SHOW_COD_FORN_IN_SPEDIZIONE); mFlagShowCodForn = customConfiguration != null ? customConfiguration.getConfig(BaseCustomConfiguration.Keys.FLAG_SHOW_COD_FORN_IN_SPEDIZIONE) : true;
mDivideByGrpMerc = customConfiguration.getConfig(BaseCustomConfiguration.Keys.FLAG_SPEDIZIONE_GROUP_BY_GRP_MERC); mDivideByGrpMerc = customConfiguration != null ? customConfiguration.getConfig(BaseCustomConfiguration.Keys.FLAG_SPEDIZIONE_GROUP_BY_GRP_MERC) : false;
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
mEnableQuantityReset = sharedPreferences.getBoolean("picking_uscita_enable_quantity_reset", true); mEnableQuantityReset = sharedPreferences.getBoolean("picking_uscita_enable_quantity_reset", true);
@ -938,4 +940,9 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
} }
} }
} }
@Override
public void onInfoAggiuntiveRequired(MtbColt mtbColt, RunnableArgss<String, MtbTCol> onComplete) {
InfoAggiuntiveLUDialog.newInstance(mtbColt, onComplete).show(getSupportFragmentManager(), "InfoAggiuntiveLUDialog");
}
} }

View File

@ -43,6 +43,7 @@ import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.model.MtbDepoPosizione; import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
import it.integry.integrywmsnative.core.model.MtbPartitaMag; import it.integry.integrywmsnative.core.model.MtbPartitaMag;
import it.integry.integrywmsnative.core.model.MtbTCol;
import it.integry.integrywmsnative.core.model.dto.PickDataDTO; import it.integry.integrywmsnative.core.model.dto.PickDataDTO;
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum; import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.report.ReportType; import it.integry.integrywmsnative.core.report.ReportType;
@ -1617,14 +1618,36 @@ public class SpedizioneViewModel {
} else { } else {
if (mDefaultSegnoCol == -1) { if (mDefaultSegnoCol == -1) {
Runnable saveAction = () -> { Runnable saveAction = () -> {
mColliMagazzinoRESTConsumer.updateDataFine( if (SettingsManager.iDB().isFlagAskInfoAggiuntiveSpedizione()) {
mCurrentMtbColt, () -> distribuisciLU((generatedMtbColts) -> { this.mListener.onInfoAggiuntiveRequired(mCurrentMtbColt, (note, mtbTcol) -> {
if (shouldPrint) mCurrentMtbColt.setAnnotazioni(note);
printCollo(generatedMtbColts, () -> this.postCloseOperations(generatedMtbColts)); if (mtbTcol != null) {
else { mCurrentMtbColt.setMtbTCol(mtbTcol);
postCloseOperations(generatedMtbColts); mCurrentMtbColt.setCodTcol(mtbTcol.getCodTcol());
} } else {
}), this::sendError); mCurrentMtbColt.setMtbTCol(null);
mCurrentMtbColt.setCodTcol(null);
}
mColliMagazzinoRESTConsumer.updateDataFine(
mCurrentMtbColt, () -> distribuisciLU((generatedMtbColts) -> {
if (shouldPrint)
printCollo(generatedMtbColts, () -> this.postCloseOperations(generatedMtbColts));
else {
postCloseOperations(generatedMtbColts);
}
}), this::sendError);
});
} else {
mColliMagazzinoRESTConsumer.updateDataFine(
mCurrentMtbColt, () -> distribuisciLU((generatedMtbColts) -> {
if (shouldPrint)
printCollo(generatedMtbColts, () -> this.postCloseOperations(generatedMtbColts));
else {
postCloseOperations(generatedMtbColts);
}
}), this::sendError);
}
}; };
if (mShouldAskPesoLU) { if (mShouldAskPesoLU) {
@ -1992,6 +2015,7 @@ public class SpedizioneViewModel {
boolean canBatchLotBeChanged, boolean canBatchLotBeChanged,
RunnableArgss<PickedQuantityDTO, Boolean> onComplete); RunnableArgss<PickedQuantityDTO, Boolean> onComplete);
void onInfoAggiuntiveRequired(MtbColt currentMtbColt, RunnableArgss<String, MtbTCol> onComplete);
void onLUPositionChangeRequest(RunnableArgss<Boolean, MtbDepoPosizione> onComplete); void onLUPositionChangeRequest(RunnableArgss<Boolean, MtbDepoPosizione> onComplete);

View File

@ -26,9 +26,11 @@ import it.integry.integrywmsnative.MainApplication;
import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.expansion.BaseDialogFragment; import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
import it.integry.integrywmsnative.core.expansion.RunnableArgss; import it.integry.integrywmsnative.core.expansion.RunnableArgss;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.model.MtbTCol; import it.integry.integrywmsnative.core.model.MtbTCol;
import it.integry.integrywmsnative.core.utility.UtilityDialog; import it.integry.integrywmsnative.core.utility.UtilityDialog;
import it.integry.integrywmsnative.core.utility.UtilityObservable; import it.integry.integrywmsnative.core.utility.UtilityObservable;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.DialogNoteAggiuntiveNuovaUlBinding; import it.integry.integrywmsnative.databinding.DialogNoteAggiuntiveNuovaUlBinding;
import it.integry.integrywmsnative.view.dialogs.input_lu_prod.adapter.DialogInputLUProdTipoColloAdapter; import it.integry.integrywmsnative.view.dialogs.input_lu_prod.adapter.DialogInputLUProdTipoColloAdapter;
import it.integry.integrywmsnative.view.dialogs.input_lu_prod.adapter.DialogInputLUProdTipoColloListModel; import it.integry.integrywmsnative.view.dialogs.input_lu_prod.adapter.DialogInputLUProdTipoColloListModel;
@ -40,20 +42,24 @@ public class InfoAggiuntiveLUDialog extends BaseDialogFragment implements InfoAg
private DialogNoteAggiuntiveNuovaUlBinding mBindings; private DialogNoteAggiuntiveNuovaUlBinding mBindings;
private final RunnableArgss<String, MtbTCol> mOnComplete; private final RunnableArgss<String, MtbTCol> mOnComplete;
private MtbColt currentMtbColt;
private DialogInputLUProdTipoColloAdapter codTcolArrayAdapter = null; private DialogInputLUProdTipoColloAdapter codTcolArrayAdapter = null;
public ObservableField<String> additionalNotes = new ObservableField<>(); public ObservableField<String> additionalNotes = new ObservableField<>();
public ObservableField<String> selectedMtbTcol = new ObservableField<>(); public ObservableField<String> selectedMtbTcol = new ObservableField<>();
public ObservableField<DialogInputLUProdTipoColloListModel> currentMtbTCol = new ObservableField<>(); public ObservableField<DialogInputLUProdTipoColloListModel> currentMtbTCol = new ObservableField<>();
public static InfoAggiuntiveLUDialog newInstance(@NotNull RunnableArgss<String, MtbTCol> onComplete) { public static InfoAggiuntiveLUDialog newInstance(@NotNull RunnableArgss<String, MtbTCol> onComplete) {
return new InfoAggiuntiveLUDialog(onComplete); return new InfoAggiuntiveLUDialog(null, onComplete);
} }
private InfoAggiuntiveLUDialog(@NotNull RunnableArgss<String, MtbTCol> onComplete) { public static InfoAggiuntiveLUDialog newInstance(MtbColt mtbColt, @NotNull RunnableArgss<String, MtbTCol> onComplete) {
return new InfoAggiuntiveLUDialog(mtbColt, onComplete);
}
private InfoAggiuntiveLUDialog(MtbColt mtbColt, @NotNull RunnableArgss<String, MtbTCol> onComplete) {
super(); super();
this.mOnComplete = onComplete; this.mOnComplete = onComplete;
this.currentMtbColt = mtbColt;
} }
@ -121,9 +127,17 @@ public class InfoAggiuntiveLUDialog extends BaseDialogFragment implements InfoAg
this.mViewModel.getTipiCollo().observe(getViewLifecycleOwner(), tipiCollo -> { this.mViewModel.getTipiCollo().observe(getViewLifecycleOwner(), tipiCollo -> {
codTcolArrayAdapter = new DialogInputLUProdTipoColloAdapter(getActivity(), R.layout.array_adapter_single_item, tipiCollo); codTcolArrayAdapter = new DialogInputLUProdTipoColloAdapter(getActivity(), R.layout.array_adapter_single_item, tipiCollo);
mBindings.filledExposedDropdownCodTcol.setAdapter(codTcolArrayAdapter); mBindings.filledExposedDropdownCodTcol.setAdapter(codTcolArrayAdapter);
if (currentMtbColt != null && !UtilityString.isNullOrEmpty(currentMtbColt.getCodTcol()) && UtilityString.isNullOrEmpty(this.selectedMtbTcol.get())) {
MtbTCol tipoPedana = Stream.of(tipiCollo).filter(x -> x.getCodTcol().equalsIgnoreCase(currentMtbColt.getCodTcol())).findFirstOrElse(null);
if (tipoPedana != null) {
this.selectedMtbTcol.set(tipoPedana.getCodTcol() + " - " + tipoPedana.getDescrizione());
}
}
}); });
this.mBindings.filledExposedDropdownCodTcol.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { this.mBindings.filledExposedDropdownCodTcol.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@ -141,6 +155,9 @@ public class InfoAggiuntiveLUDialog extends BaseDialogFragment implements InfoAg
mBindings.buttonConfirm.setOnClickListener(v -> { mBindings.buttonConfirm.setOnClickListener(v -> {
dismiss(); dismiss();
}); });
}
if (this.currentMtbColt != null) {
this.additionalNotes.set(currentMtbColt.getAnnotazioni());
}
}
} }

View File

@ -11,6 +11,7 @@ import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.WindowManager; import android.view.WindowManager;
import android.widget.AdapterView; import android.widget.AdapterView;
import android.widget.Toast;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
@ -147,7 +148,7 @@ public class DialogInputLUProdView extends BaseDialogFragment implements DialogI
this.init(); this.init();
if(mBluetoothDeviceInterface != null) { if (mBluetoothDeviceInterface != null) {
// Listen to bluetooth events // Listen to bluetooth events
mBluetoothDeviceInterface.setListeners(this::onMessageReceived, this::onMessageSent, x -> this.onError(new Exception(x))); mBluetoothDeviceInterface.setListeners(this::onMessageReceived, this::onMessageSent, x -> this.onError(new Exception(x)));
enabledBluetoothDevice.set(true); enabledBluetoothDevice.set(true);
@ -400,7 +401,11 @@ public class DialogInputLUProdView extends BaseDialogFragment implements DialogI
// Toast.makeText(requireActivity(), "Leggo peso uaglio", Toast.LENGTH_SHORT).show(); // Toast.makeText(requireActivity(), "Leggo peso uaglio", Toast.LENGTH_SHORT).show();
// Let's send a message: // Let's send a message:
mBluetoothDeviceInterface.sendMessage("GW\r"); if (mBluetoothDeviceInterface != null) {
mBluetoothDeviceInterface.sendMessage("GW\r");
} else {
Toast.makeText(requireActivity(), "Nessun dispositivo BLUETOOTH configurato nelle impostazioni.", Toast.LENGTH_SHORT).show();
}
} }
private void onMessageSent(String request) { private void onMessageSent(String request) {
@ -412,8 +417,8 @@ public class DialogInputLUProdView extends BaseDialogFragment implements DialogI
String tmpResp = response.replace(".", ""); String tmpResp = response.replace(".", "");
BigDecimal grossWeight = new BigDecimal(tmpResp.substring(2,7)); BigDecimal grossWeight = new BigDecimal(tmpResp.substring(2, 7));
BigDecimal netWeight = new BigDecimal(tmpResp.substring(8,13)); BigDecimal netWeight = new BigDecimal(tmpResp.substring(8, 13));
mViewModel.setPesoNetto(netWeight); mViewModel.setPesoNetto(netWeight);
mViewModel.setPesoLordo(grossWeight); mViewModel.setPesoLordo(grossWeight);
@ -424,7 +429,7 @@ public class DialogInputLUProdView extends BaseDialogFragment implements DialogI
if (this.mViewModel.validate()) { if (this.mViewModel.validate()) {
this.mOnComplete.run(this.mViewModel.getResult()); this.mOnComplete.run(this.mViewModel.getResult());
if(mBluetoothDeviceInterface != null) if (mBluetoothDeviceInterface != null)
mBluetoothDeviceInterface.setListeners(null, null, null); mBluetoothDeviceInterface.setListeners(null, null, null);
dismiss(); dismiss();

View File

@ -31,6 +31,7 @@ public class DialogInputQuantityV2DTO {
private boolean isDataScadMandatory = false; private boolean isDataScadMandatory = false;
private boolean isNotesAllowed = false; private boolean isNotesAllowed = false;
private boolean isNotesMandatory = false; private boolean isNotesMandatory = false;
private boolean isNumCnfEditable = true;
private boolean isFocusOnStart = true; private boolean isFocusOnStart = true;
private boolean canLUBeClosed; private boolean canLUBeClosed;
private boolean saveOnImeDone = false; private boolean saveOnImeDone = false;
@ -249,6 +250,15 @@ public class DialogInputQuantityV2DTO {
return this; return this;
} }
public boolean isNumCnfEditable() {
return isNumCnfEditable;
}
public DialogInputQuantityV2DTO setNumCnfEditable(boolean numCnfEditable) {
isNumCnfEditable = numCnfEditable;
return this;
}
public RunnableArgsWithReturn<DialogInputQuantityV2ViewModel, String> getSuggestPartitaMag() { public RunnableArgsWithReturn<DialogInputQuantityV2ViewModel, String> getSuggestPartitaMag() {
return suggestPartitaMag; return suggestPartitaMag;
} }

View File

@ -4,6 +4,7 @@ import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.res.ColorStateList; import android.content.res.ColorStateList;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler;
import android.text.Html; import android.text.Html;
import android.text.InputType; import android.text.InputType;
import android.text.SpannableString; import android.text.SpannableString;
@ -43,6 +44,7 @@ import it.integry.integrywmsnative.core.model.MtbAart;
import it.integry.integrywmsnative.core.model.MtbUntMis; import it.integry.integrywmsnative.core.model.MtbUntMis;
import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityFocus;
import it.integry.integrywmsnative.core.utility.UtilityObservable; import it.integry.integrywmsnative.core.utility.UtilityObservable;
import it.integry.integrywmsnative.databinding.DialogInputQuantityV2Binding; import it.integry.integrywmsnative.databinding.DialogInputQuantityV2Binding;
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
@ -81,6 +83,7 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
public ObservableField<Boolean> enabledChangePartitaMag = new ObservableField<>(true); public ObservableField<Boolean> enabledChangePartitaMag = new ObservableField<>(true);
public ObservableField<Boolean> enabledNotes = new ObservableField<>(false); public ObservableField<Boolean> enabledNotes = new ObservableField<>(false);
public ObservableField<Boolean> enabledLUCloseButton = new ObservableField<>(true); public ObservableField<Boolean> enabledLUCloseButton = new ObservableField<>(true);
private Handler mHandler = new Handler();
private Context context; private Context context;
@ -170,7 +173,14 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
} }
this.onLoadingEnded(); this.onLoadingEnded();
if (mDialogInputQuantityV2DTO.isFocusOnStart()) { if (mDialogInputQuantityV2DTO.isFocusOnStart()) {
mBindings.inputNumCnfText.requestFocus(); mHandler.postDelayed(() -> {
if (mDialogInputQuantityV2DTO.isNumCnfEditable()) {
mBindings.inputNumCnfText.requestFocus();
} else {
UtilityFocus.focusTextBox(requireContext(), mBindings.inputQtaTotText);
}
}, 1000);
} }
return mBindings.getRoot(); return mBindings.getRoot();
} }
@ -240,11 +250,7 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
Date minDataScad = calendar.getTime(); Date minDataScad = calendar.getTime();
if (minDataScad.after(value) && value.after(new Date())) { if (minDataScad.after(value) && value.after(new Date())) {
DialogSimpleMessageView DialogSimpleMessageView
.makeWarningDialog(new SpannableString("La data selezionata è precedente alla data di scadenza consigliata per l'articolo scelto ( " + mtbAart.getGgScadPartita() + " giorni) . Continuare?"), null, () -> { .makeWarningDialog(new SpannableString("La data selezionata è precedente alla data di scadenza consigliata per l'articolo scelto ( " + mtbAart.getGgScadPartita() + " giorni) . Continuare?"), null, () -> this.mViewModel.setDataScad(value), () -> this.currentDataScad.set(null))
this.mViewModel.setDataScad(value);
}, () -> {
this.currentDataScad.set(null);
})
.show(requireActivity().getSupportFragmentManager(), "tag"); .show(requireActivity().getSupportFragmentManager(), "tag");
} else { } else {
this.mViewModel.setDataScad(value); this.mViewModel.setDataScad(value);
@ -325,7 +331,7 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
if (!this.enabledQtaTot.get()) { if (!this.enabledQtaTot.get()) {
this.enabledQtaTot.set(true); this.enabledQtaTot.set(true);
} else if (!this.enabledNumCnf.get()) { } else if (!this.enabledNumCnf.get()) {
this.enabledNumCnf.set(true); this.enabledNumCnf.set(this.mDialogInputQuantityV2DTO.isNumCnfEditable());
} }
} }
}); });
@ -334,7 +340,7 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
toggleTextInputLayoutError(textColorsQtaTot, this.mBindings.inputQtaTotLayout, value); toggleTextInputLayoutError(textColorsQtaTot, this.mBindings.inputQtaTotLayout, value);
if (this.mViewModel.mtbAart.get().isFlagQtaCnfFissaBoolean()) { if (this.mViewModel.mtbAart.get().isFlagQtaCnfFissaBoolean()) {
this.enabledNumCnf.set(!value); this.enabledNumCnf.set(this.mDialogInputQuantityV2DTO.isNumCnfEditable() && !value);
} else { } else {
if (value) { if (value) {
if (this.mViewModel.blockedQtaCnf.get()) { if (this.mViewModel.blockedQtaCnf.get()) {
@ -346,7 +352,7 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
if (!this.enabledQtaCnf.get()) { if (!this.enabledQtaCnf.get()) {
this.enabledQtaCnf.set(true); this.enabledQtaCnf.set(true);
} else if (!this.enabledNumCnf.get()) { } else if (!this.enabledNumCnf.get()) {
this.enabledNumCnf.set(true); this.enabledNumCnf.set(this.mDialogInputQuantityV2DTO.isNumCnfEditable());
} }
} }
} }
@ -406,10 +412,10 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
this.enabledLUCloseButton.set(this.mDialogInputQuantityV2DTO.isCanLUBeClosed()); this.enabledLUCloseButton.set(this.mDialogInputQuantityV2DTO.isCanLUBeClosed());
this.currentTaraArticolo.set(this.mViewModel.getMtbAart().getTaraKg()); this.currentTaraArticolo.set(this.mViewModel.getMtbAart().getTaraKg());
if (this.mDialogInputQuantityV2DTO.getMtbAart().isFlagQtaCnfFissaBoolean() && this.mDialogInputQuantityV2DTO.getTotalNumCnfOrd() != null && !this.mDialogInputQuantityV2DTO.getTotalNumCnfOrd().equals(BigDecimal.ZERO) && !(this.mDialogInputQuantityV2DTO.getTotalNumCnfOrd().intValue() == 0)) { if (this.mDialogInputQuantityV2DTO.getMtbAart().isFlagQtaCnfFissaBoolean() && this.mDialogInputQuantityV2DTO.getTotalQtaOrd() != null && !this.mDialogInputQuantityV2DTO.getTotalQtaOrd().equals(BigDecimal.ZERO) && !(this.mDialogInputQuantityV2DTO.getQtaCnfOrd().compareTo(BigDecimal.ZERO) == 0)) {
int numCnftoTake = this.mDialogInputQuantityV2DTO.getTotalQtaOrd().divide(this.mDialogInputQuantityV2DTO.getQtaCnfOrd(), 0, RoundingMode.DOWN).intValue(); int numCnftoTake = this.mDialogInputQuantityV2DTO.getTotalQtaOrd().divide(this.mDialogInputQuantityV2DTO.getQtaCnfOrd(), 0, RoundingMode.DOWN).intValue();
this.currentTextNumCnfToTake.set(numCnftoTake); this.currentTextNumCnfToTake.set(numCnftoTake);
int qtaText = this.mDialogInputQuantityV2DTO.getTotalQtaOrd().intValue() % this.mDialogInputQuantityV2DTO.getQtaCnfOrd().intValue(); int qtaText = this.mDialogInputQuantityV2DTO.getTotalQtaOrd().remainder(this.mDialogInputQuantityV2DTO.getQtaCnfOrd()).intValue();
this.currentTextNumPezziToTake.set(qtaText); this.currentTextNumPezziToTake.set(qtaText);
} else { } else {
this.currentTextNumCnfToTake.set(0); this.currentTextNumCnfToTake.set(0);

View File

@ -0,0 +1,14 @@
package it.integry.integrywmsnative.view.dialogs.printSsccUl;
import dagger.Subcomponent;
@Subcomponent
public interface DialogPrintUlSSCCComponent {
@Subcomponent.Factory
interface Factory {
DialogPrintUlSSCCComponent create();
}
void inject(DialogPrintUlSSCCView dialogPrintUlSSCCView);
}

View File

@ -0,0 +1,9 @@
package it.integry.integrywmsnative.view.dialogs.printSsccUl;
import dagger.Module;
@Module(subcomponents = DialogPrintUlSSCCComponent.class)
public class DialogPrintUlSSCCModule {
}

View File

@ -0,0 +1,110 @@
package it.integry.integrywmsnative.view.dialogs.printSsccUl;
import android.content.Context;
import android.content.DialogInterface;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.RadioGroup;
import androidx.annotation.NonNull;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import it.integry.integrywmsnative.MainApplication;
import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.databinding.DialogPrintUlSsccBinding;
import it.integry.integrywmsnative.view.dialogs.printSsccUl.dto.PrintUlDTO;
public class DialogPrintUlSSCCView extends BaseDialogFragment {
private Context mContext;
private DialogPrintUlSsccBinding mBindings;
private final PrintUlDTO printUlDTO;
private final RunnableArgs<PrintUlDTO> onDialogClose;
public static DialogPrintUlSSCCView newInstance(
PrintUlDTO printUlDTO,
RunnableArgs<PrintUlDTO> onDismiss
) {
return new DialogPrintUlSSCCView(printUlDTO, onDismiss);
}
public DialogPrintUlSSCCView(@NotNull PrintUlDTO printUlDTO, @NotNull RunnableArgs<PrintUlDTO> onDismiss) {
this.printUlDTO = printUlDTO;
this.onDialogClose = onDismiss;
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
this.mContext = getActivity();
mBindings = DialogPrintUlSsccBinding.inflate(inflater, container, false);
MainApplication.appComponent
.dialogPrintUlSSCCComponent()
.create();
mBindings.setView(this);
setCancelable(true);
getDialog().setCanceledOnTouchOutside(true);
getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
return mBindings.getRoot();
}
public void onCheckChange(RadioGroup radioGroup, int id) {
this.printUlDTO.setFlagPrintProductionLabel(id == mBindings.printProductionLabel.getId());
this.printUlDTO.setFlagPrintShipmentLabel(id == mBindings.printShippingLabel.getId());
}
public void onPositiveClick() {
this.dismiss();
}
public void onNegativeClick() {
this.printUlDTO.setFlagPrintProductionLabel(false);
this.printUlDTO.setFlagPrintShipmentLabel(false);
this.dismiss();
}
@Override
public void onDismiss(@NonNull DialogInterface dialog) {
this.onDialogClose.run(this.printUlDTO);
super.onDismiss(dialog);
}
@Override
public void onCancel(@NonNull DialogInterface dialog) {
this.onNegativeClick();
super.onCancel(dialog);
}
@Override
public void onStart() {
if (this.printUlDTO.isFlagPrintShipmentLabel()) {
mBindings.printShippingLabel.setChecked(true);
} else {
mBindings.printProductionLabel.setChecked(true);
}
super.onStart();
}
@Override
public void onError(Exception ex) {
UtilityExceptions.defaultException(this.mContext, ex);
dismiss();
}
}

View File

@ -0,0 +1,36 @@
package it.integry.integrywmsnative.view.dialogs.printSsccUl.dto;
import it.integry.integrywmsnative.core.model.MtbColt;
public class PrintUlDTO {
private boolean flagPrintShipmentLabel = false;
private boolean flagPrintProductionLabel = false;
private MtbColt mtbColt;
public boolean isFlagPrintShipmentLabel() {
return flagPrintShipmentLabel;
}
public PrintUlDTO setFlagPrintShipmentLabel(boolean flagPrintShipmentLabel) {
this.flagPrintShipmentLabel = flagPrintShipmentLabel;
return this;
}
public boolean isFlagPrintProductionLabel() {
return flagPrintProductionLabel;
}
public PrintUlDTO setFlagPrintProductionLabel(boolean flagPrintProductionLabel) {
this.flagPrintProductionLabel = flagPrintProductionLabel;
return this;
}
public MtbColt getMtbColt() {
return mtbColt;
}
public PrintUlDTO setMtbColt(MtbColt mtbColt) {
this.mtbColt = mtbColt;
return this;
}
}

View File

@ -9,6 +9,7 @@
<import type="android.view.View" /> <import type="android.view.View" />
<import type="it.integry.integrywmsnative.core.utility.UtilityDate" /> <import type="it.integry.integrywmsnative.core.utility.UtilityDate" />
<import type="it.integry.integrywmsnative.core.utility.UtilityNumber" /> <import type="it.integry.integrywmsnative.core.utility.UtilityNumber" />
<import type="androidx.core.content.ContextCompat" /> <import type="androidx.core.content.ContextCompat" />
@ -140,6 +141,14 @@
android:textStyle="bold" android:textStyle="bold"
tools:text="Ordine #218" /> tools:text="Ordine #218" />
<com.google.android.material.progressindicator.LinearProgressIndicator
android:id="@+id/order_progress"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:indeterminate="false"
android:max="100"
android:progress="@{view.progress}" />
</androidx.appcompat.widget.LinearLayoutCompat> </androidx.appcompat.widget.LinearLayoutCompat>
@ -184,8 +193,532 @@
</RelativeLayout> </RelativeLayout>
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="2">
<RelativeLayout <androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/cliente_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="center_vertical"
android:layout_margin="8dp"
android:src="@drawable/ic_person_filled_24dp"
android:tint="@color/gray_500" />
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:orientation="vertical">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cliente"
android:textAllCaps="true"
android:textAppearance="@style/AppTheme.NewMaterial.Text.ExtraSmall"
android:textStyle="bold" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{view.currentOrder.descCommessa != null ? view.currentOrder.descCommessa : `-`}"
android:textAppearance="@style/AppTheme.NewMaterial.Text.Small"
android:textColor="@android:color/black"
tools:text="GRUNDHOFER GBMH" />
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="end"
android:orientation="horizontal">
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="end"
android:orientation="vertical">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Data consegna"
android:textAllCaps="true"
android:textAppearance="@style/AppTheme.NewMaterial.Text.ExtraSmall"
android:textStyle="bold" />
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{UtilityDate.formatDate(view.currentOrder.getDataConsCommessaD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)}"
android:textAppearance="@style/AppTheme.NewMaterial.Text.Small"
android:textColor="@android:color/black"
tools:text="01 Gen 2022" />
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="center_vertical"
android:layout_margin="8dp"
android:src="@drawable/ic_truck_black_96"
android:tint="@color/gray_500" />
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp" />
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="2">
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="1">
<TextView
style="@style/TextViewMaterial.Dialog.SupportingText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Ordinato"
android:textStyle="bold"
tools:text="Ordinato" />
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="center_vertical"
android:layout_margin="8dp"
android:src="@drawable/ic_pallet_96px"
android:tint="@color/gray_500" />
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="start"
android:orientation="vertical">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Bancali"
android:textAllCaps="true"
android:textAppearance="@style/AppTheme.NewMaterial.Text.ExtraSmall"
android:textStyle="bold" />
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{UtilityNumber.decimalToString(view.currentOrder.numPedane, 0)}"
android:textAppearance="@style/AppTheme.NewMaterial.Text.Small"
android:textColor="@android:color/black"
tools:text="0" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" UL"
android:textAppearance="@style/AppTheme.NewMaterial.Text.Small"
android:textColor="@android:color/black" />
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="end">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="center_vertical"
android:layout_margin="8dp"
android:src="@drawable/ic_box"
android:tint="@color/gray_500" />
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="start"
android:orientation="vertical">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Colli"
android:textAllCaps="true"
android:textAppearance="@style/AppTheme.NewMaterial.Text.ExtraSmall"
android:textStyle="bold" />
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{UtilityNumber.decimalToString(view.currentOrder.numCnf, 0)}"
android:textAppearance="@style/AppTheme.NewMaterial.Text.Small"
android:textColor="@android:color/black"
tools:text="0" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" COL"
android:textAppearance="@style/AppTheme.NewMaterial.Text.Small"
android:textColor="@android:color/black" />
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="center_vertical"
android:layout_margin="8dp"
android:src="@drawable/ic_weight_kg_96px"
android:tint="@color/gray_500" />
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:visibility="@{view.isOrderColli ? View.GONE :View.VISIBLE}"
android:gravity="start"
android:orientation="vertical">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="KG"
android:text="@{view.currentOrder.untOrd}"
android:textAllCaps="true"
android:textAppearance="@style/AppTheme.NewMaterial.Text.ExtraSmall"
android:textStyle="bold" />
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{UtilityNumber.decimalToString(view.currentOrder.qtaProd, 0)}"
android:textAppearance="@style/AppTheme.NewMaterial.Text.Small"
android:textColor="@android:color/black"
tools:text="0" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:text="@{view.currentOrder.untOrd}"
tools:text="KG"
android:textAppearance="@style/AppTheme.NewMaterial.Text.Small"
android:textColor="@android:color/black" />
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="1">
<TextView
style="@style/TextViewMaterial.Dialog.SupportingText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Prodotto"
android:textStyle="bold"
android:gravity="end"
tools:text="Prodotto" />
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="end"
android:orientation="horizontal">
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="end"
android:orientation="vertical">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Bancali"
android:textAllCaps="true"
android:textAppearance="@style/AppTheme.NewMaterial.Text.ExtraSmall"
android:textStyle="bold" />
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{UtilityNumber.decimalToString(view.sumLUNumber, 0)}"
android:textAppearance="@style/AppTheme.NewMaterial.Text.Small"
android:textColor="@android:color/black"
tools:text="0" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" UL"
android:textAppearance="@style/AppTheme.NewMaterial.Text.Small"
android:textColor="@android:color/black" />
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="center_vertical"
android:layout_margin="8dp"
android:src="@drawable/ic_pallet_96px"
android:tint="@color/gray_500" />
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="end"
android:orientation="horizontal">
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="end"
android:orientation="vertical">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Colli"
android:textAllCaps="true"
android:textAppearance="@style/AppTheme.NewMaterial.Text.ExtraSmall"
android:textStyle="bold" />
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{UtilityNumber.decimalToString(view.sumColliNumber, 0)}"
android:textAppearance="@style/AppTheme.NewMaterial.Text.Small"
android:textColor="@android:color/black"
tools:text="0" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:text="COL"
android:textAppearance="@style/AppTheme.NewMaterial.Text.Small"
android:textColor="@android:color/black" />
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="center_vertical"
android:layout_margin="8dp"
android:src="@drawable/ic_box"
android:tint="@color/gray_500" />
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="end"
android:orientation="horizontal">
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="end"
android:orientation="vertical">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Totale netto (lordo)"
android:textAllCaps="true"
android:textAppearance="@style/AppTheme.NewMaterial.Text.ExtraSmall"
android:textStyle="bold" />
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{UtilityNumber.decimalToString(view.sumNetKG, 0)}"
android:textAppearance="@style/AppTheme.NewMaterial.Text.Small"
android:textColor="@android:color/black"
tools:text="0" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:text="KG"
android:textAppearance="@style/AppTheme.NewMaterial.Text.Small"
android:textColor="@android:color/black" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" ("
android:textAppearance="@style/AppTheme.NewMaterial.Text.Small"
android:textColor="@android:color/black" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{UtilityNumber.decimalToString(view.sumGrossKG, 0)}"
android:textAppearance="@style/AppTheme.NewMaterial.Text.Small"
android:textColor="@android:color/black"
tools:text="0" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" KG)"
android:textAppearance="@style/AppTheme.NewMaterial.Text.Small"
android:textColor="@android:color/black" />
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="center_vertical"
android:layout_margin="8dp"
android:src="@drawable/ic_weight_kg_96px"
android:tint="@color/gray_500" />
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
<!--<RelativeLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
@ -193,9 +726,9 @@
android:id="@+id/provenienza_layout" android:id="@+id/provenienza_layout"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_alignParentStart="true" android:layout_alignParentStart="true"
android:layout_toStartOf="@id/totale_bancali_layout" android:layout_toStartOf="@id/totale_bancali_layout"
android:orientation="horizontal"
android:visibility="@{view.currentOrder.codAnag != null ? View.VISIBLE : View.GONE}"> android:visibility="@{view.currentOrder.codAnag != null ? View.VISIBLE : View.GONE}">
<androidx.appcompat.widget.AppCompatImageView <androidx.appcompat.widget.AppCompatImageView
@ -229,12 +762,12 @@
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="1"
android:text="@{view.currentOrder.ragSocAnag + ` (` + view.currentOrder.codAnag + `)`}" android:text="@{view.currentOrder.ragSocAnag + ` (` + view.currentOrder.codAnag + `)`}"
android:textAppearance="@style/AppTheme.NewMaterial.Text.Small" android:textAppearance="@style/AppTheme.NewMaterial.Text.Small"
android:textColor="@android:color/black" android:textColor="@android:color/black"
android:visibility="@{view.currentOrder.ragSocAnag != null ? View.VISIBLE : View.GONE}" android:visibility="@{view.currentOrder.ragSocAnag != null ? View.VISIBLE : View.GONE}"
android:ellipsize="end"
android:maxLines="1"
tools:text="FRUDIS S.R.L. (F0312)" /> tools:text="FRUDIS S.R.L. (F0312)" />
</androidx.appcompat.widget.LinearLayoutCompat> </androidx.appcompat.widget.LinearLayoutCompat>
@ -597,7 +1130,7 @@
</androidx.appcompat.widget.LinearLayoutCompat> </androidx.appcompat.widget.LinearLayoutCompat>
</RelativeLayout> </RelativeLayout>-->
<androidx.appcompat.widget.LinearLayoutCompat <androidx.appcompat.widget.LinearLayoutCompat

View File

@ -50,7 +50,7 @@
android:src="@drawable/ic_erase_96" android:src="@drawable/ic_erase_96"
android:backgroundTint="@android:color/transparent" android:backgroundTint="@android:color/transparent"
android:onClick="@{() -> view.resetValues()}" android:onClick="@{() -> view.resetValues()}"
android:tint="@android:color/white"/> android:tint="@android:color/white" />
<androidx.appcompat.widget.AppCompatImageButton <androidx.appcompat.widget.AppCompatImageButton
android:id="@+id/read_weight_form_device" android:id="@+id/read_weight_form_device"
@ -329,9 +329,8 @@
style="@style/Button.DangerFull" style="@style/Button.DangerFull"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="4dp" android:layout_marginEnd="8dp"
android:layout_marginEnd="4dp" android:layout_weight="0.5"
android:layout_weight="0.4"
android:onClick="@{() -> view.dismiss()}" android:onClick="@{() -> view.dismiss()}"
android:paddingEnd="3dp" android:paddingEnd="3dp"
android:text="@string/abort" android:text="@string/abort"
@ -345,9 +344,8 @@
style="@style/Button.PrimaryFull" style="@style/Button.PrimaryFull"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="4dp" android:layout_marginStart="8dp"
android:layout_marginEnd="0dp" android:layout_weight="0.5"
android:layout_weight="0.45"
android:onClick="@{() -> view.save()}" android:onClick="@{() -> view.save()}"
android:paddingEnd="3dp" android:paddingEnd="3dp"
android:text="@string/confirm" android:text="@string/confirm"

View File

@ -0,0 +1,121 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<import type="android.view.View" />
<variable
name="view"
type="it.integry.integrywmsnative.view.dialogs.printSsccUl.DialogPrintUlSSCCView" />
</data>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:orientation="vertical"
app:cardBackgroundColor="@android:color/transparent"
app:cardCornerRadius="24dp"
app:cardElevation="0dp">
<androidx.cardview.widget.CardView
android:id="@+id/base"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:orientation="vertical"
app:cardBackgroundColor="@color/light_blue_300"
app:cardCornerRadius="24dp"
app:cardElevation="0dp">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="4dp"
android:background="@drawable/dialog_card_child_bg"
android:padding="24dp">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/title_text"
style="@style/TextViewMaterial.Dialog.HeadlineText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:text="@string/action_close_order" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/description_text"
style="@style/TextViewMaterial"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginBottom="16dp"
android:gravity="left"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/title_text"
android:text="@string/message_print_SSCC_list_on_close_order" />
<RadioGroup
android:id="@+id/radioGroup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onCheckedChanged="@{view::onCheckChange}"
android:layout_marginTop="8dp"
app:layout_constraintTop_toBottomOf="@id/description_text">
<RadioButton
android:id="@+id/print_shipping_label"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/action_print_shipping_SSCC" />
<RadioButton
android:id="@+id/print_production_label"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/action_print_production_SSCC" />
</RadioGroup>
<com.google.android.material.button.MaterialButton
android:id="@+id/buttonPositive"
style="?attr/materialButtonOutlinedStyle"
android:layout_marginTop="12dp"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:onClick="@{() -> view.onPositiveClick()}"
android:text="@string/confirm"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/radioGroup" />
<com.google.android.material.button.MaterialButton
android:id="@+id/buttonNegative"
style="@style/Button.DangerOutline"
android:layout_marginTop="12dp"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:onClick="@{() -> view.onNegativeClick()}"
android:text="@string/abort"
android:layout_marginEnd="12dp"
android:layout_marginStart="12dp"
app:layout_constraintTop_toBottomOf="@id/radioGroup"
app:layout_constraintEnd_toStartOf="@id/buttonPositive"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView>
</androidx.cardview.widget.CardView>
</layout>

View File

@ -65,9 +65,9 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center" android:gravity="center"
android:paddingLeft="6dp" android:paddingLeft="6dp"
android:paddingTop="2dp" android:paddingTop="0dp"
android:paddingRight="6dp" android:paddingRight="6dp"
android:paddingBottom="2dp" android:paddingBottom="0dp"
android:text="@{mtbColt.mtbColr.get(0).numCnf.intValue() + ` col`}" android:text="@{mtbColt.mtbColr.get(0).numCnf.intValue() + ` col`}"
android:textStyle="bold" android:textStyle="bold"
tools:text="45 col" /> tools:text="45 col" />

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<layout xmlns:app="http://schemas.android.com/apk/res-auto"> <layout>
<data> <data>
@ -41,27 +41,13 @@
android:layout_toEndOf="@id/ordine_state_icon" android:layout_toEndOf="@id/ordine_state_icon"
android:orientation="vertical"> android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/pre_first_row"
style="@style/AppTheme.NewMaterial.Text.Small"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
tools:text="Cons 07 nov 2018" />
</RelativeLayout>
<RelativeLayout <RelativeLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center_vertical"> android:gravity="center_vertical">
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/right_descrizione" android:id="@+id/pre_first_row"
style="@style/AppTheme.NewMaterial.Text.Small" style="@style/AppTheme.NewMaterial.Text.Small"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -70,7 +56,7 @@
android:gravity="center_vertical" android:gravity="center_vertical"
android:maxLines="1" android:maxLines="1"
android:textColor="#000" android:textColor="#000"
tools:text="EUROGROUP ITALIA SRL" /> tools:text="Cons 07 nov 2018" />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/descrizione" android:id="@+id/descrizione"
@ -85,28 +71,40 @@
tools:text="N° 39" /> tools:text="N° 39" />
</RelativeLayout> </RelativeLayout>
<androidx.appcompat.widget.AppCompatTextView
<RelativeLayout android:id="@+id/right_descrizione"
style="@style/AppTheme.NewMaterial.Text.Small"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content"
android:layout_marginTop="8dp"
tools:text="CLIENTE (COMMESSA)" />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/right_sub_descrizione" android:id="@+id/sub_descrizione"
style="@style/AppTheme.NewMaterial.Text.Small" style="@style/AppTheme.NewMaterial.Text.Small"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentEnd="true" android:layout_marginTop="4dp"
tools:text="Cod Jcom" /> tools:text="descrizione estesa articolo" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/right_sub_descrizione"
style="@style/AppTheme.NewMaterial.Text.Small"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:layout_alignParentEnd="true"
tools:text="2 UL x 10 COL" />
<com.google.android.material.progressindicator.LinearProgressIndicator
android:id="@+id/order_progress"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:indeterminate="false"
android:layout_marginTop="4dp"
android:max="100"
android:progress="0" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/sub_descrizione"
style="@style/AppTheme.NewMaterial.Text.Small"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toStartOf="@id/right_sub_descrizione"
android:paddingEnd="6dp"
tools:text="TextView" />
</RelativeLayout>
</androidx.appcompat.widget.LinearLayoutCompat> </androidx.appcompat.widget.LinearLayoutCompat>

View File

@ -1,8 +1,7 @@
<layout xmlns:app="http://schemas.android.com/apk/res-auto"> <layout xmlns:app="http://schemas.android.com/apk/res-auto">
<androidx.cardview.widget.CardView <androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -24,15 +23,15 @@
<TextView <TextView
android:id="@+id/group_title" android:id="@+id/group_title"
style="@style/AppTheme.NewMaterial.Text.ListDivider"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
style="@style/AppTheme.NewMaterial.Text.ListDivider"
android:textAllCaps="true"
android:ellipsize="end" android:ellipsize="end"
android:singleLine="true" android:singleLine="true"
android:textStyle="bold" android:textAllCaps="true"
android:textColor="@android:color/black" android:textColor="@android:color/black"
tools:text="NOME GRUPPO"/> android:textStyle="bold"
tools:text="NOME GRUPPO" />
</RelativeLayout> </RelativeLayout>
</androidx.cardview.widget.CardView> </androidx.cardview.widget.CardView>

View File

@ -409,4 +409,6 @@
<string name="line_details">Dettaglio linea</string> <string name="line_details">Dettaglio linea</string>
<string name="materiali_versati">Materiali versati</string> <string name="materiali_versati">Materiali versati</string>
<string name="scan_lu_to_recover">Scansiona il codice a barre della <b>UL</b> da recuperare</string> <string name="scan_lu_to_recover">Scansiona il codice a barre della <b>UL</b> da recuperare</string>
<string name="action_print_shipping_SSCC">Stampa etichetta spedizione</string>
<string name="action_print_production_SSCC">Stampa etichetta lavorazione</string>
</resources> </resources>

View File

@ -415,4 +415,6 @@
<string name="line_details">Line details</string> <string name="line_details">Line details</string>
<string name="materiali_versati">Deposited products</string> <string name="materiali_versati">Deposited products</string>
<string name="scan_lu_to_recover">Please scan the <b>LU barcode</b> to recover</string> <string name="scan_lu_to_recover">Please scan the <b>LU barcode</b> to recover</string>
<string name="action_print_shipping_SSCC">Print shipping label</string>
<string name="action_print_production_SSCC">Print production label</string>
</resources> </resources>