Finish v1.27.3(290)
This commit is contained in:
commit
d165174345
@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services'
|
|||||||
|
|
||||||
android {
|
android {
|
||||||
|
|
||||||
def appVersionCode = 282
|
def appVersionCode = 290
|
||||||
def appVersionName = '1.25.5'
|
def appVersionName = '1.27.3'
|
||||||
|
|
||||||
signingConfigs {
|
signingConfigs {
|
||||||
release {
|
release {
|
||||||
|
|||||||
@ -45,6 +45,8 @@ import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.ProdFabbisogn
|
|||||||
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.ProdFabbisognoLineeProdModule;
|
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.ProdFabbisognoLineeProdModule;
|
||||||
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dialog_ask_mag_prossimita.DialogAskMagazzinoProssimitaComponent;
|
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dialog_ask_mag_prossimita.DialogAskMagazzinoProssimitaComponent;
|
||||||
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dialog_ask_mag_prossimita.DialogAskMagazzinoProssimitaModule;
|
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dialog_ask_mag_prossimita.DialogAskMagazzinoProssimitaModule;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_linee_produzione.ProdLineeProduzioneComponent;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_linee_produzione.ProdLineeProduzioneModule;
|
||||||
import it.integry.integrywmsnative.gest.prod_recupero_materiale.ProdRecuperoMaterialeComponent;
|
import it.integry.integrywmsnative.gest.prod_recupero_materiale.ProdRecuperoMaterialeComponent;
|
||||||
import it.integry.integrywmsnative.gest.prod_recupero_materiale.ProdRecuperoMaterialeModule;
|
import it.integry.integrywmsnative.gest.prod_recupero_materiale.ProdRecuperoMaterialeModule;
|
||||||
import it.integry.integrywmsnative.gest.prod_rientro_merce.ProdRientroMerceComponent;
|
import it.integry.integrywmsnative.gest.prod_rientro_merce.ProdRientroMerceComponent;
|
||||||
@ -61,6 +63,8 @@ import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeComp
|
|||||||
import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeModule;
|
import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeModule;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.SpedizioneComponent;
|
import it.integry.integrywmsnative.gest.spedizione.SpedizioneComponent;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.SpedizioneModule;
|
import it.integry.integrywmsnative.gest.spedizione.SpedizioneModule;
|
||||||
|
import it.integry.integrywmsnative.gest.spedizione.dialogs.print_sscc_list.DialogPrintOrderSSCCListComponent;
|
||||||
|
import it.integry.integrywmsnative.gest.spedizione.dialogs.print_sscc_list.DialogPrintOrderSSCCListModule;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.prod_fabbisogno_linee_prod.DialogRowInfoProdFabbisognoLineeProdComponent;
|
import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.prod_fabbisogno_linee_prod.DialogRowInfoProdFabbisognoLineeProdComponent;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.prod_fabbisogno_linee_prod.DialogRowInfoProdFabbisognoLineeProdModule;
|
import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.prod_fabbisogno_linee_prod.DialogRowInfoProdFabbisognoLineeProdModule;
|
||||||
import it.integry.integrywmsnative.gest.ultime_consegne_cliente.UltimeConsegneClienteComponent;
|
import it.integry.integrywmsnative.gest.ultime_consegne_cliente.UltimeConsegneClienteComponent;
|
||||||
@ -128,7 +132,9 @@ import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCr
|
|||||||
DocInterniEditFormModule.class,
|
DocInterniEditFormModule.class,
|
||||||
DialogSelectDocRowsModule.class,
|
DialogSelectDocRowsModule.class,
|
||||||
DialogAskClienteModule.class,
|
DialogAskClienteModule.class,
|
||||||
DialogEditArticoloModule.class
|
DialogEditArticoloModule.class,
|
||||||
|
DialogPrintOrderSSCCListModule.class,
|
||||||
|
ProdLineeProduzioneModule.class
|
||||||
})
|
})
|
||||||
public interface MainApplicationComponent {
|
public interface MainApplicationComponent {
|
||||||
|
|
||||||
@ -216,6 +222,10 @@ public interface MainApplicationComponent {
|
|||||||
|
|
||||||
DialogEditArticoloComponent.Factory dialogEditArticoloComponent();
|
DialogEditArticoloComponent.Factory dialogEditArticoloComponent();
|
||||||
|
|
||||||
|
DialogPrintOrderSSCCListComponent.Factory dialogPrintOrderSSCCListComponent();
|
||||||
|
|
||||||
|
ProdLineeProduzioneComponent.Factory prodLineeProduzioneComponent();
|
||||||
|
|
||||||
void inject(MainApplication mainApplication);
|
void inject(MainApplication mainApplication);
|
||||||
|
|
||||||
void inject(AppContext mainApplication);
|
void inject(AppContext mainApplication);
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import it.integry.integrywmsnative.gest.ordini_uscita_elenco.OrdiniUscitaElencoF
|
|||||||
import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoFragment;
|
import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoFragment;
|
||||||
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.ProdOrdineProduzioneElencoFragment;
|
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.ProdOrdineProduzioneElencoFragment;
|
||||||
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.ProdFabbisognoLineeProdFragment;
|
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.ProdFabbisognoLineeProdFragment;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_linee_produzione.ProdLineeProduzioneFragment;
|
||||||
import it.integry.integrywmsnative.gest.prod_recupero_materiale.ProdRecuperoMaterialeFragment;
|
import it.integry.integrywmsnative.gest.prod_recupero_materiale.ProdRecuperoMaterialeFragment;
|
||||||
import it.integry.integrywmsnative.gest.prod_rientro_merce.ProdRientroMerceFragment;
|
import it.integry.integrywmsnative.gest.prod_rientro_merce.ProdRientroMerceFragment;
|
||||||
import it.integry.integrywmsnative.gest.prod_versamento_materiale.ProdVersamentoMaterialeFragment;
|
import it.integry.integrywmsnative.gest.prod_versamento_materiale.ProdVersamentoMaterialeFragment;
|
||||||
@ -133,6 +134,14 @@ public class MenuConfiguration extends BaseMenuConfiguration {
|
|||||||
.setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_prod_accettazione_produzione)
|
.setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_prod_accettazione_produzione)
|
||||||
.setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_external)
|
.setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_external)
|
||||||
.setFragmentFactory(ProdRientroMerceFragment::newInstance))
|
.setFragmentFactory(ProdRientroMerceFragment::newInstance))
|
||||||
|
|
||||||
|
.addItem(new MenuItem()
|
||||||
|
.setID(it.integry.integrywmsnative.R.id.nav_prod_linee)
|
||||||
|
.setCodMenu("MG061")
|
||||||
|
.setTitleText(it.integry.integrywmsnative.R.string.nav_prod_linee_title)
|
||||||
|
.setTitleIcon(R.drawable.ic_production_line)
|
||||||
|
.setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_production_line)
|
||||||
|
.setFragmentFactory(ProdLineeProduzioneFragment::newInstance))
|
||||||
).addGroup(
|
).addGroup(
|
||||||
new MenuGroup()
|
new MenuGroup()
|
||||||
.setGroupText(R.string.internal_handling)
|
.setGroupText(R.string.internal_handling)
|
||||||
|
|||||||
@ -8,7 +8,7 @@ import java.util.UUID;
|
|||||||
|
|
||||||
public class DataCache {
|
public class DataCache {
|
||||||
|
|
||||||
private static List<DataCacheDTO> dataCacheList = new ArrayList<>();
|
private static final List<DataCacheDTO> dataCacheList = new ArrayList<>();
|
||||||
|
|
||||||
|
|
||||||
public static String addItem(Object item) {
|
public static String addItem(Object item) {
|
||||||
|
|||||||
@ -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 = 8, exportSchema = false)
|
@Database(entities = {ArticoloGriglia.class, Griglia.class, Ordine.class, ArticoloOrdine.class, SqlMtbColt.class, SqlMtbColr.class}, version = 9, exportSchema = false)
|
||||||
@TypeConverters({
|
@TypeConverters({
|
||||||
DateConverter.class,
|
DateConverter.class,
|
||||||
BigDecimalConverter.class
|
BigDecimalConverter.class
|
||||||
|
|||||||
@ -6,7 +6,10 @@ import androidx.room.ForeignKey;
|
|||||||
import androidx.room.Index;
|
import androidx.room.Index;
|
||||||
import androidx.room.PrimaryKey;
|
import androidx.room.PrimaryKey;
|
||||||
|
|
||||||
|
import org.json.JSONObject;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
|
|
||||||
@ -202,6 +205,14 @@ public class ArticoloGriglia {
|
|||||||
this.newNoPromo = newNoPromo;
|
this.newNoPromo = newNoPromo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String generateSystemNote() {
|
||||||
|
HashMap<String, String> pairs = new HashMap<>();
|
||||||
|
pairs.put("qta_proposta", String.valueOf(qtaProposta));
|
||||||
|
pairs.put("giacenza", String.valueOf(giacenza));
|
||||||
|
|
||||||
|
return new JSONObject(pairs).toString();
|
||||||
|
}
|
||||||
|
|
||||||
public ArticoloOrdine convertToArticoloOrdine(Ordine ordine) {
|
public ArticoloOrdine convertToArticoloOrdine(Ordine ordine) {
|
||||||
ArticoloOrdine articolo = new ArticoloOrdine();
|
ArticoloOrdine articolo = new ArticoloOrdine();
|
||||||
|
|
||||||
@ -222,6 +233,7 @@ public class ArticoloGriglia {
|
|||||||
articolo.setQtaPrevistaVendita(BigDecimal.valueOf(this.getQtaPrevistaVendita()));
|
articolo.setQtaPrevistaVendita(BigDecimal.valueOf(this.getQtaPrevistaVendita()));
|
||||||
articolo.setQtaProposta(BigDecimal.valueOf(this.getQtaProposta()));
|
articolo.setQtaProposta(BigDecimal.valueOf(this.getQtaProposta()));
|
||||||
articolo.setNewNoPromo(this.isNewNoPromo());
|
articolo.setNewNoPromo(this.isNewNoPromo());
|
||||||
|
articolo.setSystemNote(generateSystemNote());
|
||||||
|
|
||||||
articolo.setQtaOrd(0);
|
articolo.setQtaOrd(0);
|
||||||
|
|
||||||
|
|||||||
@ -70,6 +70,9 @@ public class ArticoloOrdine {
|
|||||||
@ColumnInfo(name = "new_no_promo")
|
@ColumnInfo(name = "new_no_promo")
|
||||||
private boolean newNoPromo;
|
private boolean newNoPromo;
|
||||||
|
|
||||||
|
@ColumnInfo(name = "system_note")
|
||||||
|
private String systemNote;
|
||||||
|
|
||||||
@Ignore
|
@Ignore
|
||||||
private int ggScadenza = 0;
|
private int ggScadenza = 0;
|
||||||
|
|
||||||
@ -266,4 +269,12 @@ public class ArticoloOrdine {
|
|||||||
this.bgTint = bgTint;
|
this.bgTint = bgTint;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getSystemNote() {
|
||||||
|
return systemNote;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSystemNote(String systemNote) {
|
||||||
|
this.systemNote = systemNote;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,12 @@
|
|||||||
|
package it.integry.integrywmsnative.core.di.binders;
|
||||||
|
|
||||||
|
import androidx.appcompat.widget.AppCompatImageView;
|
||||||
|
import androidx.databinding.BindingAdapter;
|
||||||
|
|
||||||
|
public class ImageViewBinders {
|
||||||
|
@BindingAdapter("tint")
|
||||||
|
public static void bindImageViewTint(final AppCompatImageView view, final int color) {
|
||||||
|
view.setColorFilter(color, android.graphics.PorterDuff.Mode.MULTIPLY);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,40 @@
|
|||||||
|
package it.integry.integrywmsnative.core.report;
|
||||||
|
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
|
public enum ReportType {
|
||||||
|
|
||||||
|
@SerializedName("0")
|
||||||
|
ETICHETTA_SSCC_ACCETTAZIONE(0),
|
||||||
|
@SerializedName("1")
|
||||||
|
ETICHETTA_SSCC_LAVORAZIONE(1),
|
||||||
|
@SerializedName("2")
|
||||||
|
ETICHETTA_SSCC_SPEDIZIONE(2),
|
||||||
|
@SerializedName("3")
|
||||||
|
WMS_SPEDIZIONE_ETICHETTE_SSCC_ORD(3),
|
||||||
|
@SerializedName("4")
|
||||||
|
WMS_SPEDIZIONE_PACKING_LIST_ORD(4),
|
||||||
|
@SerializedName("5")
|
||||||
|
STAMPA_LISTINI_VENDITA(5);
|
||||||
|
|
||||||
|
private final int value;
|
||||||
|
|
||||||
|
ReportType(int value) {
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ReportType from(Object value) {
|
||||||
|
int castValue = (int) value;
|
||||||
|
for (ReportType b : ReportType.values()) {
|
||||||
|
if (b.value == castValue)
|
||||||
|
return b;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public int getValue() {
|
||||||
|
return this.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -6,11 +6,11 @@ import java.util.List;
|
|||||||
|
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.model.StbGestSetup;
|
import it.integry.integrywmsnative.core.model.StbGestSetup;
|
||||||
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
||||||
import it.integry.integrywmsnative.core.rest.model.GestSetupDTO;
|
import it.integry.integrywmsnative.core.rest.model.GestSetupDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityLogger;
|
import it.integry.integrywmsnative.core.utility.UtilityLogger;
|
||||||
import retrofit2.Call;
|
import retrofit2.Call;
|
||||||
import retrofit2.Callback;
|
import retrofit2.Callback;
|
||||||
@ -35,18 +35,18 @@ public class GestSetupRESTConsumer extends _BaseRESTConsumer {
|
|||||||
public void onFailure(Call<ServiceRESTResponse<GestSetupDTO>> call, Throwable t) {
|
public void onFailure(Call<ServiceRESTResponse<GestSetupDTO>> call, Throwable t) {
|
||||||
Log.e("GestSetup", t.toString());
|
Log.e("GestSetup", t.toString());
|
||||||
// UtilityLogger.errorMe(new Exception(t));
|
// UtilityLogger.errorMe(new Exception(t));
|
||||||
if(onFailed != null) onFailed.run(new Exception(t));
|
if (onFailed != null) onFailed.run(new Exception(t));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void getBooleanValue(String gestName, String sectionName, String keySection, RunnableArgs<Boolean> onComplete, RunnableArgs<Exception> onFailed) {
|
public static void getBooleanValue(String gestName, String sectionName, String keySection, RunnableArgs<Boolean> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
getValueStatic(gestName, sectionName, keySection, value -> {
|
getValueStatic(gestName, sectionName, keySection, value -> {
|
||||||
if(value != null){
|
if (value != null) {
|
||||||
onComplete.run("S".equalsIgnoreCase(value.value));
|
onComplete.run("S".equalsIgnoreCase(value.value));
|
||||||
} else onComplete.run(false);
|
} else onComplete.run(false);
|
||||||
}, ex -> {
|
}, ex -> {
|
||||||
if(onFailed != null) onFailed.run(ex);
|
if (onFailed != null) onFailed.run(ex);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -62,25 +62,25 @@ public class GestSetupRESTConsumer extends _BaseRESTConsumer {
|
|||||||
public void onFailure(Call<ServiceRESTResponse<GestSetupDTO>> call, Throwable t) {
|
public void onFailure(Call<ServiceRESTResponse<GestSetupDTO>> call, Throwable t) {
|
||||||
Log.e("PrintCollo", t.toString());
|
Log.e("PrintCollo", t.toString());
|
||||||
UtilityLogger.errorMe(new Exception(t));
|
UtilityLogger.errorMe(new Exception(t));
|
||||||
if(onFailed != null) onFailed.run(new Exception(t));
|
if (onFailed != null) onFailed.run(new Exception(t));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void getBooleanValue(String gestName, String sectionName, String keySection, String codMdep, RunnableArgs<Boolean> onComplete, RunnableArgs<Exception> onFailed) {
|
public static void getBooleanValue(String gestName, String sectionName, String keySection, String codMdep, RunnableArgs<Boolean> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
getValueStatic(gestName, sectionName, keySection, codMdep, value -> {
|
getValueStatic(gestName, sectionName, keySection, codMdep, value -> {
|
||||||
if(value != null){
|
if (value != null) {
|
||||||
onComplete.run("S".equalsIgnoreCase(value.value));
|
onComplete.run("S".equalsIgnoreCase(value.value));
|
||||||
} else onComplete.run(false);
|
} else onComplete.run(false);
|
||||||
}, ex -> {
|
}, ex -> {
|
||||||
if(onFailed != null) onFailed.run(ex);
|
if (onFailed != null) onFailed.run(ex);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static void getValues(List<StbGestSetup> stbGestSetupList, RunnableArgs<List<StbGestSetup>> onComplete, RunnableArgs<Exception> onFailed) {
|
public static void getValues(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<ServiceRESTResponse<List<StbGestSetup>>>() {
|
service.getGestSetupValues(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);
|
||||||
@ -89,7 +89,7 @@ public class GestSetupRESTConsumer extends _BaseRESTConsumer {
|
|||||||
@Override
|
@Override
|
||||||
public void onFailure(Call<ServiceRESTResponse<List<StbGestSetup>>> call, Throwable t) {
|
public void onFailure(Call<ServiceRESTResponse<List<StbGestSetup>>> call, Throwable t) {
|
||||||
UtilityLogger.errorMe(new Exception(t));
|
UtilityLogger.errorMe(new Exception(t));
|
||||||
if(onFailed != null) onFailed.run(new Exception(t));
|
if (onFailed != null) onFailed.run(new Exception(t));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@ -56,7 +56,7 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer {
|
|||||||
.groupBy(ArticoloDTO::getCodMart)
|
.groupBy(ArticoloDTO::getCodMart)
|
||||||
.forEach(entry -> {
|
.forEach(entry -> {
|
||||||
|
|
||||||
if(entry.getValue().size() == 1) {
|
if (entry.getValue().size() == 1) {
|
||||||
listaArticoli.add(entry.getValue().get(0));
|
listaArticoli.add(entry.getValue().get(0));
|
||||||
} else {
|
} else {
|
||||||
for (ArticoloDTO articolo : entry.getValue()) {
|
for (ArticoloDTO articolo : entry.getValue()) {
|
||||||
@ -93,7 +93,7 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer {
|
|||||||
int i = 0;
|
int i = 0;
|
||||||
for (ArticoloOrdine art : articoli) {
|
for (ArticoloOrdine art : articoli) {
|
||||||
i++;
|
i++;
|
||||||
artRows.add(convertArtToDTO(art,i));
|
artRows.add(convertArtToDTO(art, i));
|
||||||
}
|
}
|
||||||
|
|
||||||
ordineDTO.setChiaveGriglia(griglia.getCodAlis());
|
ordineDTO.setChiaveGriglia(griglia.getCodAlis());
|
||||||
@ -109,9 +109,9 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer {
|
|||||||
.enqueue(new Callback<List<ServiceRESTResponse<DtbOrdt>>>() {
|
.enqueue(new Callback<List<ServiceRESTResponse<DtbOrdt>>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onResponse(Call<List<ServiceRESTResponse<DtbOrdt>>> call, Response<List<ServiceRESTResponse<DtbOrdt>>> response) {
|
public void onResponse(Call<List<ServiceRESTResponse<DtbOrdt>>> call, Response<List<ServiceRESTResponse<DtbOrdt>>> response) {
|
||||||
if (response.body() != null && response.body().size() > 0){
|
if (response.body() != null && response.body().size() > 0) {
|
||||||
analyzeListOfAnswers(response, "getArticoliListino", dtoList-> {
|
analyzeListOfAnswers(response, "getArticoliListino", dtoList -> {
|
||||||
if (dtoList.size() > 0){
|
if (dtoList.size() > 0) {
|
||||||
DtbOrdt dto = dtoList.get(0);
|
DtbOrdt dto = dtoList.get(0);
|
||||||
ordine.setTransmitted(true);
|
ordine.setTransmitted(true);
|
||||||
ordine.setTransmissionDate(UtilityDate.getDateInstance());
|
ordine.setTransmissionDate(UtilityDate.getDateInstance());
|
||||||
@ -120,7 +120,7 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer {
|
|||||||
ordine.setCodMdep(dto.getCodMdep());
|
ordine.setCodMdep(dto.getCodMdep());
|
||||||
ordine.setNumOrd(dto.getNumOrd());
|
ordine.setNumOrd(dto.getNumOrd());
|
||||||
onSuccess.run(ordine);
|
onSuccess.run(ordine);
|
||||||
}else{
|
} else {
|
||||||
onFailed.run(new Exception("Nessun ordine generato"));
|
onFailed.run(new Exception("Nessun ordine generato"));
|
||||||
}
|
}
|
||||||
}, onFailed);
|
}, onFailed);
|
||||||
@ -128,7 +128,7 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(Call<List<ServiceRESTResponse<DtbOrdt>>>call, Throwable t) {
|
public void onFailure(Call<List<ServiceRESTResponse<DtbOrdt>>> call, Throwable t) {
|
||||||
Log.e("saveOrdineTerminale_pv", t.toString());
|
Log.e("saveOrdineTerminale_pv", t.toString());
|
||||||
UtilityLogger.errorMe(new Exception(t));
|
UtilityLogger.errorMe(new Exception(t));
|
||||||
onFailed.run(new Exception(t));
|
onFailed.run(new Exception(t));
|
||||||
@ -136,7 +136,6 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer {
|
|||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private ArtDTO convertArtToDTO(ArticoloOrdine art, int rigaOrd) {
|
private ArtDTO convertArtToDTO(ArticoloOrdine art, int rigaOrd) {
|
||||||
@ -147,6 +146,7 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer {
|
|||||||
dto.setDescrizione(art.getDescrizione());
|
dto.setDescrizione(art.getDescrizione());
|
||||||
dto.setDataInsD(art.getDataIns());
|
dto.setDataInsD(art.getDataIns());
|
||||||
dto.setUntMis(art.getUntMis());
|
dto.setUntMis(art.getUntMis());
|
||||||
|
dto.setSystemNote(art.getSystemNote());
|
||||||
dto.setQta(BigDecimal.valueOf(art.getQtaOrd()));
|
dto.setQta(BigDecimal.valueOf(art.getQtaOrd()));
|
||||||
dto.setQtaCnf(BigDecimal.valueOf(art.getQtaCnf()));
|
dto.setQtaCnf(BigDecimal.valueOf(art.getQtaCnf()));
|
||||||
dto.setColli(BigDecimal.ZERO);
|
dto.setColli(BigDecimal.ZERO);
|
||||||
|
|||||||
@ -12,12 +12,15 @@ import javax.inject.Singleton;
|
|||||||
import it.integry.integrywmsnative.core.exception.NoPrintersFoundException;
|
import it.integry.integrywmsnative.core.exception.NoPrintersFoundException;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
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.RESTBuilder;
|
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
||||||
import it.integry.integrywmsnative.core.rest.model.JasperDTO;
|
import it.integry.integrywmsnative.core.rest.model.JasperDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.JasperPairDTO;
|
import it.integry.integrywmsnative.core.rest.model.JasperPairDTO;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.ReportTypeDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityLogger;
|
import it.integry.integrywmsnative.core.utility.UtilityLogger;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
|
import it.integry.integrywmsnative.gest.spedizione.model.PrintOrderCloseDTO;
|
||||||
import retrofit2.Call;
|
import retrofit2.Call;
|
||||||
import retrofit2.Callback;
|
import retrofit2.Callback;
|
||||||
import retrofit2.Response;
|
import retrofit2.Response;
|
||||||
@ -115,4 +118,64 @@ public class PrinterRESTConsumer extends _BaseRESTConsumer {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void printReportType(ReportType reportType, String codMdep, String codAnag, HashMap<String, Object> params, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
|
||||||
|
ReportTypeDTO reportTypeDTO = new ReportTypeDTO();
|
||||||
|
reportTypeDTO.setReportType(reportType);
|
||||||
|
reportTypeDTO.setCodAnag(codAnag);
|
||||||
|
reportTypeDTO.setCodMdep(codMdep);
|
||||||
|
|
||||||
|
Stream.of(params)
|
||||||
|
.forEach(x -> reportTypeDTO.getParams().add(new JasperPairDTO(x.getKey(), x.getValue())));
|
||||||
|
|
||||||
|
PrinterRESTConsumerService printerService = RESTBuilder.getService(PrinterRESTConsumerService.class);
|
||||||
|
printerService
|
||||||
|
.printReportType(reportTypeDTO)
|
||||||
|
.enqueue(new Callback<>() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(Call<ServiceRESTResponse<Object>> call, Response<ServiceRESTResponse<Object>> response) {
|
||||||
|
analyzeAnswer(response, "printReportType", data -> {
|
||||||
|
onComplete.run();
|
||||||
|
}, onFailed);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Call<ServiceRESTResponse<Object>> call, Throwable t) {
|
||||||
|
if (t.getMessage().contains("Printer not found")) {
|
||||||
|
onFailed.run(new NoPrintersFoundException());
|
||||||
|
} else onFailed.run(new Exception(t));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void printReportType(ReportType reportType, HashMap<String, Object> params, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
printReportType(reportType, null, null, params, onComplete, onFailed);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void printReportType(ReportType reportType, String codMdep, HashMap<String, Object> params, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
printReportType(reportType, codMdep, null, params, onComplete, onFailed);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void printClosedOrders(PrintOrderCloseDTO dto, String codMdep, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
|
||||||
|
PrinterRESTConsumerService printerService = RESTBuilder.getService(PrinterRESTConsumerService.class, 240);
|
||||||
|
Call<ServiceRESTResponse<Object>> callable = printerService.printClosedOrders(codMdep, dto);
|
||||||
|
callable.enqueue(new Callback<>() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(Call<ServiceRESTResponse<Object>> call, Response<ServiceRESTResponse<Object>> response) {
|
||||||
|
analyzeAnswer(response, "printCollo", data -> {
|
||||||
|
onComplete.run();
|
||||||
|
}, onFailed);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Call<ServiceRESTResponse<Object>> call, Throwable t) {
|
||||||
|
if (t.getMessage().contains("Printer not found")) {
|
||||||
|
onFailed.run(new NoPrintersFoundException());
|
||||||
|
} else onFailed.run(new Exception(t));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,7 +4,9 @@ import java.util.List;
|
|||||||
|
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
import it.integry.integrywmsnative.core.rest.model.JasperDTO;
|
import it.integry.integrywmsnative.core.rest.model.JasperDTO;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.ReportTypeDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||||
|
import it.integry.integrywmsnative.gest.spedizione.model.PrintOrderCloseDTO;
|
||||||
import retrofit2.Call;
|
import retrofit2.Call;
|
||||||
import retrofit2.http.Body;
|
import retrofit2.http.Body;
|
||||||
import retrofit2.http.POST;
|
import retrofit2.http.POST;
|
||||||
@ -26,9 +28,20 @@ public interface PrinterRESTConsumerService {
|
|||||||
@Body JasperDTO jasperDTO
|
@Body JasperDTO jasperDTO
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@POST("printReportType")
|
||||||
|
Call<ServiceRESTResponse<Object>> printReportType(
|
||||||
|
@Body ReportTypeDTO reportTypeDTO
|
||||||
|
);
|
||||||
|
|
||||||
@POST("wms/printEtichettaSSCC")
|
@POST("wms/printEtichettaSSCC")
|
||||||
Call<ServiceRESTResponse<Object>> printCollo(
|
Call<ServiceRESTResponse<Object>> printCollo(
|
||||||
@Body MtbColt mtbColtToPrint
|
@Body MtbColt mtbColtToPrint
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@POST("wms/printClosedOrders")
|
||||||
|
Call<ServiceRESTResponse<Object>> printClosedOrders(
|
||||||
|
@Query("codMdep") String codMdep,
|
||||||
|
@Body PrintOrderCloseDTO printOrderCloseDTO
|
||||||
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,91 @@
|
|||||||
|
package it.integry.integrywmsnative.core.rest.consumers;
|
||||||
|
|
||||||
|
import com.google.gson.JsonObject;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_linee_produzione.dto.ProdLineStatusDTO;
|
||||||
|
import retrofit2.Call;
|
||||||
|
import retrofit2.Callback;
|
||||||
|
import retrofit2.Response;
|
||||||
|
|
||||||
|
@Singleton
|
||||||
|
public class ProductionLinesRESTConsumer extends _BaseRESTConsumer {
|
||||||
|
|
||||||
|
public void avviaLineaDiProduzione(String codJfas, Integer hrNum, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
ProductionLinesRESTConsumerService restService = RESTBuilder.getService(ProductionLinesRESTConsumerService.class);
|
||||||
|
Call<ServiceRESTResponse<JsonObject>> callable = restService.avviaLineaDiProduzione(codJfas, hrNum);
|
||||||
|
callable.enqueue(new Callback<>() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(Call<ServiceRESTResponse<JsonObject>> call, Response<ServiceRESTResponse<JsonObject>> response) {
|
||||||
|
analyzeAnswer(response, "avviaLineaDiProduzione", data -> {
|
||||||
|
onComplete.run();
|
||||||
|
}, onFailed);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Call<ServiceRESTResponse<JsonObject>> call, Throwable t) {
|
||||||
|
onFailed.run(new Exception(t));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void arrestaLineaDiProduzione(String codJfas, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
ProductionLinesRESTConsumerService restService = RESTBuilder.getService(ProductionLinesRESTConsumerService.class);
|
||||||
|
Call<ServiceRESTResponse<JsonObject>> callable = restService.arrestaLineaDiProduzione(codJfas);
|
||||||
|
callable.enqueue(new Callback<>() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(Call<ServiceRESTResponse<JsonObject>> call, Response<ServiceRESTResponse<JsonObject>> response) {
|
||||||
|
analyzeAnswer(response, "arrestaLineaDiProduzione", data -> {
|
||||||
|
onComplete.run();
|
||||||
|
}, onFailed);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Call<ServiceRESTResponse<JsonObject>> call, Throwable t) {
|
||||||
|
onFailed.run(new Exception(t));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void avviaProduzioneArticoloSuLinea(String codJfas, String codMart, String partitaMag, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
ProductionLinesRESTConsumerService restService = RESTBuilder.getService(ProductionLinesRESTConsumerService.class, 300);
|
||||||
|
Call<ServiceRESTResponse<JsonObject>> callable = restService.avviaProduzioneArticoloSuLinea(codJfas, codMart, partitaMag);
|
||||||
|
callable.enqueue(new Callback<>() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(Call<ServiceRESTResponse<JsonObject>> call, Response<ServiceRESTResponse<JsonObject>> response) {
|
||||||
|
analyzeAnswer(response, "avviaProduzioneArticoloSuLinea", data -> {
|
||||||
|
onComplete.run();
|
||||||
|
}, onFailed);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Call<ServiceRESTResponse<JsonObject>> call, Throwable t) {
|
||||||
|
onFailed.run(new Exception(t));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void getStatoLinee(String codMdep, RunnableArgs<List<ProdLineStatusDTO>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
ProductionLinesRESTConsumerService restService = RESTBuilder.getService(ProductionLinesRESTConsumerService.class);
|
||||||
|
Call<ServiceRESTResponse<List<ProdLineStatusDTO>>> callable = restService.getStatoLinee(codMdep);
|
||||||
|
callable.enqueue(new Callback<>() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(Call<ServiceRESTResponse<List<ProdLineStatusDTO>>> call, Response<ServiceRESTResponse<List<ProdLineStatusDTO>>> response) {
|
||||||
|
analyzeAnswer(response, "getStatoLinee", onComplete::run, onFailed);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Call<ServiceRESTResponse<List<ProdLineStatusDTO>>> call, Throwable t) {
|
||||||
|
onFailed.run(new Exception(t));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,27 @@
|
|||||||
|
package it.integry.integrywmsnative.core.rest.consumers;
|
||||||
|
|
||||||
|
import com.google.gson.JsonObject;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_linee_produzione.dto.ProdLineStatusDTO;
|
||||||
|
import retrofit2.Call;
|
||||||
|
import retrofit2.http.GET;
|
||||||
|
import retrofit2.http.POST;
|
||||||
|
import retrofit2.http.Query;
|
||||||
|
|
||||||
|
public interface ProductionLinesRESTConsumerService {
|
||||||
|
|
||||||
|
@POST("mes_v2/avviaLineaDiProduzione")
|
||||||
|
Call<ServiceRESTResponse<JsonObject>> avviaLineaDiProduzione(@Query("codJfas") String codJfas, @Query("hrNum") Integer hrNum);
|
||||||
|
|
||||||
|
@POST("mes_v2/arrestaLineaDiProduzione")
|
||||||
|
Call<ServiceRESTResponse<JsonObject>> arrestaLineaDiProduzione(@Query("codJfas") String codJfas);
|
||||||
|
|
||||||
|
@POST("mes_v2/avviaProduzioneArticoloSuLinea")
|
||||||
|
Call<ServiceRESTResponse<JsonObject>> avviaProduzioneArticoloSuLinea(@Query("codJfas") String codJfas, @Query("codMart") String codMart, @Query("partitaMag") String partitaMag);
|
||||||
|
|
||||||
|
@GET("mes_v2/statoLineeProd")
|
||||||
|
Call<ServiceRESTResponse<List<ProdLineStatusDTO>>> getStatoLinee(@Query("codMdep") String codMdep);
|
||||||
|
}
|
||||||
@ -0,0 +1,51 @@
|
|||||||
|
package it.integry.integrywmsnative.core.rest.model;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.report.ReportType;
|
||||||
|
|
||||||
|
public class ReportTypeDTO {
|
||||||
|
|
||||||
|
|
||||||
|
private ReportType reportType;
|
||||||
|
private String codAnag;
|
||||||
|
private String codMdep;
|
||||||
|
private List<JasperPairDTO> params = new ArrayList<>();
|
||||||
|
|
||||||
|
public List<JasperPairDTO> getParams() {
|
||||||
|
return params;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ReportTypeDTO setParams(List<JasperPairDTO> params) {
|
||||||
|
this.params = params;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ReportType getReportType() {
|
||||||
|
return reportType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ReportTypeDTO setReportType(ReportType reportType) {
|
||||||
|
this.reportType = reportType;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodAnag() {
|
||||||
|
return codAnag;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ReportTypeDTO setCodAnag(String codAnag) {
|
||||||
|
this.codAnag = codAnag;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodMdep() {
|
||||||
|
return codMdep;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ReportTypeDTO setCodMdep(String codMdep) {
|
||||||
|
this.codMdep = codMdep;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -42,7 +42,8 @@ public class DBSettingsModel {
|
|||||||
private boolean flagOrdinaArticoliOnScan;
|
private boolean flagOrdinaArticoliOnScan;
|
||||||
private String docInterniCheckFornitore;
|
private String docInterniCheckFornitore;
|
||||||
private String produzioneDefaultCodAnag;
|
private String produzioneDefaultCodAnag;
|
||||||
private String reportNameSpedizionChiudiOrdine;
|
private boolean flagPrintPackingListOnOrderClose;
|
||||||
|
private boolean flagPrintEtichetteOnOrderClose;
|
||||||
private int onNumCnfInputChanged = 1;
|
private int onNumCnfInputChanged = 1;
|
||||||
private boolean flagAccettazioneUseQtaOrd = false;
|
private boolean flagAccettazioneUseQtaOrd = false;
|
||||||
private boolean flagPickLiberoAllowEmptyDest = false;
|
private boolean flagPickLiberoAllowEmptyDest = false;
|
||||||
@ -281,12 +282,21 @@ public class DBSettingsModel {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getReportNameSpedizionChiudiOrdine() {
|
public boolean isFlagPrintPackingListOnOrderClose() {
|
||||||
return reportNameSpedizionChiudiOrdine;
|
return flagPrintPackingListOnOrderClose;
|
||||||
}
|
}
|
||||||
|
|
||||||
public DBSettingsModel setReportNameSpedizionChiudiOrdine(String reportNameSpedizionChiudiOrdine) {
|
public DBSettingsModel setFlagPrintPackingListOnOrderClose(boolean flagPrintPackingListOnOrderClose) {
|
||||||
this.reportNameSpedizionChiudiOrdine = reportNameSpedizionChiudiOrdine;
|
this.flagPrintPackingListOnOrderClose = flagPrintPackingListOnOrderClose;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isFlagPrintEtichetteOnOrderClose() {
|
||||||
|
return flagPrintEtichetteOnOrderClose;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DBSettingsModel setFlagPrintEtichetteOnOrderClose(boolean flagPrintEtichetteOnOrderClose) {
|
||||||
|
this.flagPrintEtichetteOnOrderClose = flagPrintEtichetteOnOrderClose;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -270,10 +270,6 @@ public class SettingsManager {
|
|||||||
.setGestName("PICKING")
|
.setGestName("PICKING")
|
||||||
.setSection("SPEDIZIONE")
|
.setSection("SPEDIZIONE")
|
||||||
.setKeySection("FLAG_CAN_SELECT_MULTIPLE_ORDERS"));
|
.setKeySection("FLAG_CAN_SELECT_MULTIPLE_ORDERS"));
|
||||||
stbGestSetupList.add(new StbGestSetup()
|
|
||||||
.setGestName("PICKING")
|
|
||||||
.setSection("SPEDIZIONE")
|
|
||||||
.setKeySection("REPORT_PACKING_LIST"));
|
|
||||||
stbGestSetupList.add(new StbGestSetup()
|
stbGestSetupList.add(new StbGestSetup()
|
||||||
.setGestName("PICKING")
|
.setGestName("PICKING")
|
||||||
.setSection("SPEDIZIONE")
|
.setSection("SPEDIZIONE")
|
||||||
@ -327,7 +323,6 @@ public class SettingsManager {
|
|||||||
dbSettingsModelIstance.setFlagSpedizioneEnableManualPick(getValueFromList(list, "SPEDIZIONE", "ENABLE_MANUAL_PICK", Boolean.class));
|
dbSettingsModelIstance.setFlagSpedizioneEnableManualPick(getValueFromList(list, "SPEDIZIONE", "ENABLE_MANUAL_PICK", Boolean.class));
|
||||||
dbSettingsModelIstance.setFlagSpedizioneEnableFakeGiacenza(getValueFromList(list, "SPEDIZIONE", "ENABLE_FAKE_GIACENZA", Boolean.class));
|
dbSettingsModelIstance.setFlagSpedizioneEnableFakeGiacenza(getValueFromList(list, "SPEDIZIONE", "ENABLE_FAKE_GIACENZA", Boolean.class));
|
||||||
dbSettingsModelIstance.setFlagSpedizioneCanSelectMultipleOrders(getValueFromList(list, "SPEDIZIONE", "FLAG_CAN_SELECT_MULTIPLE_ORDERS", Boolean.class));
|
dbSettingsModelIstance.setFlagSpedizioneCanSelectMultipleOrders(getValueFromList(list, "SPEDIZIONE", "FLAG_CAN_SELECT_MULTIPLE_ORDERS", Boolean.class));
|
||||||
dbSettingsModelIstance.setReportNameSpedizionChiudiOrdine(getValueFromList(list, "SPEDIZIONE", "REPORT_PACKING_LIST", String.class));
|
|
||||||
dbSettingsModelIstance.setFlagSpedizioneUseQtaOrd(getValueFromList(list, "SPEDIZIONE", "FLAG_USE_QTA_ORD", Boolean.class));
|
dbSettingsModelIstance.setFlagSpedizioneUseQtaOrd(getValueFromList(list, "SPEDIZIONE", "FLAG_USE_QTA_ORD", Boolean.class));
|
||||||
dbSettingsModelIstance.setFlagOrdinaNuoviArticoliInGriglia(getValueFromList(list, "ORDINI_A", "ORDINA_NUOVI_ARTICOLI", Boolean.class));
|
dbSettingsModelIstance.setFlagOrdinaNuoviArticoliInGriglia(getValueFromList(list, "ORDINI_A", "ORDINA_NUOVI_ARTICOLI", Boolean.class));
|
||||||
dbSettingsModelIstance.setDocInterniCheckFornitore(getValueFromList(list, "DOC_INTERNI", "CHECK_FORNITORE", String.class));
|
dbSettingsModelIstance.setDocInterniCheckFornitore(getValueFromList(list, "DOC_INTERNI", "CHECK_FORNITORE", String.class));
|
||||||
@ -344,9 +339,15 @@ public class SettingsManager {
|
|||||||
if (onNumCnfInputChanged != null) {
|
if (onNumCnfInputChanged != null) {
|
||||||
dbSettingsModelIstance.setOnNumCnfInputChanged(onNumCnfInputChanged);
|
dbSettingsModelIstance.setOnNumCnfInputChanged(onNumCnfInputChanged);
|
||||||
}
|
}
|
||||||
|
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
||||||
|
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, (gestSetupDTO) -> {
|
||||||
|
dbSettingsModelIstance.setFlagPrintEtichetteOnOrderClose(value);
|
||||||
if (onComplete != null) onComplete.run();
|
if (onComplete != null) onComplete.run();
|
||||||
}, onFailed);
|
}, onFailed);
|
||||||
|
}, onFailed);
|
||||||
|
}, onFailed);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -32,6 +32,10 @@ public class UtilityBarcode {
|
|||||||
return barcodeScanDTO != null && (barcodeScanDTO.getType() == BarcodeType.CODE128 || barcodeScanDTO.getType() == BarcodeType.EAN128);
|
return barcodeScanDTO != null && (barcodeScanDTO.getType() == BarcodeType.CODE128 || barcodeScanDTO.getType() == BarcodeType.EAN128);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean isEan128(BarcodeScanDTO barcodeScanDTO) {
|
||||||
|
return barcodeScanDTO != null && barcodeScanDTO.getType() == BarcodeType.EAN128;
|
||||||
|
}
|
||||||
|
|
||||||
public static boolean isEtichettaPosizione(BarcodeScanDTO barcodeScanDTO) {
|
public static boolean isEtichettaPosizione(BarcodeScanDTO barcodeScanDTO) {
|
||||||
return isEtichettaPosizione(barcodeScanDTO, true);
|
return isEtichettaPosizione(barcodeScanDTO, true);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -213,7 +213,7 @@ public class PickingLiberoViewModel {
|
|||||||
|
|
||||||
if (posizione != null && posizione.isFlagMonoCollo()) {
|
if (posizione != null && posizione.isFlagMonoCollo()) {
|
||||||
this.executePosizione(posizione, articolo, onComplete);
|
this.executePosizione(posizione, articolo, onComplete);
|
||||||
} else if(mDefaultGestione == GestioneEnum.VENDITA){
|
} else if (mDefaultGestione == GestioneEnum.VENDITA) {
|
||||||
this.dispatchArt(articolo, ean128Model);
|
this.dispatchArt(articolo, ean128Model);
|
||||||
onComplete.run();
|
onComplete.run();
|
||||||
} else {
|
} else {
|
||||||
@ -439,6 +439,7 @@ public class PickingLiberoViewModel {
|
|||||||
mColliMagazzinoRESTConsumer.saveCollo(clonedTestata, value -> {
|
mColliMagazzinoRESTConsumer.saveCollo(clonedTestata, value -> {
|
||||||
for (int i = 0; i < mtbColrObservableField.size(); i++) {
|
for (int i = 0; i < mtbColrObservableField.size(); i++) {
|
||||||
MtbColr initialMtbColr = mtbColrObservableField.get(i);
|
MtbColr initialMtbColr = mtbColrObservableField.get(i);
|
||||||
|
var startIdx = (value.getMtbColr().size() - mtbColrObservableField.size());
|
||||||
|
|
||||||
initialMtbColr
|
initialMtbColr
|
||||||
.setDataCollo(value.getDataColloS())
|
.setDataCollo(value.getDataColloS())
|
||||||
@ -446,7 +447,7 @@ public class PickingLiberoViewModel {
|
|||||||
.setGestione(value.getGestione())
|
.setGestione(value.getGestione())
|
||||||
.setSerCollo(value.getSerCollo());
|
.setSerCollo(value.getSerCollo());
|
||||||
|
|
||||||
initialMtbColr.setRiga(value.getMtbColr().get(i).getRiga());
|
initialMtbColr.setRiga(value.getMtbColr().get(startIdx + i).getRiga());
|
||||||
mCurrentMtbColt.getMtbColr().add(mtbColrObservableField.get(i));
|
mCurrentMtbColt.getMtbColr().add(mtbColrObservableField.get(i));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -626,7 +627,7 @@ public class PickingLiberoViewModel {
|
|||||||
UtilityString.equalsIgnoreCase(x.getCodCol(), mtbColrToUpdate.getCodCol()) &&
|
UtilityString.equalsIgnoreCase(x.getCodCol(), mtbColrToUpdate.getCodCol()) &&
|
||||||
UtilityString.equalsIgnoreCase(x.getCodTagl(), mtbColrToUpdate.getCodTagl()) &&
|
UtilityString.equalsIgnoreCase(x.getCodTagl(), mtbColrToUpdate.getCodTagl()) &&
|
||||||
UtilityString.equalsIgnoreCase(x.getPartitaMag(), mtbColrToUpdate.getPartitaMag()))
|
UtilityString.equalsIgnoreCase(x.getPartitaMag(), mtbColrToUpdate.getPartitaMag()))
|
||||||
.single();
|
.findFirstOrElse(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,14 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.prod_linee_produzione;
|
||||||
|
|
||||||
|
import dagger.Subcomponent;
|
||||||
|
|
||||||
|
@Subcomponent
|
||||||
|
public interface ProdLineeProduzioneComponent {
|
||||||
|
|
||||||
|
@Subcomponent.Factory
|
||||||
|
interface Factory {
|
||||||
|
ProdLineeProduzioneComponent create();
|
||||||
|
}
|
||||||
|
|
||||||
|
void inject(ProdLineeProduzioneFragment prodLineeProduzioneFragment);
|
||||||
|
}
|
||||||
@ -0,0 +1,187 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.prod_linee_produzione;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.text.Html;
|
||||||
|
import android.text.InputType;
|
||||||
|
import android.text.SpannableString;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import androidx.appcompat.widget.AppCompatTextView;
|
||||||
|
import androidx.databinding.DataBindingUtil;
|
||||||
|
import androidx.databinding.ObservableArrayList;
|
||||||
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||||
|
import it.integry.integrywmsnative.MainApplication;
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
|
||||||
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.BaseFragment;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
|
||||||
|
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
|
import it.integry.integrywmsnative.databinding.FragmentLineeProdBinding;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_linee_produzione.dialogs.BottomSheetLineAction;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_linee_produzione.dialogs.DialogStartProduction;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_linee_produzione.dto.ProdLineStatusDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_linee_produzione.ui.LinesListAdapter;
|
||||||
|
import it.integry.integrywmsnative.ui.ElevatedToolbar;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleInputHelper;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
||||||
|
|
||||||
|
public class ProdLineeProduzioneFragment extends BaseFragment implements ITitledFragment, IScrollableFragment, ProdLineeProduzioneViewModel.Listener {
|
||||||
|
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
ProdLineeProduzioneViewModel mViewModel;
|
||||||
|
|
||||||
|
private final ObservableArrayList<ProdLineStatusDTO> mLinesObservableList = new ObservableArrayList<>();
|
||||||
|
private FragmentLineeProdBinding mBinding;
|
||||||
|
private ElevatedToolbar mToolbar;
|
||||||
|
private int barcodeScannerIstanceID = -1;
|
||||||
|
private final RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
|
||||||
|
this.onLoadingStarted();
|
||||||
|
|
||||||
|
this.mViewModel.processBarcodeDTO(data);
|
||||||
|
};
|
||||||
|
|
||||||
|
public static ProdLineeProduzioneFragment newInstance() {
|
||||||
|
return new ProdLineeProduzioneFragment();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
|
Bundle savedInstanceState) {
|
||||||
|
|
||||||
|
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_linee_prod, container, false);
|
||||||
|
MainApplication.appComponent
|
||||||
|
.prodLineeProduzioneComponent()
|
||||||
|
.create()
|
||||||
|
.inject(this);
|
||||||
|
|
||||||
|
mViewModel.setListener(this);
|
||||||
|
mBinding.setLifecycleOwner(this);
|
||||||
|
this.initRecyclerView();
|
||||||
|
this.initBarcodeReader();
|
||||||
|
mViewModel.init();
|
||||||
|
|
||||||
|
return mBinding.getRoot();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initBarcodeReader() {
|
||||||
|
barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
|
||||||
|
.setOnScanSuccessful(onScanSuccessful)
|
||||||
|
.setOnScanFailed(this::onError));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setScrollToolbar(ElevatedToolbar toolbar) {
|
||||||
|
mToolbar = toolbar;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void refreshLineeProd(List<ProdLineStatusDTO> linesList) {
|
||||||
|
this.mLinesObservableList.clear();
|
||||||
|
if (linesList != null) {
|
||||||
|
|
||||||
|
this.mLinesObservableList.addAll(linesList);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initRecyclerView() {
|
||||||
|
this.mViewModel.getProdLinesList().observe(getViewLifecycleOwner(), this::refreshLineeProd);
|
||||||
|
LinesListAdapter prodLinesListAdapter = new LinesListAdapter(this.requireActivity(), this.mLinesObservableList);
|
||||||
|
prodLinesListAdapter.setEmptyView(this.mBinding.linesListEmptyView);
|
||||||
|
this.mBinding.linesMainList.setAdapter(prodLinesListAdapter);
|
||||||
|
this.mBinding.linesMainList.setLayoutManager(new LinearLayoutManager(this.requireActivity()));
|
||||||
|
prodLinesListAdapter.setOnItemClicked(this.mViewModel::onLineSelected);
|
||||||
|
if (mToolbar != null)
|
||||||
|
mToolbar.setRecyclerView(this.mBinding.linesMainList);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void requestResources(ProdLineStatusDTO prodLine) {
|
||||||
|
this.onLoadingEnded();
|
||||||
|
BarcodeManager.disable();
|
||||||
|
requireActivity().runOnUiThread(() -> {
|
||||||
|
|
||||||
|
DialogSimpleInputHelper.makeInputDialog(requireContext(), "Inserisci il numero di risorse da allocare", qta -> {
|
||||||
|
this.onLoadingStarted();
|
||||||
|
try {
|
||||||
|
Integer hrNum = Integer.parseInt(qta);
|
||||||
|
this.mViewModel.startProductionLine(prodLine, hrNum);
|
||||||
|
} catch (NumberFormatException ex) {
|
||||||
|
this.onError(new Exception("Inserire un numero di risorse valido"));
|
||||||
|
}
|
||||||
|
}, BarcodeManager::enable, InputType.TYPE_CLASS_NUMBER).show();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void requestOrderChange(ProdLineStatusDTO prodLine) {
|
||||||
|
this.onLoadingEnded();
|
||||||
|
requireActivity().runOnUiThread(() -> {
|
||||||
|
DialogStartProduction.newInstance((dto) -> {
|
||||||
|
this.mViewModel.checkBarcodeAndStartOrdine(prodLine, dto);
|
||||||
|
}).show(getChildFragmentManager(), "DialogStartProduction");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void requestProductionStop(ProdLineStatusDTO prodLine) {
|
||||||
|
this.onLoadingEnded();
|
||||||
|
BarcodeManager.disable();
|
||||||
|
if (UtilityString.isNullOrEmpty(prodLine.getListaOrd())) {
|
||||||
|
mViewModel.stopProduction(prodLine);
|
||||||
|
} else {
|
||||||
|
this.confirmOrderClose(() -> {
|
||||||
|
mViewModel.stopProduction(prodLine);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void successDialog(String message, Runnable onComplete) {
|
||||||
|
BarcodeManager.disable();
|
||||||
|
requireActivity().runOnUiThread(() -> DialogSimpleMessageView.makeSuccessDialog(getResources().getString(R.string.success),
|
||||||
|
new SpannableString(message), null, onComplete).show(getChildFragmentManager(), "successDialog"));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void selectLine(ProdLineStatusDTO dto) {
|
||||||
|
this.onLoadingEnded();
|
||||||
|
BarcodeManager.disable();
|
||||||
|
if (!dto.isStarted()) {
|
||||||
|
this.requestResources(dto);
|
||||||
|
} else {
|
||||||
|
BottomSheetLineAction.newInstance(dto, this::requestResources, this::requestOrderChange, this::requestProductionStop, BarcodeManager::enable).show(getChildFragmentManager(), "BottomSheetLineAction");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void confirmOrderClose(Runnable onConfirm) {
|
||||||
|
this.onLoadingEnded();
|
||||||
|
requireActivity().runOnUiThread(() -> {
|
||||||
|
DialogSimpleMessageView.makeWarningDialog(
|
||||||
|
Html.fromHtml("Per completare l'operazione è necessario chiudere gli ordini attualmente aperti sulla linea."
|
||||||
|
+ "<br /> <br/>" +
|
||||||
|
"Continuare?"),
|
||||||
|
null,
|
||||||
|
onConfirm,
|
||||||
|
BarcodeManager::enable
|
||||||
|
).show(getChildFragmentManager(), "confirmOrderClose");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreateActionBar(AppCompatTextView titleText, Context context) {
|
||||||
|
titleText.setText(context.getText(R.string.nav_prod_linee_title).toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,25 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.prod_linee_produzione;
|
||||||
|
|
||||||
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
|
import dagger.Module;
|
||||||
|
import dagger.Provides;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.ProductionLinesRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_rientro_merce.ProdRientroMerceComponent;
|
||||||
|
|
||||||
|
@Module(subcomponents = ProdRientroMerceComponent.class)
|
||||||
|
public class ProdLineeProduzioneModule {
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
ProdLineeProduzioneViewModel providesProdRientroMerceViewModel(ProductionLinesRESTConsumer productionLinesRESTConsumer, BarcodeRESTConsumer barcodeRESTConsumer) {
|
||||||
|
return new ProdLineeProduzioneViewModel(productionLinesRESTConsumer, barcodeRESTConsumer);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Singleton
|
||||||
|
ProductionLinesRESTConsumer providesProductionLinesRESTConsumer() {
|
||||||
|
return new ProductionLinesRESTConsumer();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,142 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.prod_linee_produzione;
|
||||||
|
|
||||||
|
import androidx.lifecycle.MutableLiveData;
|
||||||
|
|
||||||
|
import com.annimon.stream.Stream;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||||
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||||
|
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.ProductionLinesRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_linee_produzione.dto.ProdLineStatusDTO;
|
||||||
|
|
||||||
|
public class ProdLineeProduzioneViewModel {
|
||||||
|
|
||||||
|
|
||||||
|
private final ProductionLinesRESTConsumer productionLinesRESTConsumer;
|
||||||
|
private final BarcodeRESTConsumer mBarcodeRESTConsumer;
|
||||||
|
private final MutableLiveData<List<ProdLineStatusDTO>> prodLines = new MutableLiveData<>();
|
||||||
|
|
||||||
|
private Listener mListener;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public ProdLineeProduzioneViewModel(ProductionLinesRESTConsumer productionLinesRESTConsumer, BarcodeRESTConsumer barcodeRESTConsumer) {
|
||||||
|
this.productionLinesRESTConsumer = productionLinesRESTConsumer;
|
||||||
|
this.mBarcodeRESTConsumer = barcodeRESTConsumer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void init() {
|
||||||
|
this.sendOnLoadingStarted();
|
||||||
|
reloadLines();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void reloadLines() {
|
||||||
|
BarcodeManager.disable();
|
||||||
|
sendOnLoadingStarted();
|
||||||
|
this.productionLinesRESTConsumer.getStatoLinee(SettingsManager.i().getUserSession().getDepo().getCodMdep(), lineeProdList -> {
|
||||||
|
this.sendOnLoadingEnded();
|
||||||
|
BarcodeManager.enable();
|
||||||
|
prodLines.postValue(lineeProdList);
|
||||||
|
}, this::sendError);
|
||||||
|
}
|
||||||
|
|
||||||
|
public MutableLiveData<List<ProdLineStatusDTO>> getProdLinesList() {
|
||||||
|
return prodLines;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setListener(Listener listener) {
|
||||||
|
this.mListener = listener;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO) {
|
||||||
|
String codJfas = barcodeScanDTO.getStringValue();
|
||||||
|
|
||||||
|
ProdLineStatusDTO prodLine = prodLines.getValue() != null ? Stream.of(prodLines.getValue()).filter(x -> x.getCodJfas().equalsIgnoreCase(codJfas)).findFirstOrElse(null) : null;
|
||||||
|
if (prodLine != null) {
|
||||||
|
this.onLineSelected(prodLine);
|
||||||
|
} else {
|
||||||
|
this.sendError(new Exception("Linea di produzione " + codJfas + " non trovata"));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void sendOnLoadingStarted() {
|
||||||
|
if (this.mListener != null) mListener.onLoadingStarted();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendOnLoadingEnded() {
|
||||||
|
if (this.mListener != null) mListener.onLoadingEnded();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendError(Exception ex) {
|
||||||
|
if (this.mListener != null) mListener.onError(ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void startProductionLine(ProdLineStatusDTO prodLine, Integer hrNum) {
|
||||||
|
this.sendOnLoadingStarted();
|
||||||
|
this.productionLinesRESTConsumer.avviaLineaDiProduzione(prodLine.getCodJfas(),
|
||||||
|
hrNum,
|
||||||
|
() -> this.mListener.successDialog("Operazione completata", this::reloadLines),
|
||||||
|
this::sendError);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onLineSelected(ProdLineStatusDTO lineSelected) {
|
||||||
|
mListener.selectLine(lineSelected);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void checkBarcodeAndStartOrdine(ProdLineStatusDTO prodLine, BarcodeScanDTO dto) {
|
||||||
|
this.sendOnLoadingStarted();
|
||||||
|
mBarcodeRESTConsumer.decodeEan128(dto, (ean128) -> {
|
||||||
|
String codMart = ean128.Content;
|
||||||
|
String partitaMag = ean128.BatchLot;
|
||||||
|
if (!prodLine.isStarted()) {
|
||||||
|
this.sendError(new Exception("Impossibile avviare una produzione su una linea ferma!"));
|
||||||
|
} else if (UtilityString.isNullOrEmpty(prodLine.getListaOrd())) {
|
||||||
|
this.startProduction(prodLine, codMart, partitaMag);
|
||||||
|
} else {
|
||||||
|
this.mListener.confirmOrderClose(() -> {
|
||||||
|
this.startProduction(prodLine, codMart, partitaMag);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, this::sendError);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void startProduction(ProdLineStatusDTO prodLine, String codMart, String partitaMag) {
|
||||||
|
this.sendOnLoadingStarted();
|
||||||
|
this.productionLinesRESTConsumer.avviaProduzioneArticoloSuLinea(prodLine.getCodJfas(), codMart, partitaMag,
|
||||||
|
() -> this.mListener.successDialog("Operazione completata", this::reloadLines),
|
||||||
|
this::sendError);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void stopProduction(ProdLineStatusDTO prodLine) {
|
||||||
|
this.sendOnLoadingStarted();
|
||||||
|
this.productionLinesRESTConsumer.arrestaLineaDiProduzione(prodLine.getCodJfas(),
|
||||||
|
() -> this.mListener.successDialog("Operazione completata", this::reloadLines),
|
||||||
|
this::sendError);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public interface Listener extends ILoadingListener {
|
||||||
|
|
||||||
|
void onError(Exception ex);
|
||||||
|
|
||||||
|
void successDialog(String message, Runnable onComplete);
|
||||||
|
|
||||||
|
void selectLine(ProdLineStatusDTO prodLineStatusDTO);
|
||||||
|
|
||||||
|
void confirmOrderClose(Runnable onConfirm);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,111 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.prod_linee_produzione.dialogs;
|
||||||
|
|
||||||
|
import android.content.DialogInterface;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
|
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.databinding.BottomSheetLineActionsBinding;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_linee_produzione.dto.ProdLineStatusDTO;
|
||||||
|
|
||||||
|
public class BottomSheetLineAction extends BottomSheetDialogFragment {
|
||||||
|
|
||||||
|
private BottomSheetLineActionsBinding mBinding;
|
||||||
|
|
||||||
|
private ProdLineStatusDTO prodLine;
|
||||||
|
private RunnableArgs<ProdLineStatusDTO> onChangeResourcesRequest;
|
||||||
|
private RunnableArgs<ProdLineStatusDTO> onChangeOrdersRequest;
|
||||||
|
private RunnableArgs<ProdLineStatusDTO> onLineCloseRequest;
|
||||||
|
private Runnable onCancelAction;
|
||||||
|
|
||||||
|
public static BottomSheetLineAction newInstance(ProdLineStatusDTO dto, RunnableArgs<ProdLineStatusDTO> onChangeResourcesRequest, RunnableArgs<ProdLineStatusDTO> onChangeOrdersRequest, RunnableArgs<ProdLineStatusDTO> onLineCloseRequest, Runnable onCancel) {
|
||||||
|
BottomSheetLineAction fragment = new BottomSheetLineAction();
|
||||||
|
fragment
|
||||||
|
.setProdLine(dto)
|
||||||
|
.setOnChangeResourcesRequest(onChangeResourcesRequest)
|
||||||
|
.setOnChangeOrdersRequest(onChangeOrdersRequest)
|
||||||
|
.setOnLineCloseRequest(onLineCloseRequest)
|
||||||
|
.setOnCancelAction(onCancel);
|
||||||
|
return fragment;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
@Override
|
||||||
|
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
||||||
|
mBinding = BottomSheetLineActionsBinding.inflate(inflater, container, false);
|
||||||
|
mBinding.setLifecycleOwner(this);
|
||||||
|
mBinding.setView(this);
|
||||||
|
mBinding.setListModel(this.prodLine);
|
||||||
|
|
||||||
|
return mBinding.getRoot();
|
||||||
|
}
|
||||||
|
|
||||||
|
public BottomSheetLineAction setOnCancelAction(Runnable onCancelAction) {
|
||||||
|
this.onCancelAction = onCancelAction;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BottomSheetLineAction setOnChangeResourcesRequest(RunnableArgs<ProdLineStatusDTO> onChangeResourcesRequest) {
|
||||||
|
this.onChangeResourcesRequest = onChangeResourcesRequest;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public BottomSheetLineAction setOnChangeOrdersRequest(RunnableArgs<ProdLineStatusDTO> onChangeOrdersRequest) {
|
||||||
|
this.onChangeOrdersRequest = onChangeOrdersRequest;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public BottomSheetLineAction setOnLineCloseRequest(RunnableArgs<ProdLineStatusDTO> onLineCloseRequest) {
|
||||||
|
this.onLineCloseRequest = onLineCloseRequest;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ProdLineStatusDTO getProdLine() {
|
||||||
|
return prodLine;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BottomSheetLineAction setProdLine(ProdLineStatusDTO prodLine) {
|
||||||
|
this.prodLine = prodLine;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onResourcesClicked() {
|
||||||
|
if (this.onChangeResourcesRequest != null) {
|
||||||
|
this.onChangeResourcesRequest.run(prodLine);
|
||||||
|
}
|
||||||
|
this.dismiss();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onPlayClicked() {
|
||||||
|
if (this.onChangeOrdersRequest != null) {
|
||||||
|
this.onChangeOrdersRequest.run(prodLine);
|
||||||
|
}
|
||||||
|
this.dismiss();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onStopClicked() {
|
||||||
|
if (this.onLineCloseRequest != null) {
|
||||||
|
this.onLineCloseRequest.run(prodLine);
|
||||||
|
}
|
||||||
|
this.dismiss();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCancel(@NonNull DialogInterface dialog) {
|
||||||
|
if (this.onCancelAction != null) {
|
||||||
|
onCancelAction.run();
|
||||||
|
}
|
||||||
|
super.onCancel(dialog);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,77 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.prod_linee_produzione.dialogs;
|
||||||
|
|
||||||
|
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 androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
|
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||||
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
|
||||||
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
||||||
|
import it.integry.integrywmsnative.databinding.DialogStartProductionBinding;
|
||||||
|
|
||||||
|
public class DialogStartProduction extends BaseDialogFragment {
|
||||||
|
private int barcodeScannerIstanceID = -1;
|
||||||
|
private RunnableArgs<BarcodeScanDTO> onScanSuccessful;
|
||||||
|
private DialogStartProductionBinding mBinding;
|
||||||
|
|
||||||
|
public static DialogStartProduction newInstance(RunnableArgs<BarcodeScanDTO> onScanSuccessful) {
|
||||||
|
|
||||||
|
Bundle args = new Bundle();
|
||||||
|
|
||||||
|
DialogStartProduction fragment = new DialogStartProduction();
|
||||||
|
fragment.setArguments(args);
|
||||||
|
fragment.setOnScanSuccessful(onScanSuccessful);
|
||||||
|
return fragment;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDismiss(@NonNull DialogInterface dialog) {
|
||||||
|
BarcodeManager.removeCallback(barcodeScannerIstanceID);
|
||||||
|
super.onDismiss(dialog);
|
||||||
|
}
|
||||||
|
|
||||||
|
public DialogStartProduction setOnScanSuccessful(RunnableArgs<BarcodeScanDTO> onScanSuccessful) {
|
||||||
|
this.onScanSuccessful = onScanSuccessful;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
@Override
|
||||||
|
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
||||||
|
mBinding = DialogStartProductionBinding.inflate(inflater, container, false);
|
||||||
|
mBinding.setLifecycleOwner(this);
|
||||||
|
this.initBarcodeReader();
|
||||||
|
setCancelable(true);
|
||||||
|
getDialog().setCanceledOnTouchOutside(true);
|
||||||
|
getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
|
||||||
|
return mBinding.getRoot();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void initBarcodeReader() {
|
||||||
|
barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
|
||||||
|
.setOnScanSuccessful(this::processBarcode)
|
||||||
|
.setOnScanFailed(this::onError));
|
||||||
|
BarcodeManager.enable();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void processBarcode(BarcodeScanDTO barcodeScanDTO) {
|
||||||
|
if (UtilityBarcode.isEan128(barcodeScanDTO)) {
|
||||||
|
this.onScanSuccessful.run(barcodeScanDTO);
|
||||||
|
this.dismiss();
|
||||||
|
} else {
|
||||||
|
this.onError(new Exception("Il barcode scansionato non è valido!"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,129 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.prod_linee_produzione.dto;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Calendar;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
public class ProdLineStatusDTO {
|
||||||
|
|
||||||
|
private String codJfas;
|
||||||
|
|
||||||
|
private String descrizione;
|
||||||
|
|
||||||
|
private String codMdepLav;
|
||||||
|
|
||||||
|
private Date datetimeStart;
|
||||||
|
|
||||||
|
private Date datetimeEnd;
|
||||||
|
|
||||||
|
private BigDecimal maxAllocazione;
|
||||||
|
|
||||||
|
private Integer qtaAllocate;
|
||||||
|
|
||||||
|
private String listaOrd;
|
||||||
|
|
||||||
|
|
||||||
|
public String getCodJfas() {
|
||||||
|
return codJfas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ProdLineStatusDTO setCodJfas(String codJfas) {
|
||||||
|
this.codJfas = codJfas;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescrizione() {
|
||||||
|
return descrizione;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ProdLineStatusDTO setDescrizione(String descrizione) {
|
||||||
|
this.descrizione = descrizione;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodMdepLav() {
|
||||||
|
return codMdepLav;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ProdLineStatusDTO setCodMdepLav(String codMdepLav) {
|
||||||
|
this.codMdepLav = codMdepLav;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getDatetimeStart() {
|
||||||
|
return datetimeStart;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ProdLineStatusDTO setDatetimeStart(Date datetimeStart) {
|
||||||
|
this.datetimeStart = datetimeStart;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getDatetimeEnd() {
|
||||||
|
return datetimeEnd;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ProdLineStatusDTO setDatetimeEnd(Date datetimeEnd) {
|
||||||
|
this.datetimeEnd = datetimeEnd;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getMaxAllocazione() {
|
||||||
|
return maxAllocazione;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ProdLineStatusDTO setMaxAllocazione(BigDecimal maxAllocazione) {
|
||||||
|
this.maxAllocazione = maxAllocazione;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getQtaAllocate() {
|
||||||
|
return qtaAllocate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ProdLineStatusDTO setQtaAllocate(Integer qtaAllocate) {
|
||||||
|
this.qtaAllocate = qtaAllocate;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getListaOrd() {
|
||||||
|
return listaOrd;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ProdLineStatusDTO setListaOrd(String listaOrd) {
|
||||||
|
this.listaOrd = listaOrd;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isStarted() {
|
||||||
|
return datetimeStart != null && datetimeEnd == null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public boolean isPaused() {
|
||||||
|
if (datetimeEnd == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
Calendar today = Calendar.getInstance();
|
||||||
|
today.set(Calendar.MILLISECOND, 0);
|
||||||
|
today.set(Calendar.SECOND, 0);
|
||||||
|
today.set(Calendar.MINUTE, 0);
|
||||||
|
today.set(Calendar.HOUR_OF_DAY, 0);
|
||||||
|
Calendar lastCloseTime = Calendar.getInstance();
|
||||||
|
lastCloseTime.setTime(datetimeEnd);
|
||||||
|
lastCloseTime.set(Calendar.MILLISECOND, 0);
|
||||||
|
lastCloseTime.set(Calendar.SECOND, 0);
|
||||||
|
lastCloseTime.set(Calendar.MINUTE, 0);
|
||||||
|
lastCloseTime.set(Calendar.HOUR_OF_DAY, 0);
|
||||||
|
return datetimeStart != null && datetimeEnd != null && today.equals(lastCloseTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLabel() {
|
||||||
|
return codJfas + " - " + descrizione;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRisorseLabel() {
|
||||||
|
return qtaAllocate + (maxAllocazione != null && maxAllocazione.compareTo(BigDecimal.ZERO) > 0 ? "/" + maxAllocazione : "");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,62 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.prod_linee_produzione.ui;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.databinding.DataBindingUtil;
|
||||||
|
import androidx.databinding.ObservableArrayList;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.view.ExtendedRecyclerView;
|
||||||
|
import it.integry.integrywmsnative.databinding.FragmentLineeProdMainListModelBinding;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_linee_produzione.dto.ProdLineStatusDTO;
|
||||||
|
|
||||||
|
public class LinesListAdapter extends ExtendedRecyclerView<ProdLineStatusDTO, LinesListAdapter.SingleItemViewHolder> {
|
||||||
|
private Context mContext;
|
||||||
|
|
||||||
|
private RunnableArgs<ProdLineStatusDTO> mOnItemClicked;
|
||||||
|
|
||||||
|
public LinesListAdapter(Context context, ObservableArrayList<ProdLineStatusDTO> myDataset) {
|
||||||
|
super(myDataset);
|
||||||
|
this.mContext = context;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public LinesListAdapter.SingleItemViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||||
|
FragmentLineeProdMainListModelBinding binding = DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()), R.layout.fragment_linee_prod_main_list_model, parent, false);
|
||||||
|
return new LinesListAdapter.SingleItemViewHolder(binding);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBindViewHolder(@NonNull LinesListAdapter.SingleItemViewHolder holder, int position) {
|
||||||
|
final ProdLineStatusDTO line = mDataset.get(position);
|
||||||
|
|
||||||
|
holder.binding.setListModel(line);
|
||||||
|
holder.binding.executePendingBindings();
|
||||||
|
holder.binding.getRoot().setOnClickListener(v -> {
|
||||||
|
if (this.mOnItemClicked != null)
|
||||||
|
this.mOnItemClicked.run(line);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void setOnItemClicked(RunnableArgs<ProdLineStatusDTO> onItemClicked) {
|
||||||
|
this.mOnItemClicked = onItemClicked;
|
||||||
|
}
|
||||||
|
|
||||||
|
static class SingleItemViewHolder extends RecyclerView.ViewHolder {
|
||||||
|
|
||||||
|
FragmentLineeProdMainListModelBinding binding;
|
||||||
|
|
||||||
|
SingleItemViewHolder(FragmentLineeProdMainListModelBinding binding) {
|
||||||
|
super(binding.getRoot());
|
||||||
|
this.binding = binding;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -163,6 +163,7 @@ public class PVOrdineAcquistoEditViewModel {
|
|||||||
articolo.setMerceDaRic(artGrid.getMerceDaRic());
|
articolo.setMerceDaRic(artGrid.getMerceDaRic());
|
||||||
articolo.setNewNoPromo(artGrid.isNewNoPromo());
|
articolo.setNewNoPromo(artGrid.isNewNoPromo());
|
||||||
articolo.setFlagQtaMultipla(artGrid.getFlagQtaMultipla());
|
articolo.setFlagQtaMultipla(artGrid.getFlagQtaMultipla());
|
||||||
|
articolo.setSystemNote(artGrid.generateSystemNote());
|
||||||
|
|
||||||
onSuccess.run(articolo);
|
onSuccess.run(articolo);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -28,6 +28,8 @@ public class ArtDTO {
|
|||||||
|
|
||||||
private String dataScad;
|
private String dataScad;
|
||||||
|
|
||||||
|
private String systemNote;
|
||||||
|
|
||||||
public Integer getRigaOrd() {
|
public Integer getRigaOrd() {
|
||||||
return rigaOrd;
|
return rigaOrd;
|
||||||
}
|
}
|
||||||
@ -63,6 +65,7 @@ public class ArtDTO {
|
|||||||
public String getDataIns() {
|
public String getDataIns() {
|
||||||
return dataIns;
|
return dataIns;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Date getDataInsD() {
|
public Date getDataInsD() {
|
||||||
return UtilityDate.recognizeDateWithExceptionHandler(getDataIns());
|
return UtilityDate.recognizeDateWithExceptionHandler(getDataIns());
|
||||||
}
|
}
|
||||||
@ -70,6 +73,7 @@ public class ArtDTO {
|
|||||||
public void setDataIns(String dataIns) {
|
public void setDataIns(String dataIns) {
|
||||||
this.dataIns = dataIns;
|
this.dataIns = dataIns;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDataInsD(Date dataIns) {
|
public void setDataInsD(Date dataIns) {
|
||||||
setDataIns(UtilityDate.formatDate(dataIns, UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH));
|
setDataIns(UtilityDate.formatDate(dataIns, UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH));
|
||||||
}
|
}
|
||||||
@ -122,6 +126,7 @@ public class ArtDTO {
|
|||||||
public void setDataScad(String dataScad) {
|
public void setDataScad(String dataScad) {
|
||||||
this.dataScad = dataScad;
|
this.dataScad = dataScad;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Date getDataScadD() {
|
public Date getDataScadD() {
|
||||||
return UtilityDate.recognizeDateWithExceptionHandler(getDataScad());
|
return UtilityDate.recognizeDateWithExceptionHandler(getDataScad());
|
||||||
}
|
}
|
||||||
@ -130,5 +135,12 @@ public class ArtDTO {
|
|||||||
setDataScad(UtilityDate.formatDate(dataScad, UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH));
|
setDataScad(UtilityDate.formatDate(dataScad, UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getSystemNote() {
|
||||||
|
return systemNote;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArtDTO setSystemNote(String systemNote) {
|
||||||
|
this.systemNote = systemNote;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -37,7 +37,6 @@ import it.integry.integrywmsnative.core.expansion.BaseFragment;
|
|||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
||||||
import it.integry.integrywmsnative.core.interfaces.ILifecycleFragment;
|
import it.integry.integrywmsnative.core.interfaces.ILifecycleFragment;
|
||||||
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
|
|
||||||
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
||||||
import it.integry.integrywmsnative.core.model.MtbAart;
|
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||||
@ -319,8 +318,8 @@ public class RettificaGiacenzeFragment extends BaseFragment implements ITitledFr
|
|||||||
this.currentMtbColtObs.set(null);
|
this.currentMtbColtObs.set(null);
|
||||||
thereIsAnOpenedUL.set(false);
|
thereIsAnOpenedUL.set(false);
|
||||||
|
|
||||||
|
this.mViewModel.requestLU();
|
||||||
if (getActivity() != null) ((IPoppableActivity) getActivity()).pop();
|
/*if (getActivity() != null) ((IPoppableActivity) getActivity()).pop();*/
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -85,16 +85,19 @@ public class RettificaGiacenzeViewModel {
|
|||||||
|
|
||||||
this.sendOnLoadingEnded();
|
this.sendOnLoadingEnded();
|
||||||
|
|
||||||
|
this.requestLU();
|
||||||
|
}, this::sendError);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void requestLU() {
|
||||||
this.sendOnLUOpenRequest((mtbColt, created) -> {
|
this.sendOnLUOpenRequest((mtbColt, created) -> {
|
||||||
this.mCurrentMtbColt = mtbColt;
|
this.mCurrentMtbColt = mtbColt;
|
||||||
this.mIsCreatedLU = created;
|
this.mIsCreatedLU = created;
|
||||||
|
|
||||||
this.sendLUOpened(mtbColt);
|
this.sendLUOpened(mtbColt);
|
||||||
});
|
});
|
||||||
}, this::sendError);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public RettificaGiacenzeViewModel setListener(RettificaGiacenzeViewModel.Listener listener) {
|
public RettificaGiacenzeViewModel setListener(RettificaGiacenzeViewModel.Listener listener) {
|
||||||
this.mListener = listener;
|
this.mListener = listener;
|
||||||
return this;
|
return this;
|
||||||
|
|||||||
@ -56,10 +56,12 @@ import it.integry.integrywmsnative.core.utility.UtilityString;
|
|||||||
import it.integry.integrywmsnative.core.utility.UtilityToast;
|
import it.integry.integrywmsnative.core.utility.UtilityToast;
|
||||||
import it.integry.integrywmsnative.databinding.ActivitySpedizioneBinding;
|
import it.integry.integrywmsnative.databinding.ActivitySpedizioneBinding;
|
||||||
import it.integry.integrywmsnative.gest.lista_bancali.ListaBancaliActivity;
|
import it.integry.integrywmsnative.gest.lista_bancali.ListaBancaliActivity;
|
||||||
|
import it.integry.integrywmsnative.gest.spedizione.dialogs.print_sscc_list.DialogPrintOrderSSCCListView;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.BaseDialogRowInfoView;
|
import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.BaseDialogRowInfoView;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException;
|
import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
|
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.spedizione.model.PrintOrderCloseDTO;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.ui.SpedizioneListAdapter;
|
import it.integry.integrywmsnative.gest.spedizione.ui.SpedizioneListAdapter;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.ui.SpedizioneListModel;
|
import it.integry.integrywmsnative.gest.spedizione.ui.SpedizioneListModel;
|
||||||
import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentView;
|
import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentView;
|
||||||
@ -192,9 +194,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
this.initBarcodeReader();
|
this.initBarcodeReader();
|
||||||
this.initRecyclerView();
|
this.initRecyclerView();
|
||||||
|
|
||||||
|
closeOrderButtonEnabled.set(SettingsManager.iDB().isFlagPrintEtichetteOnOrderClose() || SettingsManager.iDB().isFlagPrintPackingListOnOrderClose());
|
||||||
String reportNameSpedizioneChiudiOrdine = SettingsManager.iDB().getReportNameSpedizionChiudiOrdine();
|
|
||||||
closeOrderButtonEnabled.set(!UtilityString.isNullOrEmpty(reportNameSpedizioneChiudiOrdine));
|
|
||||||
|
|
||||||
|
|
||||||
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
||||||
@ -204,7 +204,6 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
boolean shouldAskPesoLU = SettingsManager.iDB().isFlagAskPesoColloSpedizione();
|
boolean shouldAskPesoLU = SettingsManager.iDB().isFlagAskPesoColloSpedizione();
|
||||||
boolean useQtaOrd = SettingsManager.iDB().isFlagSpedizioneUseQtaOrd();
|
boolean useQtaOrd = SettingsManager.iDB().isFlagSpedizioneUseQtaOrd();
|
||||||
|
|
||||||
if (!mEnableFakeGiacenza) this.onLoadingStarted();
|
|
||||||
mViewmodel.init(
|
mViewmodel.init(
|
||||||
codMdep,
|
codMdep,
|
||||||
!mEnableFakeGiacenza,
|
!mEnableFakeGiacenza,
|
||||||
@ -214,7 +213,6 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
mSitArtOrd,
|
mSitArtOrd,
|
||||||
mTestateOrdini,
|
mTestateOrdini,
|
||||||
mColliRegistrati,
|
mColliRegistrati,
|
||||||
reportNameSpedizioneChiudiOrdine,
|
|
||||||
mGestioneCol, mSegnoCol, mDefaultCausaleUL,
|
mGestioneCol, mSegnoCol, mDefaultCausaleUL,
|
||||||
mEnableQuantityReset,
|
mEnableQuantityReset,
|
||||||
useQtaOrd);
|
useQtaOrd);
|
||||||
@ -696,7 +694,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
this.addExtraItemsEnabled.set(false);
|
this.addExtraItemsEnabled.set(false);
|
||||||
noLUPresent.set(true);
|
noLUPresent.set(true);
|
||||||
this.mBottomSheetFragmentLUContentViewModel.setMtbColt(null);
|
this.mBottomSheetFragmentLUContentViewModel.setMtbColt(null);
|
||||||
closeOrderButtonEnabled.set(!UtilityString.isNullOrEmpty(SettingsManager.iDB().getReportNameSpedizionChiudiOrdine()));
|
closeOrderButtonEnabled.set(SettingsManager.iDB().isFlagPrintEtichetteOnOrderClose() || SettingsManager.iDB().isFlagPrintPackingListOnOrderClose());
|
||||||
|
|
||||||
if (this.mShouldCloseActivity) super.onBackPressed();
|
if (this.mShouldCloseActivity) super.onBackPressed();
|
||||||
}
|
}
|
||||||
@ -853,12 +851,58 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
}).show();
|
}).show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void askShouldPrintPackingList(PrintOrderCloseDTO printOrderCloseDTO, RunnableArgs<PrintOrderCloseDTO> onComplete) {
|
||||||
|
DialogSimpleMessageView.makeInfoDialog(
|
||||||
|
getResources().getString(R.string.action_close_order),
|
||||||
|
new SpannableString(getResources().getString(R.string.message_print_packing_list_on_close_order)),
|
||||||
|
null,
|
||||||
|
() -> {
|
||||||
|
printOrderCloseDTO.setFlagPrintPackingList(true);
|
||||||
|
if (SettingsManager.iDB().isFlagPrintEtichetteOnOrderClose()) {
|
||||||
|
this.askShouldPrintSSCC(printOrderCloseDTO, onComplete);
|
||||||
|
} else {
|
||||||
|
onComplete.run(printOrderCloseDTO);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
() -> {
|
||||||
|
printOrderCloseDTO.setFlagPrintPackingList(false);
|
||||||
|
if (SettingsManager.iDB().isFlagPrintEtichetteOnOrderClose()) {
|
||||||
|
this.askShouldPrintSSCC(printOrderCloseDTO, onComplete);
|
||||||
|
} else {
|
||||||
|
onComplete.run(printOrderCloseDTO);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
.show(getSupportFragmentManager(), "tag");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void askShouldPrintSSCC(PrintOrderCloseDTO printOrderCloseDTO, RunnableArgs<PrintOrderCloseDTO> onComplete) {
|
||||||
|
DialogPrintOrderSSCCListView.newInstance(printOrderCloseDTO, onComplete).show(this.getSupportFragmentManager(), "dialogPrintOrderSSCCListView");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBatchLotSelectionRequest(List<MtbPartitaMag> availableBatchLots, RunnableArgs<MtbPartitaMag> onComplete) {
|
public void onBatchLotSelectionRequest(List<MtbPartitaMag> availableBatchLots, RunnableArgs<MtbPartitaMag> onComplete) {
|
||||||
DialogChooseBatchLotView.newInstance(availableBatchLots, onComplete)
|
DialogChooseBatchLotView.newInstance(availableBatchLots, onComplete)
|
||||||
.show(getSupportFragmentManager(), "tag");
|
.show(getSupportFragmentManager(), "tag");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCloseOrderPrintRequest(RunnableArgs<PrintOrderCloseDTO> onComplete) {
|
||||||
|
PrintOrderCloseDTO printOrderCloseDTO = new PrintOrderCloseDTO();
|
||||||
|
if (SettingsManager.iDB().isFlagPrintPackingListOnOrderClose()) {
|
||||||
|
this.askShouldPrintPackingList(printOrderCloseDTO, onComplete);
|
||||||
|
} else if (SettingsManager.iDB().isFlagPrintEtichetteOnOrderClose()) {
|
||||||
|
this.askShouldPrintSSCC(printOrderCloseDTO, onComplete);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onOrderClosed() {
|
||||||
|
this.onLoadingEnded();
|
||||||
|
this.onBackPressed();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onRowSaved() {
|
public void onRowSaved() {
|
||||||
FBToast.successToast(this, getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT);
|
FBToast.successToast(this, getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT);
|
||||||
|
|||||||
@ -26,7 +26,6 @@ import it.integry.integrywmsnative.core.data_recover.ColliDataRecoverService;
|
|||||||
import it.integry.integrywmsnative.core.exception.InvalidLUException;
|
import it.integry.integrywmsnative.core.exception.InvalidLUException;
|
||||||
import it.integry.integrywmsnative.core.exception.NoArtsFoundException;
|
import it.integry.integrywmsnative.core.exception.NoArtsFoundException;
|
||||||
import it.integry.integrywmsnative.core.exception.NoLUFoundException;
|
import it.integry.integrywmsnative.core.exception.NoLUFoundException;
|
||||||
import it.integry.integrywmsnative.core.exception.NoPrintersFoundException;
|
|
||||||
import it.integry.integrywmsnative.core.exception.NoResultFromBarcodeException;
|
import it.integry.integrywmsnative.core.exception.NoResultFromBarcodeException;
|
||||||
import it.integry.integrywmsnative.core.exception.ScannedPositionNotExistException;
|
import it.integry.integrywmsnative.core.exception.ScannedPositionNotExistException;
|
||||||
import it.integry.integrywmsnative.core.expansion.AtomicBigDecimal;
|
import it.integry.integrywmsnative.core.expansion.AtomicBigDecimal;
|
||||||
@ -37,6 +36,7 @@ import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILUBaseOp
|
|||||||
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILUPrintListener;
|
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILUPrintListener;
|
||||||
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
|
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
|
||||||
import it.integry.integrywmsnative.core.model.CommonModelConsts;
|
import it.integry.integrywmsnative.core.model.CommonModelConsts;
|
||||||
|
import it.integry.integrywmsnative.core.model.DtbOrdt;
|
||||||
import it.integry.integrywmsnative.core.model.FiltroOrdineDTO;
|
import it.integry.integrywmsnative.core.model.FiltroOrdineDTO;
|
||||||
import it.integry.integrywmsnative.core.model.MtbAart;
|
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||||
@ -45,6 +45,7 @@ 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.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.rest.consumers.ArticoloRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
||||||
@ -55,6 +56,7 @@ import it.integry.integrywmsnative.core.rest.model.Ean128Model;
|
|||||||
import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel;
|
import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel;
|
||||||
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;
|
||||||
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
@ -66,6 +68,7 @@ import it.integry.integrywmsnative.gest.spedizione.exceptions.NotCurrentYearLUEx
|
|||||||
import it.integry.integrywmsnative.gest.spedizione.exceptions.OrdersLoadException;
|
import it.integry.integrywmsnative.gest.spedizione.exceptions.OrdersLoadException;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
|
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.spedizione.model.PrintOrderCloseDTO;
|
||||||
|
|
||||||
public class SpedizioneViewModel {
|
public class SpedizioneViewModel {
|
||||||
|
|
||||||
@ -91,7 +94,6 @@ public class SpedizioneViewModel {
|
|||||||
private boolean mEnableCheckPartitaMag;
|
private boolean mEnableCheckPartitaMag;
|
||||||
private boolean mCanOverflowOrderQuantity;
|
private boolean mCanOverflowOrderQuantity;
|
||||||
private boolean mShouldAskPesoLU;
|
private boolean mShouldAskPesoLU;
|
||||||
private String mReportNameSpedizioneChiudiOrdine;
|
|
||||||
private boolean mIsNewLU;
|
private boolean mIsNewLU;
|
||||||
private boolean mEnableQuantityReset;
|
private boolean mEnableQuantityReset;
|
||||||
private boolean mUseQtaOrd;
|
private boolean mUseQtaOrd;
|
||||||
@ -133,7 +135,6 @@ public class SpedizioneViewModel {
|
|||||||
List<SitArtOrdDTO> pickingList,
|
List<SitArtOrdDTO> pickingList,
|
||||||
List<OrdineUscitaInevasoDTO> testateOrdini,
|
List<OrdineUscitaInevasoDTO> testateOrdini,
|
||||||
List<MtbColt> colliRegistrati,
|
List<MtbColt> colliRegistrati,
|
||||||
String reportNameSpedizioneChiudiOrdine,
|
|
||||||
GestioneEnum gestioneCol,
|
GestioneEnum gestioneCol,
|
||||||
int segnoCol,
|
int segnoCol,
|
||||||
Integer defaultCausaleUL,
|
Integer defaultCausaleUL,
|
||||||
@ -148,7 +149,6 @@ public class SpedizioneViewModel {
|
|||||||
this.mEnableCheckPartitaMag = enableCheckPartitaMag;
|
this.mEnableCheckPartitaMag = enableCheckPartitaMag;
|
||||||
this.mCanOverflowOrderQuantity = canOverflowOrderQuantity;
|
this.mCanOverflowOrderQuantity = canOverflowOrderQuantity;
|
||||||
this.mShouldAskPesoLU = shouldAskPesoLU;
|
this.mShouldAskPesoLU = shouldAskPesoLU;
|
||||||
this.mReportNameSpedizioneChiudiOrdine = reportNameSpedizioneChiudiOrdine;
|
|
||||||
this.mDefaultCausaleOfUL = defaultCausaleUL;
|
this.mDefaultCausaleOfUL = defaultCausaleUL;
|
||||||
this.mEnableQuantityReset = enableQuantityReset;
|
this.mEnableQuantityReset = enableQuantityReset;
|
||||||
this.mUseQtaOrd = useQtaOrd;
|
this.mUseQtaOrd = useQtaOrd;
|
||||||
@ -305,6 +305,14 @@ public class SpedizioneViewModel {
|
|||||||
if (this.mListener != null) mListener.onLoadingStarted();
|
if (this.mListener != null) mListener.onLoadingStarted();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void sendOnCloseOrderPrintRequest(RunnableArgs<PrintOrderCloseDTO> onComplete) {
|
||||||
|
if (this.mListener != null) mListener.onCloseOrderPrintRequest(onComplete);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendOnOrderClosed() {
|
||||||
|
if (this.mListener != null) mListener.onOrderClosed();
|
||||||
|
}
|
||||||
|
|
||||||
private void sendOnLoadingEnded() {
|
private void sendOnLoadingEnded() {
|
||||||
if (this.mListener != null) mListener.onLoadingEnded();
|
if (this.mListener != null) mListener.onLoadingEnded();
|
||||||
}
|
}
|
||||||
@ -1853,49 +1861,85 @@ public class SpedizioneViewModel {
|
|||||||
|
|
||||||
public void closeOrder() {
|
public void closeOrder() {
|
||||||
this.sendOnLoadingStarted();
|
this.sendOnLoadingStarted();
|
||||||
|
if (SettingsManager.iDB().isFlagPrintEtichetteOnOrderClose() || SettingsManager.iDB().isFlagPrintPackingListOnOrderClose()) {
|
||||||
|
this.sendOnCloseOrderPrintRequest(this::onCloseOrderPrintRequest);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Runnable onComplete = () -> this.sendOnLoadingEnded();
|
private void onCloseOrderPrintRequest(PrintOrderCloseDTO dto) {
|
||||||
|
if (!dto.isFlagPrintPackingList() && !dto.isFlagPrintSSCC()) {
|
||||||
this.mPrinterRESTConsumer.getAvailablePrinters(mDefaultCodMdep, PrinterRESTConsumer.Type.PRIMARIA, printerList -> {
|
this.sendOnOrderClosed();
|
||||||
|
|
||||||
if (printerList == null || printerList.size() == 0) {
|
|
||||||
this.sendError(new NoPrintersFoundException());
|
|
||||||
onComplete.run();
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
List<DtbOrdt> closedOrders = Stream.of(this.mTestateOrdini).map(ord -> {
|
||||||
|
DtbOrdt ordV = new DtbOrdt();
|
||||||
cyclicPrintPackingList(
|
ordV.setDataOrd(ord.getDataOrdS())
|
||||||
this.mTestateOrdini.iterator(),
|
.setNumOrd(ord.getNumOrd())
|
||||||
printerList.get(0),
|
.setGestione(ord.getGestione())
|
||||||
onComplete,
|
.setCodAnag(ord.getCodAnagOrd());
|
||||||
ex -> this.sendLUPrintError(ex, onComplete));
|
return ordV;
|
||||||
|
}).toList();
|
||||||
}, this::sendError);
|
dto.setPrintList(closedOrders);
|
||||||
|
printClosedOrders(dto, this::sendOnOrderClosed, ex -> this.sendLUPrintError(ex, this::sendOnLoadingEnded));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void cyclicPrintPackingList(@NotNull Iterator<OrdineUscitaInevasoDTO> sourceTestateOrdineVenditaIterator, String printerName, Runnable onComplete, RunnableArgs<Exception> onAbort) {
|
private void printClosedOrders(PrintOrderCloseDTO dto, Runnable onSuccess, RunnableArgs<Exception> onAbort) {
|
||||||
|
|
||||||
|
|
||||||
|
this.mPrinterRESTConsumer.printClosedOrders(
|
||||||
|
dto,
|
||||||
|
SettingsManager.i().getUserSession().getDepo().getCodMdep(),
|
||||||
|
onSuccess,
|
||||||
|
onAbort);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void cyclicPrintPackingList(@NotNull Iterator<OrdineUscitaInevasoDTO> sourceTestateOrdineVenditaIterator, Runnable onComplete, RunnableArgs<Exception> onAbort) {
|
||||||
if (sourceTestateOrdineVenditaIterator.hasNext()) {
|
if (sourceTestateOrdineVenditaIterator.hasNext()) {
|
||||||
singlePrintPackingList(sourceTestateOrdineVenditaIterator.next(), printerName, () -> {
|
singlePrintPackingList(sourceTestateOrdineVenditaIterator.next(), () -> {
|
||||||
cyclicPrintPackingList(sourceTestateOrdineVenditaIterator, printerName, onComplete, onAbort);
|
cyclicPrintPackingList(sourceTestateOrdineVenditaIterator, onComplete, onAbort);
|
||||||
}, onAbort);
|
}, onAbort);
|
||||||
} else {
|
} else {
|
||||||
onComplete.run();
|
onComplete.run();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void singlePrintPackingList(OrdineUscitaInevasoDTO ordineUscitaInevasoDTO, String printerName, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
private void cyclicPrintListEtichette(@NotNull Iterator<OrdineUscitaInevasoDTO> sourceTestateOrdineVenditaIterator, Runnable onComplete, RunnableArgs<Exception> onAbort) {
|
||||||
|
if (sourceTestateOrdineVenditaIterator.hasNext()) {
|
||||||
|
singlePrintListEtichette(sourceTestateOrdineVenditaIterator.next(), () -> {
|
||||||
|
cyclicPrintListEtichette(sourceTestateOrdineVenditaIterator, onComplete, onAbort);
|
||||||
|
}, onAbort);
|
||||||
|
} else {
|
||||||
|
onComplete.run();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void singlePrintPackingList(OrdineUscitaInevasoDTO ordineUscitaInevasoDTO, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
HashMap<String, Object> params = new HashMap<>();
|
HashMap<String, Object> params = new HashMap<>();
|
||||||
params.put("gestione", ordineUscitaInevasoDTO.getGestione());
|
params.put("gestione", ordineUscitaInevasoDTO.getGestione());
|
||||||
params.put("num_ord", ordineUscitaInevasoDTO.getNumOrd());
|
params.put("num_ord", ordineUscitaInevasoDTO.getNumOrd());
|
||||||
params.put("data_ord", UtilityDate.formatDate(ordineUscitaInevasoDTO.getDataOrdD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_DASH));
|
params.put("data_ord", UtilityDate.formatDate(ordineUscitaInevasoDTO.getDataOrdD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_DASH));
|
||||||
|
|
||||||
this.mPrinterRESTConsumer.printReport(
|
this.mPrinterRESTConsumer.printReportType(
|
||||||
printerName,
|
ReportType.WMS_SPEDIZIONE_PACKING_LIST_ORD,
|
||||||
this.mReportNameSpedizioneChiudiOrdine,
|
SettingsManager.i().getUserSession().getDepo().getCodMdep(),
|
||||||
|
ordineUscitaInevasoDTO.getCodAnagOrd(),
|
||||||
|
params,
|
||||||
|
onComplete,
|
||||||
|
onFailed);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void singlePrintListEtichette(OrdineUscitaInevasoDTO ordineUscitaInevasoDTO, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
HashMap<String, Object> params = new HashMap<>();
|
||||||
|
params.put("gestione", ordineUscitaInevasoDTO.getGestione());
|
||||||
|
params.put("num_ord", ordineUscitaInevasoDTO.getNumOrd());
|
||||||
|
params.put("data_ord", UtilityDate.formatDate(ordineUscitaInevasoDTO.getDataOrdD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_DASH));
|
||||||
|
|
||||||
|
this.mPrinterRESTConsumer.printReportType(
|
||||||
|
ReportType.WMS_SPEDIZIONE_ETICHETTE_SSCC_ORD,
|
||||||
|
SettingsManager.i().getUserSession().getDepo().getCodMdep(),
|
||||||
|
ordineUscitaInevasoDTO.getCodAnagOrd(),
|
||||||
params,
|
params,
|
||||||
1,
|
|
||||||
onComplete,
|
onComplete,
|
||||||
onFailed);
|
onFailed);
|
||||||
|
|
||||||
@ -1948,6 +1992,10 @@ public class SpedizioneViewModel {
|
|||||||
void onLUPositionChangeRequest(RunnableArgss<Boolean, MtbDepoPosizione> onComplete);
|
void onLUPositionChangeRequest(RunnableArgss<Boolean, MtbDepoPosizione> onComplete);
|
||||||
|
|
||||||
void onBatchLotSelectionRequest(List<MtbPartitaMag> availableBatchLots, RunnableArgs<MtbPartitaMag> onComplete);
|
void onBatchLotSelectionRequest(List<MtbPartitaMag> availableBatchLots, RunnableArgs<MtbPartitaMag> onComplete);
|
||||||
|
|
||||||
|
void onCloseOrderPrintRequest(RunnableArgs<PrintOrderCloseDTO> onComplete);
|
||||||
|
|
||||||
|
void onOrderClosed();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,14 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.spedizione.dialogs.print_sscc_list;
|
||||||
|
|
||||||
|
import dagger.Subcomponent;
|
||||||
|
|
||||||
|
@Subcomponent
|
||||||
|
public interface DialogPrintOrderSSCCListComponent {
|
||||||
|
|
||||||
|
@Subcomponent.Factory
|
||||||
|
interface Factory {
|
||||||
|
DialogPrintOrderSSCCListComponent create();
|
||||||
|
}
|
||||||
|
|
||||||
|
void inject(DialogPrintOrderSSCCListView dialogPrintOrderSSCCListView);
|
||||||
|
}
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.spedizione.dialogs.print_sscc_list;
|
||||||
|
|
||||||
|
import dagger.Module;
|
||||||
|
import dagger.Provides;
|
||||||
|
|
||||||
|
@Module(subcomponents = DialogPrintOrderSSCCListComponent.class)
|
||||||
|
public class DialogPrintOrderSSCCListModule {
|
||||||
|
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
DialogPrintOrderSSCCListViewModel providesDialogPrintOrderSSCCListViewModel() {
|
||||||
|
return new DialogPrintOrderSSCCListViewModel();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,115 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.spedizione.dialogs.print_sscc_list;
|
||||||
|
|
||||||
|
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 androidx.databinding.DataBindingUtil;
|
||||||
|
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.MainApplication;
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
|
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.DialogPrintOrderSsccListBinding;
|
||||||
|
import it.integry.integrywmsnative.gest.spedizione.model.PrintOrderCloseDTO;
|
||||||
|
|
||||||
|
public class DialogPrintOrderSSCCListView extends BaseDialogFragment {
|
||||||
|
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
DialogPrintOrderSSCCListViewModel mViewModel;
|
||||||
|
|
||||||
|
private Context mContext;
|
||||||
|
private DialogPrintOrderSsccListBinding mBindings;
|
||||||
|
private final PrintOrderCloseDTO printOrderCloseDTO;
|
||||||
|
private final RunnableArgs<PrintOrderCloseDTO> onDialogClose;
|
||||||
|
|
||||||
|
|
||||||
|
public static DialogPrintOrderSSCCListView newInstance(
|
||||||
|
PrintOrderCloseDTO printOrderCloseDTO,
|
||||||
|
RunnableArgs<PrintOrderCloseDTO> onDismiss
|
||||||
|
) {
|
||||||
|
return new DialogPrintOrderSSCCListView(printOrderCloseDTO, onDismiss);
|
||||||
|
}
|
||||||
|
|
||||||
|
public DialogPrintOrderSSCCListView(@NotNull PrintOrderCloseDTO printOrderCloseDTO, @NotNull RunnableArgs<PrintOrderCloseDTO> onDismiss) {
|
||||||
|
this.printOrderCloseDTO = printOrderCloseDTO;
|
||||||
|
this.onDialogClose = onDismiss;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
@Override
|
||||||
|
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
||||||
|
this.mContext = getActivity();
|
||||||
|
|
||||||
|
mBindings = DataBindingUtil.inflate(inflater, R.layout.dialog_print_order_sscc_list, container, false);
|
||||||
|
|
||||||
|
MainApplication.appComponent
|
||||||
|
.dialogPrintOrderSSCCListComponent()
|
||||||
|
.create()
|
||||||
|
.inject(this);
|
||||||
|
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.printOrderCloseDTO.setFlagSkipPrintedSSCC(id == mBindings.printOnlyNew.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onPositiveClick() {
|
||||||
|
this.printOrderCloseDTO.setFlagPrintSSCC(true);
|
||||||
|
this.dismiss();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onNegativeClick() {
|
||||||
|
this.printOrderCloseDTO.setFlagPrintSSCC(false);
|
||||||
|
this.dismiss();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDismiss(@NonNull DialogInterface dialog) {
|
||||||
|
this.onDialogClose.run(this.printOrderCloseDTO);
|
||||||
|
super.onDismiss(dialog);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCancel(@NonNull DialogInterface dialog) {
|
||||||
|
this.onNegativeClick();
|
||||||
|
super.onCancel(dialog);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onStart() {
|
||||||
|
if (this.printOrderCloseDTO.isFlagSkipPrintedSSCC()) {
|
||||||
|
mBindings.printOnlyNew.setChecked(true);
|
||||||
|
} else {
|
||||||
|
mBindings.printAll.setChecked(true);
|
||||||
|
}
|
||||||
|
super.onStart();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(Exception ex) {
|
||||||
|
UtilityExceptions.defaultException(this.mContext, ex);
|
||||||
|
dismiss();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,6 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.spedizione.dialogs.print_sscc_list;
|
||||||
|
|
||||||
|
public class DialogPrintOrderSSCCListViewModel {
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,48 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.spedizione.model;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.model.DtbOrdt;
|
||||||
|
|
||||||
|
public class PrintOrderCloseDTO {
|
||||||
|
private boolean flagPrintPackingList = false;
|
||||||
|
private boolean flagPrintSSCC = false;
|
||||||
|
private boolean flagSkipPrintedSSCC = true;
|
||||||
|
private List<DtbOrdt> printList;
|
||||||
|
|
||||||
|
public boolean isFlagPrintPackingList() {
|
||||||
|
return flagPrintPackingList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PrintOrderCloseDTO setFlagPrintPackingList(boolean flagPrintPackingList) {
|
||||||
|
this.flagPrintPackingList = flagPrintPackingList;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isFlagPrintSSCC() {
|
||||||
|
return flagPrintSSCC;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PrintOrderCloseDTO setFlagPrintSSCC(boolean flagPrintSSCC) {
|
||||||
|
this.flagPrintSSCC = flagPrintSSCC;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isFlagSkipPrintedSSCC() {
|
||||||
|
return flagSkipPrintedSSCC;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PrintOrderCloseDTO setFlagSkipPrintedSSCC(boolean flagSkipPrintedSSCC) {
|
||||||
|
this.flagSkipPrintedSSCC = flagSkipPrintedSSCC;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<DtbOrdt> getPrintList() {
|
||||||
|
return printList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PrintOrderCloseDTO setPrintList(List<DtbOrdt> printList) {
|
||||||
|
this.printList = printList;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -4,6 +4,7 @@ import android.app.Dialog;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.graphics.drawable.ColorDrawable;
|
import android.graphics.drawable.ColorDrawable;
|
||||||
|
import android.text.InputType;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
|
|
||||||
import androidx.databinding.DataBindingUtil;
|
import androidx.databinding.DataBindingUtil;
|
||||||
@ -21,15 +22,14 @@ import it.integry.integrywmsnative.databinding.DialogInputGeneralBinding;
|
|||||||
public class DialogSimpleInputHelper {
|
public class DialogSimpleInputHelper {
|
||||||
|
|
||||||
|
|
||||||
private static Dialog makeBase(Context mContext, String titleText, String defaultTextValue, String hintText, RunnableArgs<String> onPositiveClick, Runnable onNegativeClick){
|
private static Dialog makeBase(Context mContext, String titleText, String defaultTextValue, String hintText, RunnableArgs<String> onPositiveClick, Runnable onNegativeClick, Integer inputType) {
|
||||||
Dialog dialog = new Dialog(mContext);
|
Dialog dialog = new Dialog(mContext);
|
||||||
DialogSimpleInputViewModel viewModel = new DialogSimpleInputViewModel(dialog);
|
DialogSimpleInputViewModel viewModel = new DialogSimpleInputViewModel(dialog);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
DialogInputGeneralBinding mBinding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.dialog_input_general, null, false);
|
DialogInputGeneralBinding mBinding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.dialog_input_general, null, false);
|
||||||
viewModel
|
viewModel
|
||||||
.setOnPositive(()->{
|
.setOnPositive(() -> {
|
||||||
|
|
||||||
onPositiveClick.run(mBinding.generalInput.getText().toString());
|
onPositiveClick.run(mBinding.generalInput.getText().toString());
|
||||||
})
|
})
|
||||||
@ -38,50 +38,79 @@ public class DialogSimpleInputHelper {
|
|||||||
mBinding.setViewmodel(viewModel);
|
mBinding.setViewmodel(viewModel);
|
||||||
|
|
||||||
//Title VIEW
|
//Title VIEW
|
||||||
|
|
||||||
mBinding.titleText.setText(titleText);
|
mBinding.titleText.setText(titleText);
|
||||||
|
|
||||||
if (!UtilityString.isNullOrEmpty(hintText)){
|
if (!UtilityString.isNullOrEmpty(hintText)) {
|
||||||
mBinding.generalInput.setHint(hintText);
|
mBinding.generalInput.setHint(hintText);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!UtilityString.isNullOrEmpty(defaultTextValue)){
|
if (!UtilityString.isNullOrEmpty(defaultTextValue)) {
|
||||||
mBinding.generalInput.setText(defaultTextValue);
|
mBinding.generalInput.setText(defaultTextValue);
|
||||||
}
|
}
|
||||||
|
if (inputType != null) {
|
||||||
|
mBinding.generalInput.setInputType(InputType.TYPE_CLASS_NUMBER);
|
||||||
|
}
|
||||||
//Content View
|
//Content View
|
||||||
dialog.setCancelable(true);
|
dialog.setCancelable(true);
|
||||||
dialog.setCanceledOnTouchOutside(false);
|
dialog.setCanceledOnTouchOutside(false);
|
||||||
dialog.setContentView(mBinding.getRoot());
|
dialog.setContentView(mBinding.getRoot());
|
||||||
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
|
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
|
||||||
UtilityDialog.setTo90PercentWidth(mContext,dialog);
|
UtilityDialog.setTo90PercentWidth(mContext, dialog);
|
||||||
|
|
||||||
return dialog;
|
return dialog;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static Dialog makeInputDialog(Context mContext, String title, RunnableArgs<String> onPositiveClick, Runnable onNegativeClick){
|
public static Dialog makeInputDialog(Context mContext, String title, RunnableArgs<String> onPositiveClick, Runnable onNegativeClick) {
|
||||||
|
|
||||||
return makeBase(mContext,
|
return makeBase(mContext,
|
||||||
title,
|
title,
|
||||||
null,
|
null,
|
||||||
null,
|
null,
|
||||||
onPositiveClick,
|
onPositiveClick,
|
||||||
onNegativeClick);
|
onNegativeClick,
|
||||||
|
null);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static Dialog makeInputDialog(Context mContext, String title, String defaultTextValue, String hintText, RunnableArgs<String> onPositiveClick, Runnable onNegativeClick){
|
public static Dialog makeInputDialog(Context mContext, String title, String defaultTextValue, String hintText, RunnableArgs<String> onPositiveClick, Runnable onNegativeClick) {
|
||||||
|
|
||||||
return makeBase(mContext,
|
return makeBase(mContext,
|
||||||
title,
|
title,
|
||||||
defaultTextValue,
|
defaultTextValue,
|
||||||
hintText,
|
hintText,
|
||||||
onPositiveClick,
|
onPositiveClick,
|
||||||
onNegativeClick);
|
onNegativeClick,
|
||||||
|
null);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Dialog makeInputDialog(Context mContext, String title, RunnableArgs<String> onPositiveClick, Runnable onNegativeClick, Integer inputType) {
|
||||||
|
|
||||||
|
return makeBase(mContext,
|
||||||
|
title,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
onPositiveClick,
|
||||||
|
onNegativeClick,
|
||||||
|
inputType);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static Dialog makeInputDialog(Context mContext, String title, String defaultTextValue, String hintText, RunnableArgs<String> onPositiveClick, Runnable onNegativeClick, Integer inputType) {
|
||||||
|
|
||||||
|
return makeBase(mContext,
|
||||||
|
title,
|
||||||
|
defaultTextValue,
|
||||||
|
hintText,
|
||||||
|
onPositiveClick,
|
||||||
|
onNegativeClick,
|
||||||
|
inputType);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -84,6 +84,7 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
|
|||||||
|
|
||||||
private DialogInputQuantityV2Binding mBindings;
|
private DialogInputQuantityV2Binding mBindings;
|
||||||
private boolean mEnableDataCallback = true;
|
private boolean mEnableDataCallback = true;
|
||||||
|
private boolean mObservablesInitated = false;
|
||||||
|
|
||||||
private int mBarcodeScannerIstanceID;
|
private int mBarcodeScannerIstanceID;
|
||||||
private boolean mFirstStart = true;
|
private boolean mFirstStart = true;
|
||||||
@ -203,7 +204,6 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDismiss(@NonNull DialogInterface dialog) {
|
public void onDismiss(@NonNull DialogInterface dialog) {
|
||||||
|
|
||||||
BarcodeManager.removeCallback(mBarcodeScannerIstanceID);
|
BarcodeManager.removeCallback(mBarcodeScannerIstanceID);
|
||||||
if (mAbort) this.mOnAbort.run();
|
if (mAbort) this.mOnAbort.run();
|
||||||
super.onDismiss(dialog);
|
super.onDismiss(dialog);
|
||||||
@ -224,7 +224,7 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
|
|||||||
this.mViewModel.init(onNumCnfInputChanged);
|
this.mViewModel.init(onNumCnfInputChanged);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void init() {
|
private void initViewObservables() {
|
||||||
|
|
||||||
UtilityObservable.addPropertyChanged(this.currentPartitaMag, (value) -> {
|
UtilityObservable.addPropertyChanged(this.currentPartitaMag, (value) -> {
|
||||||
if (this.mEnableDataCallback) {
|
if (this.mEnableDataCallback) {
|
||||||
@ -281,6 +281,12 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void initViewModelObservables() {
|
||||||
|
|
||||||
final ColorStateList textColorsNumCnf = this.mBindings.inputNumCnfLayout.getEditText().getTextColors();
|
final ColorStateList textColorsNumCnf = this.mBindings.inputNumCnfLayout.getEditText().getTextColors();
|
||||||
final ColorStateList textColorsQtaCnf = this.mBindings.inputQtaCnfLayout.getEditText().getTextColors();
|
final ColorStateList textColorsQtaCnf = this.mBindings.inputQtaCnfLayout.getEditText().getTextColors();
|
||||||
final ColorStateList textColorsQtaTot = this.mBindings.inputQtaTotLayout.getEditText().getTextColors();
|
final ColorStateList textColorsQtaTot = this.mBindings.inputQtaTotLayout.getEditText().getTextColors();
|
||||||
@ -346,6 +352,15 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void init() {
|
||||||
|
if (!mObservablesInitated) {
|
||||||
|
initViewObservables();
|
||||||
|
mObservablesInitated = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
initViewModelObservables();
|
||||||
|
|
||||||
//Init double taps
|
//Init double taps
|
||||||
this.mBindings.inputNumCnfText.setOnClickListener(new DoubleClick(new DoubleClickListener() {
|
this.mBindings.inputNumCnfText.setOnClickListener(new DoubleClick(new DoubleClickListener() {
|
||||||
|
|||||||
@ -110,7 +110,7 @@ public class DialogScanArtView extends BaseDialogFragment implements DialogScanA
|
|||||||
|
|
||||||
var filteredMtbColrList = mtbColrList;
|
var filteredMtbColrList = mtbColrList;
|
||||||
|
|
||||||
if (mtbAart != null) {
|
if (mtbAart != null && filteredMtbColrList != null) {
|
||||||
filteredMtbColrList = Stream.of(filteredMtbColrList)
|
filteredMtbColrList = Stream.of(filteredMtbColrList)
|
||||||
.filter(x -> x.getCodMart().equalsIgnoreCase(mtbAart.getCodMart()))
|
.filter(x -> x.getCodMart().equalsIgnoreCase(mtbAart.getCodMart()))
|
||||||
.toList();
|
.toList();
|
||||||
|
|||||||
5
app/src/main/res/drawable/ic_baseline_pause_24.xml
Normal file
5
app/src/main/res/drawable/ic_baseline_pause_24.xml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<vector android:height="24dp" android:tint="#000000"
|
||||||
|
android:viewportHeight="24" android:viewportWidth="24"
|
||||||
|
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M6,19h4L10,5L6,5v14zM14,5v14h4L18,5h-4z"/>
|
||||||
|
</vector>
|
||||||
5
app/src/main/res/drawable/ic_baseline_person_add_24.xml
Normal file
5
app/src/main/res/drawable/ic_baseline_person_add_24.xml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<vector android:height="24dp" android:tint="#000000"
|
||||||
|
android:viewportHeight="24" android:viewportWidth="24"
|
||||||
|
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M15,12c2.21,0 4,-1.79 4,-4s-1.79,-4 -4,-4 -4,1.79 -4,4 1.79,4 4,4zM6,10L6,7L4,7v3L1,10v2h3v3h2v-3h3v-2L6,10zM15,14c-2.67,0 -8,1.34 -8,4v2h16v-2c0,-2.66 -5.33,-4 -8,-4z"/>
|
||||||
|
</vector>
|
||||||
5
app/src/main/res/drawable/ic_baseline_play_arrow_24.xml
Normal file
5
app/src/main/res/drawable/ic_baseline_play_arrow_24.xml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<vector android:height="24dp" android:tint="#000000"
|
||||||
|
android:viewportHeight="24" android:viewportWidth="24"
|
||||||
|
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M8,5v14l11,-7z"/>
|
||||||
|
</vector>
|
||||||
5
app/src/main/res/drawable/ic_baseline_stop_24.xml
Normal file
5
app/src/main/res/drawable/ic_baseline_stop_24.xml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<vector android:height="24dp" android:tint="#000000"
|
||||||
|
android:viewportHeight="24" android:viewportWidth="24"
|
||||||
|
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<path android:fillColor="@android:color/white" android:pathData="M6,6h12v12H6z"/>
|
||||||
|
</vector>
|
||||||
BIN
app/src/main/res/drawable/ic_production_line.png
Normal file
BIN
app/src/main/res/drawable/ic_production_line.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 827 B |
6
app/src/main/res/drawable/ic_stop_circle_24.xml
Normal file
6
app/src/main/res/drawable/ic_stop_circle_24.xml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<vector android:height="24dp" android:tint="#000000"
|
||||||
|
android:viewportHeight="24" android:viewportWidth="24"
|
||||||
|
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<path android:fillColor="@android:color/white"
|
||||||
|
android:fillType="evenOdd" android:pathData="M8,16h8V8H8V16zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10s10,-4.48 10,-10S17.52,2 12,2L12,2z"/>
|
||||||
|
</vector>
|
||||||
211
app/src/main/res/layout/bottom_sheet_line_actions.xml
Normal file
211
app/src/main/res/layout/bottom_sheet_line_actions.xml
Normal file
@ -0,0 +1,211 @@
|
|||||||
|
<?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"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
|
||||||
|
<data>
|
||||||
|
|
||||||
|
<import type="it.integry.integrywmsnative.R" />
|
||||||
|
|
||||||
|
<import type="it.integry.integrywmsnative.core.utility.UtilityNumber" />
|
||||||
|
|
||||||
|
<import type="android.view.View" />
|
||||||
|
|
||||||
|
<import type="androidx.core.content.ContextCompat" />
|
||||||
|
|
||||||
|
<import type="it.integry.integrywmsnative.core.utility.UtilityString" />
|
||||||
|
|
||||||
|
<import type="it.integry.integrywmsnative.core.utility.UtilityDate" />
|
||||||
|
|
||||||
|
<variable
|
||||||
|
type="it.integry.integrywmsnative.gest.prod_linee_produzione.dialogs.BottomSheetLineAction"
|
||||||
|
name="view" />
|
||||||
|
|
||||||
|
<variable
|
||||||
|
type="it.integry.integrywmsnative.gest.prod_linee_produzione.dto.ProdLineStatusDTO"
|
||||||
|
name="listModel" />
|
||||||
|
|
||||||
|
|
||||||
|
</data>
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:padding="8dp">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:id="@+id/descriptionLayout"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintHorizontal_bias="0.0"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:id="@+id/mtb_grp_container"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:padding="4dp"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Large"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@{listModel.getLabel()}"
|
||||||
|
android:textColor="@{ContextCompat.getColor(context,listModel.isStarted() ? R.color.green_600 : listModel.isPaused() ? R.color.orange_600 : R.color.red_600)}"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
tools:text="L2 - Linea 2"
|
||||||
|
tools:textColor="@color/green_600" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:layout_centerVertical="true"
|
||||||
|
android:background="@drawable/badge_round_corner"
|
||||||
|
android:backgroundTint="@{ContextCompat.getColor(context, listModel.isStarted() ? R.color.green_600 : listModel.isPaused() ? R.color.orange_600 : R.color.red_600)}"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:weightSum="2"
|
||||||
|
tools:backgroundTint="@color/green_600">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
|
android:id="@+id/image"
|
||||||
|
android:layout_width="18dp"
|
||||||
|
android:layout_height="19dp"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:src="@{ContextCompat.getDrawable(context, listModel.isStarted() ? R.drawable.ic_baseline_play_arrow_24 : listModel.isPaused() ? R.drawable.ic_baseline_pause_24 : R.drawable.ic_baseline_stop_24)}"
|
||||||
|
app:tint="@color/white"
|
||||||
|
tools:src="@drawable/ic_baseline_play_arrow_24" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/peso_lordo_collo"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@{listModel.isStarted() ? R.string.in_progress : listModel.isPaused() ? R.string.stand_by : R.string.stopped}"
|
||||||
|
android:textAppearance="@style/AppTheme.NewMaterial.Text.Medium"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textStyle="bold"
|
||||||
|
tools:text="In lavorazione" />
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:id="@+id/lista_ords_container"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:padding="4dp"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:visibility="@{listModel.isStarted() && !UtilityString.isNullOrEmpty(listModel.listaOrd) ? View.VISIBLE : View.GONE}">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginEnd="8dp"
|
||||||
|
android:text="@string/orders_in_progress"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textSize="14sp" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/lista_ords"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@{listModel.listaOrd}"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
tools:text="125|255" />
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="?attr/selectableItemBackground"
|
||||||
|
android:clickable="true"
|
||||||
|
android:focusable="true"
|
||||||
|
android:onClick="@{()->view.onResourcesClicked()}"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:padding="16dp">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:src="@drawable/ic_baseline_person_add_24" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/TextAppearance.Material3.BodyLarge"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="32dp"
|
||||||
|
android:text="@string/ridistribuisci_risorse" />
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="?attr/selectableItemBackground"
|
||||||
|
android:clickable="true"
|
||||||
|
android:focusable="true"
|
||||||
|
android:onClick="@{()->view.onPlayClicked()}"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:padding="16dp">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:src="@drawable/ic_baseline_play_arrow_24" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/TextAppearance.Material3.BodyLarge"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="32dp"
|
||||||
|
android:text="@string/avvia_nuova_produzione" />
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="?attr/selectableItemBackground"
|
||||||
|
android:clickable="true"
|
||||||
|
android:focusable="true"
|
||||||
|
android:onClick="@{()->view.onStopClicked()}"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:padding="16dp">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:src="@drawable/ic_baseline_stop_24" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/TextAppearance.Material3.BodyLarge"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="32dp"
|
||||||
|
android:text="@string/arresta_produzione" />
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
</layout>
|
||||||
121
app/src/main/res/layout/dialog_print_order_sscc_list.xml
Normal file
121
app/src/main/res/layout/dialog_print_order_sscc_list.xml
Normal 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.gest.spedizione.dialogs.print_sscc_list.DialogPrintOrderSSCCListView" />
|
||||||
|
</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_only_new"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:text="@string/action_print_SSCC_only_remaining" />
|
||||||
|
|
||||||
|
<RadioButton
|
||||||
|
android:id="@+id/print_all"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:text="@string/action_print_SSCC_all" />
|
||||||
|
</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>
|
||||||
81
app/src/main/res/layout/dialog_start_production.xml
Normal file
81
app/src/main/res/layout/dialog_start_production.xml
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
<?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">
|
||||||
|
|
||||||
|
<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/avvia_nuova_produzione" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:layout_marginTop="24dp"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/title_text"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
|
||||||
|
<ProgressBar
|
||||||
|
android:id="@+id/progressBar"
|
||||||
|
style="?android:attr/progressBarStyle"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:layout_marginStart="8dp"
|
||||||
|
android:layout_marginEnd="12dp"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
android:text="@string/scan_item"
|
||||||
|
android:textSize="16sp" />
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
|
||||||
|
</androidx.cardview.widget.CardView>
|
||||||
|
</androidx.cardview.widget.CardView>
|
||||||
|
|
||||||
|
|
||||||
|
</layout>
|
||||||
@ -1,12 +1,12 @@
|
|||||||
<?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>
|
||||||
|
|
||||||
<import type="it.integry.integrywmsnative.R" />
|
<import type="it.integry.integrywmsnative.R" />
|
||||||
</data>
|
</data>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout 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"
|
||||||
@ -46,7 +46,7 @@
|
|||||||
android:textColor="@color/colorPrimaryGray"
|
android:textColor="@color/colorPrimaryGray"
|
||||||
android:layout_alignParentEnd="true"
|
android:layout_alignParentEnd="true"
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
tools:text="13 Apr"/>
|
tools:text="13 Apr" />
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
android:id="@+id/num_rows"
|
android:id="@+id/num_rows"
|
||||||
@ -58,7 +58,7 @@
|
|||||||
android:layout_below="@id/doc_description"
|
android:layout_below="@id/doc_description"
|
||||||
android:singleLine="true"
|
android:singleLine="true"
|
||||||
android:ellipsize="end"
|
android:ellipsize="end"
|
||||||
tools:text="0 Articoli"/>
|
tools:text="0 Articoli" />
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|||||||
86
app/src/main/res/layout/fragment_linee_prod.xml
Normal file
86
app/src/main/res/layout/fragment_linee_prod.xml
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
<?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>
|
||||||
|
|
||||||
|
</data>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:background="@color/full_white">
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/lines_main_list"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:scrollbars="vertical"
|
||||||
|
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:id="@+id/lines_list_empty_view"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:alpha="0.3">
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.Guideline
|
||||||
|
android:id="@+id/guideline_empty_top"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
app:layout_constraintGuide_percent="0.1" />
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.Guideline
|
||||||
|
android:id="@+id/guideline_empty_left"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
app:layout_constraintGuide_percent="0.15" />
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.Guideline
|
||||||
|
android:id="@+id/guideline_empty_right"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
app:layout_constraintGuide_percent="0.85" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
android:orientation="vertical"
|
||||||
|
app:layout_constraintEnd_toStartOf="@id/guideline_empty_right"
|
||||||
|
app:layout_constraintStart_toEndOf="@id/guideline_empty_left"
|
||||||
|
app:layout_constraintTop_toTopOf="@id/guideline_empty_top">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
|
android:layout_width="72dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:adjustViewBounds="true"
|
||||||
|
android:src="@drawable/ic_playlist_add_check_24dp" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
android:text="@string/nessuna_linea_disponibile"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textSize="18sp" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
</layout>
|
||||||
228
app/src/main/res/layout/fragment_linee_prod_main_list_model.xml
Normal file
228
app/src/main/res/layout/fragment_linee_prod_main_list_model.xml
Normal file
@ -0,0 +1,228 @@
|
|||||||
|
<?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"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
|
||||||
|
<data>
|
||||||
|
|
||||||
|
<import type="it.integry.integrywmsnative.R" />
|
||||||
|
|
||||||
|
<import type="android.view.View" />
|
||||||
|
|
||||||
|
<import type="it.integry.integrywmsnative.core.utility.UtilityString" />
|
||||||
|
|
||||||
|
<import type="it.integry.integrywmsnative.core.utility.UtilityDate" />
|
||||||
|
|
||||||
|
<import type="android.text.Html" />
|
||||||
|
|
||||||
|
<import type="androidx.core.content.ContextCompat" />
|
||||||
|
|
||||||
|
<variable
|
||||||
|
name="listModel"
|
||||||
|
type="it.integry.integrywmsnative.gest.prod_linee_produzione.dto.ProdLineStatusDTO" />
|
||||||
|
|
||||||
|
</data>
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="4dp"
|
||||||
|
android:layout_marginEnd="4dp"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
android:background="?attr/selectableItemBackground"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:padding="0dp">
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:padding="10dp"
|
||||||
|
android:weightSum="2">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:id="@+id/mtb_grp_container"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
style="@style/AppTheme.NewMaterial.Text.Large"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@{listModel.getLabel()}"
|
||||||
|
android:textColor="@{ContextCompat.getColor(context,listModel.isStarted() ? R.color.green_600 : listModel.isPaused() ? R.color.orange_600 : R.color.red_600)}"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
tools:text="L2 - Linea 2"
|
||||||
|
tools:textColor="@color/green_600" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:layout_centerVertical="true"
|
||||||
|
android:background="@drawable/badge_round_corner"
|
||||||
|
android:backgroundTint="@{ContextCompat.getColor(context, listModel.isStarted() ? R.color.green_600 : listModel.isPaused() ? R.color.orange_600 : R.color.red_600)}"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:weightSum="2"
|
||||||
|
tools:backgroundTint="@color/green_600">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
|
android:id="@+id/image"
|
||||||
|
android:layout_width="18dp"
|
||||||
|
android:layout_height="19dp"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:src="@{ContextCompat.getDrawable(context, listModel.isStarted() ? R.drawable.ic_baseline_play_arrow_24 : listModel.isPaused() ? R.drawable.ic_baseline_pause_24 : R.drawable.ic_baseline_stop_24)}"
|
||||||
|
app:tint="@color/white"
|
||||||
|
tools:src="@drawable/ic_baseline_play_arrow_24" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/peso_lordo_collo"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@{listModel.isStarted() ? R.string.in_progress : listModel.isPaused() ? R.string.stand_by : R.string.stopped}"
|
||||||
|
android:textAppearance="@style/AppTheme.NewMaterial.Text.Medium"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textStyle="bold"
|
||||||
|
tools:text="In lavorazione" />
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:id="@+id/resources_container"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:visibility="@{listModel.isStarted() ? View.VISIBLE : View.GONE}">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginEnd="8dp"
|
||||||
|
android:text="@string/risorse_impostate"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textSize="14sp" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/resources"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@{listModel.getRisorseLabel()}"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
tools:text="5/25" />
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:id="@+id/lista_ords_container"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:visibility="@{listModel.isStarted() && !UtilityString.isNullOrEmpty(listModel.listaOrd) ? View.VISIBLE : View.GONE}">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginEnd="8dp"
|
||||||
|
android:text="@string/orders_in_progress"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textSize="14sp" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/lista_ords"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@{listModel.listaOrd}"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
tools:text="125|255" />
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:id="@+id/production_start_cotnainer"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:visibility="@{listModel.isStarted() ? View.VISIBLE : View.GONE}">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginEnd="8dp"
|
||||||
|
android:text="@string/inizio_produzione"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textSize="14sp" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/production_start"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@{UtilityDate.formatDate(listModel.datetimeStart, UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH)}"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
tools:text="05/07/2022 14:00:00" />
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:id="@+id/production_stop_cotnainer"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:visibility="@{listModel.isStarted() ? View.GONE : View.VISIBLE}">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginEnd="8dp"
|
||||||
|
android:text="@string/ultima_produzione"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textSize="14sp" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/production_stop"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@{UtilityDate.formatDate(listModel.datetimeEnd, UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH)}"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
tools:text="05/07/2022 23:59:59" />
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
</layout>
|
||||||
@ -8,6 +8,7 @@
|
|||||||
<string name="waiting">Attendere</string>
|
<string name="waiting">Attendere</string>
|
||||||
<string name="loading">Caricamento</string>
|
<string name="loading">Caricamento</string>
|
||||||
<string name="completed">Completato</string>
|
<string name="completed">Completato</string>
|
||||||
|
<string name="success">Successo</string>
|
||||||
<string name="ord_acq_testata"><![CDATA[N° <b>%s</b> del <b>%s</b>]]></string>
|
<string name="ord_acq_testata"><![CDATA[N° <b>%s</b> del <b>%s</b>]]></string>
|
||||||
<string name="ord_ven_testata"><![CDATA[N° <b>%s</b> del <b>%s</b>]]></string>
|
<string name="ord_ven_testata"><![CDATA[N° <b>%s</b> del <b>%s</b>]]></string>
|
||||||
<string name="ord_testata"><![CDATA[N° <b>%s</b> del <b>%s</b>]]></string>
|
<string name="ord_testata"><![CDATA[N° <b>%s</b> del <b>%s</b>]]></string>
|
||||||
@ -267,6 +268,9 @@
|
|||||||
|
|
||||||
<string name="recovering_data">Recupero dati</string>
|
<string name="recovering_data">Recupero dati</string>
|
||||||
<string name="wait_a_moment">Attendi qualche istante</string>
|
<string name="wait_a_moment">Attendi qualche istante</string>
|
||||||
|
<string name="title_dynamic_vgalimenti">VGAlimenti personalizzazione</string>
|
||||||
|
<string name="title_dynamic__base">Base personalizzazione</string>
|
||||||
|
<string name="title_dynamic_ime">IME personalizzazione</string>
|
||||||
|
|
||||||
|
|
||||||
<string name="check_in_printer">Stampante Accettazione</string>
|
<string name="check_in_printer">Stampante Accettazione</string>
|
||||||
@ -277,6 +281,10 @@
|
|||||||
|
|
||||||
<string name="placement">Posizionamento</string>
|
<string name="placement">Posizionamento</string>
|
||||||
<string name="message_print_packing_list">Vuoi procedere con la stampa di una %s</string>
|
<string name="message_print_packing_list">Vuoi procedere con la stampa di una %s</string>
|
||||||
|
<string name="message_print_packing_list_on_close_order">Vuoi stampare le packing list degli ordini chiusi?</string>
|
||||||
|
<string name="message_print_SSCC_list_on_close_order">Vuoi stampare le etichette SSCC degli ordini chiusi?</string>
|
||||||
|
<string name="action_print_SSCC_only_remaining">Stampa solo le nuove etichette</string>
|
||||||
|
<string name="action_print_SSCC_all">Stampa tutte le etichette</string>
|
||||||
<string name="button_create_new_ul">Crea nuova UL</string>
|
<string name="button_create_new_ul">Crea nuova UL</string>
|
||||||
<string name="button_view_basket_ul">Visualizza basket</string>
|
<string name="button_view_basket_ul">Visualizza basket</string>
|
||||||
<string name="title_open_lu">Apri UL</string>
|
<string name="title_open_lu">Apri UL</string>
|
||||||
@ -383,4 +391,17 @@
|
|||||||
<string name="newly_inserted_prod">Nuovo articolo in griglia</string>
|
<string name="newly_inserted_prod">Nuovo articolo in griglia</string>
|
||||||
<string name="doc_interni_select_row_to_edit">Seleziona la riga da modificare</string>
|
<string name="doc_interni_select_row_to_edit">Seleziona la riga da modificare</string>
|
||||||
<string name="incoming_cnf">Colli in arrivo</string>
|
<string name="incoming_cnf">Colli in arrivo</string>
|
||||||
|
<string name="nav_prod_linee_title">Linee di produzione</string>
|
||||||
|
<string name="no_line_available">Nessuna linea disponibile</string>
|
||||||
|
<string name="in_progress">In lavorazione</string>
|
||||||
|
<string name="stand_by">In pausa</string>
|
||||||
|
<string name="stopped">Ferma</string>
|
||||||
|
<string name="risorse_impostate">Risorse allocate</string>
|
||||||
|
<string name="orders_in_progress">Ordini in lavorazione</string>
|
||||||
|
<string name="ridistribuisci_risorse">Assegna risorse</string>
|
||||||
|
<string name="avvia_nuova_produzione">Avvia nuova produzione</string>
|
||||||
|
<string name="arresta_produzione">Arresta produzione</string>
|
||||||
|
<string name="inizio_produzione">Inizio produzione</string>
|
||||||
|
<string name="ultima_produzione">Ultima produzione</string>
|
||||||
|
<string name="nessuna_linea_disponibile">Nessuna linea disponibile</string>
|
||||||
</resources>
|
</resources>
|
||||||
@ -3,46 +3,53 @@
|
|||||||
|
|
||||||
|
|
||||||
<style name="Button.PrimaryOutline" parent="Widget.MaterialComponents.Button.OutlinedButton">
|
<style name="Button.PrimaryOutline" parent="Widget.MaterialComponents.Button.OutlinedButton">
|
||||||
<!-- <item name="fontFamily">@font/product_sans_regular</item> <!– target android sdk versions < 26 and > 14 if theme other than AppCompat –>-->
|
<!-- <item name="fontFamily">@font/product_sans_regular</item> <!– target android sdk versions < 26 and > 14 if theme other than AppCompat –>-->
|
||||||
<!-- <item name="android:textStyle">bold</item>-->
|
<!-- <item name="android:textStyle">bold</item>-->
|
||||||
<!-- <item name="android:textAllCaps">false</item>-->
|
<!-- <item name="android:textAllCaps">false</item>-->
|
||||||
<!-- <item name="android:paddingTop">8dp</item>-->
|
<!-- <item name="android:paddingTop">8dp</item>-->
|
||||||
<!-- <item name="android:paddingBottom">8dp</item>-->
|
<!-- <item name="android:paddingBottom">8dp</item>-->
|
||||||
<item name="iconTint">@color/colorPrimary</item>
|
<item name="iconTint">@color/colorPrimary</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="Button.PrimaryFull" parent="Widget.MaterialComponents.Button">
|
<style name="Button.PrimaryFull" parent="Widget.MaterialComponents.Button">
|
||||||
<!-- <item name="fontFamily">@font/product_sans_regular</item> <!– target android sdk versions < 26 and > 14 if theme other than AppCompat –>-->
|
<!-- <item name="fontFamily">@font/product_sans_regular</item> <!– target android sdk versions < 26 and > 14 if theme other than AppCompat –>-->
|
||||||
<!-- <item name="android:textStyle">bold</item>-->
|
<!-- <item name="android:textStyle">bold</item>-->
|
||||||
<!-- <item name="android:textAllCaps">false</item>-->
|
<!-- <item name="android:textAllCaps">false</item>-->
|
||||||
<!-- <item name="android:paddingTop">8dp</item>-->
|
<!-- <item name="android:paddingTop">8dp</item>-->
|
||||||
<!-- <item name="android:paddingBottom">8dp</item>-->
|
<!-- <item name="android:paddingBottom">8dp</item>-->
|
||||||
<item name="backgroundTint">@color/colorPrimary</item>
|
<item name="backgroundTint">@color/colorPrimary</item>
|
||||||
<item name="iconTint">@android:color/white</item>
|
<item name="iconTint">@android:color/white</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<style name="Button.DangerOutline" parent="Widget.MaterialComponents.Button.OutlinedButton">
|
<style name="Button.DangerOutline" parent="Widget.MaterialComponents.Button.OutlinedButton">
|
||||||
<!-- <item name="fontFamily">@font/product_sans_regular</item> <!– target android sdk versions < 26 and > 14 if theme other than AppCompat –>-->
|
<!-- <item name="fontFamily">@font/product_sans_regular</item> <!– target android sdk versions < 26 and > 14 if theme other than AppCompat –>-->
|
||||||
<!-- <item name="android:textStyle">bold</item>-->
|
<!-- <item name="android:textStyle">bold</item>-->
|
||||||
<!-- <item name="android:textAllCaps">false</item>-->
|
<!-- <item name="android:textAllCaps">false</item>-->
|
||||||
<item name="android:textColor">@color/red_400</item>
|
<item name="android:textColor">@color/red_400</item>
|
||||||
<!-- <item name="android:paddingTop">8dp</item>-->
|
<!-- <item name="android:paddingTop">8dp</item>-->
|
||||||
<!-- <item name="android:paddingBottom">8dp</item>-->
|
<!-- <item name="android:paddingBottom">8dp</item>-->
|
||||||
<item name="backgroundTint">@android:color/white</item>
|
<item name="backgroundTint">@android:color/white</item>
|
||||||
<item name="iconTint">@color/red_400</item>
|
<item name="iconTint">@color/red_400</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="Button.DangerFull" parent="Widget.MaterialComponents.Button.UnelevatedButton">
|
<style name="Button.DangerFull" parent="Widget.MaterialComponents.Button.UnelevatedButton">
|
||||||
<!-- <item name="fontFamily">@font/product_sans_regular</item> <!– target android sdk versions < 26 and > 14 if theme other than AppCompat –>-->
|
<!-- <item name="fontFamily">@font/product_sans_regular</item> <!– target android sdk versions < 26 and > 14 if theme other than AppCompat –>-->
|
||||||
<!-- <item name="android:textStyle">bold</item>-->
|
<!-- <item name="android:textStyle">bold</item>-->
|
||||||
<!-- <item name="android:textAllCaps">false</item>-->
|
<!-- <item name="android:textAllCaps">false</item>-->
|
||||||
<!-- <item name="android:paddingTop">8dp</item>-->
|
<!-- <item name="android:paddingTop">8dp</item>-->
|
||||||
<!-- <item name="android:paddingBottom">8dp</item>-->
|
<!-- <item name="android:paddingBottom">8dp</item>-->
|
||||||
<item name="backgroundTint">@color/red_400</item>
|
<item name="backgroundTint">@color/red_400</item>
|
||||||
<item name="iconTint">@android:color/white</item>
|
<item name="iconTint">@android:color/white</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<style name="Button.DangerText" parent="Widget.MaterialComponents.Button.TextButton">
|
||||||
|
<!-- <item name="fontFamily">@font/product_sans_regular</item> <!– target android sdk versions < 26 and > 14 if theme other than AppCompat –>-->
|
||||||
|
<!-- <item name="android:textStyle">bold</item>-->
|
||||||
|
<!-- <item name="android:textAllCaps">false</item>-->
|
||||||
|
<!-- <item name="android:paddingTop">8dp</item>-->
|
||||||
|
<!-- <item name="android:paddingBottom">8dp</item>-->
|
||||||
|
<item name="android:textColor">@color/red_400</item>
|
||||||
|
<item name="iconTint">@color/red_400</item>
|
||||||
|
</style>
|
||||||
</resources>
|
</resources>
|
||||||
@ -26,8 +26,9 @@
|
|||||||
<item name="nav_prod_ordine_lavorazione" type="id" />
|
<item name="nav_prod_ordine_lavorazione" type="id" />
|
||||||
<item name="nav_prod_recupero_materiale" type="id" />
|
<item name="nav_prod_recupero_materiale" type="id" />
|
||||||
<item name="nav_pv_ordini_acquisto" type="id" />
|
<item name="nav_pv_ordini_acquisto" type="id" />
|
||||||
<item name="nav_pv_ordini_acquisto_trasmessi" type="id"/>
|
<item name="nav_pv_ordini_acquisto_trasmessi" type="id" />
|
||||||
<item name="nav_prod_rientro_merce" type="id"/>
|
<item name="nav_prod_rientro_merce" type="id" />
|
||||||
|
<item name="nav_prod_linee" type="id" />
|
||||||
<item name="nav_settings" type="id" />
|
<item name="nav_settings" type="id" />
|
||||||
<item name="nav_logout" type="id" />
|
<item name="nav_logout" type="id" />
|
||||||
<item name="nav_pv_doc_interni" type="id" />
|
<item name="nav_pv_doc_interni" type="id" />
|
||||||
|
|||||||
@ -45,6 +45,7 @@
|
|||||||
<string name="waiting">Waiting</string>
|
<string name="waiting">Waiting</string>
|
||||||
<string name="loading">Loading</string>
|
<string name="loading">Loading</string>
|
||||||
<string name="completed">Completed</string>
|
<string name="completed">Completed</string>
|
||||||
|
<string name="success">Success</string>
|
||||||
<string name="search">Search…</string>
|
<string name="search">Search…</string>
|
||||||
<string name="login">Login</string>
|
<string name="login">Login</string>
|
||||||
<string name="permission_request_message">Permissions are required for app to work properly</string>
|
<string name="permission_request_message">Permissions are required for app to work properly</string>
|
||||||
@ -283,6 +284,10 @@
|
|||||||
|
|
||||||
<string name="placement">Placement</string>
|
<string name="placement">Placement</string>
|
||||||
<string name="message_print_packing_list">Do you want print a %s?</string>
|
<string name="message_print_packing_list">Do you want print a %s?</string>
|
||||||
|
<string name="message_print_packing_list_on_close_order">Do you want print the packing lists of the closed orders?</string>
|
||||||
|
<string name="message_print_SSCC_list_on_close_order">Do you want print the SSCC labels for the closed orders?</string>
|
||||||
|
<string name="action_print_SSCC_only_remaining">Print only new labels</string>
|
||||||
|
<string name="action_print_SSCC_all">Print all labels</string>
|
||||||
<string name="button_create_new_ul">Create new LU</string>
|
<string name="button_create_new_ul">Create new LU</string>
|
||||||
<string name="button_view_basket_ul">View basket</string>
|
<string name="button_view_basket_ul">View basket</string>
|
||||||
<string name="title_open_lu">Open LU</string>
|
<string name="title_open_lu">Open LU</string>
|
||||||
@ -392,4 +397,17 @@
|
|||||||
<string name="newly_inserted_prod">Newly added product</string>
|
<string name="newly_inserted_prod">Newly added product</string>
|
||||||
<string name="doc_interni_select_row_to_edit">Select document row to edit</string>
|
<string name="doc_interni_select_row_to_edit">Select document row to edit</string>
|
||||||
<string name="incoming_cnf">Incoming packages</string>
|
<string name="incoming_cnf">Incoming packages</string>
|
||||||
|
<string name="nav_prod_linee_title">Production lines</string>
|
||||||
|
<string name="no_line_available">No line available</string>
|
||||||
|
<string name="in_progress">in progress</string>
|
||||||
|
<string name="stand_by">Stand by</string>
|
||||||
|
<string name="stopped">Stopped</string>
|
||||||
|
<string name="risorse_impostate">Resources set</string>
|
||||||
|
<string name="orders_in_progress">Orders in progress</string>
|
||||||
|
<string name="ridistribuisci_risorse">Set resources</string>
|
||||||
|
<string name="avvia_nuova_produzione">Start production</string>
|
||||||
|
<string name="arresta_produzione">Stop production</string>
|
||||||
|
<string name="inizio_produzione">Production start</string>
|
||||||
|
<string name="ultima_produzione">Last production</string>
|
||||||
|
<string name="nessuna_linea_disponibile">No production line available</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user