Finish v1.40.07(424)
This commit is contained in:
commit
37f83cd642
@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services'
|
||||
|
||||
android {
|
||||
|
||||
def appVersionCode = 421
|
||||
def appVersionName = '1.40.04'
|
||||
def appVersionCode = 424
|
||||
def appVersionName = '1.40.07'
|
||||
|
||||
signingConfigs {
|
||||
release {
|
||||
|
||||
@ -116,7 +116,7 @@ public class MenuConfiguration extends BaseMenuConfiguration {
|
||||
.setTitleText(R.string.prod_ordine_lavorazione_title_fragment)
|
||||
.setTitleIcon(R.drawable.ic_dashboard_prod_picking_lavorazione)
|
||||
.setDrawerIcon(R.drawable.ic_black_external)
|
||||
.setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.PRODUZIONE, GestioneEnum.LAVORAZIONE, -1, SettingsManager.iDB().isFlagShowInfo() ? DialogInfoSituazioneArticoloView.class : null)))
|
||||
.setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.PRODUZIONE, GestioneEnum.LAVORAZIONE, -1, SettingsManager.iDB().isFlagProduzioneShowInfo() ? DialogInfoSituazioneArticoloView.class : null)))
|
||||
|
||||
.addItem(new MenuItem()
|
||||
.setID(R.id.nav_free_lav_picking)
|
||||
|
||||
@ -238,8 +238,11 @@ public class Converters {
|
||||
@Override
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
BigDecimal value = null;
|
||||
if (!UtilityString.isNullOrEmpty(s.toString()))
|
||||
value = new BigDecimal(s.toString());
|
||||
String newValueString = s.toString().trim();
|
||||
|
||||
if (!UtilityString.isNullOrEmpty(newValueString))
|
||||
value = new BigDecimal(newValueString);
|
||||
|
||||
observableBigDecimal.set(value);
|
||||
}
|
||||
};
|
||||
@ -247,7 +250,7 @@ public class Converters {
|
||||
view.addTextChangedListener(watcher);
|
||||
}
|
||||
BigDecimal newValue = observableBigDecimal.get();
|
||||
BigDecimal viewValue = view.getText().toString().trim().length() > 0 ? new BigDecimal(view.getText().toString()) : null;
|
||||
BigDecimal viewValue = !view.getText().toString().trim().isEmpty() ? new BigDecimal(view.getText().toString()) : null;
|
||||
|
||||
if (!UtilityBigDecimal.equalsTo(viewValue, newValue)) {
|
||||
view.setText(UtilityNumber.decimalToString(newValue));
|
||||
|
||||
@ -2,6 +2,7 @@ package it.integry.integrywmsnative.core.model;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityNumber;
|
||||
@ -41,6 +42,7 @@ public class MvwSitArtUdcDetInventario {
|
||||
private String codJfas;
|
||||
private MtbAart mtbAart;
|
||||
private Integer numOrd;
|
||||
private Date dataOrd;
|
||||
|
||||
public String getGestione() {
|
||||
return gestione;
|
||||
@ -317,4 +319,13 @@ public class MvwSitArtUdcDetInventario {
|
||||
.setPesoLordoKg(getPesoLordoKg())
|
||||
.setUntMis(getUntMis());
|
||||
}
|
||||
|
||||
public Date getDataOrd() {
|
||||
return dataOrd;
|
||||
}
|
||||
|
||||
public MvwSitArtUdcDetInventario setDataOrd(Date dataOrd) {
|
||||
this.dataOrd = dataOrd;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
package it.integry.integrywmsnative.core.rest.consumers;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
@ -10,6 +12,7 @@ import javax.inject.Singleton;
|
||||
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.model.DtbOrdt;
|
||||
import it.integry.integrywmsnative.core.model.MtbPartitaMag;
|
||||
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||
@ -86,4 +89,20 @@ public class MagazzinoRESTConsumer extends _BaseRESTConsumer {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void retrievePartitaMag(String partitaMag, String codMart, RunnableArgs<MtbPartitaMag> onComplete, RunnableArgs<Exception> onFailed){
|
||||
MagazzinoRESTConsumerService service = RESTBuilder.getService(MagazzinoRESTConsumerService.class);
|
||||
service.retrievePartitaMag(codMart, partitaMag)
|
||||
.enqueue(new Callback<>() {
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<ServiceRESTResponse<MtbPartitaMag>> call, @NonNull Response<ServiceRESTResponse<MtbPartitaMag>> response) {
|
||||
analyzeAnswer(response, "retrievePartitaMag", onComplete, onFailed);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(@NonNull Call<ServiceRESTResponse<MtbPartitaMag>> call, @NonNull Throwable t) {
|
||||
onFailed.run(new Exception(t));
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,11 +3,14 @@ package it.integry.integrywmsnative.core.rest.consumers;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.core.model.DtbOrdt;
|
||||
import it.integry.integrywmsnative.core.model.MtbPartitaMag;
|
||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||
import it.integry.integrywmsnative.gest.contab_doc_interni.dto.SaveDTO;
|
||||
import retrofit2.Call;
|
||||
import retrofit2.http.Body;
|
||||
import retrofit2.http.GET;
|
||||
import retrofit2.http.POST;
|
||||
import retrofit2.http.Query;
|
||||
|
||||
public interface MagazzinoRESTConsumerService {
|
||||
|
||||
@ -17,4 +20,8 @@ public interface MagazzinoRESTConsumerService {
|
||||
@POST("SM2SaveTerminalino")
|
||||
Call<List<ServiceRESTResponse<DtbOrdt>>> saveOrdine(@Body SaveDTO saveDTO);
|
||||
|
||||
@GET("wms/partita-magazzino/retrievePartitaMag")
|
||||
Call<ServiceRESTResponse<MtbPartitaMag>> retrievePartitaMag(@Query("codMart") String codMart,
|
||||
@Query("partitaMag") String partitaMag);
|
||||
|
||||
}
|
||||
|
||||
@ -60,20 +60,21 @@ public class DBSettingsModel {
|
||||
private String commessaMagazzino;
|
||||
private boolean flagGeneraDocumentoSpedizione = false;
|
||||
private boolean flagIsInventarioCacheEnabled = false;
|
||||
private boolean flagAskPrintUlAccettazioneBolla = false;
|
||||
private boolean flagAskTipoColloAccettazioneBolla = false;
|
||||
private boolean flagAskVersamentoAutomaticoAccettazioneBolla = false;
|
||||
private boolean flagCanAddUnknownItemsAccettazioneBolla = false;
|
||||
private boolean flagCanAddUnknownBarcodesAccettazioneBolla = false;
|
||||
private boolean flagEnableFastPickAccettazioneBolla = false;
|
||||
private boolean flagDisableMandatoryTracciabilitaAccettazioneBolla = false;
|
||||
private boolean flagAllowULRecoverAccettazioneBolla = true;
|
||||
private boolean flagOverflowQuantityWarning = false;
|
||||
private boolean flagAccettazioneBollaAskPrintUl = false;
|
||||
private boolean flagAccettazioneBollaAskTipoCollo = false;
|
||||
private boolean flagAccettazioneBollaAskVersamentoAutomatico = false;
|
||||
private boolean flagAccettazioneBollaCanAddUnknownItems = false;
|
||||
private boolean flagAccettazioneBollaCanAddUnknownBarcodes = false;
|
||||
private boolean flagAccettazioneBollaEnableFastPick = false;
|
||||
private boolean flagAccettazioneBollaDisableMandatoryTracciabilita = false;
|
||||
private boolean flagAccettazioneBollaAllowULRecover = true;
|
||||
private boolean flagSpedizioneOverflowQuantityWarning = false;
|
||||
private String viewPosizioni;
|
||||
private boolean flagDeleteRowOnClose = false;
|
||||
private boolean flagAllowBarcodeFornitore = false;
|
||||
private boolean flagShowInfo = false;
|
||||
private boolean flagAccettazioneDeleteRowOnClose = false;
|
||||
private boolean flagAccettazioneAllowBarcodeFornitore = false;
|
||||
private boolean flagProduzioneShowInfo = false;
|
||||
private boolean flagAccettazioneBollaUseQtaOrd = true;
|
||||
private boolean flagWarningNewPartitaMag = false;
|
||||
|
||||
public boolean isFlagSpedizioneEnableFakeGiacenza() {
|
||||
return flagSpedizioneEnableFakeGiacenza;
|
||||
@ -490,84 +491,84 @@ public class DBSettingsModel {
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isFlagAskPrintUlAccettazioneBolla() {
|
||||
return flagAskPrintUlAccettazioneBolla;
|
||||
public boolean isFlagAccettazioneBollaAskPrintUl() {
|
||||
return flagAccettazioneBollaAskPrintUl;
|
||||
}
|
||||
|
||||
public DBSettingsModel setFlagAskPrintUlAccettazioneBolla(boolean flagAskPrintUlAccettazioneBolla) {
|
||||
this.flagAskPrintUlAccettazioneBolla = flagAskPrintUlAccettazioneBolla;
|
||||
public DBSettingsModel setFlagAccettazioneBollaAskPrintUl(boolean flagAccettazioneBollaAskPrintUl) {
|
||||
this.flagAccettazioneBollaAskPrintUl = flagAccettazioneBollaAskPrintUl;
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isFlagAskTipoColloAccettazioneBolla() {
|
||||
return flagAskTipoColloAccettazioneBolla;
|
||||
public boolean isFlagAccettazioneBollaAskTipoCollo() {
|
||||
return flagAccettazioneBollaAskTipoCollo;
|
||||
}
|
||||
|
||||
public DBSettingsModel setFlagAskTipoColloAccettazioneBolla(boolean flagAskTipoColloAccettazioneBolla) {
|
||||
this.flagAskTipoColloAccettazioneBolla = flagAskTipoColloAccettazioneBolla;
|
||||
public DBSettingsModel setFlagAccettazioneBollaAskTipoCollo(boolean flagAccettazioneBollaAskTipoCollo) {
|
||||
this.flagAccettazioneBollaAskTipoCollo = flagAccettazioneBollaAskTipoCollo;
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isFlagAskVersamentoAutomaticoAccettazioneBolla() {
|
||||
return flagAskVersamentoAutomaticoAccettazioneBolla;
|
||||
public boolean isFlagAccettazioneBollaAskVersamentoAutomatico() {
|
||||
return flagAccettazioneBollaAskVersamentoAutomatico;
|
||||
}
|
||||
|
||||
public DBSettingsModel setFlagAskVersamentoAutomaticoAccettazioneBolla(boolean flagAskVersamentoAutomaticoAccettazioneBolla) {
|
||||
this.flagAskVersamentoAutomaticoAccettazioneBolla = flagAskVersamentoAutomaticoAccettazioneBolla;
|
||||
public DBSettingsModel setFlagAccettazioneBollaAskVersamentoAutomatico(boolean flagAccettazioneBollaAskVersamentoAutomatico) {
|
||||
this.flagAccettazioneBollaAskVersamentoAutomatico = flagAccettazioneBollaAskVersamentoAutomatico;
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isFlagCanAddUnknownItemsAccettazioneBolla() {
|
||||
return flagCanAddUnknownItemsAccettazioneBolla;
|
||||
public boolean isFlagAccettazioneBollaCanAddUnknownItems() {
|
||||
return flagAccettazioneBollaCanAddUnknownItems;
|
||||
}
|
||||
|
||||
public DBSettingsModel setFlagCanAddUnknownItemsAccettazioneBolla(boolean flagCanAddUnknownItemsAccettazioneBolla) {
|
||||
this.flagCanAddUnknownItemsAccettazioneBolla = flagCanAddUnknownItemsAccettazioneBolla;
|
||||
public DBSettingsModel setFlagAccettazioneBollaCanAddUnknownItems(boolean flagAccettazioneBollaCanAddUnknownItems) {
|
||||
this.flagAccettazioneBollaCanAddUnknownItems = flagAccettazioneBollaCanAddUnknownItems;
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isFlagCanAddUnknownBarcodesAccettazioneBolla() {
|
||||
return flagCanAddUnknownBarcodesAccettazioneBolla;
|
||||
public boolean isFlagAccettazioneBollaCanAddUnknownBarcodes() {
|
||||
return flagAccettazioneBollaCanAddUnknownBarcodes;
|
||||
}
|
||||
|
||||
public DBSettingsModel setFlagCanAddUnknownBarcodesAccettazioneBolla(boolean flagCanAddUnknownBarcodesAccettazioneBolla) {
|
||||
this.flagCanAddUnknownBarcodesAccettazioneBolla = flagCanAddUnknownBarcodesAccettazioneBolla;
|
||||
public DBSettingsModel setFlagAccettazioneBollaCanAddUnknownBarcodes(boolean flagAccettazioneBollaCanAddUnknownBarcodes) {
|
||||
this.flagAccettazioneBollaCanAddUnknownBarcodes = flagAccettazioneBollaCanAddUnknownBarcodes;
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isFlagEnableFastPickAccettazioneBolla() {
|
||||
return flagEnableFastPickAccettazioneBolla;
|
||||
public boolean isFlagAccettazioneBollaEnableFastPick() {
|
||||
return flagAccettazioneBollaEnableFastPick;
|
||||
}
|
||||
|
||||
public DBSettingsModel setFlagEnableFastPickAccettazioneBolla(boolean flagEnableFastPickAccettazioneBolla) {
|
||||
this.flagEnableFastPickAccettazioneBolla = flagEnableFastPickAccettazioneBolla;
|
||||
public DBSettingsModel setFlagAccettazioneBollaEnableFastPick(boolean flagAccettazioneBollaEnableFastPick) {
|
||||
this.flagAccettazioneBollaEnableFastPick = flagAccettazioneBollaEnableFastPick;
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isFlagDisableMandatoryTracciabilitaAccettazioneBolla() {
|
||||
return flagDisableMandatoryTracciabilitaAccettazioneBolla;
|
||||
public boolean isFlagAccettazioneBollaDisableMandatoryTracciabilita() {
|
||||
return flagAccettazioneBollaDisableMandatoryTracciabilita;
|
||||
}
|
||||
|
||||
public DBSettingsModel setFlagDisableMandatoryTracciabilitaAccettazioneBolla(boolean flagDisableMandatoryTracciabilitaAccettazioneBolla) {
|
||||
this.flagDisableMandatoryTracciabilitaAccettazioneBolla = flagDisableMandatoryTracciabilitaAccettazioneBolla;
|
||||
public DBSettingsModel setFlagAccettazioneBollaDisableMandatoryTracciabilita(boolean flagAccettazioneBollaDisableMandatoryTracciabilita) {
|
||||
this.flagAccettazioneBollaDisableMandatoryTracciabilita = flagAccettazioneBollaDisableMandatoryTracciabilita;
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isFlagAllowULRecoverAccettazioneBolla() {
|
||||
return flagAllowULRecoverAccettazioneBolla;
|
||||
public boolean isFlagAccettazioneBollaAllowULRecover() {
|
||||
return flagAccettazioneBollaAllowULRecover;
|
||||
}
|
||||
|
||||
public DBSettingsModel setFlagAllowULRecoverAccettazioneBolla(boolean flagAllowULRecoverAccettazioneBolla) {
|
||||
this.flagAllowULRecoverAccettazioneBolla = flagAllowULRecoverAccettazioneBolla;
|
||||
public DBSettingsModel setFlagAccettazioneBollaAllowULRecover(boolean flagAccettazioneBollaAllowULRecover) {
|
||||
this.flagAccettazioneBollaAllowULRecover = flagAccettazioneBollaAllowULRecover;
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isFlagOverflowQuantityWarning() {
|
||||
return flagOverflowQuantityWarning;
|
||||
public boolean isFlagSpedizioneOverflowQuantityWarning() {
|
||||
return flagSpedizioneOverflowQuantityWarning;
|
||||
}
|
||||
|
||||
public DBSettingsModel setFlagOverflowQuantityWarning(boolean flagOverflowQuantityWarning) {
|
||||
this.flagOverflowQuantityWarning = flagOverflowQuantityWarning;
|
||||
public DBSettingsModel setFlagSpedizioneOverflowQuantityWarning(boolean flagSpedizioneOverflowQuantityWarning) {
|
||||
this.flagSpedizioneOverflowQuantityWarning = flagSpedizioneOverflowQuantityWarning;
|
||||
return this;
|
||||
}
|
||||
|
||||
@ -589,30 +590,30 @@ public class DBSettingsModel {
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isFlagDeleteRowOnClose() {
|
||||
return flagDeleteRowOnClose;
|
||||
public boolean isFlagAccettazioneDeleteRowOnClose() {
|
||||
return flagAccettazioneDeleteRowOnClose;
|
||||
}
|
||||
|
||||
public DBSettingsModel setFlagDeleteRowOnClose(boolean flagDeleteRowOnClose) {
|
||||
this.flagDeleteRowOnClose = flagDeleteRowOnClose;
|
||||
public DBSettingsModel setFlagAccettazioneDeleteRowOnClose(boolean flagAccettazioneDeleteRowOnClose) {
|
||||
this.flagAccettazioneDeleteRowOnClose = flagAccettazioneDeleteRowOnClose;
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isFlagAllowBarcodeFornitore() {
|
||||
return flagAllowBarcodeFornitore;
|
||||
public boolean isFlagAccettazioneAllowBarcodeFornitore() {
|
||||
return flagAccettazioneAllowBarcodeFornitore;
|
||||
}
|
||||
|
||||
public DBSettingsModel setFlagAllowBarcodeFornitore(boolean flagAllowBarcodeFornitore) {
|
||||
this.flagAllowBarcodeFornitore = flagAllowBarcodeFornitore;
|
||||
public DBSettingsModel setFlagAccettazioneAllowBarcodeFornitore(boolean flagAccettazioneAllowBarcodeFornitore) {
|
||||
this.flagAccettazioneAllowBarcodeFornitore = flagAccettazioneAllowBarcodeFornitore;
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isFlagShowInfo() {
|
||||
return flagShowInfo;
|
||||
public boolean isFlagProduzioneShowInfo() {
|
||||
return flagProduzioneShowInfo;
|
||||
}
|
||||
|
||||
public DBSettingsModel setFlagShowInfo(boolean flagShowInfo) {
|
||||
this.flagShowInfo = flagShowInfo;
|
||||
public DBSettingsModel setFlagProduzioneShowInfo(boolean flagProduzioneShowInfo) {
|
||||
this.flagProduzioneShowInfo = flagProduzioneShowInfo;
|
||||
return this;
|
||||
}
|
||||
|
||||
@ -623,4 +624,13 @@ public class DBSettingsModel {
|
||||
public void setFlagAccettazioneBollaUseQtaOrd(boolean flagAccettazioneBollaUseQtaOrd) {
|
||||
this.flagAccettazioneBollaUseQtaOrd = flagAccettazioneBollaUseQtaOrd;
|
||||
}
|
||||
|
||||
public boolean isFlagWarningNewPartitaMag() {
|
||||
return flagWarningNewPartitaMag;
|
||||
}
|
||||
|
||||
public DBSettingsModel setFlagWarningNewPartitaMag(boolean flagWarningNewPartitaMag) {
|
||||
this.flagWarningNewPartitaMag = flagWarningNewPartitaMag;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@ -246,7 +246,7 @@ public class SettingsManager {
|
||||
.setGestName("PICKING")
|
||||
.setSection("ACCETTAZIONE")
|
||||
.setKeySection("FLAG_DELETE_ROW_ON_CLOSE")
|
||||
.setSetter(dbSettingsModelIstance::setFlagDeleteRowOnClose));
|
||||
.setSetter(dbSettingsModelIstance::setFlagAccettazioneDeleteRowOnClose));
|
||||
stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
|
||||
.setGestName("PICKING")
|
||||
.setSection("SPEDIZIONE")
|
||||
@ -287,7 +287,7 @@ public class SettingsManager {
|
||||
.setGestName("PICKING")
|
||||
.setSection("PRODUZIONE")
|
||||
.setKeySection("FLAG_SHOW_INFO")
|
||||
.setSetter(dbSettingsModelIstance::setFlagShowInfo)
|
||||
.setSetter(dbSettingsModelIstance::setFlagProduzioneShowInfo)
|
||||
.setDefaultValue(false));
|
||||
stbGestSetupReaderList.add(new StbGestSetupReader<>(String.class)
|
||||
.setGestName("PICKING")
|
||||
@ -449,61 +449,61 @@ public class SettingsManager {
|
||||
.setGestName("PICKING")
|
||||
.setSection("ACCETTAZIONE_BOLLA")
|
||||
.setKeySection("FLAG_ASK_PRINT_UL")
|
||||
.setSetter(dbSettingsModelIstance::setFlagAskPrintUlAccettazioneBolla)
|
||||
.setSetter(dbSettingsModelIstance::setFlagAccettazioneBollaAskPrintUl)
|
||||
.setDefaultValue(false));
|
||||
stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
|
||||
.setGestName("PICKING")
|
||||
.setSection("ACCETTAZIONE_BOLLA")
|
||||
.setKeySection("FLAG_ASK_TIPO_COLLO")
|
||||
.setSetter(dbSettingsModelIstance::setFlagAskTipoColloAccettazioneBolla)
|
||||
.setSetter(dbSettingsModelIstance::setFlagAccettazioneBollaAskTipoCollo)
|
||||
.setDefaultValue(false));
|
||||
stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
|
||||
.setGestName("PICKING")
|
||||
.setSection("ACCETTAZIONE_BOLLA")
|
||||
.setKeySection("FLAG_ASK_VERSAMENTO_AUTOMATICO")
|
||||
.setSetter(dbSettingsModelIstance::setFlagAskVersamentoAutomaticoAccettazioneBolla)
|
||||
.setSetter(dbSettingsModelIstance::setFlagAccettazioneBollaAskVersamentoAutomatico)
|
||||
.setDefaultValue(false));
|
||||
stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
|
||||
.setGestName("PICKING")
|
||||
.setSection("ACCETTAZIONE_BOLLA")
|
||||
.setKeySection("FLAG_CAN_ADD_UNKNOWN_ITEMS")
|
||||
.setSetter(dbSettingsModelIstance::setFlagCanAddUnknownItemsAccettazioneBolla)
|
||||
.setSetter(dbSettingsModelIstance::setFlagAccettazioneBollaCanAddUnknownItems)
|
||||
.setDefaultValue(false));
|
||||
stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
|
||||
.setGestName("PICKING")
|
||||
.setSection("ACCETTAZIONE_BOLLA")
|
||||
.setKeySection("FLAG_CAN_ADD_UNKNOWN_BARCODES")
|
||||
.setSetter(dbSettingsModelIstance::setFlagCanAddUnknownBarcodesAccettazioneBolla)
|
||||
.setSetter(dbSettingsModelIstance::setFlagAccettazioneBollaCanAddUnknownBarcodes)
|
||||
.setDefaultValue(false));
|
||||
stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
|
||||
.setGestName("PICKING")
|
||||
.setSection("ACCETTAZIONE_BOLLA")
|
||||
.setKeySection("FLAG_ENABLE_FAST_PICK")
|
||||
.setSetter(dbSettingsModelIstance::setFlagEnableFastPickAccettazioneBolla)
|
||||
.setSetter(dbSettingsModelIstance::setFlagAccettazioneBollaEnableFastPick)
|
||||
.setDefaultValue(false));
|
||||
stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
|
||||
.setGestName("PICKING")
|
||||
.setSection("ACCETTAZIONE_BOLLA")
|
||||
.setKeySection("FLAG_DISABLE_MANDATORY_TRACCIABILITA")
|
||||
.setSetter(dbSettingsModelIstance::setFlagDisableMandatoryTracciabilitaAccettazioneBolla)
|
||||
.setSetter(dbSettingsModelIstance::setFlagAccettazioneBollaDisableMandatoryTracciabilita)
|
||||
.setDefaultValue(false));
|
||||
stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
|
||||
.setGestName("PICKING")
|
||||
.setSection("ACCETTAZIONE_BOLLA")
|
||||
.setKeySection("FLAG_ALLOW_UL_RECOVER")
|
||||
.setSetter(dbSettingsModelIstance::setFlagAllowULRecoverAccettazioneBolla)
|
||||
.setSetter(dbSettingsModelIstance::setFlagAccettazioneBollaAllowULRecover)
|
||||
.setDefaultValue(true));
|
||||
stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
|
||||
.setGestName("PICKING")
|
||||
.setSection("SPEDIZIONE")
|
||||
.setKeySection("FLAG_OVERFLOW_QUANTITY_WARNING")
|
||||
.setSetter(dbSettingsModelIstance::setFlagOverflowQuantityWarning)
|
||||
.setSetter(dbSettingsModelIstance::setFlagSpedizioneOverflowQuantityWarning)
|
||||
.setDefaultValue(false));
|
||||
stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
|
||||
.setGestName("PICKING")
|
||||
.setSection("ACCETTAZIONE")
|
||||
.setKeySection("FLAG_ALLOW_BARCODE_FORNITORE")
|
||||
.setSetter(dbSettingsModelIstance::setFlagAllowBarcodeFornitore)
|
||||
.setSetter(dbSettingsModelIstance::setFlagAccettazioneAllowBarcodeFornitore)
|
||||
.setDefaultValue(false));
|
||||
stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
|
||||
.setGestName("PICKING")
|
||||
@ -511,6 +511,12 @@ public class SettingsManager {
|
||||
.setKeySection("FLAG_USE_QTA_ORD")
|
||||
.setSetter(dbSettingsModelIstance::setFlagAccettazioneBollaUseQtaOrd)
|
||||
.setDefaultValue(true));
|
||||
stbGestSetupReaderList.add(new StbGestSetupReader<>(Boolean.class)
|
||||
.setGestName("PICKING")
|
||||
.setSection("SETUP")
|
||||
.setKeySection("FLAG_WARNING_NEW_PARTITA_MAG")
|
||||
.setSetter(dbSettingsModelIstance::setFlagWarningNewPartitaMag)
|
||||
.setDefaultValue(false));
|
||||
|
||||
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
||||
|
||||
|
||||
@ -15,7 +15,7 @@ import java.util.regex.Pattern;
|
||||
public class UtilityString {
|
||||
|
||||
public static boolean isNullOrEmpty(String stringToCheck){
|
||||
return stringToCheck == null || stringToCheck.trim().length() == 0;
|
||||
return stringToCheck == null || stringToCheck.trim().isEmpty();
|
||||
}
|
||||
|
||||
public static String isNull(String stringToCheck, String alternativeString){
|
||||
@ -23,7 +23,7 @@ public class UtilityString {
|
||||
}
|
||||
|
||||
public static String empty2null(String stringToCheck) {
|
||||
return (stringToCheck == null || stringToCheck.trim().length() == 0) ? null : stringToCheck.trim();
|
||||
return (stringToCheck == null || stringToCheck.trim().isEmpty()) ? null : stringToCheck.trim();
|
||||
}
|
||||
|
||||
public static String capitalizeWords(String capString){
|
||||
|
||||
@ -221,7 +221,7 @@ public class AccettazioneBollaPickingActivity extends BaseActivity implements Ac
|
||||
fabPopupMenu.setForceShowIcon(true);
|
||||
fabPopupMenu.getMenuInflater().inflate(R.menu.accettazione_ordine_inevaso_fab_menu, fabPopupMenu.getMenu());
|
||||
|
||||
fabPopupMenu.getMenu().findItem(R.id.show_created_ul).setVisible(SettingsManager.iDB().isFlagAllowULRecoverAccettazioneBolla());
|
||||
fabPopupMenu.getMenu().findItem(R.id.show_created_ul).setVisible(SettingsManager.iDB().isFlagAccettazioneBollaAllowULRecover());
|
||||
|
||||
fabPopupMenu.setOnMenuItemClickListener(item -> {
|
||||
int itemId = item.getItemId();
|
||||
@ -526,7 +526,7 @@ public class AccettazioneBollaPickingActivity extends BaseActivity implements Ac
|
||||
.setCanPartitaMagBeChanged(canPartitaMagBeChanged)
|
||||
.setCanLUBeClosed(true)
|
||||
.setCanOverflowOrderQuantity(canOverflowQuantity)
|
||||
.setDisableTracciabilitaCheck(SettingsManager.iDB().isFlagDisableMandatoryTracciabilitaAccettazioneBolla());
|
||||
.setDisableTracciabilitaCheck(SettingsManager.iDB().isFlagAccettazioneBollaDisableMandatoryTracciabilita());
|
||||
|
||||
if (!mDialogInputQuantityV2View.isVisible())
|
||||
mDialogInputQuantityV2View
|
||||
|
||||
@ -356,7 +356,7 @@ public class AccettazioneBollaPickingViewModel {
|
||||
|
||||
|
||||
private void manageUnknownBarcode(String barcode, Runnable onComplete) {
|
||||
if (SettingsManager.iDB().isFlagCanAddUnknownBarcodesAccettazioneBolla()) {
|
||||
if (SettingsManager.iDB().isFlagAccettazioneBollaCanAddUnknownBarcodes()) {
|
||||
//TODO: Implementare popup che richiede delle note aggiuntive sul barcode scansionato
|
||||
this.sendOnUnknownBarcodeScanned(barcode, notes -> {
|
||||
this.manageDispatchBollaRow(new PickingObjectDTO()
|
||||
@ -376,7 +376,7 @@ public class AccettazioneBollaPickingViewModel {
|
||||
|
||||
|
||||
private void manageNoArtFound(MtbAart mtbAart, PickDataDTO pickDataDTO) {
|
||||
if (SettingsManager.iDB().isFlagCanAddUnknownItemsAccettazioneBolla()) {
|
||||
if (SettingsManager.iDB().isFlagAccettazioneBollaCanAddUnknownItems()) {
|
||||
|
||||
this.manageDispatchBollaRow(new PickingObjectDTO()
|
||||
.setMtbAart(mtbAart)
|
||||
@ -410,7 +410,7 @@ public class AccettazioneBollaPickingViewModel {
|
||||
}
|
||||
|
||||
private void manageInfoAggiuntiveRequest(RunnableArgss<String, MtbTCol> onComplete) {
|
||||
if (!SettingsManager.iDB().isFlagAskTipoColloAccettazioneBolla()) {
|
||||
if (!SettingsManager.iDB().isFlagAccettazioneBollaAskTipoCollo()) {
|
||||
onComplete.run(null, null);
|
||||
return;
|
||||
}
|
||||
@ -428,7 +428,7 @@ public class AccettazioneBollaPickingViewModel {
|
||||
}
|
||||
}
|
||||
|
||||
if (SettingsManager.iDB().isFlagEnableFastPickAccettazioneBolla()) {
|
||||
if (SettingsManager.iDB().isFlagAccettazioneBollaEnableFastPick()) {
|
||||
this.saveNewRow(pickingObjectDTO,
|
||||
BigDecimal.ONE,
|
||||
pickingObjectDTO.getMtbAart().getQtaCnf(),
|
||||
@ -808,7 +808,7 @@ public class AccettazioneBollaPickingViewModel {
|
||||
|
||||
private void manageVersamentoAutomatico(Runnable onComplete) {
|
||||
|
||||
if (!SettingsManager.iDB().isFlagAskVersamentoAutomaticoAccettazioneBolla()) {
|
||||
if (!SettingsManager.iDB().isFlagAccettazioneBollaAskVersamentoAutomatico()) {
|
||||
onComplete.run();
|
||||
return;
|
||||
}
|
||||
@ -831,7 +831,7 @@ public class AccettazioneBollaPickingViewModel {
|
||||
}
|
||||
|
||||
private void managePrintCollo(Runnable onComplete) {
|
||||
if (!mCurrentMtbColt.getDisablePrint() || !SettingsManager.iDB().isFlagAskPrintUlAccettazioneBolla()) {
|
||||
if (!mCurrentMtbColt.getDisablePrint() || !SettingsManager.iDB().isFlagAccettazioneBollaAskPrintUl()) {
|
||||
onComplete.run();
|
||||
return;
|
||||
}
|
||||
|
||||
@ -214,7 +214,7 @@ public class AccettazioneOrdiniPickingViewModel {
|
||||
//dell'etichetta anonima
|
||||
this.executeEtichettaAnonimaNotOpenedLU(barcodeScanDTO, onComplete);
|
||||
} else {
|
||||
if (SettingsManager.iDB().isFlagAllowBarcodeFornitore() && UtilityBarcode.isEtichetta128(barcodeScanDTO)) {
|
||||
if (SettingsManager.iDB().isFlagAccettazioneAllowBarcodeFornitore() && UtilityBarcode.isEtichetta128(barcodeScanDTO)) {
|
||||
this.executeSSCCFornitore(barcodeScanDTO, onComplete);
|
||||
} else {
|
||||
this.processBarcodeNotOpenedLU(barcodeScanDTO, null, onComplete);
|
||||
@ -815,7 +815,7 @@ public class AccettazioneOrdiniPickingViewModel {
|
||||
}
|
||||
|
||||
private void calculateQtaDaEvadere() {
|
||||
if (SettingsManager.iDB().isFlagDeleteRowOnClose()) {
|
||||
if (SettingsManager.iDB().isFlagAccettazioneDeleteRowOnClose()) {
|
||||
for (PickingObjectDTO pickingObjectDTO : this.mPickingList.getValue()) {
|
||||
List<MtbColr> withdrawMtbColrs = pickingObjectDTO.getWithdrawMtbColrs();
|
||||
BigDecimal qtaEvasa = BigDecimal.ZERO;
|
||||
|
||||
@ -10,7 +10,6 @@ import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingL
|
||||
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
|
||||
import it.integry.integrywmsnative.core.model.MvwSitArtUdcDetInventario;
|
||||
import it.integry.integrywmsnative.core.services.inventario.InventarioService;
|
||||
import it.integry.integrywmsnative.gest.prod_riposizionamento_da_prod.dto.ArtsInGiacenzaDTO;
|
||||
|
||||
public class ArticoliInGiacenzaViewModel {
|
||||
private final InventarioService mInventarioService;
|
||||
|
||||
@ -125,7 +125,12 @@ public class DocInterniEditFormViewModel {
|
||||
}
|
||||
|
||||
public void loadArticoloByCodMartOrBarcode(String codMart) {
|
||||
var matchedArt = Stream.of(productsList)
|
||||
if(productsList == null) {
|
||||
this.sendError(new NoResultFromCodMartException(codMart));
|
||||
return;
|
||||
}
|
||||
|
||||
var matchedArt = productsList.stream()
|
||||
.filter(x -> x.getCodMart().equalsIgnoreCase(codMart) ||
|
||||
x.getBarcode().contains(codMart))
|
||||
.findFirst()
|
||||
|
||||
@ -529,9 +529,9 @@ public class PickingLiberoViewModel {
|
||||
this.sendArtSelectionRequest(mtbColrsToPick, mtbAart, pickedAarts -> {
|
||||
List<MtbColr> destNewMtbColr = new ArrayList<>();
|
||||
|
||||
if (pickedAarts.size() > 0) {
|
||||
if (!pickedAarts.isEmpty()) {
|
||||
askQuantities(pickedAarts.iterator(), destNewMtbColr, () -> {
|
||||
if (destNewMtbColr.size() > 0) {
|
||||
if (!destNewMtbColr.isEmpty()) {
|
||||
MtbColt clonedTestata = (MtbColt) this.mCurrentMtbColt.clone();
|
||||
clonedTestata.setOperation(CommonModelConsts.OPERATION.UPDATE);
|
||||
|
||||
@ -563,8 +563,6 @@ public class PickingLiberoViewModel {
|
||||
|
||||
clonedTestata.setMtbColr(mtbColrObservableField);
|
||||
|
||||
this.sendOnLoadingStarted();
|
||||
|
||||
new Thread(() -> {
|
||||
mColliMagazzinoRESTConsumer.saveCollo(clonedTestata, value -> {
|
||||
for (int i = 0; i < mtbColrObservableField.size(); i++) {
|
||||
|
||||
@ -2,19 +2,27 @@ package it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.filters.FilterGruppoMercLayoutView;
|
||||
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.filters.FilterCommessaLayoutView;
|
||||
import it.integry.integrywmsnative.ui.filter_chips.FilterChipDTO;
|
||||
import it.integry.integrywmsnative.ui.filter_chips.filters.FilterNumeroOrdineLayoutView;
|
||||
|
||||
public class ProdFabbisognoLineeProdBindings {
|
||||
public static final int NUM_ORD_FILTER_ID = 0;
|
||||
public static final int MGRP_FILTER_ID = 1;
|
||||
|
||||
public static final HashMap<Integer, FilterChipDTO> AVAILABLE_FILTERS = new HashMap<>() {{
|
||||
|
||||
put(NUM_ORD_FILTER_ID, new FilterChipDTO()
|
||||
.setID(NUM_ORD_FILTER_ID)
|
||||
.setPosizione(0)
|
||||
.setFilterChipText("Numero ordine")
|
||||
.setFilterLayoutView(new FilterNumeroOrdineLayoutView()));
|
||||
|
||||
put(MGRP_FILTER_ID, new FilterChipDTO()
|
||||
.setID(MGRP_FILTER_ID)
|
||||
.setPosizione(1)
|
||||
.setFilterChipText("Gruppo merceologico")
|
||||
.setFilterLayoutView(new FilterGruppoMercLayoutView()));
|
||||
}};
|
||||
}
|
||||
|
||||
@ -22,6 +22,7 @@ import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
import javax.inject.Inject;
|
||||
@ -33,8 +34,13 @@ import it.integry.integrywmsnative.core.di.BindableBoolean;
|
||||
import it.integry.integrywmsnative.core.expansion.BaseFragment;
|
||||
import it.integry.integrywmsnative.core.expansion.OnGeneralChangedCallback;
|
||||
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
||||
import it.integry.integrywmsnative.core.model.JtbComt;
|
||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||
import it.integry.integrywmsnative.core.model.MtbGrup;
|
||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.CommessaRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
|
||||
import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO;
|
||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
||||
@ -44,6 +50,7 @@ import it.integry.integrywmsnative.databinding.FragmentProdFabbisognoLineeListSi
|
||||
import it.integry.integrywmsnative.databinding.FragmentProdFabbisognoLineeProdBinding;
|
||||
import it.integry.integrywmsnative.databinding.FragmentProdFabbisognoLineeTitleItemBinding;
|
||||
import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.OrdineAccettazioneInevasoDTO;
|
||||
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.filters.FilterGruppoMercLayoutView;
|
||||
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.ui.MainListProdOrdineProduzioneElencoClienteListModel;
|
||||
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.ui.MainListProdOrdineProduzioneElencoListModel;
|
||||
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dto.GroupTitleModel;
|
||||
@ -68,11 +75,17 @@ public class ProdFabbisognoLineeProdFragment extends BaseFragment implements ITi
|
||||
|
||||
@Inject
|
||||
ProdFabbisognoLineeProdViewModel mViewModel;
|
||||
@Inject
|
||||
ArticoloRESTConsumer mArticoloRESTConsumer;
|
||||
@Inject
|
||||
CommessaRESTConsumer mCommessaRESTConsumer;
|
||||
|
||||
private final ArrayList<Runnable> mOnPreDestroyList = new ArrayList<>();
|
||||
private final ObservableArrayList<Object> mProdFabbisognoItemModel = new ObservableArrayList<>();
|
||||
private FragmentProdFabbisognoLineeProdBinding mBindings;
|
||||
private ProdFabbisognoLineeProdFilterViewModel mFilterViewModel = new ProdFabbisognoLineeProdFilterViewModel();
|
||||
private List<MtbGrup> mtbGrupCache;
|
||||
private List<JtbComt> jtbComtCache;
|
||||
|
||||
public ProdFabbisognoLineeProdFragment() {
|
||||
// Required empty public constructor
|
||||
@ -120,6 +133,11 @@ public class ProdFabbisognoLineeProdFragment extends BaseFragment implements ITi
|
||||
mViewModel.getOrdiniList().observe(getViewLifecycleOwner(), data -> {
|
||||
mBindings.emptyView.setVisibility(data == null || data.isEmpty() ? View.VISIBLE : View.GONE);
|
||||
|
||||
this.onLoadingStarted();
|
||||
this.initMtbGrupsCache(() -> {
|
||||
this.initJtbComtCache(this::onLoadingEnded);
|
||||
});
|
||||
|
||||
mFilterViewModel.init(mViewModel.getOrdiniList().getValue());
|
||||
this.refreshList(null);
|
||||
});
|
||||
@ -211,34 +229,67 @@ public class ProdFabbisognoLineeProdFragment extends BaseFragment implements ITi
|
||||
};
|
||||
|
||||
mFilterViewModel.getCurrentNumOrdsPredicate().addOnPropertyChangedCallback(onPredicateChanged);
|
||||
mFilterViewModel.getCurrentGruppoMercPredicate().addOnPropertyChangedCallback(onPredicateChanged);
|
||||
|
||||
for (var filterChipDTO : ProdFabbisognoLineeProdBindings.AVAILABLE_FILTERS.entrySet()) {
|
||||
List<FilterChipDTO> filterList = Stream.of(ProdFabbisognoLineeProdBindings.AVAILABLE_FILTERS.entrySet())
|
||||
.map(Map.Entry::getValue)
|
||||
.sortBy(FilterChipDTO::getPosizione)
|
||||
.toList();
|
||||
|
||||
for (FilterChipDTO filterChipDTO : filterList) {
|
||||
|
||||
FilterChipView filterChipView = new FilterChipView(
|
||||
requireActivity(),
|
||||
filterChipDTO.getValue().getFilterChipText(),
|
||||
v -> initBottomSheetDialogFilter(filterChipDTO.getValue()));
|
||||
filterChipDTO.getFilterChipText(),
|
||||
v -> initBottomSheetDialogFilter(filterChipDTO));
|
||||
|
||||
if (filterChipDTO.getKey() == ProdFabbisognoLineeProdBindings.NUM_ORD_FILTER_ID) {
|
||||
mFilterViewModel.getCurrentNumOrdsPredicate().addOnPropertyChangedCallback(new OnGeneralChangedCallback() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (mFilterViewModel.getCurrentNumOrdsPredicate().get() == null) {
|
||||
filterChipView.disableCloseIcon();
|
||||
switch (filterChipDTO.getID()) {
|
||||
case ProdFabbisognoLineeProdBindings.NUM_ORD_FILTER_ID -> {
|
||||
mFilterViewModel.getCurrentNumOrdsPredicate().addOnPropertyChangedCallback(new OnGeneralChangedCallback() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (mFilterViewModel.getCurrentNumOrdsPredicate().get() == null) {
|
||||
filterChipView.disableCloseIcon();
|
||||
|
||||
mBindings.filterChipsGroup.removeView(filterChipView);
|
||||
mBindings.filterChipsGroup.addView(filterChipView);
|
||||
mBindings.filterChips.smoothScrollTo(0, 0);
|
||||
} else {
|
||||
filterChipView.enableCloseIcon();
|
||||
mBindings.filterChipsGroup.removeView(filterChipView);
|
||||
mBindings.filterChipsGroup.addView(filterChipView);
|
||||
mBindings.filterChips.smoothScrollTo(0, 0);
|
||||
} else {
|
||||
filterChipView.enableCloseIcon();
|
||||
|
||||
mBindings.filterChipsGroup.removeView(filterChipView);
|
||||
mBindings.filterChipsGroup.addView(filterChipView, 0);
|
||||
mBindings.filterChips.smoothScrollTo(0, 0);
|
||||
mBindings.filterChipsGroup.removeView(filterChipView);
|
||||
mBindings.filterChipsGroup.addView(filterChipView, 0);
|
||||
mBindings.filterChips.smoothScrollTo(0, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
filterChipView.setOnResetClicked(() -> mFilterViewModel.getCurrentNumOrdsPredicate().set(null));
|
||||
});
|
||||
filterChipView.setOnResetClicked(() -> mFilterViewModel.getCurrentNumOrdsPredicate().set(null));
|
||||
}
|
||||
|
||||
case ProdFabbisognoLineeProdBindings.MGRP_FILTER_ID -> {
|
||||
mFilterViewModel.getCurrentGruppoMercPredicate().addOnPropertyChangedCallback(new OnGeneralChangedCallback() {
|
||||
@Override
|
||||
public void run() {
|
||||
if (mFilterViewModel.getCurrentGruppoMercPredicate().get() == null) {
|
||||
filterChipView.disableCloseIcon();
|
||||
|
||||
mBindings.filterChipsGroup.removeView(filterChipView);
|
||||
mBindings.filterChipsGroup.addView(filterChipView);
|
||||
mBindings.filterChips.smoothScrollTo(0, 0);
|
||||
} else {
|
||||
filterChipView.enableCloseIcon();
|
||||
|
||||
mBindings.filterChipsGroup.removeView(filterChipView);
|
||||
mBindings.filterChipsGroup.addView(filterChipView, 0);
|
||||
mBindings.filterChips.smoothScrollTo(0, 0);
|
||||
}
|
||||
}
|
||||
});
|
||||
filterChipView.setOnResetClicked(() -> {
|
||||
mFilterViewModel.setGruppoMercFilter(null);
|
||||
mFilterViewModel.getCurrentGruppoMercPredicate().set(null);
|
||||
});
|
||||
}
|
||||
}
|
||||
this.mBindings.filterChipsGroup.addView(filterChipView);
|
||||
}
|
||||
@ -253,16 +304,24 @@ public class ProdFabbisognoLineeProdFragment extends BaseFragment implements ITi
|
||||
var filterLayoutView = filterChipDTO
|
||||
.getFilterLayoutView();
|
||||
|
||||
if (filterChipDTO.getID() == ProdFabbisognoLineeProdBindings.NUM_ORD_FILTER_ID) {
|
||||
((FilterNumeroOrdineLayoutView) filterLayoutView)
|
||||
.setAllNumOrds(mFilterViewModel.getAllNumOrds())
|
||||
.setAvailableNumOrds(mFilterViewModel.getAvailableNumOrds())
|
||||
.setOnFilterApplied(mFilterViewModel::setNumOrdFilter)
|
||||
.setPreSelectedNumOrds(Stream.of(Objects.requireNonNull(mViewModel.getOrdiniList().getValue()))
|
||||
.filter(mFilterViewModel.getCurrentNumOrdsPredicate().get() == null ?
|
||||
x -> false : Objects.requireNonNull(mFilterViewModel.getCurrentNumOrdsPredicate().get()))
|
||||
.map(x -> x.getOrdineLavorazioneDTO().getNumOrd())
|
||||
.toList());
|
||||
switch (filterChipDTO.getID()) {
|
||||
case ProdFabbisognoLineeProdBindings.NUM_ORD_FILTER_ID ->
|
||||
((FilterNumeroOrdineLayoutView) filterLayoutView)
|
||||
.setAllNumOrds(mFilterViewModel.getAllNumOrds())
|
||||
.setAvailableNumOrds(mFilterViewModel.getAvailableNumOrds())
|
||||
.setOnFilterApplied(mFilterViewModel::setNumOrdFilter)
|
||||
.setPreSelectedNumOrds(Stream.of(Objects.requireNonNull(mViewModel.getOrdiniList().getValue()))
|
||||
.filter(mFilterViewModel.getCurrentNumOrdsPredicate().get() == null ?
|
||||
x -> false : Objects.requireNonNull(mFilterViewModel.getCurrentNumOrdsPredicate().get()))
|
||||
.map(x -> x.getOrdineLavorazioneDTO().getNumOrd())
|
||||
.toList());
|
||||
|
||||
case ProdFabbisognoLineeProdBindings.MGRP_FILTER_ID ->
|
||||
((FilterGruppoMercLayoutView) filterLayoutView)
|
||||
.setAllGroupMerc(mFilterViewModel.getAllGruppoMerc(mtbGrupCache))
|
||||
.setAvailableGroupMerc(mFilterViewModel.getAvailableGruppoMerc(mtbGrupCache))
|
||||
.setOnFilterApplied(mFilterViewModel::setGruppoMercFilter)
|
||||
.setPreSelectedGroupMerc(mFilterViewModel.getSelectedMtbGrup());
|
||||
}
|
||||
|
||||
if (!filterLayoutView.isAdded())
|
||||
@ -270,6 +329,44 @@ public class ProdFabbisognoLineeProdFragment extends BaseFragment implements ITi
|
||||
|
||||
}
|
||||
|
||||
private void initMtbGrupsCache(Runnable onComplete) {
|
||||
var codMgrpArts = Stream.of(Objects.requireNonNull(this.mViewModel.getOrdiniList().getValue()))
|
||||
.flatMap(x -> Stream.of(x.getOrdineLavorazioneDTO().getAvailableClassMerc() != null ?
|
||||
x.getOrdineLavorazioneDTO().getAvailableClassMerc() : new ArrayList<>()))
|
||||
.map(OrdineLavorazioneDTO.AvailableClassMerc::getCodMgrp)
|
||||
.withoutNulls()
|
||||
.distinct()
|
||||
.toList();
|
||||
|
||||
this.mArticoloRESTConsumer.getArtsGroups(codMgrpArts, mtbGrupCache -> {
|
||||
this.mtbGrupCache = mtbGrupCache;
|
||||
onComplete.run();
|
||||
}, this::onError);
|
||||
}
|
||||
|
||||
private void initJtbComtCache(Runnable onComplete) {
|
||||
if (this.mViewModel.getOrdiniList().getValue() == null) {
|
||||
this.jtbComtCache = new ArrayList<>();
|
||||
onComplete.run();
|
||||
return;
|
||||
}
|
||||
var jtbComts = Stream.of(Objects.requireNonNull(this.mViewModel.getOrdiniList().getValue()))
|
||||
.flatMap(x -> Stream.of(x.getOrdineLavorazioneDTO().getCodJcom()))
|
||||
.distinct().withoutNulls()
|
||||
.toList();
|
||||
|
||||
if (jtbComts.isEmpty()) {
|
||||
this.jtbComtCache = new ArrayList<>();
|
||||
onComplete.run();
|
||||
return;
|
||||
}
|
||||
|
||||
this.mCommessaRESTConsumer.getJtbComts(jtbComts, jtbComtCache -> {
|
||||
this.jtbComtCache = jtbComtCache;
|
||||
onComplete.run();
|
||||
}, this::onError);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
for (Runnable onPreDestroy : mOnPreDestroyList) {
|
||||
@ -305,11 +402,18 @@ public class ProdFabbisognoLineeProdFragment extends BaseFragment implements ITi
|
||||
.max(Date::compareTo)
|
||||
.orElse(null);
|
||||
|
||||
this.mViewModel.loadFabbisogno(ordini, codMdep, dataInizio, dataFine, this::startPickingActivity);
|
||||
List<MtbGrup> listMtbGrup = Stream.of(mProdFabbisognoItemModel)
|
||||
.filter(x -> x instanceof ProdFabbisognoLineeItemModelDto && ((ProdFabbisognoLineeItemModelDto) x).selected.get())
|
||||
.flatMap(x -> Stream.of(((ProdFabbisognoLineeItemModelDto) x).getSelectedMtbGrup()))
|
||||
.toList();
|
||||
|
||||
this.mViewModel.loadFabbisogno(ordini, codMdep, dataInizio, dataFine, onCompleteData -> {
|
||||
startPickingActivity(listMtbGrup, onCompleteData);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
private void startPickingActivity(List<ProdFabbisognoLineeProdDTO> fabbisognoList) {
|
||||
private void startPickingActivity(List<MtbGrup> listMtbGrup, List<ProdFabbisognoLineeProdDTO> fabbisognoList) {
|
||||
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
||||
|
||||
String ordini = UtilityDB.listValueToString(Stream.of(mProdFabbisognoItemModel)
|
||||
@ -317,8 +421,13 @@ public class ProdFabbisognoLineeProdFragment extends BaseFragment implements ITi
|
||||
.map(x -> ((ProdFabbisognoLineeItemModelDto) x).getOrdineLavorazioneDTO().getNumOrd().toString())
|
||||
.toList());
|
||||
|
||||
List<SitArtOrdDTO> sitArtOrdDTOS = Stream.of(fabbisognoList)
|
||||
.map(x -> {
|
||||
Stream<ProdFabbisognoLineeProdDTO> streamSitArtOrd = Stream.of(fabbisognoList);
|
||||
|
||||
streamSitArtOrd = listMtbGrup != null && !listMtbGrup.isEmpty() ?
|
||||
streamSitArtOrd.filter(x -> Stream.of(listMtbGrup).anyMatch(y -> y.getCodMgrp().equalsIgnoreCase(x.getCodMgrp()))) :
|
||||
streamSitArtOrd;
|
||||
|
||||
List<SitArtOrdDTO> sitArtOrdDTOS = streamSitArtOrd.map(x -> {
|
||||
SitArtOrdDTO sitArtOrdDTO = new SitArtOrdDTO()
|
||||
.setCodMart(x.getCodMart())
|
||||
.setCodMdep(codMdep)
|
||||
|
||||
@ -1,12 +1,17 @@
|
||||
package it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dto;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
||||
import it.integry.integrywmsnative.core.model.MtbGrup;
|
||||
import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO;
|
||||
|
||||
public class ProdFabbisognoLineeItemModelDto {
|
||||
|
||||
public BindableBoolean selected = new BindableBoolean();
|
||||
public OrdineLavorazioneDTO ordineLavorazioneDTO;
|
||||
List<MtbGrup> selectedMtbGrup = new ArrayList<>();
|
||||
|
||||
public BindableBoolean getSelected() {
|
||||
return selected;
|
||||
@ -20,4 +25,13 @@ public class ProdFabbisognoLineeItemModelDto {
|
||||
this.ordineLavorazioneDTO = ordineLavorazioneDTO;
|
||||
return this;
|
||||
}
|
||||
|
||||
public List<MtbGrup> getSelectedMtbGrup() {
|
||||
return selectedMtbGrup;
|
||||
}
|
||||
|
||||
public ProdFabbisognoLineeItemModelDto setSelectedMtbGrup(List<MtbGrup> selectedMtbGrup) {
|
||||
this.selectedMtbGrup = selectedMtbGrup;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,18 +6,25 @@ import androidx.lifecycle.MutableLiveData;
|
||||
import com.annimon.stream.Stream;
|
||||
import com.annimon.stream.function.Predicate;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
import it.integry.integrywmsnative.core.model.MtbGrup;
|
||||
import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
|
||||
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.OrdiniUscitaElencoDTO;
|
||||
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dto.ProdFabbisognoLineeItemModelDto;
|
||||
import it.integry.integrywmsnative.gest.prod_versamento_materiale.dto.OrdineLavorazioneDTO;
|
||||
|
||||
public class ProdFabbisognoLineeProdFilterViewModel {
|
||||
private final ObservableField<Predicate<ProdFabbisognoLineeItemModelDto>> currentNumOrdsPredicate = new ObservableField<>();
|
||||
private final ObservableField<Predicate<ProdFabbisognoLineeItemModelDto>> currentGruppoMercPredicate = new ObservableField<>();
|
||||
|
||||
private List<ProdFabbisognoLineeItemModelDto> initialList;
|
||||
private List<MtbGrup> selectedMtbGrup = new ArrayList<>();
|
||||
private final MutableLiveData<List<ProdFabbisognoLineeItemModelDto>> currentList = new MutableLiveData<>();
|
||||
|
||||
public void init(List<ProdFabbisognoLineeItemModelDto> initialList){
|
||||
public void init(List<ProdFabbisognoLineeItemModelDto> initialList) {
|
||||
this.initialList = initialList;
|
||||
this.currentList.setValue(this.initialList);
|
||||
}
|
||||
@ -26,23 +33,37 @@ public class ProdFabbisognoLineeProdFilterViewModel {
|
||||
return this.currentList;
|
||||
}
|
||||
|
||||
public void setNumOrdFilter(List<Integer> numOrds){
|
||||
public void setNumOrdFilter(List<Integer> numOrds) {
|
||||
if (numOrds == null || numOrds.isEmpty()) currentNumOrdsPredicate.set(null);
|
||||
else{
|
||||
else {
|
||||
currentNumOrdsPredicate.set(x -> numOrds.contains(x.getOrdineLavorazioneDTO().getNumOrd()));
|
||||
}
|
||||
}
|
||||
|
||||
public void applyAllTests(){
|
||||
public void setGruppoMercFilter(List<MtbGrup> mtbGrupList) {
|
||||
if (mtbGrupList == null || mtbGrupList.isEmpty()) {
|
||||
currentGruppoMercPredicate.set(null);
|
||||
this.selectedMtbGrup = new ArrayList<>();
|
||||
} else {
|
||||
this.selectedMtbGrup = mtbGrupList;
|
||||
var mtbGrups = Stream.of(mtbGrupList).map(MtbGrup::getCodMgrp).toList();
|
||||
|
||||
currentGruppoMercPredicate.set(x -> Stream.of(x.getOrdineLavorazioneDTO().getAvailableClassMerc())
|
||||
.anyMatch(y -> mtbGrups.contains(y.getCodMgrp())));
|
||||
}
|
||||
}
|
||||
|
||||
public void applyAllTests() {
|
||||
List<ProdFabbisognoLineeItemModelDto> returnList = null;
|
||||
|
||||
if (currentNumOrdsPredicate.get() == null){
|
||||
if (currentNumOrdsPredicate.get() == null &&
|
||||
currentGruppoMercPredicate.get() == null) {
|
||||
returnList = this.initialList;
|
||||
}else {
|
||||
Stream<ProdFabbisognoLineeItemModelDto> tmpStream = Stream.of(this.initialList)
|
||||
.filter(x -> (currentNumOrdsPredicate.get() == null || (currentNumOrdsPredicate.get().test(x))));
|
||||
|
||||
returnList = tmpStream.toList();
|
||||
} else {
|
||||
returnList = Stream.of(this.initialList)
|
||||
.filter(x -> (currentNumOrdsPredicate.get() == null || (currentNumOrdsPredicate.get().test(x))) &&
|
||||
(currentGruppoMercPredicate.get() == null || (currentGruppoMercPredicate.get().test(x)))
|
||||
).map(x -> x.setSelectedMtbGrup(this.selectedMtbGrup)).toList();
|
||||
}
|
||||
|
||||
this.currentList.setValue(returnList);
|
||||
@ -52,7 +73,11 @@ public class ProdFabbisognoLineeProdFilterViewModel {
|
||||
return currentNumOrdsPredicate;
|
||||
}
|
||||
|
||||
public List<Integer> getAllNumOrds(){
|
||||
public ObservableField<Predicate<ProdFabbisognoLineeItemModelDto>> getCurrentGruppoMercPredicate() {
|
||||
return currentGruppoMercPredicate;
|
||||
}
|
||||
|
||||
public List<Integer> getAllNumOrds() {
|
||||
return Stream
|
||||
.of(Objects.requireNonNull(initialList))
|
||||
.filter(x -> x.getOrdineLavorazioneDTO().getNumOrd() != null)
|
||||
@ -62,13 +87,59 @@ public class ProdFabbisognoLineeProdFilterViewModel {
|
||||
.toList();
|
||||
}
|
||||
|
||||
public List<Integer> getAvailableNumOrds(){
|
||||
if (currentNumOrdsPredicate.get() == null) return getAllNumOrds();
|
||||
public List<Integer> getAvailableNumOrds() {
|
||||
if (currentGruppoMercPredicate.get() == null) return getAllNumOrds();
|
||||
else {
|
||||
return Stream.of(this.initialList)
|
||||
.filter(x -> (currentGruppoMercPredicate.get() == null || (currentGruppoMercPredicate.get().test(x))))
|
||||
.map(x -> x.getOrdineLavorazioneDTO().getNumOrd())
|
||||
.distinct()
|
||||
.toList();
|
||||
}
|
||||
}
|
||||
|
||||
public List<MtbGrup> getSelectedMtbGrup() {
|
||||
return selectedMtbGrup;
|
||||
}
|
||||
|
||||
public List<MtbGrup> getAllGruppoMerc(List<MtbGrup> mtbGrupFullList) {
|
||||
var codMgrp = Stream.of(initialList)
|
||||
.flatMap(x ->
|
||||
Stream.of(x.getOrdineLavorazioneDTO().getAvailableClassMerc() != null ?
|
||||
x.getOrdineLavorazioneDTO().getAvailableClassMerc() :
|
||||
new ArrayList<>()))
|
||||
.map(OrdineLavorazioneDTO.AvailableClassMerc::getCodMgrp)
|
||||
.withoutNulls()
|
||||
.distinct()
|
||||
.toList();
|
||||
|
||||
return Stream.of(Objects.requireNonNull(mtbGrupFullList))
|
||||
.filter(x -> codMgrp.contains(x.getCodMgrp()))
|
||||
.distinct()
|
||||
.withoutNulls()
|
||||
.sortBy(MtbGrup::getDescrizione)
|
||||
.toList();
|
||||
}
|
||||
|
||||
public List<MtbGrup> getAvailableGruppoMerc(List<MtbGrup> mtbGrupFullList){
|
||||
if (currentNumOrdsPredicate.get() == null){
|
||||
return getAllGruppoMerc(mtbGrupFullList);
|
||||
} else {
|
||||
List<String> availableCodMgrups = Stream.of(this.initialList)
|
||||
.filter(x ->
|
||||
(currentNumOrdsPredicate.get() == null || (currentNumOrdsPredicate.get().test(x)))
|
||||
)
|
||||
.flatMap(x -> Stream.of(x.getOrdineLavorazioneDTO().getAvailableClassMerc()))
|
||||
.map(OrdineLavorazioneDTO.AvailableClassMerc::getCodMgrp)
|
||||
.distinct()
|
||||
.toList();
|
||||
|
||||
return Stream.of(Objects.requireNonNull(mtbGrupFullList))
|
||||
.filter(x -> availableCodMgrups.contains(x.getCodMgrp()))
|
||||
.distinct()
|
||||
.withoutNulls()
|
||||
.sortBy(MtbGrup::getDescrizione)
|
||||
.toList();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -32,7 +32,6 @@ import it.integry.integrywmsnative.core.expansion.OnGeneralChangedCallback;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.interfaces.ISearchableFragment;
|
||||
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
|
||||
import it.integry.integrywmsnative.core.model.MvwSitArtUdcDetInventario;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||
@ -212,7 +211,7 @@ public class ProdRiposizionamentoDaProdFragment extends BaseFragment implements
|
||||
|
||||
}
|
||||
|
||||
public void onInfoClick(List<MvwSitArtUdcDetInventario> item) {
|
||||
public void onInfoClick(ArtsInGiacenzaDTO item) {
|
||||
try {
|
||||
DialogInfoGiacenzaView.newInstance(item).show(getChildFragmentManager(), DialogInfoGiacenzaView.class.getName());
|
||||
} catch (Exception e) {
|
||||
|
||||
@ -6,6 +6,7 @@ import com.annimon.stream.Optional;
|
||||
import com.annimon.stream.Stream;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
@ -13,8 +14,6 @@ import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||
import it.integry.integrywmsnative.core.exception.NoLUFoundException;
|
||||
import it.integry.integrywmsnative.core.exception.ScannedPositionNotExistException;
|
||||
@ -32,6 +31,7 @@ import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||
import it.integry.integrywmsnative.gest.prod_riposizionamento_da_prod.dto.ArtsInGiacenzaDTO;
|
||||
import it.integry.integrywmsnative.gest.prod_riposizionamento_da_prod.dto.StatoArtInventarioDTO;
|
||||
|
||||
public class ProdRiposizionamentoDaProdViewModel {
|
||||
private final SoundAlertService mSoundAlertService;
|
||||
@ -41,6 +41,7 @@ public class ProdRiposizionamentoDaProdViewModel {
|
||||
private final MutableLiveData<List<ArtsInGiacenzaDTO>> itemsInventario = new MutableLiveData<>();
|
||||
private final MutableLiveData<MtbColt> mtbColtMutableLiveData = new MutableLiveData<>();
|
||||
private final MutableLiveData<List<MvwSitArtUdcDetInventario>> mMvwSitArtUdcDetInventarioLiveData = new MutableLiveData<>();
|
||||
private final MutableLiveData<List<StatoArtInventarioDTO>> mStatoArticoli = new MutableLiveData<>();
|
||||
private Listener mListener;
|
||||
|
||||
public ProdRiposizionamentoDaProdViewModel(GiacenzaRESTConsumer giacenzaRESTConsumer, BarcodeRESTConsumer barcodeRESTConsumer, ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, SoundAlertService soundAlertService) {
|
||||
@ -100,6 +101,13 @@ public class ProdRiposizionamentoDaProdViewModel {
|
||||
|
||||
mMvwSitArtUdcDetInventarioLiveData.setValue(mvwSitArtUdcDetInventario);
|
||||
|
||||
List<StatoArtInventarioDTO> statoArticolo = Stream.of(Objects.requireNonNull(itemsInventario.getValue()))
|
||||
.flatMap(x -> Stream.of(x.getStatoArtInventario())
|
||||
.filter(Objects::nonNull))
|
||||
.toList();
|
||||
|
||||
mStatoArticoli.setValue(statoArticolo);
|
||||
|
||||
boolean isPresent = Stream.of(mvwSitArtUdcDetInventario)
|
||||
.anyMatch(x ->
|
||||
x.getGestione().equals(mtbColt.getGestione()) &&
|
||||
@ -161,6 +169,18 @@ public class ProdRiposizionamentoDaProdViewModel {
|
||||
.map(MvwSitArtUdcDetInventario::getNumCnf)
|
||||
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
|
||||
List<StatoArtInventarioDTO> statoArticoli = mStatoArticoli.getValue();
|
||||
|
||||
if (statoArticoli == null)
|
||||
statoArticoli = new ArrayList<>();
|
||||
|
||||
StatoArtInventarioDTO statoArticolo = Stream.of(statoArticoli)
|
||||
.filter(x -> x.getCodProd().equalsIgnoreCase(dtoList.get(0).getCodMart()) &&
|
||||
Objects.equals(x.getNumOrd(), dtoList.get(0).getNumOrd()) &&
|
||||
Objects.equals(x.getDataOrd(), dtoList.get(0).getDataOrd())
|
||||
)
|
||||
.findFirstOrElse(null);
|
||||
|
||||
return new ArtsInGiacenzaDTO()
|
||||
.setCodMart(dtoList.get(0).getCodMart())
|
||||
.setPartitaMag(dtoList.get(0).getPartitaMag())
|
||||
@ -169,6 +189,7 @@ public class ProdRiposizionamentoDaProdViewModel {
|
||||
.setNumOrd(dtoList.get(0).getNumOrd())
|
||||
.setNumCnf(totalNumCnf)
|
||||
.setCount(dtoList.size())
|
||||
.setStatoArtInventario(statoArticolo)
|
||||
.setMvwSitArtUdcDetInventarioDTO(dtoList);
|
||||
})
|
||||
.sorted(Comparator.comparing(ArtsInGiacenzaDTO::getPosizione))
|
||||
|
||||
@ -5,6 +5,7 @@ import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
@ -13,6 +14,7 @@ import com.annimon.stream.Stream;
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||
import com.ravikoradiya.liveadapter.LiveAdapter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.inject.Inject;
|
||||
@ -21,8 +23,10 @@ import it.integry.integrywmsnative.BR;
|
||||
import it.integry.integrywmsnative.MainApplication;
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
|
||||
import it.integry.integrywmsnative.core.model.MvwSitArtUdcDetInventario;
|
||||
import it.integry.integrywmsnative.databinding.DialogInfoGiacenzaBinding;
|
||||
import it.integry.integrywmsnative.databinding.DialogInfoGiacenzaSituazioneArticoloBinding;
|
||||
import it.integry.integrywmsnative.gest.prod_riposizionamento_da_prod.dto.ArtsInGiacenzaDTO;
|
||||
import it.integry.integrywmsnative.gest.prod_riposizionamento_da_prod.dto.StatoArtInventarioDTO;
|
||||
import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.info_situazione_articolo.ui.DialogInfoSituazioneArticoloAvailableListItem;
|
||||
|
||||
public class DialogInfoGiacenzaView extends BaseDialogFragment {
|
||||
@ -31,13 +35,13 @@ public class DialogInfoGiacenzaView extends BaseDialogFragment {
|
||||
|
||||
private DialogInfoGiacenzaBinding mBindings;
|
||||
private Context mContext;
|
||||
private List<MvwSitArtUdcDetInventario> item;
|
||||
private ArtsInGiacenzaDTO item;
|
||||
|
||||
public static DialogInfoGiacenzaView newInstance(List<MvwSitArtUdcDetInventario> item) {
|
||||
public static DialogInfoGiacenzaView newInstance(ArtsInGiacenzaDTO item) {
|
||||
return new DialogInfoGiacenzaView(item);
|
||||
}
|
||||
|
||||
public DialogInfoGiacenzaView(List<MvwSitArtUdcDetInventario> item) {
|
||||
public DialogInfoGiacenzaView(ArtsInGiacenzaDTO item) {
|
||||
this.item = item;
|
||||
}
|
||||
|
||||
@ -78,17 +82,47 @@ public class DialogInfoGiacenzaView extends BaseDialogFragment {
|
||||
this.onLoadingEnded();
|
||||
}
|
||||
|
||||
private void initAvailableItemsList(List<MvwSitArtUdcDetInventario> availableItems) {
|
||||
if(availableItems == null || availableItems.isEmpty())
|
||||
private void initAvailableItemsList(ArtsInGiacenzaDTO availableItems) {
|
||||
if (availableItems == null)
|
||||
return;
|
||||
|
||||
var itemList = Stream.of(availableItems)
|
||||
.map(DialogInfoSituazioneArticoloAvailableListItem::fromMvwSitArtUdcDetInventario)
|
||||
var listItem = Stream.of(availableItems)
|
||||
.flatMap(x -> Stream.of(x.getMvwSitArtUdcDetInventarioDTO())
|
||||
.map(DialogInfoSituazioneArticoloAvailableListItem::fromMvwSitArtUdcDetInventario)
|
||||
)
|
||||
.toList();
|
||||
|
||||
new LiveAdapter(itemList, BR.item)
|
||||
List<StatoArtInventarioDTO> statoArticolo = null;
|
||||
StatoArtInventarioDTO statoArtInventario = availableItems.getStatoArtInventario();
|
||||
if (statoArtInventario != null) {
|
||||
statoArticolo = Stream.of(statoArtInventario).toList();
|
||||
|
||||
if (statoArtInventario.colliArrivoIsLessThenZero() &&
|
||||
statoArtInventario.colliMagIsLessThenZero()) {
|
||||
this.mBindings.situazioneArticolo.setVisibility(View.GONE);
|
||||
}
|
||||
} else {
|
||||
this.mBindings.situazioneArticolo.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
new LiveAdapter(listItem, BR.item)
|
||||
.map(DialogInfoSituazioneArticoloAvailableListItem.class, R.layout.dialog_info_giacenza_list_item)
|
||||
.into(this.mBindings.availableList);
|
||||
|
||||
new LiveAdapter(statoArticolo, BR.item)
|
||||
.map(StatoArtInventarioDTO.class, R.layout.dialog_info_giacenza_situazione_articolo)
|
||||
.into(this.mBindings.situazioneArticolo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadingStarted() {
|
||||
this.mBindings.loadingView.setVisibility(View.VISIBLE);
|
||||
this.mBindings.listItem.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadingEnded() {
|
||||
this.mBindings.loadingView.setVisibility(View.GONE);
|
||||
this.mBindings.listItem.setVisibility(View.VISIBLE);
|
||||
}
|
||||
}
|
||||
@ -1,6 +1,7 @@
|
||||
package it.integry.integrywmsnative.gest.prod_riposizionamento_da_prod.dto;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.core.model.MvwSitArtUdcDetInventario;
|
||||
@ -13,7 +14,9 @@ public class ArtsInGiacenzaDTO {
|
||||
private String posizione;
|
||||
private BigDecimal numCnf;
|
||||
private Integer numOrd;
|
||||
private Date dataOrd;
|
||||
private Integer count;
|
||||
private StatoArtInventarioDTO statoArtInventario;
|
||||
private List<MvwSitArtUdcDetInventario> mvwSitArtUdcDetInventarioDTO;
|
||||
|
||||
public String getCodMart() {
|
||||
@ -92,4 +95,22 @@ public class ArtsInGiacenzaDTO {
|
||||
this.numOrd = numOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public StatoArtInventarioDTO getStatoArtInventario() {
|
||||
return statoArtInventario;
|
||||
}
|
||||
|
||||
public ArtsInGiacenzaDTO setStatoArtInventario(StatoArtInventarioDTO statoArtInventario) {
|
||||
this.statoArtInventario = statoArtInventario;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataOrd() {
|
||||
return dataOrd;
|
||||
}
|
||||
|
||||
public ArtsInGiacenzaDTO setDataOrd(Date dataOrd) {
|
||||
this.dataOrd = dataOrd;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,181 @@
|
||||
package it.integry.integrywmsnative.gest.prod_riposizionamento_da_prod.dto;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
public class StatoArtInventarioDTO {
|
||||
private String codProd;
|
||||
private Integer numOrd;
|
||||
private Date dataOrd;
|
||||
private String untMis;
|
||||
private BigDecimal qtaProd;
|
||||
private BigDecimal colliProd;
|
||||
private BigDecimal pedProd;
|
||||
private BigDecimal qtaInArrivo;
|
||||
private BigDecimal colliArrivo;
|
||||
private BigDecimal pedArrivo;
|
||||
private BigDecimal qtaLinea;
|
||||
private BigDecimal colliLinea;
|
||||
private Integer pedLinea;
|
||||
private BigDecimal qtaMag;
|
||||
private BigDecimal colliMag;
|
||||
private Integer pedMag;
|
||||
|
||||
public String getCodProd() {
|
||||
return codProd;
|
||||
}
|
||||
|
||||
public StatoArtInventarioDTO setCodProd(String codProd) {
|
||||
this.codProd = codProd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Integer getNumOrd() {
|
||||
return numOrd;
|
||||
}
|
||||
|
||||
public StatoArtInventarioDTO setNumOrd(Integer numOrd) {
|
||||
this.numOrd = numOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getUntMis() {
|
||||
return untMis;
|
||||
}
|
||||
|
||||
public StatoArtInventarioDTO setUntMis(String untMis) {
|
||||
this.untMis = untMis;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getQtaProd() {
|
||||
return qtaProd;
|
||||
}
|
||||
|
||||
public StatoArtInventarioDTO setQtaProd(BigDecimal qtaProd) {
|
||||
this.qtaProd = qtaProd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getColliProd() {
|
||||
return colliProd;
|
||||
}
|
||||
|
||||
public StatoArtInventarioDTO setColliProd(BigDecimal colliProd) {
|
||||
this.colliProd = colliProd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getPedProd() {
|
||||
return pedProd;
|
||||
}
|
||||
|
||||
public StatoArtInventarioDTO setPedProd(BigDecimal pedProd) {
|
||||
this.pedProd = pedProd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getQtaInArrivo() {
|
||||
return qtaInArrivo;
|
||||
}
|
||||
|
||||
public StatoArtInventarioDTO setQtaInArrivo(BigDecimal qtaInArrivo) {
|
||||
this.qtaInArrivo = qtaInArrivo;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getColliArrivo() {
|
||||
return colliArrivo;
|
||||
}
|
||||
|
||||
public StatoArtInventarioDTO setColliArrivo(BigDecimal colliArrivo) {
|
||||
this.colliArrivo = colliArrivo;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getPedArrivo() {
|
||||
if (pedArrivo.compareTo(BigDecimal.ZERO) < 0)
|
||||
return BigDecimal.ZERO;
|
||||
else
|
||||
return pedArrivo;
|
||||
}
|
||||
|
||||
public StatoArtInventarioDTO setPedArrivo(BigDecimal pedArrivo) {
|
||||
this.pedArrivo = pedArrivo;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getQtaLinea() {
|
||||
return qtaLinea;
|
||||
}
|
||||
|
||||
public StatoArtInventarioDTO setQtaLinea(BigDecimal qtaLinea) {
|
||||
this.qtaLinea = qtaLinea;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getColliLinea() {
|
||||
return colliLinea;
|
||||
}
|
||||
|
||||
public StatoArtInventarioDTO setColliLinea(BigDecimal colliLinea) {
|
||||
this.colliLinea = colliLinea;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Integer getPedLinea() {
|
||||
return pedLinea;
|
||||
}
|
||||
|
||||
public StatoArtInventarioDTO setPedLinea(Integer pedLinea) {
|
||||
this.pedLinea = pedLinea;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getQtaMag() {
|
||||
return qtaMag;
|
||||
}
|
||||
|
||||
public StatoArtInventarioDTO setQtaMag(BigDecimal qtaMag) {
|
||||
this.qtaMag = qtaMag;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getColliMag() {
|
||||
return colliMag;
|
||||
}
|
||||
|
||||
public StatoArtInventarioDTO setColliMag(BigDecimal colliMag) {
|
||||
this.colliMag = colliMag;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Integer getPedMag() {
|
||||
if (pedMag < 0)
|
||||
return 0;
|
||||
else
|
||||
return pedMag;
|
||||
}
|
||||
|
||||
public StatoArtInventarioDTO setPedMag(Integer pedMag) {
|
||||
this.pedMag = pedMag;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Date getDataOrd() {
|
||||
return dataOrd;
|
||||
}
|
||||
|
||||
public StatoArtInventarioDTO setDataOrd(Date dataOrd) {
|
||||
this.dataOrd = dataOrd;
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean colliArrivoIsLessThenZero(){
|
||||
return this.colliArrivo.compareTo(BigDecimal.ZERO) <= 0;
|
||||
}
|
||||
|
||||
public boolean colliMagIsLessThenZero(){
|
||||
return this.colliMag.compareTo(BigDecimal.ZERO) <= 0;
|
||||
}
|
||||
}
|
||||
@ -3,8 +3,10 @@ package it.integry.integrywmsnative.gest.prod_versamento_materiale.dto;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.core.di.BindableFloat;
|
||||
import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||
|
||||
public class OrdineLavorazioneDTO {
|
||||
@ -101,6 +103,7 @@ public class OrdineLavorazioneDTO {
|
||||
private Object mtbColtToEdit;
|
||||
|
||||
private int hrNum;
|
||||
private List<AvailableClassMerc> availableClassMerc;
|
||||
|
||||
|
||||
private BindableFloat qtaColVersamento = new BindableFloat();
|
||||
@ -533,4 +536,37 @@ public class OrdineLavorazioneDTO {
|
||||
this.descrizioneAttivita = descrizioneAttivita;
|
||||
return this;
|
||||
}
|
||||
|
||||
public List<AvailableClassMerc> getAvailableClassMerc() {
|
||||
return availableClassMerc;
|
||||
}
|
||||
|
||||
public OrdineLavorazioneDTO setAvailableClassMerc(List<AvailableClassMerc> availableClassMerc) {
|
||||
this.availableClassMerc = availableClassMerc;
|
||||
return this;
|
||||
}
|
||||
|
||||
public static class AvailableClassMerc {
|
||||
|
||||
private String codMgrp;
|
||||
private List<String> codMsgr;
|
||||
|
||||
public String getCodMgrp() {
|
||||
return codMgrp;
|
||||
}
|
||||
|
||||
public AvailableClassMerc setCodMgrp(String codMgrp) {
|
||||
this.codMgrp = codMgrp;
|
||||
return this;
|
||||
}
|
||||
|
||||
public List<String> getCodMsgr() {
|
||||
return codMsgr;
|
||||
}
|
||||
|
||||
public AvailableClassMerc setCodMsgr(List<String> codMsgr) {
|
||||
this.codMsgr = codMsgr;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -404,8 +404,7 @@ public class RettificaGiacenzeFragment extends BaseFragment implements ITitledFr
|
||||
String flagStato = dialogInputQuantityV2DTO.getMtbAart().getFlagStato();
|
||||
|
||||
if (flagStato.equalsIgnoreCase("I")) {
|
||||
DialogSimpleMessageView.makeInfoDialog(
|
||||
getActivity().getResources().getString(R.string.confirm),
|
||||
DialogSimpleMessageView.makeWarningDialog(
|
||||
new SpannableString(Html.fromHtml(String.format(UtilityResources.getString(R.string.item_not_enabled), codMart))),
|
||||
null,
|
||||
() -> {
|
||||
@ -428,7 +427,26 @@ public class RettificaGiacenzeFragment extends BaseFragment implements ITitledFr
|
||||
},
|
||||
this::onLoadingEnded)
|
||||
.show(getActivity().getSupportFragmentManager(), "tag");
|
||||
} else this.onLoadingEnded();
|
||||
} else {
|
||||
this.onLoadingEnded();
|
||||
if (!mDialogInputQuantityV2View.isVisible())
|
||||
mDialogInputQuantityV2View
|
||||
.setDialogInputQuantityV2DTO(dialogInputQuantityV2DTO)
|
||||
.setOnComplete((resultDTO, shouldCloseLU) -> {
|
||||
PickedQuantityDTO pickedQuantityDTO = new PickedQuantityDTO()
|
||||
.setNumCnf(resultDTO.getNumCnf())
|
||||
.setQtaCnf(resultDTO.getQtaCnf())
|
||||
.setQtaTot(resultDTO.getQtaTot())
|
||||
.setPartitaMag(resultDTO.getPartitaMag())
|
||||
.setDataScad(resultDTO.getDataScad());
|
||||
|
||||
this.onLoadingStarted();
|
||||
onComplete.run(pickedQuantityDTO, shouldCloseLU);
|
||||
})
|
||||
.setOnAbort(this::onLoadingEnded)
|
||||
.show(requireActivity().getSupportFragmentManager(), "tag");
|
||||
}
|
||||
;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -853,7 +853,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
||||
.setPartitaMag(partitaMag)
|
||||
.setDataScad(dataScad)
|
||||
.setCanOverflowOrderQuantity(canOverflowOrderQuantity)
|
||||
.setWarnOnQuantityOverflow(SettingsManager.iDB().isFlagOverflowQuantityWarning())
|
||||
.setWarnOnQuantityOverflow(SettingsManager.iDB().isFlagSpedizioneOverflowQuantityWarning())
|
||||
.setCanLUBeClosed(true)
|
||||
.setCanPartitaMagBeChanged(canPartitaMagBeChanged)
|
||||
.setStatoPartitaMag(pickingObjectDTO != null ? pickingObjectDTO.getStatoArticoloDTO() : null)
|
||||
|
||||
@ -3,13 +3,14 @@ package it.integry.integrywmsnative.view.dialogs.input_quantity_v2;
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoRESTConsumer;
|
||||
|
||||
@Module(subcomponents = DialogInputQuantityV2Component.class)
|
||||
public class DialogInputQuantityV2Module {
|
||||
|
||||
@Provides
|
||||
DialogInputQuantityV2ViewModel providesDialogInputQuantityV2ViewModel(BarcodeRESTConsumer barcodeRESTConsumer) {
|
||||
return new DialogInputQuantityV2ViewModel(barcodeRESTConsumer);
|
||||
DialogInputQuantityV2ViewModel providesDialogInputQuantityV2ViewModel(BarcodeRESTConsumer barcodeRESTConsumer, MagazzinoRESTConsumer magazzinoRESTConsumer) {
|
||||
return new DialogInputQuantityV2ViewModel(barcodeRESTConsumer, magazzinoRESTConsumer);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -261,6 +261,8 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
|
||||
this.mAbort = false;
|
||||
dismiss();
|
||||
this.mOnComplete.run(this.mViewModel.getResult(), false);
|
||||
}else {
|
||||
this.onLoadingEnded();
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -269,19 +271,14 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
|
||||
this.mViewModel.validate(validated -> {
|
||||
if (validated) {
|
||||
this.mAbort = false;
|
||||
dismiss();
|
||||
dismiss();this.onLoadingEnded();
|
||||
this.mOnComplete.run(this.mViewModel.getResult(), true);
|
||||
}else {
|
||||
this.onLoadingEnded();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// @Override
|
||||
// public void onDismiss(@NonNull DialogInterface dialog) {
|
||||
// BarcodeManager.removeCallback(mBarcodeScannerIstanceID);
|
||||
// if (mAbort) this.mOnAbort.run();
|
||||
// super.onDismiss(dialog);
|
||||
// }
|
||||
|
||||
@Override
|
||||
public void onStart() {
|
||||
super.onStart();
|
||||
@ -540,9 +537,9 @@ public class DialogInputQuantityV2View extends BaseDialogFragment implements Dia
|
||||
@Override
|
||||
public void onWarning(String text, RunnableArgs<Boolean> result) {
|
||||
DialogSimpleMessageView.makeWarningDialog(new SpannableString(Html.fromHtml(text)),
|
||||
null,
|
||||
() -> result.run(true),
|
||||
() -> result.run(false)
|
||||
).show(requireActivity().getSupportFragmentManager(), "tag");
|
||||
null,
|
||||
() -> result.run(true),
|
||||
() -> result.run(false)
|
||||
).show(requireActivity().getSupportFragmentManager(), "tag");
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,22 +3,29 @@ package it.integry.integrywmsnative.view.dialogs.input_quantity_v2;
|
||||
import androidx.databinding.ObservableField;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.time.LocalDate;
|
||||
import java.util.concurrent.FutureTask;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.di.BindableString;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgsWithReturn;
|
||||
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||
import it.integry.integrywmsnative.core.model.MtbPartitaMag;
|
||||
import it.integry.integrywmsnative.core.model.secondary.StatoPartitaMag;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
|
||||
import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel;
|
||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityResources;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||
import it.integry.integrywmsnative.view.dialogs.exception.InactiveBatchLotException;
|
||||
import it.integry.integrywmsnative.view.dialogs.exception.InvalidBatchLotException;
|
||||
@ -89,12 +96,15 @@ public class DialogInputQuantityV2ViewModel {
|
||||
private Listener mListener;
|
||||
|
||||
private final BarcodeRESTConsumer mBarcodeRESTConsumer;
|
||||
private final MagazzinoRESTConsumer mMagazzinoRESTConsumer;
|
||||
|
||||
private StatoPartitaMag statoArt;
|
||||
private MtbPartitaMag mtbPartitaMag;
|
||||
|
||||
@Inject
|
||||
public DialogInputQuantityV2ViewModel(BarcodeRESTConsumer barcodeRESTConsumer) {
|
||||
public DialogInputQuantityV2ViewModel(BarcodeRESTConsumer barcodeRESTConsumer, MagazzinoRESTConsumer magazzinoRESTConsumer) {
|
||||
this.mBarcodeRESTConsumer = barcodeRESTConsumer;
|
||||
this.mMagazzinoRESTConsumer = magazzinoRESTConsumer;
|
||||
}
|
||||
|
||||
public void init(int onNumCnfInputChanged, int onQtaTotInputChanged) {
|
||||
@ -475,115 +485,175 @@ public class DialogInputQuantityV2ViewModel {
|
||||
}
|
||||
|
||||
public void validate(RunnableArgs<Boolean> onValidated) {
|
||||
if (this.internalQtaCnf == null || UtilityBigDecimal.equalsTo(this.internalQtaCnf, BigDecimal.ZERO)) {
|
||||
this.sendOnLoadingStarted();
|
||||
new Thread(() -> {
|
||||
if (this.internalQtaCnf == null || UtilityBigDecimal.equalsTo(this.internalQtaCnf, BigDecimal.ZERO)) {
|
||||
|
||||
this.mListener.onError(new InvalidQtaCnfQuantityException());
|
||||
onValidated.run(false);
|
||||
return;
|
||||
}
|
||||
this.mListener.onError(new InvalidQtaCnfQuantityException());
|
||||
onValidated.run(false);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!disableTracciabilitaCheck && mtbAart.get().isFlagTracciabilitaBoolean() && UtilityString.isNullOrEmpty(internalPartitaMag)) {
|
||||
if (suggestPartitaMagRunnable != null) {
|
||||
internalPartitaMag = suggestPartitaMagRunnable.run(this);
|
||||
if (internalPartitaMag == null) {
|
||||
if (!disableTracciabilitaCheck && mtbAart.get().isFlagTracciabilitaBoolean() && UtilityString.isNullOrEmpty(internalPartitaMag)) {
|
||||
if (suggestPartitaMagRunnable != null) {
|
||||
internalPartitaMag = suggestPartitaMagRunnable.run(this);
|
||||
if (internalPartitaMag == null) {
|
||||
this.mListener.onError(new InvalidBatchLotException());
|
||||
onValidated.run(false);
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
this.mListener.onError(new InvalidBatchLotException());
|
||||
onValidated.run(false);
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
}
|
||||
|
||||
if (this.statoArt == StatoPartitaMag.DISATTIVO) {
|
||||
this.mListener.onError(new InactiveBatchLotException(internalPartitaMag));
|
||||
onValidated.run(false);
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.shouldAskDataScad && UtilityString.isNullOrEmpty(internalPartitaMag)) {
|
||||
|
||||
this.mListener.onError(new InvalidBatchLotException());
|
||||
onValidated.run(false);
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.shouldAskDataScad && this.internalDataScad == null) {
|
||||
|
||||
this.mListener.onError(new InvalidExpireDateException());
|
||||
onValidated.run(false);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!this.canOverflowOrderQuantity && UtilityBigDecimal.greaterThan(this.internalQtaTot, this.totalQtaOrd) &&
|
||||
this.mtbAart.get().isFlagQtaCnfFissaBoolean()) {
|
||||
|
||||
this.mListener.onError(new OverflowQtaTotOrderedQuantityException());
|
||||
onValidated.run(false);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!this.canOverflowOrderQuantity && UtilityBigDecimal.greaterThan(this.internalNumCnf, this.totalNumCnfOrd) &&
|
||||
!this.mtbAart.get().isFlagQtaCnfFissaBoolean()) {
|
||||
|
||||
this.mListener.onError(new OverflowNumCnfOrderedQuantityException());
|
||||
onValidated.run(false);
|
||||
return;
|
||||
}
|
||||
|
||||
if (UtilityBigDecimal.greaterThan(this.internalQtaTot, this.totalQtaAvailable)) {
|
||||
|
||||
this.mListener.onError(new OverflowQtaTotAvailableQuantityException());
|
||||
onValidated.run(false);
|
||||
return;
|
||||
}
|
||||
|
||||
if (UtilityBigDecimal.greaterThan(this.internalNumCnf, this.totalNumCnfAvailable) &&
|
||||
!this.mtbAart.get().isFlagQtaCnfFissaBoolean()) {
|
||||
|
||||
this.mListener.onError(new OverflowNumCnfAvailableQuantityException());
|
||||
onValidated.run(false);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!this.canInputZeroQuantity && (this.internalNumCnf == null || this.internalQtaCnf == null || this.internalQtaTot == null ||
|
||||
UtilityBigDecimal.equalsOrLowerThan(this.internalNumCnf, BigDecimal.ZERO) ||
|
||||
UtilityBigDecimal.equalsOrLowerThan(this.internalQtaCnf, BigDecimal.ZERO) ||
|
||||
UtilityBigDecimal.equalsOrLowerThan(this.internalQtaTot, BigDecimal.ZERO))) {
|
||||
|
||||
this.mListener.onError(new InvalidQuantityException());
|
||||
onValidated.run(false);
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.isNoteMandatory() && (this.internalNote == null || this.internalNote.length() <= 0)) {
|
||||
this.mListener.onError(new InvalidNotesException());
|
||||
onValidated.run(false);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!UtilityString.isNullOrEmpty(this.internalPartitaMag))
|
||||
this.internalPartitaMag = this.internalPartitaMag.toUpperCase();
|
||||
|
||||
if (SettingsManager.iDB().isFlagWarningNewPartitaMag()) {
|
||||
asyncMagazzinoRESTConsumer(internalPartitaMag, this.getMtbAart().getCodMart());
|
||||
|
||||
if (mtbPartitaMag == null) {
|
||||
boolean result = runAsyncWarningDialog(UtilityResources.getString(R.string.batch_lot_inexistent_error_message));
|
||||
if (!result) {
|
||||
onValidated.run(false);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (this.warnOnQuantityOverflow && UtilityBigDecimal.greaterThan(this.internalQtaTot, this.totalQtaOrd) &&
|
||||
this.mtbAart.get().isFlagQtaCnfFissaBoolean()) {
|
||||
|
||||
boolean result = runAsyncWarningDialog(UtilityResources.getString(R.string.confirm_ordered_quantity_overflow_error_message));
|
||||
if (!result) {
|
||||
onValidated.run(false);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (this.warnOnQuantityOverflow && UtilityBigDecimal.greaterThan(this.internalNumCnf, this.totalNumCnfOrd) &&
|
||||
!this.mtbAart.get().isFlagQtaCnfFissaBoolean()) {
|
||||
|
||||
boolean result = runAsyncWarningDialog(UtilityResources.getString(R.string.confirm_ordered_num_cnf_overflow_error_message));
|
||||
if (!result) {
|
||||
onValidated.run(false);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
this.sendOnLoadingEnded();
|
||||
onValidated.run(true);
|
||||
}).start();
|
||||
}
|
||||
|
||||
private boolean runAsyncWarningDialog(String text) {
|
||||
try {
|
||||
final FutureTask<Object> ft = new FutureTask<>(() -> {
|
||||
}, new Object());
|
||||
AtomicBoolean returnResult = new AtomicBoolean();
|
||||
mListener.onWarning(text, result -> {
|
||||
returnResult.set(result);
|
||||
ft.run();
|
||||
});
|
||||
|
||||
ft.get();
|
||||
return returnResult.get();
|
||||
} catch (Exception e) {
|
||||
this.sendError(e);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if(this.statoArt == StatoPartitaMag.DISATTIVO){
|
||||
this.mListener.onError(new InactiveBatchLotException(internalPartitaMag));
|
||||
onValidated.run(false);
|
||||
return;
|
||||
private void asyncMagazzinoRESTConsumer(String partitaMag, String codMart) {
|
||||
try {
|
||||
final FutureTask<Object> ft = new FutureTask<>(() -> {
|
||||
}, new Object());
|
||||
mMagazzinoRESTConsumer.retrievePartitaMag(
|
||||
partitaMag,
|
||||
codMart,
|
||||
returnPartitaMag -> {
|
||||
mtbPartitaMag = returnPartitaMag;
|
||||
ft.run();
|
||||
},
|
||||
e -> {
|
||||
this.sendError(e);
|
||||
ft.run();
|
||||
});
|
||||
|
||||
ft.get();
|
||||
} catch (Exception e) {
|
||||
this.sendError(e);
|
||||
}
|
||||
|
||||
if (this.shouldAskDataScad && UtilityString.isNullOrEmpty(internalPartitaMag)) {
|
||||
|
||||
this.mListener.onError(new InvalidBatchLotException());
|
||||
onValidated.run(false);
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.shouldAskDataScad && this.internalDataScad == null) {
|
||||
|
||||
this.mListener.onError(new InvalidExpireDateException());
|
||||
onValidated.run(false);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!this.canOverflowOrderQuantity && UtilityBigDecimal.greaterThan(this.internalQtaTot, this.totalQtaOrd) &&
|
||||
this.mtbAart.get().isFlagQtaCnfFissaBoolean()) {
|
||||
|
||||
this.mListener.onError(new OverflowQtaTotOrderedQuantityException());
|
||||
onValidated.run(false);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!this.canOverflowOrderQuantity && UtilityBigDecimal.greaterThan(this.internalNumCnf, this.totalNumCnfOrd) &&
|
||||
!this.mtbAart.get().isFlagQtaCnfFissaBoolean()) {
|
||||
|
||||
this.mListener.onError(new OverflowNumCnfOrderedQuantityException());
|
||||
onValidated.run(false);
|
||||
return;
|
||||
}
|
||||
|
||||
if (UtilityBigDecimal.greaterThan(this.internalQtaTot, this.totalQtaAvailable)) {
|
||||
|
||||
this.mListener.onError(new OverflowQtaTotAvailableQuantityException());
|
||||
onValidated.run(false);
|
||||
return;
|
||||
}
|
||||
|
||||
if (UtilityBigDecimal.greaterThan(this.internalNumCnf, this.totalNumCnfAvailable) &&
|
||||
!this.mtbAart.get().isFlagQtaCnfFissaBoolean()) {
|
||||
|
||||
this.mListener.onError(new OverflowNumCnfAvailableQuantityException());
|
||||
onValidated.run(false);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!this.canInputZeroQuantity && (this.internalNumCnf == null || this.internalQtaCnf == null || this.internalQtaTot == null ||
|
||||
UtilityBigDecimal.equalsOrLowerThan(this.internalNumCnf, BigDecimal.ZERO) ||
|
||||
UtilityBigDecimal.equalsOrLowerThan(this.internalQtaCnf, BigDecimal.ZERO) ||
|
||||
UtilityBigDecimal.equalsOrLowerThan(this.internalQtaTot, BigDecimal.ZERO))) {
|
||||
|
||||
this.mListener.onError(new InvalidQuantityException());
|
||||
onValidated.run(false);
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.isNoteMandatory() && (this.internalNote == null || this.internalNote.length() <= 0)) {
|
||||
this.mListener.onError(new InvalidNotesException());
|
||||
onValidated.run(false);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!UtilityString.isNullOrEmpty(this.internalPartitaMag))
|
||||
this.internalPartitaMag = this.internalPartitaMag.toUpperCase();
|
||||
|
||||
//Gli ultimi due controlli sono in coda a causa della callBack di onWarning, non eseguirebbe i controlli messi dopo
|
||||
|
||||
if (this.warnOnQuantityOverflow && UtilityBigDecimal.greaterThan(this.internalQtaTot, this.totalQtaOrd) &&
|
||||
this.mtbAart.get().isFlagQtaCnfFissaBoolean()) {
|
||||
|
||||
this.mListener.onWarning("Hai inserito una quantità superiore rispetto a quella presente nell'ordine. <br>Continuare?", onValidated);
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.warnOnQuantityOverflow && UtilityBigDecimal.greaterThan(this.internalNumCnf, this.totalNumCnfOrd) &&
|
||||
!this.mtbAart.get().isFlagQtaCnfFissaBoolean()) {
|
||||
|
||||
this.mListener.onWarning("Hai inserito una quantità superiore rispetto a quella presente nell'ordine. <br>Continuare?", onValidated);
|
||||
return;
|
||||
}
|
||||
|
||||
onValidated.run(true);
|
||||
}
|
||||
|
||||
public DialogInputQuantityV2ResultDTO getResult() {
|
||||
@ -619,14 +689,27 @@ public class DialogInputQuantityV2ViewModel {
|
||||
return this;
|
||||
}
|
||||
|
||||
private void sendError(Exception ex) {
|
||||
if (this.mListener != null) mListener.onError(ex);
|
||||
}
|
||||
|
||||
public MtbAart getMtbAart() {
|
||||
return this.mtbAart.get();
|
||||
}
|
||||
|
||||
public interface Listener {
|
||||
private void sendOnLoadingStarted() {
|
||||
if (this.mListener != null) mListener.onLoadingStarted();
|
||||
}
|
||||
|
||||
private void sendOnLoadingEnded() {
|
||||
if (this.mListener != null) mListener.onLoadingEnded();
|
||||
}
|
||||
|
||||
public interface Listener extends ILoadingListener {
|
||||
void onDataChanged();
|
||||
|
||||
void onError(Exception ex);
|
||||
|
||||
void onWarning(String text, RunnableArgs<Boolean> result);
|
||||
}
|
||||
}
|
||||
|
||||
@ -24,11 +24,28 @@
|
||||
style="@style/MaterialAlertDialog.Material3.Title.Text.CenterStacked"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:gravity="center_horizontal"
|
||||
android:text="Situazione articolo" />
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:id="@+id/loading_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/progressBar"
|
||||
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:indeterminate="true"
|
||||
tools:visibility="gone"/>
|
||||
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
<androidx.core.widget.NestedScrollView
|
||||
android:id="@+id/list_item"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
@ -37,21 +54,40 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/situazione_articolo"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:nestedScrollingEnabled="false"
|
||||
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
|
||||
tools:itemCount="1"
|
||||
android:paddingBottom="16dp"
|
||||
tools:listitem="@layout/dialog_info_giacenza_situazione_articolo"
|
||||
tools:visibility="gone" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/available_label"
|
||||
style="@style/TextAppearance.Material3.TitleMedium"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:background="@drawable/badge_round_corner"
|
||||
android:backgroundTint="@color/gray_200"
|
||||
android:paddingHorizontal="12dp"
|
||||
android:text="Sulla linea"
|
||||
android:textAllCaps="true" />
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/available_list"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:nestedScrollingEnabled="false"
|
||||
tools:listitem="@layout/dialog_info_situazione_articolo_available_list_item"
|
||||
tools:itemCount="3"
|
||||
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
|
||||
|
||||
|
||||
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
|
||||
tools:itemCount="5"
|
||||
tools:listitem="@layout/dialog_info_giacenza_list_item" />
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
|
||||
|
||||
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
|
||||
|
||||
|
||||
@ -81,7 +81,7 @@
|
||||
android:layout_width="12dp"
|
||||
android:layout_height="12dp"
|
||||
android:src="@drawable/ic_location_24"
|
||||
android:tint="@android:color/black"
|
||||
android:tint="@android:color/white"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
@ -89,6 +89,7 @@
|
||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/white"
|
||||
android:layout_marginStart="4dp"
|
||||
android:text="@{item.posizione}"
|
||||
app:layout_constraintStart_toEndOf="@id/position_label_icon"
|
||||
@ -106,7 +107,8 @@
|
||||
android:backgroundTint="@color/red_300"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:visibility="@{item.codJcom != null ? View.VISIBLE : View.GONE}">
|
||||
android:visibility="@{item.codJcom != null ? View.VISIBLE : View.GONE}"
|
||||
tools:visibility="invisible">
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="wrap_content"
|
||||
|
||||
@ -0,0 +1,244 @@
|
||||
<?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.core.utility.UtilityString" />
|
||||
<import type="it.integry.integrywmsnative.core.utility.UtilityDate" />
|
||||
<import type="it.integry.integrywmsnative.core.utility.UtilityNumber" />
|
||||
<import type="androidx.core.content.ContextCompat" />
|
||||
<import type="it.integry.integrywmsnative.R" />
|
||||
<import type="it.integry.integrywmsnative.core.utility.UntMisUtils" />
|
||||
<import type="java.math.BigDecimal" />
|
||||
|
||||
<import type="android.view.View" />
|
||||
|
||||
<variable
|
||||
name="item"
|
||||
type="it.integry.integrywmsnative.gest.prod_riposizionamento_da_prod.dto.StatoArtInventarioDTO" />
|
||||
|
||||
</data>
|
||||
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:paddingVertical="8dp">
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center"
|
||||
android:orientation="horizontal"
|
||||
android:weightSum="1">
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:id="@+id/incoming_box"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginEnd="2dp"
|
||||
android:layout_weight="0.5"
|
||||
android:background="@drawable/badge_round_corner"
|
||||
android:backgroundTint="@color/gray_200"
|
||||
android:orientation="vertical"
|
||||
android:paddingHorizontal="8dp"
|
||||
android:paddingVertical="4dp"
|
||||
android:visibility="@{item.colliArrivoIsLessThenZero() ? View.GONE : View.VISIBLE}">
|
||||
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/TextAppearance.Material3.LabelSmall"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:text="IN ARRIVO"
|
||||
android:textColor="@color/gray_600" />
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/AppTheme.NewMaterial.Text.Medium"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@{UtilityNumber.decimalToString(item.pedArrivo, 0)}"
|
||||
android:textColor="@color/gray_600"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/AppTheme.NewMaterial.Text.Medium"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_marginStart="4dp"
|
||||
android:text="PED"
|
||||
android:textColor="@color/gray_600"
|
||||
android:textStyle="bold" />
|
||||
|
||||
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:orientation="horizontal">
|
||||
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_marginStart="4dp"
|
||||
android:text="("
|
||||
android:textColor="@color/gray_600"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="0dp"
|
||||
android:text="@{UtilityNumber.decimalToString(item.colliArrivo, 0)}"
|
||||
android:textColor="@color/gray_600"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_marginStart="2dp"
|
||||
android:text="@string/unt_mis_col"
|
||||
android:textColor="@color/gray_600"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_marginStart="0dp"
|
||||
android:text=")"
|
||||
android:textColor="@color/gray_600"
|
||||
android:textStyle="bold" />
|
||||
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:id="@+id/already_box"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginStart="2dp"
|
||||
android:layout_weight="0.5"
|
||||
android:background="@drawable/badge_round_corner"
|
||||
android:backgroundTint="@color/gray_200"
|
||||
android:orientation="vertical"
|
||||
android:paddingHorizontal="8dp"
|
||||
android:paddingVertical="4dp"
|
||||
android:visibility="@{item.colliMagIsLessThenZero() ? View.GONE : View.VISIBLE}">
|
||||
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/TextAppearance.Material3.LabelSmall"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:text="GIÀ POSIZIONATA"
|
||||
android:textColor="@color/gray_600" />
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/AppTheme.NewMaterial.Text.Medium"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@{String.valueOf(item.pedMag)}"
|
||||
android:textColor="@color/gray_600"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/AppTheme.NewMaterial.Text.Medium"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_marginStart="4dp"
|
||||
android:text="PED"
|
||||
android:textColor="@color/gray_600"
|
||||
android:textStyle="bold" />
|
||||
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:orientation="horizontal">
|
||||
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_marginStart="4dp"
|
||||
android:text="("
|
||||
android:textColor="@color/gray_600"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="0dp"
|
||||
android:text="@{UtilityNumber.decimalToString(item.colliMag, 0)}"
|
||||
android:textColor="@color/gray_600"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_marginStart="2dp"
|
||||
android:text="@string/unt_mis_col"
|
||||
android:textColor="@color/gray_600"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_marginStart="0dp"
|
||||
android:text=")"
|
||||
android:textColor="@color/gray_600"
|
||||
android:textStyle="bold" />
|
||||
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
</RelativeLayout>
|
||||
|
||||
|
||||
</layout>
|
||||
@ -192,7 +192,7 @@
|
||||
android:backgroundTint="@color/colorPrimary"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:onClick="@{() -> view.onInfoClick(item.getMvwSitArtUdcDetInventarioDTO())}"
|
||||
android:onClick="@{() -> view.onInfoClick(item)}"
|
||||
android:scaleType="fitCenter" />
|
||||
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
@ -194,10 +194,13 @@
|
||||
<string name="invalid_quantity_x_package_error_message"><![CDATA[La <b>quantità per confezioni</b> inserita non è valida]]></string>
|
||||
<string name="available_num_cnf_overflow_error_message"><![CDATA[Il <b>numero di confezioni</b> inserito supera la quantità massima disponibile]]></string>
|
||||
<string name="ordered_quantity_overflow_error_message"><![CDATA[La <b>quantità</b> inserita supera la quantità ordinata]]></string>
|
||||
<string name="confirm_ordered_quantity_overflow_error_message"><![CDATA[La <b>quantità</b> inserita supera la quantità ordinata. Continuare?]]></string>
|
||||
<string name="ordered_num_cnf_overflow_error_message"><![CDATA[Il <b>numero di confezioni</b> inserito supera la quantità ordinata]]></string>
|
||||
<string name="confirm_ordered_num_cnf_overflow_error_message"><![CDATA[Il <b>numero di confezioni</b> inserito supera la quantità ordinata. Continuare?]]></string>
|
||||
<string name="invalid_production_line_error_message"><![CDATA[<b>Linea di produzione</b> non valida]]></string>
|
||||
<string name="expire_date_error_message"><![CDATA[La <b>data di scadenza</b> inserita non è valida]]></string>
|
||||
<string name="batch_lot_error_message"><![CDATA[Il <b>lotto</b> inserito non è valido]]></string>
|
||||
<string name="batch_lot_inexistent_error_message">È stato inserito un nuovo lotto per questo articolo. Continuare?</string>
|
||||
<string name="empty_notes_input_message"><![CDATA[Il <b>campo note</b> deve essere compilato per il modulo corrente.]]></string>
|
||||
<string name="settings_category">Impostazioni</string>
|
||||
<string name="check_box_preference_title">Check box</string>
|
||||
|
||||
@ -194,10 +194,13 @@
|
||||
<string name="available_quantity_overflow_error_message"><![CDATA[The inserted <b>amount</b> exceeds the maximum amount available, please check it]]></string>
|
||||
<string name="available_num_cnf_overflow_error_message"><![CDATA[The inserted <b>package\'s amount</b> exceeds the maximum amount available, please check it]]></string>
|
||||
<string name="ordered_quantity_overflow_error_message"><![CDATA[The inserted <b>amount</b> exceeds the total ordered amount, please check it]]></string>
|
||||
<string name="confirm_ordered_quantity_overflow_error_message"><![CDATA[The inserted <b>amount</b> exceeds the total ordered amount. To continue?]]></string>
|
||||
<string name="confirm_ordered_num_cnf_overflow_error_message"><![CDATA[The inserted <b>package\'s amount</b> exceeds the total ordered amount. To continue?]]></string>
|
||||
<string name="ordered_num_cnf_overflow_error_message"><![CDATA[The inserted <b>package\'s amount</b> exceeds the total ordered amount, please check it]]></string>
|
||||
<string name="invalid_production_line_error_message"><![CDATA[Invalid <b>production line</b>]]></string>
|
||||
<string name="expire_date_error_message"><![CDATA[The inserted <b>expire date</b> is not valid, please check it.]]></string>
|
||||
<string name="batch_lot_error_message"><![CDATA[The inserted <b>batch lot</b> is not valid, please check it.]]></string>
|
||||
<string name="batch_lot_inexistent_error_message">A new batch lot has been added for this item. To continue?</string>
|
||||
<string name="empty_notes_input_message"><![CDATA[The <b>notes field</b> requires to be filled in for the current form.]]></string>
|
||||
<string name="settings_category">Settings</string>
|
||||
<string name="check_box_preference_title">Check box</string>
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
buildscript {
|
||||
ext {
|
||||
kotlin_version = '1.9.0'
|
||||
agp_version = '8.3.0'
|
||||
agp_version = '8.3.1'
|
||||
}
|
||||
|
||||
repositories {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user