Merge branch 'develop' into feature/GestioneDocumentiLavorazione
# Conflicts: # app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/ProdRientroMerceOrderDetailPickedQuantityDTO.java # app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_lu_prod/adapter/DialogInputLUProdTipoColloAdapter.java # build.gradle
This commit is contained in:
commit
09cebb1c7e
2
.idea/deploymentTargetSelector.xml
generated
2
.idea/deploymentTargetSelector.xml
generated
@ -4,7 +4,7 @@
|
||||
<selectionStates>
|
||||
<SelectionState runConfigName="app">
|
||||
<option name="selectionMode" value="DROPDOWN" />
|
||||
<DropdownSelection timestamp="2025-01-09T09:29:04.931795900Z">
|
||||
<DropdownSelection timestamp="2025-01-17T09:18:08.345092200Z">
|
||||
<Target type="DEFAULT_BOOT">
|
||||
<handle>
|
||||
<DeviceId pluginId="PhysicalDevice" identifier="serial=21088B8EFD" />
|
||||
|
||||
2
.idea/kotlinc.xml
generated
2
.idea/kotlinc.xml
generated
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="KotlinJpsPluginSettings">
|
||||
<option name="version" value="1.9.20" />
|
||||
<option name="version" value="1.9.25" />
|
||||
</component>
|
||||
</project>
|
||||
@ -5,13 +5,13 @@ if (!project.hasProperty("disable-performance-plugin")) {
|
||||
}
|
||||
|
||||
apply plugin: 'com.google.firebase.crashlytics'
|
||||
apply plugin: 'kotlin-android'
|
||||
//apply plugin: 'kotlin-android'
|
||||
apply plugin: 'com.google.gms.google-services'
|
||||
|
||||
android {
|
||||
|
||||
def appVersionCode = 463
|
||||
def appVersionName = '1.42.03'
|
||||
def appVersionCode = 465
|
||||
def appVersionName = '1.43.00'
|
||||
|
||||
signingConfigs {
|
||||
release {
|
||||
@ -34,10 +34,10 @@ android {
|
||||
defaultConfig {
|
||||
applicationId "it.integry.integrywmsnative"
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 34
|
||||
targetSdkVersion 35
|
||||
versionCode appVersionCode
|
||||
versionName appVersionName
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
// testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
signingConfig signingConfigs.release
|
||||
|
||||
javaCompileOptions {
|
||||
@ -80,30 +80,37 @@ android {
|
||||
}
|
||||
|
||||
gradle.projectsEvaluated {
|
||||
tasks.withType(JavaCompile.class) {
|
||||
tasks.withType(JavaCompile.class).tap {
|
||||
configureEach {
|
||||
options.compilerArgs << "-Xmaxerrs" << "10000"
|
||||
}
|
||||
}
|
||||
}
|
||||
lint {
|
||||
abortOnError false
|
||||
}
|
||||
namespace 'it.integry.integrywmsnative'
|
||||
compileSdk 34
|
||||
compileSdk 35
|
||||
}
|
||||
|
||||
configurations {
|
||||
all*.exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk7'
|
||||
all*.exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk8'
|
||||
}
|
||||
|
||||
dependencies {
|
||||
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.4'
|
||||
implementation fileTree(include: ['*.jar'], dir: 'libs')
|
||||
androidTestImplementation('androidx.test.espresso:espresso-core:3.3.0', {
|
||||
exclude group: 'com.android.support', module: 'support-annotations'
|
||||
})
|
||||
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
|
||||
// androidTestImplementation('androidx.test.espresso:espresso-core:3.6.1', {
|
||||
// exclude group: 'com.android.support', module: 'support-annotations'
|
||||
// })
|
||||
// implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
||||
implementation 'com.github.lupaulus:logger:2.3.2'
|
||||
|
||||
//Firebase
|
||||
|
||||
// Import the Firebase BoM
|
||||
implementation platform('com.google.firebase:firebase-bom:33.7.0')
|
||||
implementation platform('com.google.firebase:firebase-bom:33.8.0')
|
||||
implementation 'com.google.firebase:firebase-analytics'
|
||||
implementation 'com.google.firebase:firebase-crashlytics'
|
||||
implementation 'com.google.firebase:firebase-perf'
|
||||
@ -115,7 +122,7 @@ dependencies {
|
||||
implementation 'com.google.android.material:material:1.12.0'
|
||||
implementation 'androidx.constraintlayout:constraintlayout:2.2.0'
|
||||
implementation 'androidx.cardview:cardview:1.0.0'
|
||||
implementation 'androidx.recyclerview:recyclerview:1.3.2'
|
||||
implementation 'androidx.recyclerview:recyclerview:1.4.0'
|
||||
|
||||
implementation('androidx.preference:preference-ktx:1.2.1') {
|
||||
exclude group: 'androidx.lifecycle', module: 'lifecycle-viewmodel'
|
||||
@ -132,7 +139,7 @@ dependencies {
|
||||
implementation 'org.apache.commons:commons-text:1.9'
|
||||
|
||||
//MVVM
|
||||
def dagger2_version = '2.49'
|
||||
def dagger2_version = '2.55'
|
||||
api "com.google.dagger:dagger:$dagger2_version"
|
||||
annotationProcessor "com.google.dagger:dagger-compiler:$dagger2_version"
|
||||
api "com.google.dagger:dagger-android:$dagger2_version"
|
||||
|
||||
@ -83,8 +83,8 @@ public class MainApplicationModule {
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
public SettingsManager provideSettingsManager(SystemRESTConsumer systemRESTConsumer, AziendaRESTConsumer aziendaRESTConsumer, PosizioniRESTConsumer posizioniRESTConsumer, GestSetupRESTConsumer gestSetupRESTConsumer) {
|
||||
return new SettingsManager(mApplication, systemRESTConsumer, aziendaRESTConsumer, gestSetupRESTConsumer, posizioniRESTConsumer);
|
||||
public SettingsManager provideSettingsManager(SystemRESTConsumer systemRESTConsumer, ImballiRESTConsumer imballiRESTConsumer, AziendaRESTConsumer aziendaRESTConsumer, PosizioniRESTConsumer posizioniRESTConsumer, GestSetupRESTConsumer gestSetupRESTConsumer) {
|
||||
return new SettingsManager(mApplication, systemRESTConsumer, imballiRESTConsumer, aziendaRESTConsumer, gestSetupRESTConsumer, posizioniRESTConsumer);
|
||||
}
|
||||
|
||||
@Provides
|
||||
|
||||
@ -103,12 +103,12 @@ public class SplashActivity extends BaseActivity implements MainContext.Listener
|
||||
|
||||
@Override
|
||||
public void onDBDataLoading(String item) {
|
||||
mBinding.loadingInfoTextview.setText("Caricamento " + item);
|
||||
runOnUiThread(() -> mBinding.loadingInfoTextview.setText("Caricamento " + item));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMenuLoading() {
|
||||
mBinding.loadingInfoTextview.setText("Caricamento menù");
|
||||
runOnUiThread(() -> mBinding.loadingInfoTextview.setText("Caricamento menù"));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -105,7 +105,7 @@ public class Converters {
|
||||
view.setTag(R.id.bound_observable, new Pair<>(observableField, watcher));
|
||||
view.addTextChangedListener(watcher);
|
||||
}
|
||||
String newValue = observableField.get();
|
||||
String newValue = observableField != null ? observableField.get() : "";
|
||||
if (!view.getText().toString().equals(newValue)) {
|
||||
view.setText(newValue);
|
||||
}
|
||||
@ -819,6 +819,45 @@ public class Converters {
|
||||
}
|
||||
|
||||
|
||||
@BindingAdapter("visibilityWhenNotNull")
|
||||
public static void bindViewVisibilityWhenNotNull(View view, ObservableField<?> bindableObject) {
|
||||
if(bindableObject == null) return;
|
||||
|
||||
if (view.getTag(R.id.bound_observable) != bindableObject) {
|
||||
view.setTag(R.id.bound_observable, bindableObject);
|
||||
}
|
||||
|
||||
bindableObject.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
|
||||
@Override
|
||||
public void onPropertyChanged(Observable sender, int propertyId) {
|
||||
view.setVisibility(bindableObject.get() == null ? View.GONE : View.VISIBLE);
|
||||
}
|
||||
});
|
||||
|
||||
view.setVisibility(bindableObject.get() == null ? View.GONE : View.VISIBLE);
|
||||
}
|
||||
|
||||
|
||||
@BindingAdapter("visibilityWhenNull")
|
||||
public static void bindViewVisibilityWhenNull(View view, ObservableField<?> bindableObject) {
|
||||
|
||||
if (view.getTag(R.id.bound_observable_visibility) != bindableObject) {
|
||||
view.setTag(R.id.bound_observable_visibility, bindableObject);
|
||||
}
|
||||
|
||||
view.setVisibility(bindableObject == null || bindableObject.get() == null ? View.VISIBLE : View.GONE);
|
||||
|
||||
if(bindableObject == null) return;
|
||||
|
||||
bindableObject.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
|
||||
@Override
|
||||
public void onPropertyChanged(Observable sender, int propertyId) {
|
||||
view.setVisibility(bindableObject.get() == null ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@BindingAdapter({"reverse_visibility"})
|
||||
public static void bindViewReverseVisibility(View view, final BindableBoolean bindableBoolean) {
|
||||
if (view.getTag(R.id.bound_reverse_visibility) != bindableBoolean) {
|
||||
|
||||
@ -0,0 +1,16 @@
|
||||
package it.integry.integrywmsnative.core.helper;
|
||||
|
||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||
|
||||
public final class GestioneToTextConverter {
|
||||
|
||||
public static String convert(GestioneEnum gestioneEnum) {
|
||||
return switch (gestioneEnum) {
|
||||
case ACQUISTO -> "Acquisto";
|
||||
case PRODUZIONE -> "Produzione";
|
||||
case LAVORAZIONE -> "Lavorazione";
|
||||
case VENDITA -> "Vendita";
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
@ -3,6 +3,7 @@ package it.integry.integrywmsnative.core.model;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import androidx.databinding.ObservableArrayList;
|
||||
import androidx.databinding.ObservableField;
|
||||
|
||||
import com.annimon.stream.Optional;
|
||||
import com.annimon.stream.Stream;
|
||||
@ -16,6 +17,7 @@ import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.core.model.dto.InternalCodAnagsDTO;
|
||||
import it.integry.integrywmsnative.core.model.observable.ObservableMtbTcol;
|
||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDB;
|
||||
@ -64,7 +66,7 @@ public class MtbColt extends EntityBase {
|
||||
private BigDecimal altezzaCm;
|
||||
private String codJcom;
|
||||
|
||||
private MtbTCol mtbTCol;
|
||||
private final ObservableField<ObservableMtbTcol> mtbTCol = new ObservableField<>();
|
||||
|
||||
private Boolean disablePrint;
|
||||
private String ragSocCliente;
|
||||
@ -258,6 +260,16 @@ public class MtbColt extends EntityBase {
|
||||
|
||||
public MtbColt setCodTcol(String codTcol) {
|
||||
this.codTcol = codTcol;
|
||||
|
||||
if(!UtilityString.isNullOrEmpty(codTcol)) {
|
||||
var fountMtbTcolObservable = SettingsManager.iDB().getInternalImballi().stream()
|
||||
.filter(x -> x.getCodTcol().equalsIgnoreCase(codTcol))
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
this.setMtbTCol(fountMtbTcolObservable);
|
||||
} else
|
||||
this.setMtbTCol(null);
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
@ -532,15 +544,19 @@ public class MtbColt extends EntityBase {
|
||||
return this;
|
||||
}
|
||||
|
||||
public MtbTCol getMtbTCol() {
|
||||
return mtbTCol;
|
||||
public ObservableMtbTcol getMtbTCol() {
|
||||
return mtbTCol.get();
|
||||
}
|
||||
|
||||
public MtbColt setMtbTCol(MtbTCol mtbTCol) {
|
||||
this.mtbTCol = mtbTCol;
|
||||
public MtbColt setMtbTCol(ObservableMtbTcol mtbTCol) {
|
||||
this.mtbTCol.set(mtbTCol);
|
||||
return this;
|
||||
}
|
||||
|
||||
public ObservableField<ObservableMtbTcol> mtbTcolProperty() {
|
||||
return mtbTCol;
|
||||
}
|
||||
|
||||
public void generaFiltroOrdineFromDTO(List<FiltroOrdineDTO> filtroOrdineDtos) {
|
||||
|
||||
String xmlPrefix = "{\"whereCond\": \"";
|
||||
|
||||
@ -15,7 +15,7 @@ public class MtbTCol {
|
||||
private BigDecimal taraKg;
|
||||
private String descrizione;
|
||||
private String codMart;
|
||||
private FlagUiUlEnum flagUIUL;
|
||||
private FlagUiUlEnum flagUiUl;
|
||||
private String circuito;
|
||||
|
||||
public String getCodTcol() {
|
||||
@ -90,12 +90,12 @@ public class MtbTCol {
|
||||
return this;
|
||||
}
|
||||
|
||||
public FlagUiUlEnum getFlagUIUL() {
|
||||
return flagUIUL;
|
||||
public FlagUiUlEnum getFlagUiUl() {
|
||||
return flagUiUl;
|
||||
}
|
||||
|
||||
public void setFlagUIUL(FlagUiUlEnum flagUIUL) {
|
||||
this.flagUIUL = flagUIUL;
|
||||
public void setFlagUiUl(FlagUiUlEnum flagUiUl) {
|
||||
this.flagUiUl = flagUiUl;
|
||||
}
|
||||
|
||||
public String getCircuito() {
|
||||
|
||||
@ -0,0 +1,29 @@
|
||||
package it.integry.integrywmsnative.core.model.mapper;
|
||||
|
||||
import androidx.databinding.ObservableArrayList;
|
||||
import androidx.databinding.ObservableList;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||
import it.integry.integrywmsnative.core.model.observable.ObservableMtbTcol;
|
||||
|
||||
public class MtbTcolMapper {
|
||||
|
||||
public static ObservableMtbTcol fromDTO(MtbTCol dto) {
|
||||
ObservableMtbTcol mtbTcol = new ObservableMtbTcol();
|
||||
mtbTcol.updateFromDTO(dto);
|
||||
return mtbTcol;
|
||||
}
|
||||
|
||||
public static ObservableList<ObservableMtbTcol> fromDTOList(List<MtbTCol> dto) {
|
||||
ObservableList<ObservableMtbTcol> mtbTCols = new ObservableArrayList<>();
|
||||
|
||||
mtbTCols.addAll(dto.stream().map(MtbTcolMapper::fromDTO)
|
||||
.collect(Collectors.toUnmodifiableList()));
|
||||
|
||||
return mtbTCols;
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,127 @@
|
||||
package it.integry.integrywmsnative.core.model.observable;
|
||||
|
||||
import androidx.databinding.BaseObservable;
|
||||
import androidx.databinding.Bindable;
|
||||
import androidx.databinding.ObservableField;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||
|
||||
public class ObservableMtbTcol extends BaseObservable {
|
||||
|
||||
private final ObservableField<String> codTcol = new ObservableField<>();
|
||||
private final ObservableField<BigDecimal> pesoKg = new ObservableField<>();
|
||||
private final ObservableField<BigDecimal> lunghezzaCm = new ObservableField<>();
|
||||
private final ObservableField<BigDecimal> larghezzaCm = new ObservableField<>();
|
||||
private final ObservableField<BigDecimal> altezzaCm = new ObservableField<>();
|
||||
private final ObservableField<BigDecimal> taraKg = new ObservableField<>();
|
||||
private final ObservableField<String> descrizione = new ObservableField<>();
|
||||
private final ObservableField<String> codMart = new ObservableField<>();
|
||||
private final ObservableField<MtbTCol.FlagUiUlEnum> flagUIUL = new ObservableField<>();
|
||||
private final ObservableField<String> circuito = new ObservableField<>();
|
||||
|
||||
@Bindable
|
||||
public String getCodTcol() {
|
||||
return codTcol.get();
|
||||
}
|
||||
|
||||
@Bindable
|
||||
public BigDecimal getPesoKg() {
|
||||
return pesoKg.get();
|
||||
}
|
||||
|
||||
@Bindable
|
||||
public BigDecimal getLunghezzaCm() {
|
||||
return lunghezzaCm.get();
|
||||
}
|
||||
|
||||
@Bindable
|
||||
public BigDecimal getLarghezzaCm() {
|
||||
return larghezzaCm.get();
|
||||
}
|
||||
|
||||
@Bindable
|
||||
public BigDecimal getAltezzaCm() {
|
||||
return altezzaCm.get();
|
||||
}
|
||||
|
||||
@Bindable
|
||||
public BigDecimal getTaraKg() {
|
||||
return taraKg.get();
|
||||
}
|
||||
|
||||
@Bindable
|
||||
public String getDescrizione() {
|
||||
return descrizione.get();
|
||||
}
|
||||
|
||||
@Bindable
|
||||
public String getCodMart() {
|
||||
return codMart.get();
|
||||
}
|
||||
|
||||
@Bindable
|
||||
public MtbTCol.FlagUiUlEnum getFlagUIUL() {
|
||||
return flagUIUL.get();
|
||||
}
|
||||
|
||||
@Bindable
|
||||
public String getCircuito() {
|
||||
return circuito.get();
|
||||
}
|
||||
|
||||
|
||||
public ObservableField<String> codTcolProperty() {
|
||||
return codTcol;
|
||||
}
|
||||
|
||||
public ObservableField<BigDecimal> pesoKgProperty() {
|
||||
return pesoKg;
|
||||
}
|
||||
|
||||
public ObservableField<BigDecimal> lunghezzaCmProperty() {
|
||||
return lunghezzaCm;
|
||||
}
|
||||
|
||||
public ObservableField<BigDecimal> larghezzaCmProperty() {
|
||||
return larghezzaCm;
|
||||
}
|
||||
|
||||
public ObservableField<BigDecimal> altezzaCmProperty() {
|
||||
return altezzaCm;
|
||||
}
|
||||
|
||||
public ObservableField<BigDecimal> taraKgProperty() {
|
||||
return taraKg;
|
||||
}
|
||||
|
||||
public ObservableField<String> descrizioneProperty() {
|
||||
return descrizione;
|
||||
}
|
||||
|
||||
public ObservableField<String> codMartProperty() {
|
||||
return codMart;
|
||||
}
|
||||
|
||||
public ObservableField<MtbTCol.FlagUiUlEnum> flagUIULProperty() {
|
||||
return flagUIUL;
|
||||
}
|
||||
|
||||
public ObservableField<String> circuitoProperty() {
|
||||
return circuito;
|
||||
}
|
||||
|
||||
public void updateFromDTO(MtbTCol mtbTCol) {
|
||||
codTcol.set(mtbTCol.getCodTcol());
|
||||
pesoKg.set(mtbTCol.getPesoKg());
|
||||
lunghezzaCm.set(mtbTCol.getLunghezzaCm());
|
||||
larghezzaCm.set(mtbTCol.getLarghezzaCm());
|
||||
altezzaCm.set(mtbTCol.getAltezzaCm());
|
||||
taraKg.set(mtbTCol.getTaraKg());
|
||||
descrizione.set(mtbTCol.getDescrizione());
|
||||
codMart.set(mtbTCol.getCodMart());
|
||||
flagUIUL.set(mtbTCol.getFlagUiUl());
|
||||
circuito.set(mtbTCol.getCircuito());
|
||||
}
|
||||
}
|
||||
@ -7,6 +7,8 @@ import javax.inject.Singleton;
|
||||
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||
import it.integry.integrywmsnative.core.model.mapper.MtbTcolMapper;
|
||||
import it.integry.integrywmsnative.core.model.observable.ObservableMtbTcol;
|
||||
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||
import it.integry.integrywmsnative.core.rest.model.imballi.ImballoQuantityDTO;
|
||||
@ -24,18 +26,19 @@ public class ImballiRESTConsumer extends _BaseRESTConsumer {
|
||||
}
|
||||
|
||||
|
||||
public List<MtbTCol> retrieveTipiColloSyncronized(MtbTCol.FlagUiUlEnum tipoImballo) throws Exception {
|
||||
public List<ObservableMtbTcol> retrieveImballiSyncronized(MtbTCol.FlagUiUlEnum tipoImballo) throws Exception {
|
||||
ImballiRESTConsumerService service = RESTBuilder.getService(ImballiRESTConsumerService.class);
|
||||
Response<ServiceRESTResponse<List<MtbTCol>>> response = service.retrieveTipiCollo(tipoImballo)
|
||||
Response<ServiceRESTResponse<List<MtbTCol>>> response = service.retrieveImballi(tipoImballo)
|
||||
.execute();
|
||||
|
||||
return analyzeAnswer(response, "retrieveTipiCollo");
|
||||
List<MtbTCol> retrieveTipiCollo = analyzeAnswer(response, "retrieveTipiCollo");
|
||||
return MtbTcolMapper.fromDTOList(retrieveTipiCollo);
|
||||
}
|
||||
|
||||
public void retrieveTipiCollo(MtbTCol.FlagUiUlEnum tipoImballo, RunnableArgs<List<MtbTCol>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||
public void retrieveImballi(MtbTCol.FlagUiUlEnum tipoImballo, RunnableArgs<List<ObservableMtbTcol>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||
executorService.execute(() -> {
|
||||
try {
|
||||
var response = retrieveTipiColloSyncronized(tipoImballo);
|
||||
var response = retrieveImballiSyncronized(tipoImballo);
|
||||
if (onComplete != null) onComplete.run(response);
|
||||
} catch (Exception ex) {
|
||||
if (onFailed != null) onFailed.run(ex);
|
||||
|
||||
@ -16,7 +16,7 @@ public interface ImballiRESTConsumerService {
|
||||
|
||||
|
||||
@GET("wms/imballi/retrieve/{tipo}")
|
||||
Call<ServiceRESTResponse<List<MtbTCol>>> retrieveTipiCollo(@Path("tipo") MtbTCol.FlagUiUlEnum tipo);
|
||||
Call<ServiceRESTResponse<List<MtbTCol>>> retrieveImballi(@Path("tipo") MtbTCol.FlagUiUlEnum tipo);
|
||||
|
||||
@POST("wms/imballi/registraCarico")
|
||||
Call<ServiceRESTResponse<Void>> registraCarico(@Body RegistraCaricoImballiRequestDTO registraCaricoImballiRequest);
|
||||
|
||||
@ -1,11 +1,15 @@
|
||||
package it.integry.integrywmsnative.core.settings;
|
||||
|
||||
import androidx.databinding.ObservableArrayList;
|
||||
import androidx.databinding.ObservableList;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.core.model.Azienda;
|
||||
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
|
||||
import it.integry.integrywmsnative.core.model.dto.InternalCodAnagsDTO;
|
||||
import it.integry.integrywmsnative.core.model.observable.ObservableMtbTcol;
|
||||
import it.integry.integrywmsnative.core.rest.model.AvailableCodMdepsDTO;
|
||||
|
||||
public class DBSettingsModel {
|
||||
@ -16,6 +20,7 @@ public class DBSettingsModel {
|
||||
|
||||
private Azienda datiAzienda = null;
|
||||
private List<InternalCodAnagsDTO> internalCodAnags = null;
|
||||
private ObservableList<ObservableMtbTcol> internalImballi = new ObservableArrayList<>();
|
||||
|
||||
private boolean enableCheckPartitaMagCheckPickingV;
|
||||
private boolean flagMultiClienteOrdV;
|
||||
@ -137,6 +142,15 @@ public class DBSettingsModel {
|
||||
return this;
|
||||
}
|
||||
|
||||
public ObservableList<ObservableMtbTcol> getInternalImballi() {
|
||||
return internalImballi;
|
||||
}
|
||||
|
||||
public DBSettingsModel setInternalImballi(ObservableList<ObservableMtbTcol> internalImballi) {
|
||||
this.internalImballi = internalImballi;
|
||||
return this;
|
||||
}
|
||||
|
||||
public List<AvailableCodMdepsDTO> getAvailableCodMdep() {
|
||||
return availableCodMdep;
|
||||
}
|
||||
|
||||
@ -2,6 +2,8 @@ package it.integry.integrywmsnative.core.settings;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import androidx.databinding.ObservableArrayList;
|
||||
|
||||
import com.google.firebase.perf.metrics.Trace;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
|
||||
@ -16,9 +18,12 @@ import javax.inject.Singleton;
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.CommonConst;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||
import it.integry.integrywmsnative.core.model.dto.InternalCodAnagsDTO;
|
||||
import it.integry.integrywmsnative.core.model.observable.ObservableMtbTcol;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.AziendaRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.GestSetupRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.ImballiRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.rest.model.AvailableCodMdepsDTO;
|
||||
@ -38,17 +43,20 @@ public class SettingsManager {
|
||||
|
||||
private static Context mContext;
|
||||
private static SystemRESTConsumer mSystemRESTConsumer;
|
||||
private static ImballiRESTConsumer mImballiRESTConsumer;
|
||||
private static AziendaRESTConsumer mAziendaRESTConsumer;
|
||||
private static GestSetupRESTConsumer mGestSetupRESTConsumer;
|
||||
private static PosizioniRESTConsumer mPosizioniRESTConsumer;
|
||||
|
||||
public SettingsManager(Context context,
|
||||
SystemRESTConsumer systemRESTConsumer,
|
||||
ImballiRESTConsumer imballiRESTConsumer,
|
||||
AziendaRESTConsumer aziendaRESTConsumer,
|
||||
GestSetupRESTConsumer gestSetupRESTConsumer,
|
||||
PosizioniRESTConsumer posizioniRESTConsumer) {
|
||||
mContext = context;
|
||||
mSystemRESTConsumer = systemRESTConsumer;
|
||||
mImballiRESTConsumer = imballiRESTConsumer;
|
||||
mAziendaRESTConsumer = aziendaRESTConsumer;
|
||||
mGestSetupRESTConsumer = gestSetupRESTConsumer;
|
||||
mPosizioniRESTConsumer = posizioniRESTConsumer;
|
||||
@ -124,10 +132,29 @@ public class SettingsManager {
|
||||
loadGestSetupValues(() -> {
|
||||
|
||||
onProgress.run("dati azienda");
|
||||
loadDatiAzienda(tmpOnComplete, tmpOnFailed);
|
||||
loadDatiAzienda(() -> {
|
||||
|
||||
loadTipiCollo(tmpOnComplete, tmpOnFailed);
|
||||
|
||||
}, tmpOnFailed);
|
||||
}, tmpOnFailed);
|
||||
}, tmpOnFailed);
|
||||
}, tmpOnFailed);
|
||||
}
|
||||
|
||||
private static void loadTipiCollo(Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
||||
mImballiRESTConsumer.retrieveImballi(MtbTCol.FlagUiUlEnum.UL, tipiColloUl -> {
|
||||
mImballiRESTConsumer.retrieveImballi(MtbTCol.FlagUiUlEnum.UI, tipiColloUi -> {
|
||||
|
||||
var imballiList = new ObservableArrayList<ObservableMtbTcol>();
|
||||
imballiList.addAll(tipiColloUi);
|
||||
imballiList.addAll(tipiColloUl);
|
||||
|
||||
SettingsManager.iDB().setInternalImballi(imballiList);
|
||||
onComplete.run();
|
||||
}, onFailed);
|
||||
}, onFailed);
|
||||
|
||||
}
|
||||
|
||||
private static void loadDatiAzienda(Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
||||
|
||||
@ -41,8 +41,8 @@ import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
||||
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||
import it.integry.integrywmsnative.core.model.dto.AlreadyRegisteredUDCDTO;
|
||||
import it.integry.integrywmsnative.core.model.observable.ObservableMtbTcol;
|
||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||
import it.integry.integrywmsnative.core.report.ReportManager;
|
||||
import it.integry.integrywmsnative.core.rest.model.VersamentoAutomaticoULResponseDTO;
|
||||
@ -546,6 +546,16 @@ public class AccettazioneBollaPickingActivity extends BaseActivity implements Ac
|
||||
this.mViewModel.deleteRow(mtbColr);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestChangeMtbTcol(MtbColt mtbColt) {
|
||||
DialogInfoAggiuntiveLUView.newInstance(mtbColt, false, true, (note, mtbTcol) -> {
|
||||
onLoadingStarted();
|
||||
mViewModel.updateTipoUl(mtbTcol, this::onLoadingEnded);
|
||||
}, () -> {
|
||||
})
|
||||
.show(getSupportFragmentManager(), "dialog-note-aggiuntive");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBottomSheetLUClose() {
|
||||
this.mViewModel.closeLU();
|
||||
@ -560,7 +570,7 @@ public class AccettazioneBollaPickingActivity extends BaseActivity implements Ac
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInfoAggiuntiveRequest(RunnableArgss<String, MtbTCol> onComplete) {
|
||||
public void onInfoAggiuntiveRequest(RunnableArgss<String, ObservableMtbTcol> onComplete) {
|
||||
DialogInfoAggiuntiveLUView.newInstance(onComplete, this::onLoadingEnded)
|
||||
.show(getSupportFragmentManager(), DialogInfoAggiuntiveLUView.class.getName());
|
||||
}
|
||||
|
||||
@ -30,9 +30,9 @@ import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingL
|
||||
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||
import it.integry.integrywmsnative.core.model.dto.AlreadyRegisteredUDCDTO;
|
||||
import it.integry.integrywmsnative.core.model.dto.PickDataDTO;
|
||||
import it.integry.integrywmsnative.core.model.observable.ObservableMtbTcol;
|
||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
||||
@ -360,7 +360,7 @@ public class AccettazioneBollaPickingViewModel {
|
||||
});
|
||||
}
|
||||
|
||||
private void manageInfoAggiuntiveRequest(RunnableArgss<String, MtbTCol> onComplete) {
|
||||
private void manageInfoAggiuntiveRequest(RunnableArgss<String, ObservableMtbTcol> onComplete) {
|
||||
if (!SettingsManager.iDB().isFlagAccettazioneBollaAskTipoCollo()) {
|
||||
onComplete.run(null, null);
|
||||
return;
|
||||
@ -739,6 +739,13 @@ public class AccettazioneBollaPickingViewModel {
|
||||
this.mPickingList.postValue(this.mPickingList.getValue());
|
||||
}
|
||||
|
||||
public void updateTipoUl(ObservableMtbTcol newTipoUL, Runnable onComplete) {
|
||||
mColliMagazzinoRESTConsumer.updateTipoUL(mCurrentMtbColt, newTipoUL.getCodTcol(), () -> {
|
||||
mCurrentMtbColt.setCodTcol(newTipoUL.getCodTcol());
|
||||
onComplete.run();
|
||||
}, this::sendError);
|
||||
}
|
||||
|
||||
private void addHistoryItem(@NonNull MtbColr mtbColr) {
|
||||
Optional<HistoryMtbAartDTO> optional = Stream.of(this.mHistoryUsedAarts).filter(x -> (x.getCodMart() != null && x.getCodMart().equalsIgnoreCase(mtbColr.getCodMart())) || (x.getCodMart() == null && x.getBarcode().equalsIgnoreCase(mtbColr.getCodBarre()))).findFirst();
|
||||
|
||||
@ -773,7 +780,7 @@ public class AccettazioneBollaPickingViewModel {
|
||||
if (this.mListener != null) this.mListener.onVersamentoAutomaticoULRequest(onComplete);
|
||||
}
|
||||
|
||||
private void sendOnInfoAggiuntiveRequest(RunnableArgss<String, MtbTCol> onComplete) {
|
||||
private void sendOnInfoAggiuntiveRequest(RunnableArgss<String, ObservableMtbTcol> onComplete) {
|
||||
if (this.mListener != null) this.mListener.onInfoAggiuntiveRequest(onComplete);
|
||||
}
|
||||
|
||||
@ -838,7 +845,7 @@ public class AccettazioneBollaPickingViewModel {
|
||||
|
||||
void onVersamentoAutomaticoULRequest(RunnableArgs<Boolean> onComplete);
|
||||
|
||||
void onInfoAggiuntiveRequest(RunnableArgss<String, MtbTCol> onComplete);
|
||||
void onInfoAggiuntiveRequest(RunnableArgss<String, ObservableMtbTcol> onComplete);
|
||||
|
||||
void onError(Exception ex);
|
||||
|
||||
|
||||
@ -44,8 +44,8 @@ import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
||||
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||
import it.integry.integrywmsnative.core.model.dto.AlreadyRegisteredUDCDTO;
|
||||
import it.integry.integrywmsnative.core.model.observable.ObservableMtbTcol;
|
||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||
import it.integry.integrywmsnative.core.report.ReportManager;
|
||||
import it.integry.integrywmsnative.core.rest.model.VersamentoAutomaticoULResponseDTO;
|
||||
@ -718,6 +718,16 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
|
||||
this.mViewModel.deleteRow(mtbColr);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestChangeMtbTcol(MtbColt mtbColt) {
|
||||
DialogInfoAggiuntiveLUView.newInstance(mtbColt, false, true, (note, mtbTcol) -> {
|
||||
onLoadingStarted();
|
||||
mViewModel.updateTipoUl(mtbTcol, this::onLoadingEnded);
|
||||
}, () -> {
|
||||
})
|
||||
.show(getSupportFragmentManager(), "dialog-note-aggiuntive");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBottomSheetLUClose() {
|
||||
this.mViewModel.closeLU();
|
||||
@ -729,7 +739,7 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInfoAggiuntiveRequest(RunnableArgss<String, MtbTCol> onComplete) {
|
||||
public void onInfoAggiuntiveRequest(RunnableArgss<String, ObservableMtbTcol> onComplete) {
|
||||
DialogInfoAggiuntiveLUView.newInstance(onComplete, this::onLoadingEnded).show(getSupportFragmentManager(), DialogInfoAggiuntiveLUView.class.getName());
|
||||
}
|
||||
|
||||
|
||||
@ -32,9 +32,9 @@ import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingL
|
||||
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||
import it.integry.integrywmsnative.core.model.dto.AlreadyRegisteredUDCDTO;
|
||||
import it.integry.integrywmsnative.core.model.dto.PickDataDTO;
|
||||
import it.integry.integrywmsnative.core.model.observable.ObservableMtbTcol;
|
||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
||||
@ -892,6 +892,13 @@ public class AccettazioneOrdiniPickingViewModel {
|
||||
this.mPickingList.postValue(this.mPickingList.getValue());
|
||||
}
|
||||
|
||||
public void updateTipoUl(ObservableMtbTcol newTipoUL, Runnable onComplete) {
|
||||
mColliMagazzinoRESTConsumer.updateTipoUL(mCurrentMtbColt, newTipoUL.getCodTcol(), () -> {
|
||||
mCurrentMtbColt.setCodTcol(newTipoUL.getCodTcol());
|
||||
onComplete.run();
|
||||
}, this::sendError);
|
||||
}
|
||||
|
||||
private void addHistoryItem(@NonNull MtbColr mtbColr) {
|
||||
Optional<HistoryMtbAartDTO> optional = Stream.of(this.mHistoryUsedAarts)
|
||||
.filter(x -> x.getCodMart().equalsIgnoreCase(mtbColr.getCodMart()))
|
||||
@ -945,7 +952,7 @@ public class AccettazioneOrdiniPickingViewModel {
|
||||
if (this.mListener != null) this.mListener.onVersamentoAutomaticoULRequest(onComplete);
|
||||
}
|
||||
|
||||
private void sendOnInfoAggiuntiveRequest(RunnableArgss<String, MtbTCol> onComplete) {
|
||||
private void sendOnInfoAggiuntiveRequest(RunnableArgss<String, ObservableMtbTcol> onComplete) {
|
||||
if (this.mListener != null) this.mListener.onInfoAggiuntiveRequest(onComplete);
|
||||
}
|
||||
|
||||
@ -1045,7 +1052,7 @@ public class AccettazioneOrdiniPickingViewModel {
|
||||
|
||||
void onVersamentoAutomaticoULRequest(RunnableArgs<Boolean> onComplete);
|
||||
|
||||
void onInfoAggiuntiveRequest(RunnableArgss<String, MtbTCol> onComplete);
|
||||
void onInfoAggiuntiveRequest(RunnableArgss<String, ObservableMtbTcol> onComplete);
|
||||
|
||||
void onError(Exception ex);
|
||||
|
||||
|
||||
@ -9,7 +9,6 @@ import android.view.ViewGroup;
|
||||
|
||||
import androidx.appcompat.widget.AppCompatTextView;
|
||||
import androidx.core.content.res.ResourcesCompat;
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
import androidx.databinding.ObservableArrayList;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
|
||||
@ -60,7 +59,6 @@ import it.integry.integrywmsnative.gest.ordini_uscita_elenco.filters.FilterAutom
|
||||
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.filters.FilterClienteLayoutView;
|
||||
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.filters.FilterDepositoLayoutView;
|
||||
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.filters.FilterGruppoMercLayoutView;
|
||||
import it.integry.integrywmsnative.ui.filter_chips.filters.FilterNumeroOrdineLayoutView;
|
||||
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.filters.FilterPaeseLayoutView;
|
||||
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.filters.FilterTermConsLayoutView;
|
||||
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.filters.FilterVettoreLayoutView;
|
||||
@ -74,6 +72,7 @@ import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.BaseDialogRo
|
||||
import it.integry.integrywmsnative.ui.ElevatedToolbar;
|
||||
import it.integry.integrywmsnative.ui.filter_chips.FilterChipDTO;
|
||||
import it.integry.integrywmsnative.ui.filter_chips.FilterChipView;
|
||||
import it.integry.integrywmsnative.ui.filter_chips.filters.FilterNumeroOrdineLayoutView;
|
||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
||||
|
||||
public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledFragment, IScrollableFragment, ISelectAllFragment, OrdiniUscitaElencoViewModel.Listener {
|
||||
@ -150,7 +149,7 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF
|
||||
Bundle savedInstanceState) {
|
||||
super.onCreateView(inflater, container, savedInstanceState);
|
||||
|
||||
mBindings = DataBindingUtil.inflate(inflater, R.layout.fragment_main_ordini_uscita, container, false);
|
||||
mBindings = FragmentMainOrdiniUscitaBinding.inflate(inflater, container, false);
|
||||
|
||||
MainApplication.appComponent
|
||||
.prodOrdineLavorazioneElencoComponent()
|
||||
|
||||
@ -33,7 +33,7 @@ import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
||||
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||
import it.integry.integrywmsnative.core.model.observable.ObservableMtbTcol;
|
||||
import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO;
|
||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
||||
@ -270,13 +270,23 @@ public class PickingResiActivity extends BaseActivity implements BottomSheetFrag
|
||||
this.mViewmodel.deleteRow(mtbColr);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestChangeMtbTcol(MtbColt mtbColt) {
|
||||
DialogInfoAggiuntiveLUView.newInstance(mtbColt, false, true, (note, mtbTcol) -> {
|
||||
onLoadingStarted();
|
||||
mViewmodel.updateTipoUl(mtbTcol, this::onLoadingEnded);
|
||||
}, () -> {
|
||||
})
|
||||
.show(getSupportFragmentManager(), "dialog-note-aggiuntive");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBottomSheetLUClose() {
|
||||
this.mViewmodel.closeLU(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInfoAggiuntiveRequired(RunnableArgss<String, MtbTCol> onComplete) {
|
||||
public void onInfoAggiuntiveRequired(RunnableArgss<String, ObservableMtbTcol> onComplete) {
|
||||
DialogInfoAggiuntiveLUView.newInstance(onComplete, this::onLoadingEnded)
|
||||
.show(getSupportFragmentManager(), DialogInfoAggiuntiveLUView.class.getName());
|
||||
}
|
||||
|
||||
@ -28,8 +28,8 @@ import it.integry.integrywmsnative.core.model.CommonModelConsts;
|
||||
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||
import it.integry.integrywmsnative.core.model.dto.PickDataDTO;
|
||||
import it.integry.integrywmsnative.core.model.observable.ObservableMtbTcol;
|
||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
||||
@ -716,6 +716,13 @@ public class PickingResiViewModel {
|
||||
});
|
||||
}
|
||||
|
||||
public void updateTipoUl(ObservableMtbTcol newTipoUL, Runnable onComplete) {
|
||||
mColliMagazzinoRESTConsumer.updateTipoUL(mCurrentMtbColt, newTipoUL.getCodTcol(), () -> {
|
||||
mCurrentMtbColt.setCodTcol(newTipoUL.getCodTcol());
|
||||
onComplete.run();
|
||||
}, this::sendError);
|
||||
}
|
||||
|
||||
public void resetMatchedRows() {
|
||||
for (WithdrawableDtbDocr pickingObjectDTO : this.mPickingList.getValue()) {
|
||||
pickingObjectDTO
|
||||
@ -732,7 +739,7 @@ public class PickingResiViewModel {
|
||||
return mPickingList;
|
||||
}
|
||||
|
||||
private void sendOnInfoAggiuntiveRequired(RunnableArgss<String, MtbTCol> onComplete) {
|
||||
private void sendOnInfoAggiuntiveRequired(RunnableArgss<String, ObservableMtbTcol> onComplete) {
|
||||
if (this.mListener != null) this.mListener.onInfoAggiuntiveRequired(onComplete);
|
||||
}
|
||||
|
||||
@ -808,9 +815,10 @@ public class PickingResiViewModel {
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
public interface Listener extends ILUPrintListener, ILoadingListener, ILUBaseOperationsListener {
|
||||
|
||||
void onInfoAggiuntiveRequired(RunnableArgss<String, MtbTCol> onComplete);
|
||||
void onInfoAggiuntiveRequired(RunnableArgss<String, ObservableMtbTcol> onComplete);
|
||||
|
||||
void onError(Exception ex);
|
||||
|
||||
|
||||
@ -17,7 +17,8 @@ public class ProdRientroMerceOrderDetailPickedQuantityDTO {
|
||||
private BigDecimal pesoLordo;
|
||||
private String codJfas;
|
||||
|
||||
private MtbTCol mtbTCol;
|
||||
private ObservableMtbTcol mtbTCol;
|
||||
private JtbFasi jtbFasi;
|
||||
|
||||
public BigDecimal getNumCnf() {
|
||||
return numCnf;
|
||||
@ -100,11 +101,11 @@ public class ProdRientroMerceOrderDetailPickedQuantityDTO {
|
||||
return this;
|
||||
}
|
||||
|
||||
public MtbTCol getMtbTCol() {
|
||||
public ObservableMtbTcol getMtbTCol() {
|
||||
return mtbTCol;
|
||||
}
|
||||
|
||||
public ProdRientroMerceOrderDetailPickedQuantityDTO setMtbTCol(MtbTCol mtbTCol) {
|
||||
public ProdRientroMerceOrderDetailPickedQuantityDTO setMtbTCol(ObservableMtbTcol mtbTCol) {
|
||||
this.mtbTCol = mtbTCol;
|
||||
return this;
|
||||
}
|
||||
|
||||
@ -47,7 +47,7 @@ import it.integry.integrywmsnative.core.model.MtbColr;
|
||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
|
||||
import it.integry.integrywmsnative.core.model.MtbPartitaMag;
|
||||
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||
import it.integry.integrywmsnative.core.model.observable.ObservableMtbTcol;
|
||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||
import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
|
||||
import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO;
|
||||
@ -1058,6 +1058,16 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
||||
FBToast.successToast(this, getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestChangeMtbTcol(MtbColt mtbColt) {
|
||||
DialogInfoAggiuntiveLUView.newInstance(mtbColt, false, true, (note, mtbTcol) -> {
|
||||
onLoadingStarted();
|
||||
mViewmodel.updateTipoUl(mtbTcol, this::onLoadingEnded);
|
||||
}, () -> {
|
||||
})
|
||||
.show(getSupportFragmentManager(), "dialog-note-aggiuntive");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBottomSheetLUClose() {
|
||||
this.mViewmodel.requestCloseLU(true);
|
||||
@ -1090,8 +1100,8 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInfoAggiuntiveRequired(MtbColt mtbColt, RunnableArgss<String, MtbTCol> onComplete) {
|
||||
DialogInfoAggiuntiveLUView.newInstance(mtbColt, onComplete, this::onLoadingEnded)
|
||||
public void onInfoAggiuntiveRequired(MtbColt mtbColt, RunnableArgss<String, ObservableMtbTcol> onComplete) {
|
||||
DialogInfoAggiuntiveLUView.newInstance(mtbColt, true, true, onComplete, this::onLoadingEnded)
|
||||
.show(getSupportFragmentManager(), DialogInfoAggiuntiveLUView.class.getName());
|
||||
}
|
||||
|
||||
|
||||
@ -43,10 +43,10 @@ import it.integry.integrywmsnative.core.model.MtbColr;
|
||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
|
||||
import it.integry.integrywmsnative.core.model.MtbPartitaMag;
|
||||
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||
import it.integry.integrywmsnative.core.model.VtbVett;
|
||||
import it.integry.integrywmsnative.core.model.dto.PickDataDTO;
|
||||
import it.integry.integrywmsnative.core.model.dto.StatoArticoloDTO;
|
||||
import it.integry.integrywmsnative.core.model.observable.ObservableMtbTcol;
|
||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
||||
@ -1514,12 +1514,26 @@ public class SpedizioneViewModel {
|
||||
mCurrentMtbColt.getMtbColr().isEmpty();
|
||||
String newTipoUL = shouldChangeCodTcol ? refMtbColt.getCodTcol() : null;
|
||||
|
||||
if (shouldChangeCodTcol) {
|
||||
mColliMagazzinoRESTConsumer.updateTipoUL(mCurrentMtbColt, newTipoUL, () -> {
|
||||
mCurrentMtbColt.setCodTcol(newTipoUL);
|
||||
ObservableMtbTcol newMtbTcol = SettingsManager.iDB().getInternalImballi().stream().filter(x -> x.getCodTcol().equalsIgnoreCase(newTipoUL))
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
|
||||
if(!UtilityString.isNullOrEmpty(newTipoUL) && newMtbTcol == null) {
|
||||
this.sendError(new Exception("Impossibile riconoscere il tipo UL " + newTipoUL));
|
||||
onComplete.run();
|
||||
return;
|
||||
}
|
||||
|
||||
if (shouldChangeCodTcol && newMtbTcol != null) {
|
||||
updateTipoUl(newMtbTcol, onComplete);
|
||||
} else onComplete.run();
|
||||
}
|
||||
|
||||
public void updateTipoUl(ObservableMtbTcol newTipoUL, Runnable onComplete) {
|
||||
mColliMagazzinoRESTConsumer.updateTipoUL(mCurrentMtbColt, newTipoUL.getCodTcol(), () -> {
|
||||
mCurrentMtbColt.setCodTcol(newTipoUL.getCodTcol());
|
||||
onComplete.run();
|
||||
}, this::sendError);
|
||||
} else onComplete.run();
|
||||
}
|
||||
|
||||
private void saveEditedRow(MtbColr mtbColrToUpdate, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, LocalDate dataScad, boolean shouldCloseLU) {
|
||||
@ -1797,7 +1811,7 @@ public class SpedizioneViewModel {
|
||||
}
|
||||
|
||||
private void askInfoAggiuntive(Runnable onComplete) {
|
||||
if (!SettingsManager.iDB().isFlagAskInfoAggiuntiveSpedizione()) {
|
||||
if (mDefaultSegnoCol != -1 || !SettingsManager.iDB().isFlagAskInfoAggiuntiveSpedizione()) {
|
||||
onComplete.run();
|
||||
return;
|
||||
}
|
||||
@ -2128,7 +2142,7 @@ public class SpedizioneViewModel {
|
||||
|
||||
void onFullItemDispatched(PickingObjectDTO pickingObjectDTO, MtbAart mtbAart, BigDecimal initialNumCnf, BigDecimal initialQtaCnf, BigDecimal initialQtaTot, BigDecimal totalQtaOrd, BigDecimal totalNumCnfOrd, BigDecimal qtaCnfOrd, BigDecimal totalQtaToBeTaken, BigDecimal totalNumCnfToBeTaken, BigDecimal qtaCnfToBeTaken, BigDecimal totalQtaAvailable, BigDecimal totalNumCnfAvailable, BigDecimal qtaCnfAvailable, String partitaMag, LocalDate dataScad, boolean canOverflowOrderQuantity, boolean canBatchLotBeChanged, RunnableArgss<PickedQuantityDTO, Boolean> onComplete);
|
||||
|
||||
void onInfoAggiuntiveRequired(MtbColt currentMtbColt, RunnableArgss<String, MtbTCol> onComplete);
|
||||
void onInfoAggiuntiveRequired(MtbColt currentMtbColt, RunnableArgss<String, ObservableMtbTcol> onComplete);
|
||||
|
||||
void onLUPositionChangeRequest(RunnableArgss<Boolean, MtbDepoPosizione> onComplete);
|
||||
|
||||
|
||||
@ -5,7 +5,6 @@ import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
import androidx.databinding.ObservableArrayList;
|
||||
import androidx.databinding.ObservableList;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
@ -24,8 +23,8 @@ import it.integry.integrywmsnative.databinding.BottomSheetFragmentLuContentListI
|
||||
|
||||
public class BottomSheetFragmentLUContentListAdapter extends RecyclerView.Adapter<BottomSheetFragmentLUContentListAdapter.ViewHolder> {
|
||||
|
||||
private Context mContext;
|
||||
private ArrayList<MtbColr> mDataset;
|
||||
private final Context mContext;
|
||||
private final ArrayList<MtbColr> mDataset;
|
||||
private OnItemClickListener mOnItemClickListener;
|
||||
|
||||
|
||||
@ -60,7 +59,7 @@ public class BottomSheetFragmentLUContentListAdapter extends RecyclerView.Adapte
|
||||
@Override
|
||||
public BottomSheetFragmentLUContentListAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||
// create a new view
|
||||
BottomSheetFragmentLuContentListItemBinding viewDataBinding = DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()), R.layout.bottom_sheet_fragment__lu_content__list_item, parent, false);
|
||||
BottomSheetFragmentLuContentListItemBinding viewDataBinding = BottomSheetFragmentLuContentListItemBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
|
||||
|
||||
return new BottomSheetFragmentLUContentListAdapter.ViewHolder(viewDataBinding);
|
||||
}
|
||||
|
||||
@ -8,10 +8,12 @@ import java.math.RoundingMode;
|
||||
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||
import it.integry.integrywmsnative.core.model.observable.ObservableMtbTcol;
|
||||
|
||||
public class BottomSheetFragmentLUContentViewModel {
|
||||
|
||||
|
||||
|
||||
public ObservableField<MtbColt> mtbColt = new ObservableField<>();
|
||||
public ObservableField<String> pesoKg = new ObservableField<>();
|
||||
public ObservableField<String> pesoNettoKg = new ObservableField<>();
|
||||
@ -22,6 +24,10 @@ public class BottomSheetFragmentLUContentViewModel {
|
||||
if (this.mListener != null) this.mListener.onBottomSheetLUClose();
|
||||
}
|
||||
|
||||
public void requestChangeMtbTcol() {
|
||||
if (this.mListener != null) this.mListener.onRequestChangeMtbTcol(mtbColt.get());
|
||||
}
|
||||
|
||||
public BottomSheetFragmentLUContentViewModel setMtbColt(MtbColt mtbColt) {
|
||||
this.mtbColt.set(mtbColt);
|
||||
return this;
|
||||
@ -45,7 +51,7 @@ public class BottomSheetFragmentLUContentViewModel {
|
||||
MtbColt collo = this.mtbColt.get();
|
||||
if (collo == null) return;
|
||||
|
||||
MtbTCol tipoPedana = collo.getMtbTCol();
|
||||
ObservableMtbTcol tipoPedana = collo.getMtbTCol();
|
||||
BigDecimal taraPedana = tipoPedana != null ? tipoPedana.getTaraKg() : BigDecimal.ZERO;
|
||||
BigDecimal pesoNetto = BigDecimal.ZERO;
|
||||
|
||||
@ -67,6 +73,8 @@ public class BottomSheetFragmentLUContentViewModel {
|
||||
}
|
||||
|
||||
public interface Listener {
|
||||
void onRequestChangeMtbTcol(MtbColt mtbColt);
|
||||
|
||||
void onBottomSheetLUClose();
|
||||
}
|
||||
|
||||
|
||||
@ -155,7 +155,7 @@ public class DialogCreateNewArtViewModel {
|
||||
barcodeProdotto.validate()
|
||||
) {
|
||||
ArticoloDTO articoloToSave = new ArticoloDTO()
|
||||
.setDescrizione(descrizione.get())
|
||||
.setDescrizione(descrizione.get() != null ? descrizione.get().substring(0, Math.min(40, descrizione.get().length())) : null)
|
||||
.setDescrizioneEstesa(descrizione.get())
|
||||
.setNote(UtilityString.empty2null(noteAggiuntive.get()))
|
||||
.setCodMgrp(selectedMtbGrup.get().getCodMgrp())
|
||||
|
||||
@ -2,14 +2,13 @@ package it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu;
|
||||
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.ImballiRESTConsumer;
|
||||
|
||||
@Module(subcomponents = DialogInfoAggiuntiveLUComponent.class)
|
||||
public class DialogInfoAggiuntiveLUModule {
|
||||
|
||||
@Provides
|
||||
DialogInfoAggiuntiveLUViewModel providesDialogInfoAggiuntiveLUViewModel(ImballiRESTConsumer imballiRESTConsumer) {
|
||||
return new DialogInfoAggiuntiveLUViewModel(imballiRESTConsumer);
|
||||
DialogInfoAggiuntiveLUViewModel providesDialogInfoAggiuntiveLUViewModel() {
|
||||
return new DialogInfoAggiuntiveLUViewModel();
|
||||
}
|
||||
|
||||
}
|
||||
@ -24,7 +24,7 @@ import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||
import it.integry.integrywmsnative.core.model.observable.ObservableMtbTcol;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityObservable;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||
import it.integry.integrywmsnative.databinding.DialogInfoAggiuntiveLuBinding;
|
||||
@ -46,26 +46,38 @@ public class DialogInfoAggiuntiveLUView extends BaseDialogFragment implements Di
|
||||
private Context mContext;
|
||||
|
||||
|
||||
private final RunnableArgss<String, MtbTCol> mOnComplete;
|
||||
private final boolean askNotes;
|
||||
private final boolean askTipoUl;
|
||||
private final RunnableArgss<String, ObservableMtbTcol> mOnComplete;
|
||||
private final Runnable mOnAbort;
|
||||
private final MtbColt currentMtbColt;
|
||||
|
||||
|
||||
public static DialogInfoAggiuntiveLUView newInstance(@NotNull RunnableArgss<String, MtbTCol> onComplete, @NotNull Runnable onAbort) {
|
||||
return new DialogInfoAggiuntiveLUView(null, onComplete, onAbort);
|
||||
public static DialogInfoAggiuntiveLUView newInstance(@NotNull RunnableArgss<String, ObservableMtbTcol> onComplete, @NotNull Runnable onAbort) {
|
||||
return new DialogInfoAggiuntiveLUView(null, true, true, onComplete, onAbort);
|
||||
}
|
||||
|
||||
public static DialogInfoAggiuntiveLUView newInstance(MtbColt mtbColt, @NotNull RunnableArgss<String, MtbTCol> onComplete, @NotNull Runnable onAbort) {
|
||||
return new DialogInfoAggiuntiveLUView(mtbColt, onComplete, onAbort);
|
||||
public static DialogInfoAggiuntiveLUView newInstance(MtbColt mtbColt, boolean askNotes, boolean askTipoUl, @NotNull RunnableArgss<String, ObservableMtbTcol> onComplete, @NotNull Runnable onAbort) {
|
||||
return new DialogInfoAggiuntiveLUView(mtbColt, askNotes, askTipoUl, onComplete, onAbort);
|
||||
}
|
||||
|
||||
private DialogInfoAggiuntiveLUView(MtbColt mtbColt, @NotNull RunnableArgss<String, MtbTCol> onComplete, @NotNull Runnable onAbort) {
|
||||
private DialogInfoAggiuntiveLUView(MtbColt mtbColt, boolean askNotes, boolean askTipoUl, @NotNull RunnableArgss<String, ObservableMtbTcol> onComplete, @NotNull Runnable onAbort) {
|
||||
super();
|
||||
this.mOnComplete = onComplete;
|
||||
this.mOnAbort = onAbort;
|
||||
this.currentMtbColt = mtbColt;
|
||||
|
||||
this.askNotes = askNotes;
|
||||
this.askTipoUl = askTipoUl;
|
||||
}
|
||||
|
||||
public boolean isAskNotes() {
|
||||
return askNotes;
|
||||
}
|
||||
|
||||
public boolean isAskTipoUl() {
|
||||
return askTipoUl;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
@ -109,8 +121,8 @@ public class DialogInfoAggiuntiveLUView extends BaseDialogFragment implements Di
|
||||
public void onInit(DialogInterface dialogInterface) {
|
||||
super.onInit(dialogInterface);
|
||||
|
||||
this.init();
|
||||
this.mViewModel.init();
|
||||
this.init();
|
||||
}
|
||||
|
||||
private void init() {
|
||||
@ -123,15 +135,12 @@ public class DialogInfoAggiuntiveLUView extends BaseDialogFragment implements Di
|
||||
|
||||
mBindings.filledExposedDropdownCodTcol.setAdapter(codTcolArrayAdapter);
|
||||
|
||||
this.mViewModel.getTipiCollo().observe(this, tipiCollo -> {
|
||||
|
||||
if (currentMtbColt != null && !UtilityString.isNullOrEmpty(currentMtbColt.getCodTcol()) && UtilityString.isNullOrEmpty(this.selectedMtbTcol.get())) {
|
||||
tipiCollo.stream()
|
||||
mViewModel.getTipiCollo().getValue().stream()
|
||||
.filter(x -> x.getCodTcol().equalsIgnoreCase(currentMtbColt.getCodTcol()))
|
||||
.findFirst()
|
||||
.ifPresent(tipoPedana -> this.selectedMtbTcol.set(tipoPedana.getCodTcol() + " - " + tipoPedana.getDescrizione()));
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
UtilityObservable.addPropertyChanged(this.selectedMtbTcol, (value) -> {
|
||||
@ -160,6 +169,5 @@ public class DialogInfoAggiuntiveLUView extends BaseDialogFragment implements Di
|
||||
});
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,38 +2,35 @@ package it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu;
|
||||
|
||||
import androidx.lifecycle.MutableLiveData;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
|
||||
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.ImballiRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.model.observable.ObservableMtbTcol;
|
||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||
|
||||
public class DialogInfoAggiuntiveLUViewModel {
|
||||
|
||||
private final MutableLiveData<List<MtbTCol>> tipiCollo = new MutableLiveData<>();
|
||||
private final MutableLiveData<List<ObservableMtbTcol>> tipiCollo = new MutableLiveData<>();
|
||||
|
||||
private Listener mListener;
|
||||
private final ImballiRESTConsumer imballiRESTConsumer;
|
||||
|
||||
@Inject
|
||||
public DialogInfoAggiuntiveLUViewModel(ImballiRESTConsumer imballiRESTConsumer) {
|
||||
this.imballiRESTConsumer = imballiRESTConsumer;
|
||||
public DialogInfoAggiuntiveLUViewModel() {
|
||||
}
|
||||
|
||||
|
||||
public void init() {
|
||||
this.sendOnLoadingStarted();
|
||||
|
||||
imballiRESTConsumer.retrieveTipiCollo(MtbTCol.FlagUiUlEnum.UL, tipiCollo -> {
|
||||
this.tipiCollo.postValue(tipiCollo == null ? new ArrayList<>() : tipiCollo);
|
||||
this.sendOnLoadingEnded();
|
||||
}, this::sendError);
|
||||
var imballiList = SettingsManager.iDB().getInternalImballi().stream()
|
||||
.filter(x -> x.getFlagUIUL() == MtbTCol.FlagUiUlEnum.UL)
|
||||
.collect(Collectors.toUnmodifiableList());
|
||||
this.tipiCollo.setValue(imballiList);
|
||||
}
|
||||
|
||||
public MutableLiveData<List<MtbTCol>> getTipiCollo() {
|
||||
public MutableLiveData<List<ObservableMtbTcol>> getTipiCollo() {
|
||||
return tipiCollo;
|
||||
}
|
||||
|
||||
|
||||
@ -3,7 +3,7 @@ package it.integry.integrywmsnative.view.dialogs.input_lu_prod;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import it.integry.integrywmsnative.core.model.JtbFasi;
|
||||
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||
import it.integry.integrywmsnative.core.model.observable.ObservableMtbTcol;
|
||||
|
||||
public class DialogInputLUProdResultDTO {
|
||||
|
||||
@ -14,7 +14,7 @@ public class DialogInputLUProdResultDTO {
|
||||
private BigDecimal taraCol;
|
||||
private BigDecimal pesoLordo;
|
||||
|
||||
private MtbTCol mtbTCol;
|
||||
private ObservableMtbTcol mtbTCol;
|
||||
private JtbFasi jtbFasi;
|
||||
|
||||
|
||||
@ -72,11 +72,11 @@ public class DialogInputLUProdResultDTO {
|
||||
return this;
|
||||
}
|
||||
|
||||
public MtbTCol getMtbTCol() {
|
||||
public ObservableMtbTcol getMtbTCol() {
|
||||
return mtbTCol;
|
||||
}
|
||||
|
||||
public DialogInputLUProdResultDTO setMtbTCol(MtbTCol mtbTCol) {
|
||||
public DialogInputLUProdResultDTO setMtbTCol(ObservableMtbTcol mtbTCol) {
|
||||
this.mtbTCol = mtbTCol;
|
||||
return this;
|
||||
}
|
||||
|
||||
@ -40,7 +40,7 @@ import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.model.JtbFasi;
|
||||
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||
import it.integry.integrywmsnative.core.model.observable.ObservableMtbTcol;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityObservable;
|
||||
import it.integry.integrywmsnative.databinding.DialogInputLuProdBinding;
|
||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
||||
@ -335,7 +335,7 @@ public class DialogInputLUProdView extends BaseDialogFragment implements DialogI
|
||||
|
||||
|
||||
if (mDialogInputLUProdDTO.getCodTcol() != null) {
|
||||
Optional<MtbTCol> optTCol = Stream.of(tipiCollo)
|
||||
java.util.Optional<ObservableMtbTcol> optTCol = tipiCollo.stream()
|
||||
.filter(x -> x.getCodTcol().equalsIgnoreCase(mDialogInputLUProdDTO.getCodTcol()))
|
||||
.findFirst();
|
||||
|
||||
|
||||
@ -12,6 +12,7 @@ import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingL
|
||||
import it.integry.integrywmsnative.core.model.JtbFasi;
|
||||
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||
import it.integry.integrywmsnative.core.model.observable.ObservableMtbTcol;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.ImballiRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.MesRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
||||
@ -30,7 +31,7 @@ public class DialogInputLUProdViewModel {
|
||||
public ObservableField<Boolean> blockedTaraCol = new ObservableField<>(false);
|
||||
public ObservableField<Boolean> blockedPesoLordo = new ObservableField<>(false);
|
||||
|
||||
private final MutableLiveData<List<MtbTCol>> mTipiColloLiveData = new MutableLiveData<>();
|
||||
private final MutableLiveData<List<ObservableMtbTcol>> mTipiColloLiveData = new MutableLiveData<>();
|
||||
private final MutableLiveData<List<JtbFasi>> mLineeProdLiveData = new MutableLiveData<>();
|
||||
|
||||
private BigDecimal initialNumCnf;
|
||||
@ -43,7 +44,7 @@ public class DialogInputLUProdViewModel {
|
||||
private BigDecimal internalTaraCol;
|
||||
private BigDecimal internalPesoLordo;
|
||||
|
||||
private MtbTCol internalTipoPed;
|
||||
private ObservableMtbTcol internalTipoPed;
|
||||
private JtbFasi internalLineaProd;
|
||||
|
||||
private boolean isLineeProdRequired;
|
||||
@ -62,7 +63,7 @@ public class DialogInputLUProdViewModel {
|
||||
public void init(String codJfasParent) {
|
||||
this.sendOnLoadingStarted();
|
||||
|
||||
imballiRESTConsumer.retrieveTipiCollo(MtbTCol.FlagUiUlEnum.UL, tipiCollo -> {
|
||||
imballiRESTConsumer.retrieveImballi(MtbTCol.FlagUiUlEnum.UL, tipiCollo -> {
|
||||
this.mTipiColloLiveData.postValue(tipiCollo);
|
||||
|
||||
mMesRESTConsumer.getLineeProduzione(codJfasParent, jtbFasi -> {
|
||||
@ -76,7 +77,7 @@ public class DialogInputLUProdViewModel {
|
||||
}, this::sendError);
|
||||
}
|
||||
|
||||
public MutableLiveData<List<MtbTCol>> getTipiCollo() {
|
||||
public MutableLiveData<List<ObservableMtbTcol>> getTipiCollo() {
|
||||
return this.mTipiColloLiveData;
|
||||
}
|
||||
|
||||
@ -200,7 +201,7 @@ public class DialogInputLUProdViewModel {
|
||||
this.mListener.onDataChanged();
|
||||
}
|
||||
|
||||
public DialogInputLUProdViewModel setInternalTipoPed(MtbTCol internalTipoPed) {
|
||||
public DialogInputLUProdViewModel setInternalTipoPed(ObservableMtbTcol internalTipoPed) {
|
||||
this.internalTipoPed = internalTipoPed;
|
||||
return this;
|
||||
}
|
||||
|
||||
@ -6,37 +6,40 @@ import android.widget.ArrayAdapter;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.lifecycle.MutableLiveData;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||
import it.integry.integrywmsnative.core.model.observable.ObservableMtbTcol;
|
||||
|
||||
public class DialogInputLUProdTipoColloAdapter extends ArrayAdapter<DialogInputLUProdTipoColloListModel> {
|
||||
|
||||
private List<DialogInputLUProdTipoColloListModel> mDataset;
|
||||
|
||||
public DialogInputLUProdTipoColloAdapter(@NonNull Context context, int resource, @NonNull MutableLiveData<List<MtbTCol>> inputData) {
|
||||
public DialogInputLUProdTipoColloAdapter(@NonNull Context context, int resource, @NonNull MutableLiveData<List<ObservableMtbTcol>> inputData) {
|
||||
super(context, resource);
|
||||
|
||||
inputData.observeForever(data -> {
|
||||
if (data != null)
|
||||
mDataset = data.stream()
|
||||
.map(x -> new DialogInputLUProdTipoColloListModel()
|
||||
.setOriginalModel(x))
|
||||
.collect(Collectors.toList());
|
||||
else mDataset = new ArrayList<>();
|
||||
|
||||
clear();
|
||||
addAll(mDataset);
|
||||
});
|
||||
|
||||
if (inputData.getValue() != null)
|
||||
mDataset = inputData.getValue().stream()
|
||||
.map(x -> new DialogInputLUProdTipoColloListModel()
|
||||
.setOriginalModel(x))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public List<DialogInputLUProdTipoColloListModel> getDataset() {
|
||||
return this.mDataset;
|
||||
}
|
||||
|
||||
public MtbTCol getOriginalModelItem(int position) {
|
||||
public ObservableMtbTcol getOriginalModelItem(int position) {
|
||||
return mDataset.get(position).getOriginalModel();
|
||||
}
|
||||
|
||||
|
||||
@ -2,17 +2,17 @@ package it.integry.integrywmsnative.view.dialogs.input_lu_prod.adapter;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||
import it.integry.integrywmsnative.core.model.observable.ObservableMtbTcol;
|
||||
|
||||
public class DialogInputLUProdTipoColloListModel {
|
||||
|
||||
private MtbTCol originalModel;
|
||||
private ObservableMtbTcol originalModel;
|
||||
|
||||
public MtbTCol getOriginalModel() {
|
||||
public ObservableMtbTcol getOriginalModel() {
|
||||
return originalModel;
|
||||
}
|
||||
|
||||
public DialogInputLUProdTipoColloListModel setOriginalModel(MtbTCol originalModel) {
|
||||
public DialogInputLUProdTipoColloListModel setOriginalModel(ObservableMtbTcol originalModel) {
|
||||
this.originalModel = originalModel;
|
||||
return this;
|
||||
}
|
||||
|
||||
@ -9,12 +9,13 @@ import android.widget.ArrayAdapter;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.annimon.stream.Optional;
|
||||
import com.annimon.stream.Stream;
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
@ -24,7 +25,9 @@ import it.integry.integrywmsnative.core.di.BindableString;
|
||||
import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgsss;
|
||||
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||
import it.integry.integrywmsnative.core.model.observable.ObservableMtbTcol;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.ImballiRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityNumber;
|
||||
import it.integry.integrywmsnative.databinding.DialogInputPesoLuBinding;
|
||||
@ -47,7 +50,7 @@ public class DialogInputPesoLUView extends BaseDialogFragment {
|
||||
public BindableString grossWeight = new BindableString();
|
||||
|
||||
|
||||
private List<MtbTCol> codTcolList = null;
|
||||
private List<ObservableMtbTcol> codTcolList = null;
|
||||
private ArrayAdapter<String> codTcolArrayAdapter = null;
|
||||
|
||||
|
||||
@ -95,34 +98,31 @@ public class DialogInputPesoLUView extends BaseDialogFragment {
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void init() {
|
||||
|
||||
imballiRESTConsumer.retrieveTipiCollo(MtbTCol.FlagUiUlEnum.UL, codTcols -> {
|
||||
this.codTcolList = codTcols;
|
||||
this.codTcolList = SettingsManager.iDB().getInternalImballi().stream()
|
||||
.filter(x -> x.getFlagUIUL() == MtbTCol.FlagUiUlEnum.UL)
|
||||
.collect(Collectors.toUnmodifiableList());
|
||||
|
||||
List<String> codTcolDescriptions = Stream.of(codTcols)
|
||||
List<String> codTcolDescriptions = codTcolList.stream()
|
||||
.map(codTcol -> codTcol.getCodTcol() + " - " + codTcol.getDescrizione())
|
||||
.toList();
|
||||
|
||||
if (codTcol.get() != null) {
|
||||
Optional<String> newCodTcol = Stream.of(codTcols)
|
||||
Optional<String> newCodTcol = this.codTcolList.stream()
|
||||
.filter(x -> x.getCodTcol().equalsIgnoreCase(codTcol.get()))
|
||||
.map(codTcol -> codTcol.getCodTcol() + " - " + codTcol.getDescrizione())
|
||||
.findSingle();
|
||||
.findFirst();
|
||||
|
||||
if (newCodTcol.isPresent()) codTcol.set(newCodTcol.get());
|
||||
}
|
||||
|
||||
codTcolArrayAdapter = new ArrayAdapter(requireContext(), R.layout.array_adapter_single_item);
|
||||
codTcolArrayAdapter = new ArrayAdapter<>(requireContext(), R.layout.array_adapter_single_item);
|
||||
codTcolArrayAdapter.addAll(codTcolDescriptions);
|
||||
mBindings.filledExposedDropdownCodTcol.setAdapter(codTcolArrayAdapter);
|
||||
|
||||
// progressDialog.dismiss();
|
||||
|
||||
}, ex -> {
|
||||
UtilityExceptions.defaultException(requireContext(), ex);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -2,14 +2,13 @@ package it.integry.integrywmsnative.view.dialogs.tracciamento_imballi;
|
||||
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.ImballiRESTConsumer;
|
||||
|
||||
@Module(subcomponents = DialogTracciamentoImballiComponent.class)
|
||||
public class DialogTracciamentoImballiModule {
|
||||
|
||||
@Provides
|
||||
DialogTracciamentoImballiViewModel providesDialogTracciamentoImballiViewModel(ImballiRESTConsumer imballiRESTConsumer) {
|
||||
return new DialogTracciamentoImballiViewModel(imballiRESTConsumer);
|
||||
DialogTracciamentoImballiViewModel providesDialogTracciamentoImballiViewModel() {
|
||||
return new DialogTracciamentoImballiViewModel();
|
||||
}
|
||||
|
||||
}
|
||||
@ -7,33 +7,29 @@ import androidx.lifecycle.MutableLiveData;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
|
||||
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.ImballiRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.model.observable.ObservableMtbTcol;
|
||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||
|
||||
public class DialogTracciamentoImballiViewModel {
|
||||
|
||||
private final ImballiRESTConsumer imballiRESTConsumer;
|
||||
|
||||
private final MutableLiveData<List<TracciamentoImballoDTO>> imballiRegistrati = new MutableLiveData<>(new ArrayList<>());
|
||||
private final ObservableArrayList<MtbTCol> imballiDisponibili = new ObservableArrayList<>();
|
||||
private final ObservableArrayList<ObservableMtbTcol> imballiDisponibili = new ObservableArrayList<>();
|
||||
|
||||
private Listener mListener;
|
||||
|
||||
public DialogTracciamentoImballiViewModel(ImballiRESTConsumer imballiRESTConsumer) {
|
||||
this.imballiRESTConsumer = imballiRESTConsumer;
|
||||
public DialogTracciamentoImballiViewModel() {
|
||||
}
|
||||
|
||||
|
||||
public void init() {
|
||||
this.imballiRESTConsumer.retrieveTipiCollo(MtbTCol.FlagUiUlEnum.UI, tipiCollo -> {
|
||||
imballiDisponibili.addAll(SettingsManager.iDB().getInternalImballi().stream()
|
||||
.filter(x -> x.getFlagUIUL() == MtbTCol.FlagUiUlEnum.UI)
|
||||
.collect(Collectors.toUnmodifiableList()));
|
||||
|
||||
if (tipiCollo == null || tipiCollo.isEmpty())
|
||||
return;
|
||||
|
||||
imballiDisponibili.addAll(tipiCollo);
|
||||
}, this::sendError);
|
||||
}
|
||||
|
||||
|
||||
@ -41,7 +37,7 @@ public class DialogTracciamentoImballiViewModel {
|
||||
return imballiRegistrati;
|
||||
}
|
||||
|
||||
public ObservableArrayList<MtbTCol> getImballiDisponibili() {
|
||||
public ObservableArrayList<ObservableMtbTcol> getImballiDisponibili() {
|
||||
return imballiDisponibili;
|
||||
}
|
||||
|
||||
|
||||
@ -9,11 +9,11 @@ import com.annimon.stream.Stream;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||
import it.integry.integrywmsnative.core.model.observable.ObservableMtbTcol;
|
||||
|
||||
public class DialogTracciamentoImballi_TipoColloAdapter extends ArrayAdapter<DialogTracciamentoImballi_TipoColloAdapter.ListModel> {
|
||||
|
||||
public DialogTracciamentoImballi_TipoColloAdapter(@NonNull Context context, int resource, List<MtbTCol> inputData) {
|
||||
public DialogTracciamentoImballi_TipoColloAdapter(@NonNull Context context, int resource, List<ObservableMtbTcol> inputData) {
|
||||
super(context, resource);
|
||||
|
||||
if(inputData == null) return;
|
||||
@ -28,12 +28,12 @@ public class DialogTracciamentoImballi_TipoColloAdapter extends ArrayAdapter<Dia
|
||||
|
||||
public static class ListModel {
|
||||
|
||||
private MtbTCol originalModel;
|
||||
private ObservableMtbTcol originalModel;
|
||||
|
||||
public MtbTCol getOriginalModel() {
|
||||
public ObservableMtbTcol getOriginalModel() {
|
||||
return originalModel;
|
||||
}
|
||||
public ListModel setOriginalModel(MtbTCol originalModel) {
|
||||
public ListModel setOriginalModel(ObservableMtbTcol originalModel) {
|
||||
this.originalModel = originalModel;
|
||||
return this;
|
||||
}
|
||||
|
||||
5
app/src/main/res/drawable/circle_background.xml
Normal file
5
app/src/main/res/drawable/circle_background.xml
Normal file
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="oval">
|
||||
<solid android:color="?attr/colorPrimaryContainer"/>
|
||||
</shape>
|
||||
5
app/src/main/res/drawable/ic_round_business_24.xml
Normal file
5
app/src/main/res/drawable/ic_round_business_24.xml
Normal file
@ -0,0 +1,5 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
|
||||
|
||||
<path android:fillColor="@android:color/white" android:pathData="M12,7L12,5c0,-1.1 -0.9,-2 -2,-2L4,3c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,9c0,-1.1 -0.9,-2 -2,-2h-8zM6,19L4,19v-2h2v2zM6,15L4,15v-2h2v2zM6,11L4,11L4,9h2v2zM6,7L4,7L4,5h2v2zM10,19L8,19v-2h2v2zM10,15L8,15v-2h2v2zM10,11L8,11L8,9h2v2zM10,7L8,7L8,5h2v2zM19,19h-7v-2h2v-2h-2v-2h2v-2h-2L12,9h7c0.55,0 1,0.45 1,1v8c0,0.55 -0.45,1 -1,1zM18,11h-2v2h2v-2zM18,15h-2v2h2v-2z"/>
|
||||
|
||||
</vector>
|
||||
@ -24,20 +24,13 @@
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/full_white"
|
||||
android:clickable="true"
|
||||
android:focusable="true">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/bottom_sheet"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="#ffffffff"
|
||||
android:orientation="vertical">
|
||||
|
||||
<androidx.cardview.widget.CardView
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:cardCornerRadius="8dp"
|
||||
app:cardElevation="4dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
@ -136,19 +129,327 @@
|
||||
|
||||
<androidx.core.widget.NestedScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
android:layout_height="match_parent"
|
||||
android:background="@android:color/white">
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<LinearLayout
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:padding="12dp">
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
<!-- Header con Numero e Data -->
|
||||
<com.google.android.material.chip.Chip
|
||||
android:id="@+id/unit_number"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@{"UL #" + viewModel.mtbColt.numCollo.toString()}"
|
||||
app:chipStrokeWidth="0dp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:text="UL #89" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/date"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:drawablePadding="4dp"
|
||||
android:text="@{viewModel.mtbColt.dataColloHumanLong}"
|
||||
android:textAppearance="@style/TextAppearance.Material3.BodyMedium"
|
||||
app:layout_constraintBottom_toBottomOf="@id/unit_number"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/unit_number"
|
||||
tools:text="20 Gen 2025" />
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginStart="18dp"
|
||||
app:cardElevation="0dp"
|
||||
app:layout_constraintTop_toBottomOf="@id/client_card"
|
||||
app:strokeWidth="0dp">
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:padding="12dp"
|
||||
android:visibility="@{UtilityString.isNullOrEmpty(viewModel.mtbColt.posizione) ? View.GONE : View.VISIBLE}">
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@{viewModel.mtbColt.posizione}"
|
||||
android:textAppearance="@style/TextAppearance.Material3.HeadlineSmall"
|
||||
android:layout_gravity="end"
|
||||
tools:text="ME1AL2" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/position_text"
|
||||
android:textAppearance="@style/TextAppearance.Material3.BodySmall"
|
||||
android:textColor="?attr/colorOutline"
|
||||
android:layout_gravity="end"/>
|
||||
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="12dp"
|
||||
app:cardElevation="0dp"
|
||||
app:layout_constraintTop_toBottomOf="@id/unit_number"
|
||||
app:strokeWidth="0dp">
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:padding="12dp"
|
||||
android:focusable="true"
|
||||
android:clickable="true"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:onClick="@{() -> viewModel.requestChangeMtbTcol()}">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:background="@drawable/circle_background"
|
||||
android:padding="8dp"
|
||||
android:src="@drawable/ic_pallet"
|
||||
app:tint="?attr/colorPrimary" />
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginStart="12dp"
|
||||
android:layout_weight="1"
|
||||
android:orientation="vertical">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:visibilityWhenNotNull="@{viewModel.mtbColt.mtbTcolProperty()}"
|
||||
android:text="@{viewModel.mtbColt.mtbTcolProperty().descrizioneProperty()}"
|
||||
android:textAppearance="@style/TextAppearance.Material3.TitleMedium"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"
|
||||
tools:text="120x120 EPAL" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:visibilityWhenNull="@{viewModel.mtbColt.mtbTcolProperty()}"
|
||||
android:text="Non indicata"
|
||||
android:textColor="?attr/colorOutline"
|
||||
android:textAppearance="@style/TextAppearance.Material3.TitleMedium"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/lu_type"
|
||||
android:textAppearance="@style/TextAppearance.Material3.BodySmall"
|
||||
android:textColor="?attr/colorOutline" />
|
||||
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
|
||||
<!-- Client Card -->
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
android:id="@+id/client_card"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="8dp"
|
||||
app:cardElevation="0dp"
|
||||
app:layout_constraintTop_toBottomOf="@id/unit_number"
|
||||
app:strokeWidth="0dp">
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:padding="12dp"
|
||||
android:visibility="@{UtilityString.isNullOrEmpty(viewModel.mtbColt.ragSocCliente) ? View.GONE : View.VISIBLE}">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:background="@drawable/circle_background"
|
||||
android:padding="8dp"
|
||||
android:src="@drawable/ic_round_business_24"
|
||||
app:tint="?attr/colorPrimary" />
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginStart="12dp"
|
||||
android:layout_weight="1"
|
||||
android:orientation="vertical">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@{viewModel.mtbColt.ragSocCliente}"
|
||||
android:textAppearance="@style/TextAppearance.Material3.TitleMedium"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"
|
||||
tools:text="47TH PARALLEL LTD" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/customer"
|
||||
android:textAppearance="@style/TextAppearance.Material3.BodySmall"
|
||||
android:textColor="?attr/colorOutline" />
|
||||
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
|
||||
<!-- Weight Info -->
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
android:id="@+id/weight_card"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="8dp"
|
||||
app:cardElevation="0dp"
|
||||
app:layout_constraintTop_toBottomOf="@id/client_card"
|
||||
app:strokeWidth="0dp">
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:padding="12dp"
|
||||
android:visibility="@{UtilityString.isNullOrEmpty(viewModel.pesoNettoKg) ? View.GONE : View.VISIBLE}">
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:orientation="vertical">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@{viewModel.pesoNettoKg}"
|
||||
android:textAppearance="@style/TextAppearance.Material3.HeadlineSmall"
|
||||
tools:text="0.00" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/net_weight"
|
||||
android:textAppearance="@style/TextAppearance.Material3.BodySmall"
|
||||
android:textColor="?attr/colorOutline" />
|
||||
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
<View
|
||||
android:layout_width="1dp"
|
||||
android:layout_height="match_parent"
|
||||
android:background="?attr/colorOutline" />
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="12dp"
|
||||
android:layout_weight="1"
|
||||
android:orientation="vertical">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@{viewModel.pesoKg}"
|
||||
android:textAppearance="@style/TextAppearance.Material3.HeadlineSmall"
|
||||
tools:text="0.00" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/gross_weight"
|
||||
android:textAppearance="@style/TextAppearance.Material3.BodySmall"
|
||||
android:textColor="?attr/colorOutline" />
|
||||
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
|
||||
<!-- Prepared Info -->
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
android:visibility="@{UtilityString.isNullOrEmpty(viewModel.mtbColt.posizione) ? View.GONE : View.VISIBLE}"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/weight_card">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:drawablePadding="4dp"
|
||||
android:text="@string/prepared_by_text"
|
||||
android:textAppearance="@style/TextAppearance.Material3.BodySmall"
|
||||
android:textColor="?attr/colorOutline" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@{viewModel.mtbColt.preparatoDa}"
|
||||
tools:text="nome utente"
|
||||
android:layout_marginStart="4dp"
|
||||
android:textAppearance="@style/TextAppearance.Material3.BodySmall"
|
||||
android:textColor="?attr/colorOutline" />
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:visibility="gone">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/AppTheme.NewMaterial.Text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
@ -159,7 +460,7 @@
|
||||
android:textColor="@android:color/black"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<LinearLayout
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
@ -207,16 +508,16 @@
|
||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="#57535D"
|
||||
android:layout_marginStart="4dp"
|
||||
android:text="(serie: " />
|
||||
android:text="(serie: "
|
||||
android:textColor="#57535D" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="#57535D"
|
||||
android:text="@{viewModel.mtbColt.serCollo}"
|
||||
android:textColor="#57535D"
|
||||
android:textStyle="bold"
|
||||
tools:text="TextView" />
|
||||
|
||||
@ -224,8 +525,8 @@
|
||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="#57535D"
|
||||
android:text=")" />
|
||||
android:text=")"
|
||||
android:textColor="#57535D" />
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@ -433,7 +734,7 @@
|
||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
app:binding="@{viewModel.pesoKg}"
|
||||
android:text="@{viewModel.pesoKg}"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="@+id/guideline6"
|
||||
@ -442,24 +743,90 @@
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
</LinearLayout>
|
||||
<androidx.constraintlayout.widget.Guideline
|
||||
android:id="@+id/guideline7"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintGuide_percent="0.40" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:text="@string/lu_type"
|
||||
android:textColor="@android:color/black"
|
||||
app:layout_constraintEnd_toStartOf="@+id/guideline7"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageButton
|
||||
android:id="@+id/edit_tipo_ul_button"
|
||||
android:layout_width="18dp"
|
||||
android:layout_height="18dp"
|
||||
android:backgroundTint="@android:color/transparent"
|
||||
android:src="@drawable/ic_edit_24dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="@+id/guideline7"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginStart="4dp"
|
||||
android:orientation="horizontal"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/edit_tipo_ul_button"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:visibilityWhenNotNull="@{viewModel.mtbColt.mtbTcolProperty()}">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@{viewModel.mtbColt.mtbTcolProperty().codTcol}"
|
||||
tools:text="Cod" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text=" - " />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:ellipsize="end"
|
||||
android:singleLine="true"
|
||||
android:text="@{viewModel.mtbColt.mtbTcolProperty().descrizione}"
|
||||
tools:text="Descrizione" />
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:layout_marginTop="24dp"
|
||||
android:background="#ededed" />
|
||||
|
||||
<LinearLayout
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/AppTheme.NewMaterial.Text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
@ -470,13 +837,13 @@
|
||||
android:textColor="@android:color/black"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<LinearLayout
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:paddingTop="14dp">
|
||||
|
||||
<LinearLayout
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="16dp"
|
||||
@ -501,7 +868,7 @@
|
||||
android:textColor="@color/empty_view_gray"
|
||||
android:textSize="20sp" />
|
||||
|
||||
</LinearLayout>
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
@ -513,10 +880,10 @@
|
||||
app:dividerThickness="0.5dp" />
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
|
||||
@ -526,7 +893,5 @@
|
||||
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||
</layout>
|
||||
@ -7,6 +7,8 @@
|
||||
|
||||
<import type="android.view.View" />
|
||||
|
||||
<import type="it.integry.integrywmsnative.core.helper.GestioneToTextConverter" />
|
||||
|
||||
<import type="it.integry.integrywmsnative.core.utility.UtilityDate.COMMONS_DATE_FORMATS" />
|
||||
|
||||
<import type="it.integry.integrywmsnative.core.utility.UtilityDate" />
|
||||
@ -137,187 +139,73 @@
|
||||
</RelativeLayout>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
android:id="@+id/new_card"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:visibility="@{mtbColr.numColloRif != null ? View.VISIBLE : View.GONE}"
|
||||
android:focusable="false"
|
||||
android:clickable="false"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/art_detail">
|
||||
app:layout_constraintTop_toBottomOf="@id/art_detail"
|
||||
app:cardElevation="0dp"
|
||||
app:strokeWidth="0dp">
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="8dp"
|
||||
android:background="@drawable/badge_round_corner"
|
||||
android:backgroundTint="@color/green_600"
|
||||
android:orientation="horizontal"
|
||||
android:padding="2dp">
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/badge_round_corner"
|
||||
android:backgroundTint="@android:color/white"
|
||||
android:orientation="horizontal"
|
||||
android:padding="0dp">
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="4dp">
|
||||
android:padding="12dp">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/image"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:src="@drawable/ic_box"
|
||||
android:tint="@color/green_600" />
|
||||
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/refs_title"
|
||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Prelevato da"
|
||||
android:textColor="@color/green_600"
|
||||
android:textStyle="bold" />
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:layout_width="2dp"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/green_600" />
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:background="@drawable/circle_background"
|
||||
android:padding="10dp"
|
||||
android:weightSum="2">
|
||||
android:src="@drawable/ic_box"
|
||||
app:tint="?attr/colorPrimary" />
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginStart="12dp"
|
||||
android:layout_weight="1"
|
||||
android:orientation="vertical">
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
android:text="@{"#" + mtbColr.numColloRif + " (" + mtbColr.serCollo + ")"}"
|
||||
android:textAppearance="@style/TextAppearance.Material3.TitleMedium"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"
|
||||
tools:text="#5230 (/)" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Num: "
|
||||
android:textColor="@android:color/black" />
|
||||
android:text="@{GestioneToTextConverter.convert(mtbColr.gestioneEnum)}"
|
||||
android:textAppearance="@style/TextAppearance.Material3.BodySmall"
|
||||
android:textColor="?attr/colorOutline"
|
||||
tools:text="Lavorazione"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@{mtbColr.numColloRif.toString()}"
|
||||
android:textColor="@android:color/black"
|
||||
android:textStyle="bold"
|
||||
tools:text="5230" />
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="2dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Gest: "
|
||||
android:textColor="@android:color/black" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@{mtbColr.gestioneRif}"
|
||||
android:textColor="@android:color/black"
|
||||
android:textStyle="bold"
|
||||
tools:text="V" />
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="0"
|
||||
android:orientation="vertical">
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Data: "
|
||||
android:textColor="@android:color/black" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@{UtilityDate.formatDate(mtbColr.dataColloRifD, UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)}"
|
||||
android:textColor="@android:color/black"
|
||||
android:textStyle="bold"
|
||||
tools:text="02 mar 2020" />
|
||||
android:textAppearance="@style/TextAppearance.Material3.TitleMedium"
|
||||
android:singleLine="true"
|
||||
android:ellipsize="end"
|
||||
tools:text="20 gennaio 2025" />
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="2dp"
|
||||
android:orientation="horizontal">
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Serie: "
|
||||
android:textColor="@android:color/black" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/AppTheme.NewMaterial.Text.Small"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@{mtbColr.serColloRif}"
|
||||
android:textColor="@android:color/black"
|
||||
android:textStyle="bold"
|
||||
tools:text="UL" />
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</layout>
|
||||
@ -1,177 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<layout xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:orientation="vertical"
|
||||
app:cardCornerRadius="12dp"
|
||||
app:cardElevation="0dp">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@color/light_blue_300"
|
||||
android:gravity="center_horizontal">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="24dp"
|
||||
android:src="@drawable/ic_error_white_24dp" />
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:paddingLeft="24dp"
|
||||
android:paddingTop="24dp"
|
||||
android:paddingRight="24dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/title_text"
|
||||
style="@style/TextViewMaterial.Dialog.HeadlineText"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_horizontal"
|
||||
android:text="@string/action_print" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/description_text"
|
||||
style="@style/TextViewMaterial"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:gravity="left"
|
||||
android:text="@string/message_print_packing_list" />
|
||||
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="8dp">
|
||||
|
||||
<androidx.constraintlayout.widget.Guideline
|
||||
android:id="@+id/center_buttons_guideline"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintGuide_percent="0.5" />
|
||||
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/button_abort"
|
||||
style="@style/Button.PrimaryOutline"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="8dp"
|
||||
android:layout_marginRight="8dp"
|
||||
android:text="@string/no"
|
||||
app:layout_constraintEnd_toStartOf="@id/center_buttons_guideline"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:strokeColor="?colorPrimary" />
|
||||
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/button_confirm"
|
||||
style="@style/Button.PrimaryFull"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="8dp"
|
||||
android:layout_marginRight="8dp"
|
||||
android:text="@string/yes"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="@id/center_buttons_guideline"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
<!--<androidx.appcompat.widget.AppCompatTextView-->
|
||||
<!--android:layout_width="match_parent"-->
|
||||
<!--android:layout_height="wrap_content"-->
|
||||
<!--android:text="@string/action_print"-->
|
||||
<!--style="@style/TextViewMaterial.Dialog.HeadlineText"-->
|
||||
<!--android:gravity="center_horizontal"/>-->
|
||||
|
||||
|
||||
<!--<LinearLayout-->
|
||||
<!--android:orientation="vertical"-->
|
||||
<!--android:layout_width="match_parent"-->
|
||||
<!--android:layout_height="match_parent"-->
|
||||
<!--android:padding="16dp">-->
|
||||
|
||||
<!--<LinearLayout-->
|
||||
<!--android:layout_width="match_parent"-->
|
||||
<!--android:layout_height="match_parent"-->
|
||||
<!--android:orientation="horizontal"-->
|
||||
<!--android:gravity="center_horizontal">-->
|
||||
|
||||
<!--<androidx.appcompat.widget.AppCompatTextView-->
|
||||
<!--android:id="@+id/print_message"-->
|
||||
<!--android:layout_width="wrap_content"-->
|
||||
<!--android:layout_height="wrap_content"-->
|
||||
<!--android:layout_margin="16dp"-->
|
||||
<!--style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"-->
|
||||
<!--android:textColor="#5F6368"-->
|
||||
<!--android:textSize="16sp"-->
|
||||
<!--android:layout_gravity="center"-->
|
||||
<!--android:gravity="center_horizontal"-->
|
||||
<!--tools:text="La procedura stamperà una packing list"/>-->
|
||||
|
||||
<!--</LinearLayout>-->
|
||||
|
||||
|
||||
<!--<LinearLayout-->
|
||||
<!--android:layout_width="match_parent"-->
|
||||
<!--android:layout_height="match_parent"-->
|
||||
<!--android:orientation="horizontal"-->
|
||||
<!--android:paddingTop="8dp"-->
|
||||
<!--android:gravity="bottom|center_horizontal">-->
|
||||
|
||||
|
||||
<!--<com.google.android.material.button.MaterialButton-->
|
||||
<!--android:id="@+id/button_abort"-->
|
||||
<!--android:layout_width="wrap_content"-->
|
||||
<!--android:layout_height="wrap_content"-->
|
||||
<!--style="@style/Button.PrimaryOutline"-->
|
||||
<!--app:icon="@drawable/ic_clear_24dp"-->
|
||||
<!--android:layout_marginEnd="8dp"-->
|
||||
<!--android:text="@android:string/no"/>-->
|
||||
|
||||
|
||||
<!--<com.google.android.material.button.MaterialButton-->
|
||||
<!--android:id="@+id/button_confirm"-->
|
||||
<!--android:layout_width="wrap_content"-->
|
||||
<!--android:layout_height="wrap_content"-->
|
||||
<!--style="@style/Button.PrimaryFull"-->
|
||||
<!--app:icon="@drawable/ic_print_24dp"-->
|
||||
<!--android:text="@android:string/yes"/>-->
|
||||
<!--</LinearLayout>-->
|
||||
|
||||
<!--</LinearLayout>-->
|
||||
|
||||
<!--</LinearLayout>-->
|
||||
<!--</androidx.cardview.widget.CardView>-->
|
||||
|
||||
</layout>
|
||||
@ -53,7 +53,7 @@
|
||||
android:layout_marginTop="8dp"
|
||||
app:layout_constraintTop_toBottomOf="@id/title_text"
|
||||
app:layout_constraintBottom_toTopOf="@id/level_number_layout"
|
||||
android:visibility="@{viewModel.tipiCollo == null || viewModel.tipiCollo.empty ? View.GONE : View.VISIBLE}"
|
||||
app:visibility="@{view.askTipoUl}"
|
||||
android:hint="@string/lu_type">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatAutoCompleteTextView
|
||||
@ -76,6 +76,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
app:visibility="@{view.askNotes}"
|
||||
app:layout_constraintTop_toBottomOf="@id/input_cod_tcol">
|
||||
|
||||
<com.google.android.material.textfield.TextInputEditText
|
||||
|
||||
@ -21,8 +21,7 @@
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@android:color/white"
|
||||
tools:context=".gest.vendita.MainVenditaFragment">
|
||||
android:background="@android:color/white">
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="match_parent"
|
||||
@ -33,8 +32,7 @@
|
||||
android:id="@+id/filter_chips"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:scrollbars="none"
|
||||
android:background="@color/gray_050">
|
||||
android:scrollbars="none">
|
||||
|
||||
<com.google.android.material.chip.ChipGroup
|
||||
android:id="@+id/filter_chips_group"
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
<resources>
|
||||
|
||||
<item name="bound_observable" type="id" />
|
||||
<item name="bound_observable_visibility" type="id" />
|
||||
<item name="bound_reverse_visibility" type="id" />
|
||||
|
||||
|
||||
|
||||
@ -1,13 +1,12 @@
|
||||
apply plugin: 'com.android.library'
|
||||
|
||||
android {
|
||||
compileSdk 34
|
||||
compileSdk 35
|
||||
|
||||
defaultConfig {
|
||||
minSdkVersion 21
|
||||
targetSdk 34
|
||||
targetSdk 35
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
consumerProguardFiles 'consumer-rules.pro'
|
||||
}
|
||||
|
||||
@ -29,6 +28,11 @@ android {
|
||||
|
||||
}
|
||||
|
||||
configurations {
|
||||
all*.exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk7'
|
||||
all*.exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk8'
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
||||
|
||||
|
||||
@ -2,8 +2,8 @@
|
||||
|
||||
buildscript {
|
||||
ext {
|
||||
kotlin_version = '1.9.20'
|
||||
agp_version = '8.7.3'
|
||||
kotlin_version = '2.1.0'
|
||||
agp_version = '8.8.0'
|
||||
}
|
||||
|
||||
repositories {
|
||||
@ -12,7 +12,7 @@ buildscript {
|
||||
}
|
||||
dependencies {
|
||||
classpath "com.android.tools.build:gradle:$agp_version"
|
||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||
//classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||
classpath 'com.google.gms:google-services:4.4.2'
|
||||
|
||||
classpath 'com.google.firebase:perf-plugin:1.4.2'
|
||||
|
||||
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@ -1,6 +1,6 @@
|
||||
#Mon Feb 13 15:14:43 CET 2023
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip
|
||||
distributionPath=wrapper/dists
|
||||
zipStorePath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
apply plugin: 'com.android.library'
|
||||
|
||||
android {
|
||||
compileSdk 34
|
||||
compileSdk 35
|
||||
|
||||
defaultConfig {
|
||||
minSdkVersion 21
|
||||
targetSdk 34
|
||||
targetSdk 35
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
|
||||
@ -29,6 +29,11 @@ android {
|
||||
|
||||
}
|
||||
|
||||
configurations {
|
||||
all*.exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk7'
|
||||
all*.exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk8'
|
||||
}
|
||||
|
||||
dependencies {
|
||||
// implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
|
||||
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
apply plugin: 'com.android.library'
|
||||
|
||||
android {
|
||||
compileSdk 34
|
||||
compileSdk 35
|
||||
|
||||
defaultConfig {
|
||||
minSdkVersion 21
|
||||
targetSdk 34
|
||||
targetSdk 35
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
// testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
consumerProguardFiles 'consumer-rules.pro'
|
||||
}
|
||||
|
||||
@ -29,6 +29,11 @@ android {
|
||||
|
||||
}
|
||||
|
||||
configurations {
|
||||
all*.exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk7'
|
||||
all*.exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk8'
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
||||
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
apply plugin: 'com.android.library'
|
||||
|
||||
android {
|
||||
compileSdk 34
|
||||
compileSdk 35
|
||||
|
||||
defaultConfig {
|
||||
minSdkVersion 21
|
||||
targetSdk 34
|
||||
targetSdk 35
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
// testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
@ -28,6 +28,11 @@ android {
|
||||
|
||||
}
|
||||
|
||||
configurations {
|
||||
all*.exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk7'
|
||||
all*.exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk8'
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation fileTree(include: ['*.jar'], dir: 'libs')
|
||||
implementation 'androidx.appcompat:appcompat:1.7.0'
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
apply plugin: 'com.android.library'
|
||||
|
||||
android {
|
||||
compileSdk 34
|
||||
compileSdk 35
|
||||
|
||||
defaultConfig {
|
||||
minSdkVersion 21
|
||||
targetSdk 34
|
||||
targetSdk 35
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
// testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
@ -28,6 +28,11 @@ android {
|
||||
|
||||
}
|
||||
|
||||
configurations {
|
||||
all*.exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk7'
|
||||
all*.exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk8'
|
||||
}
|
||||
|
||||
dependencies {
|
||||
|
||||
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user