Merge branch 'develop' into feature/RemoveSetupCheckFornitore
This commit is contained in:
commit
2c5fb3ba48
17
.idea/deploymentTargetDropDown.xml
generated
17
.idea/deploymentTargetDropDown.xml
generated
@ -1,17 +1,10 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="deploymentTargetDropDown">
|
<component name="deploymentTargetDropDown">
|
||||||
<runningDeviceTargetSelectedWithDropDown>
|
<value>
|
||||||
<Target>
|
<entry key="app">
|
||||||
<type value="RUNNING_DEVICE_TARGET" />
|
<State />
|
||||||
<deviceKey>
|
</entry>
|
||||||
<Key>
|
</value>
|
||||||
<type value="SERIAL_NUMBER" />
|
|
||||||
<value value="21088B8EFD" />
|
|
||||||
</Key>
|
|
||||||
</deviceKey>
|
|
||||||
</Target>
|
|
||||||
</runningDeviceTargetSelectedWithDropDown>
|
|
||||||
<timeTargetWasSelectedWithDropDown value="2023-11-20T09:49:24.751485900Z" />
|
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
2
.idea/runConfigurations/app.xml
generated
2
.idea/runConfigurations/app.xml
generated
@ -1,6 +1,6 @@
|
|||||||
<component name="ProjectRunConfigurationManager">
|
<component name="ProjectRunConfigurationManager">
|
||||||
<configuration default="false" name="app" type="AndroidRunConfigurationType" factoryName="Android App">
|
<configuration default="false" name="app" type="AndroidRunConfigurationType" factoryName="Android App">
|
||||||
<module name="WMS_Native.app.main" />
|
<module name="WMS.app.main" />
|
||||||
<option name="DEPLOY" value="true" />
|
<option name="DEPLOY" value="true" />
|
||||||
<option name="DEPLOY_APK_FROM_BUNDLE" value="false" />
|
<option name="DEPLOY_APK_FROM_BUNDLE" value="false" />
|
||||||
<option name="DEPLOY_AS_INSTANT" value="false" />
|
<option name="DEPLOY_AS_INSTANT" value="false" />
|
||||||
|
|||||||
@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services'
|
|||||||
|
|
||||||
android {
|
android {
|
||||||
|
|
||||||
def appVersionCode = 399
|
def appVersionCode = 400
|
||||||
def appVersionName = '1.36.06'
|
def appVersionName = '1.36.07'
|
||||||
|
|
||||||
signingConfigs {
|
signingConfigs {
|
||||||
release {
|
release {
|
||||||
@ -34,7 +34,7 @@ android {
|
|||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId "it.integry.integrywmsnative"
|
applicationId "it.integry.integrywmsnative"
|
||||||
minSdkVersion 21
|
minSdkVersion 21
|
||||||
targetSdkVersion 33
|
targetSdkVersion 34
|
||||||
versionCode appVersionCode
|
versionCode appVersionCode
|
||||||
versionName appVersionName
|
versionName appVersionName
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
@ -88,11 +88,11 @@ android {
|
|||||||
abortOnError false
|
abortOnError false
|
||||||
}
|
}
|
||||||
namespace 'it.integry.integrywmsnative'
|
namespace 'it.integry.integrywmsnative'
|
||||||
compileSdk 33
|
compileSdk 34
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.3'
|
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4'
|
||||||
implementation fileTree(include: ['*.jar'], dir: 'libs')
|
implementation fileTree(include: ['*.jar'], dir: 'libs')
|
||||||
androidTestImplementation('androidx.test.espresso:espresso-core:3.3.0', {
|
androidTestImplementation('androidx.test.espresso:espresso-core:3.3.0', {
|
||||||
exclude group: 'com.android.support', module: 'support-annotations'
|
exclude group: 'com.android.support', module: 'support-annotations'
|
||||||
@ -113,10 +113,10 @@ dependencies {
|
|||||||
|
|
||||||
implementation 'androidx.appcompat:appcompat:1.6.1'
|
implementation 'androidx.appcompat:appcompat:1.6.1'
|
||||||
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
|
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
|
||||||
implementation 'com.google.android.material:material:1.9.0'
|
implementation 'com.google.android.material:material:1.10.0'
|
||||||
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
|
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
|
||||||
implementation 'androidx.cardview:cardview:1.0.0'
|
implementation 'androidx.cardview:cardview:1.0.0'
|
||||||
implementation 'androidx.recyclerview:recyclerview:1.3.1'
|
implementation 'androidx.recyclerview:recyclerview:1.3.2'
|
||||||
|
|
||||||
implementation('androidx.preference:preference-ktx:1.2.1') {
|
implementation('androidx.preference:preference-ktx:1.2.1') {
|
||||||
exclude group: 'androidx.lifecycle', module: 'lifecycle-viewmodel'
|
exclude group: 'androidx.lifecycle', module: 'lifecycle-viewmodel'
|
||||||
|
|||||||
@ -104,6 +104,8 @@ import it.integry.integrywmsnative.view.bottom_sheet__mtb_colr_edit.BottomSheetM
|
|||||||
import it.integry.integrywmsnative.view.bottom_sheet__mtb_colr_edit.BottomSheetMtbColrEditModalModule;
|
import it.integry.integrywmsnative.view.bottom_sheet__mtb_colr_edit.BottomSheetMtbColrEditModalModule;
|
||||||
import it.integry.integrywmsnative.view.dialogs.ask_cliente.DialogAskClienteComponent;
|
import it.integry.integrywmsnative.view.dialogs.ask_cliente.DialogAskClienteComponent;
|
||||||
import it.integry.integrywmsnative.view.dialogs.ask_cliente.DialogAskClienteModule;
|
import it.integry.integrywmsnative.view.dialogs.ask_cliente.DialogAskClienteModule;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.ask_linea_prod.DialogAskLineaProdComponent;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.ask_linea_prod.DialogAskLineaProdModule;
|
||||||
import it.integry.integrywmsnative.view.dialogs.ask_unknown_barcode_notes.DialogAskUnknownBarcodeNotesComponent;
|
import it.integry.integrywmsnative.view.dialogs.ask_unknown_barcode_notes.DialogAskUnknownBarcodeNotesComponent;
|
||||||
import it.integry.integrywmsnative.view.dialogs.ask_unknown_barcode_notes.DialogAskUnknownBarcodeNotesModule;
|
import it.integry.integrywmsnative.view.dialogs.ask_unknown_barcode_notes.DialogAskUnknownBarcodeNotesModule;
|
||||||
import it.integry.integrywmsnative.view.dialogs.bind_product_barcode_with_package.DialogBindProductBarcodeWithPackageComponent;
|
import it.integry.integrywmsnative.view.dialogs.bind_product_barcode_with_package.DialogBindProductBarcodeWithPackageComponent;
|
||||||
@ -114,7 +116,8 @@ import it.integry.integrywmsnative.view.dialogs.choose_arts_from_mtbcolr_list.Di
|
|||||||
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_mtbcolr_list.DialogChooseArtsFromMtbColrListModule;
|
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_mtbcolr_list.DialogChooseArtsFromMtbColrListModule;
|
||||||
import it.integry.integrywmsnative.view.dialogs.choose_batch_lot.DialogChooseBatchLotComponent;
|
import it.integry.integrywmsnative.view.dialogs.choose_batch_lot.DialogChooseBatchLotComponent;
|
||||||
import it.integry.integrywmsnative.view.dialogs.choose_batch_lot.DialogChooseBatchLotModule;
|
import it.integry.integrywmsnative.view.dialogs.choose_batch_lot.DialogChooseBatchLotModule;
|
||||||
import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.InfoAggiuntiveLUDialogComponent;
|
import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAggiuntiveLUComponent;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAggiuntiveLUModule;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_lu_prod.DialogInputLUProdComponent;
|
import it.integry.integrywmsnative.view.dialogs.input_lu_prod.DialogInputLUProdComponent;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_lu_prod.DialogInputLUProdModule;
|
import it.integry.integrywmsnative.view.dialogs.input_lu_prod.DialogInputLUProdModule;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_peso_lu.DialogInputPesoLUComponent;
|
import it.integry.integrywmsnative.view.dialogs.input_peso_lu.DialogInputPesoLUComponent;
|
||||||
@ -195,7 +198,9 @@ import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCr
|
|||||||
DialogBindProductBarcodeWithPackageModule.class,
|
DialogBindProductBarcodeWithPackageModule.class,
|
||||||
DialogAskUnknownBarcodeNotesModule.class,
|
DialogAskUnknownBarcodeNotesModule.class,
|
||||||
ProdVersamentoMaterialeInBufferModule.class,
|
ProdVersamentoMaterialeInBufferModule.class,
|
||||||
DialogInputQuantityToReturnModule.class
|
DialogInputQuantityToReturnModule.class,
|
||||||
|
DialogInfoAggiuntiveLUModule.class,
|
||||||
|
DialogAskLineaProdModule.class
|
||||||
})
|
})
|
||||||
public interface MainApplicationComponent {
|
public interface MainApplicationComponent {
|
||||||
|
|
||||||
@ -281,8 +286,6 @@ public interface MainApplicationComponent {
|
|||||||
|
|
||||||
DocInterniEditFormComponent.Factory docInterniEditFormComponent();
|
DocInterniEditFormComponent.Factory docInterniEditFormComponent();
|
||||||
|
|
||||||
InfoAggiuntiveLUDialogComponent.Factory infoAggiuntiveLUDialogComponent();
|
|
||||||
|
|
||||||
DialogEditArticoloComponent.Factory dialogEditArticoloComponent();
|
DialogEditArticoloComponent.Factory dialogEditArticoloComponent();
|
||||||
|
|
||||||
DialogPrintOrderSSCCListComponent.Factory dialogPrintOrderSSCCListComponent();
|
DialogPrintOrderSSCCListComponent.Factory dialogPrintOrderSSCCListComponent();
|
||||||
@ -329,6 +332,10 @@ public interface MainApplicationComponent {
|
|||||||
|
|
||||||
DialogInputQuantityToReturnComponent.Factory dialogInputQuantityToReturnComponent();
|
DialogInputQuantityToReturnComponent.Factory dialogInputQuantityToReturnComponent();
|
||||||
|
|
||||||
|
DialogInfoAggiuntiveLUComponent.Factory dialogInfoAggiuntiveLUComponent();
|
||||||
|
|
||||||
|
DialogAskLineaProdComponent.Factory dialogAskLineaProdComponent();
|
||||||
|
|
||||||
void inject(MainApplication mainApplication);
|
void inject(MainApplication mainApplication);
|
||||||
|
|
||||||
void inject(AppContext mainApplication);
|
void inject(AppContext mainApplication);
|
||||||
|
|||||||
@ -2,6 +2,7 @@ package it.integry.integrywmsnative.core.class_router.configs;
|
|||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||||
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.MainAccettazioneBollaElencoFragment;
|
import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.MainAccettazioneBollaElencoFragment;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.MainAccettazioneOrdiniElencoFragment;
|
import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.MainAccettazioneOrdiniElencoFragment;
|
||||||
import it.integry.integrywmsnative.gest.contab_doc_interni.DocInterniFragment;
|
import it.integry.integrywmsnative.gest.contab_doc_interni.DocInterniFragment;
|
||||||
@ -85,7 +86,7 @@ public class MenuConfiguration extends BaseMenuConfiguration {
|
|||||||
.setTitleText(R.string.free_picking)
|
.setTitleText(R.string.free_picking)
|
||||||
.setTitleIcon(R.drawable.ic_dashboard_picking_libero)
|
.setTitleIcon(R.drawable.ic_dashboard_picking_libero)
|
||||||
.setDrawerIcon(R.drawable.ic_black_barcode_scanner)
|
.setDrawerIcon(R.drawable.ic_black_barcode_scanner)
|
||||||
.setFragmentFactory(() -> PickingLiberoFragment.newInstance(GestioneEnum.VENDITA)))
|
.setFragmentFactory(() -> PickingLiberoFragment.newInstance(GestioneEnum.VENDITA, SettingsManager.iDB().isFlagAskClienteInPickingLibero(), false)))
|
||||||
|
|
||||||
.addItem(new MenuItem()
|
.addItem(new MenuItem()
|
||||||
.setID(R.id.nav_resi_cliente)
|
.setID(R.id.nav_resi_cliente)
|
||||||
@ -121,7 +122,7 @@ public class MenuConfiguration extends BaseMenuConfiguration {
|
|||||||
.setTitleText(R.string.free_lav_picking)
|
.setTitleText(R.string.free_lav_picking)
|
||||||
.setTitleIcon(R.drawable.ic_dashboard_prod_picking_libero)
|
.setTitleIcon(R.drawable.ic_dashboard_prod_picking_libero)
|
||||||
.setDrawerIcon(R.drawable.ic_black_barcode_scanner)
|
.setDrawerIcon(R.drawable.ic_black_barcode_scanner)
|
||||||
.setFragmentFactory(() -> PickingLiberoFragment.newInstance(GestioneEnum.LAVORAZIONE)))
|
.setFragmentFactory(() -> PickingLiberoFragment.newInstance(GestioneEnum.LAVORAZIONE, SettingsManager.iDB().isFlagAskClienteInPickingLibero(), false)))
|
||||||
|
|
||||||
.addItem(new MenuItem()
|
.addItem(new MenuItem()
|
||||||
.setID(R.id.nav_prod_posizionamento_da_ord)
|
.setID(R.id.nav_prod_posizionamento_da_ord)
|
||||||
|
|||||||
@ -0,0 +1,15 @@
|
|||||||
|
package it.integry.integrywmsnative.core.exception;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityResources;
|
||||||
|
|
||||||
|
public class InvalidLineaProdBarcodeException extends Exception {
|
||||||
|
|
||||||
|
public InvalidLineaProdBarcodeException() {
|
||||||
|
super(UtilityResources.getString(R.string.no_result_from_linea_prod_barcode));
|
||||||
|
}
|
||||||
|
|
||||||
|
public InvalidLineaProdBarcodeException(String barcode) {
|
||||||
|
super(UtilityResources.getString(R.string.no_result_from_linea_prod_barcode) + " (" + barcode + ")");
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -10,7 +10,11 @@ public class CreateUDSRequestDTO {
|
|||||||
private Integer numCollo;
|
private Integer numCollo;
|
||||||
private String serCollo;
|
private String serCollo;
|
||||||
private int causaleCollo;
|
private int causaleCollo;
|
||||||
|
private String codJfas;
|
||||||
|
private String codAnag;
|
||||||
|
private String codVdes;
|
||||||
|
private String rifOrd;
|
||||||
|
private boolean orderRequired;
|
||||||
private List<CreateUDSRequestOrderDTO> orders;
|
private List<CreateUDSRequestOrderDTO> orders;
|
||||||
|
|
||||||
public String getCodMdep() {
|
public String getCodMdep() {
|
||||||
@ -67,6 +71,51 @@ public class CreateUDSRequestDTO {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getCodJfas() {
|
||||||
|
return codJfas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CreateUDSRequestDTO setCodJfas(String codJfas) {
|
||||||
|
this.codJfas = codJfas;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodAnag() {
|
||||||
|
return codAnag;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CreateUDSRequestDTO setCodAnag(String codAnag) {
|
||||||
|
this.codAnag = codAnag;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodVdes() {
|
||||||
|
return codVdes;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CreateUDSRequestDTO setCodVdes(String codVdes) {
|
||||||
|
this.codVdes = codVdes;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRifOrd() {
|
||||||
|
return rifOrd;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CreateUDSRequestDTO setRifOrd(String rifOrd) {
|
||||||
|
this.rifOrd = rifOrd;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isOrderRequired() {
|
||||||
|
return orderRequired;
|
||||||
|
}
|
||||||
|
|
||||||
|
public CreateUDSRequestDTO setOrderRequired(boolean orderRequired) {
|
||||||
|
this.orderRequired = orderRequired;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public List<CreateUDSRequestOrderDTO> getOrders() {
|
public List<CreateUDSRequestOrderDTO> getOrders() {
|
||||||
return orders;
|
return orders;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -37,6 +37,7 @@ import it.integry.integrywmsnative.core.model.MtbAart;
|
|||||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
import it.integry.integrywmsnative.core.model.MtbTCol;
|
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||||
|
import it.integry.integrywmsnative.core.model.dto.AlreadyRegisteredUDCDTO;
|
||||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||||
import it.integry.integrywmsnative.core.report.ReportManager;
|
import it.integry.integrywmsnative.core.report.ReportManager;
|
||||||
import it.integry.integrywmsnative.core.rest.model.VersamentoAutomaticoULResponseDTO;
|
import it.integry.integrywmsnative.core.rest.model.VersamentoAutomaticoULResponseDTO;
|
||||||
@ -50,7 +51,6 @@ import it.integry.integrywmsnative.databinding.ActivityAccettazioneBollaPickingB
|
|||||||
import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.SitBollaAccettazioneDTO;
|
import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.SitBollaAccettazioneDTO;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.TestataBollaAccettazioneDTO;
|
import it.integry.integrywmsnative.gest.accettazione_bolla_elenco.rest.dto.TestataBollaAccettazioneDTO;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_bolla_picking.dto.AccettazioneBollaPickingOrderBy;
|
import it.integry.integrywmsnative.gest.accettazione_bolla_picking.dto.AccettazioneBollaPickingOrderBy;
|
||||||
import it.integry.integrywmsnative.core.model.dto.AlreadyRegisteredUDCDTO;
|
|
||||||
import it.integry.integrywmsnative.gest.accettazione_bolla_picking.dto.PickingObjectDTO;
|
import it.integry.integrywmsnative.gest.accettazione_bolla_picking.dto.PickingObjectDTO;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_bolla_picking.ui.AccettazioneBollaPickingListAdapter;
|
import it.integry.integrywmsnative.gest.accettazione_bolla_picking.ui.AccettazioneBollaPickingListAdapter;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_bolla_picking.ui.AccettazioneBollaPickingListModel;
|
import it.integry.integrywmsnative.gest.accettazione_bolla_picking.ui.AccettazioneBollaPickingListModel;
|
||||||
@ -63,7 +63,7 @@ import it.integry.integrywmsnative.view.dialogs.ask_should_versamento_automatico
|
|||||||
import it.integry.integrywmsnative.view.dialogs.ask_unknown_barcode_notes.DialogAskUnknownBarcodeNotesView;
|
import it.integry.integrywmsnative.view.dialogs.ask_unknown_barcode_notes.DialogAskUnknownBarcodeNotesView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.bind_product_barcode_with_package.DialogBindProductBarcodeWithPackageView;
|
import it.integry.integrywmsnative.view.dialogs.bind_product_barcode_with_package.DialogBindProductBarcodeWithPackageView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAggiuntiveLU;
|
import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAggiuntiveLUView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
|
||||||
import it.integry.integrywmsnative.view.dialogs.versamento_automatico_ul_done.DialogVersamentoAutomaticoULDoneView;
|
import it.integry.integrywmsnative.view.dialogs.versamento_automatico_ul_done.DialogVersamentoAutomaticoULDoneView;
|
||||||
@ -447,9 +447,8 @@ public class AccettazioneBollaPickingActivity extends BaseActivity implements Ac
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onInfoAggiuntiveRequest(RunnableArgss<String, MtbTCol> onComplete) {
|
public void onInfoAggiuntiveRequest(RunnableArgss<String, MtbTCol> onComplete) {
|
||||||
runOnUiThread(() -> {
|
DialogInfoAggiuntiveLUView.newInstance(onComplete, this::onLoadingEnded)
|
||||||
DialogInfoAggiuntiveLU.newInstance(onComplete).show(getSupportFragmentManager(), "InfoAggiuntiveLUDialog");
|
.show(getSupportFragmentManager(), DialogInfoAggiuntiveLUView.class.getName());
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -5,10 +5,12 @@ import android.content.SharedPreferences;
|
|||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.text.SpannableString;
|
import android.text.SpannableString;
|
||||||
|
import android.view.Gravity;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
|
|
||||||
import androidx.appcompat.app.AlertDialog;
|
import androidx.appcompat.app.AlertDialog;
|
||||||
|
import androidx.appcompat.widget.PopupMenu;
|
||||||
import androidx.databinding.DataBindingUtil;
|
import androidx.databinding.DataBindingUtil;
|
||||||
import androidx.databinding.ObservableArrayList;
|
import androidx.databinding.ObservableArrayList;
|
||||||
import androidx.preference.PreferenceManager;
|
import androidx.preference.PreferenceManager;
|
||||||
@ -42,6 +44,7 @@ import it.integry.integrywmsnative.core.model.MtbAart;
|
|||||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
import it.integry.integrywmsnative.core.model.MtbTCol;
|
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||||
|
import it.integry.integrywmsnative.core.model.dto.AlreadyRegisteredUDCDTO;
|
||||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||||
import it.integry.integrywmsnative.core.report.ReportManager;
|
import it.integry.integrywmsnative.core.report.ReportManager;
|
||||||
import it.integry.integrywmsnative.core.rest.model.VersamentoAutomaticoULResponseDTO;
|
import it.integry.integrywmsnative.core.rest.model.VersamentoAutomaticoULResponseDTO;
|
||||||
@ -53,7 +56,6 @@ import it.integry.integrywmsnative.core.utility.UtilityResources;
|
|||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityToast;
|
import it.integry.integrywmsnative.core.utility.UtilityToast;
|
||||||
import it.integry.integrywmsnative.databinding.ActivityAccettazioneOrdineInevasoBinding;
|
import it.integry.integrywmsnative.databinding.ActivityAccettazioneOrdineInevasoBinding;
|
||||||
import it.integry.integrywmsnative.core.model.dto.AlreadyRegisteredUDCDTO;
|
|
||||||
import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.OrdineAccettazioneInevasoDTO;
|
import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.OrdineAccettazioneInevasoDTO;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.SitArtOrdDTO;
|
import it.integry.integrywmsnative.gest.accettazione_ordini_elenco.dto.SitArtOrdDTO;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_ordini_picking.dto.AccettazioneOrdineInevasoOrderBy;
|
import it.integry.integrywmsnative.gest.accettazione_ordini_picking.dto.AccettazioneOrdineInevasoOrderBy;
|
||||||
@ -73,7 +75,7 @@ import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFrag
|
|||||||
import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentViewModel;
|
import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentViewModel;
|
||||||
import it.integry.integrywmsnative.view.dialogs.ask_should_versamento_automatico_ul.DialogAskShouldVersamentoAutomaticoULView;
|
import it.integry.integrywmsnative.view.dialogs.ask_should_versamento_automatico_ul.DialogAskShouldVersamentoAutomaticoULView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAggiuntiveLU;
|
import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAggiuntiveLUView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
|
||||||
import it.integry.integrywmsnative.view.dialogs.versamento_automatico_ul_done.DialogVersamentoAutomaticoULDoneView;
|
import it.integry.integrywmsnative.view.dialogs.versamento_automatico_ul_done.DialogVersamentoAutomaticoULDoneView;
|
||||||
@ -111,6 +113,8 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
|
|||||||
|
|
||||||
private boolean mShowSecondaryUntMis = true;
|
private boolean mShowSecondaryUntMis = true;
|
||||||
|
|
||||||
|
private PopupMenu fabPopupMenu;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
@ -121,7 +125,7 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
|
|||||||
|
|
||||||
mBindings = DataBindingUtil.setContentView(this, R.layout.activity_accettazione_ordine_inevaso);
|
mBindings = DataBindingUtil.setContentView(this, R.layout.activity_accettazione_ordine_inevaso);
|
||||||
mBindings.setLifecycleOwner(this);
|
mBindings.setLifecycleOwner(this);
|
||||||
mBindings.setAccettazioneView(this);
|
mBindings.setView(this);
|
||||||
|
|
||||||
MainApplication.appComponent
|
MainApplication.appComponent
|
||||||
.accettazionePickingComponent()
|
.accettazionePickingComponent()
|
||||||
@ -142,6 +146,7 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
|
|||||||
this.initBarcodeReader();
|
this.initBarcodeReader();
|
||||||
this.initRecyclerView();
|
this.initRecyclerView();
|
||||||
this.initFilters();
|
this.initFilters();
|
||||||
|
this.initFab();
|
||||||
|
|
||||||
boolean useQtaOrd = SettingsManager.iDB().isFlagAccettazioneUseQtaOrd();
|
boolean useQtaOrd = SettingsManager.iDB().isFlagAccettazioneUseQtaOrd();
|
||||||
|
|
||||||
@ -152,6 +157,51 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
|
|||||||
useQtaOrd);
|
useQtaOrd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void initFab() {
|
||||||
|
fabPopupMenu = new PopupMenu(this, this.mBindings.accettazioneOrdineInevasoFab,
|
||||||
|
(Gravity.END | Gravity.BOTTOM),
|
||||||
|
androidx.appcompat.R.attr.popupMenuStyle,
|
||||||
|
com.google.android.material.R.style.Widget_Material3_PopupMenu_ContextMenu);
|
||||||
|
|
||||||
|
fabPopupMenu.setForceShowIcon(true);
|
||||||
|
fabPopupMenu.getMenuInflater().inflate(R.menu.accettazione_ordine_inevaso_fab_menu, fabPopupMenu.getMenu());
|
||||||
|
|
||||||
|
fabPopupMenu.setOnMenuItemClickListener(item -> {
|
||||||
|
int itemId = item.getItemId();
|
||||||
|
|
||||||
|
if (itemId == R.id.show_created_ul) {
|
||||||
|
showCreatedUL();
|
||||||
|
} else if (itemId == R.id.create_ul) {
|
||||||
|
createNewLU();
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
// if (fabPopupMenu.getMenu() instanceof MenuBuilder) {
|
||||||
|
// var menuBuilder = (MenuBuilder) fabPopupMenu.getMenu();
|
||||||
|
// menuBuilder.setOptionalIconsVisible(true);
|
||||||
|
// for (var item : menuBuilder.getVisibleItems()) {
|
||||||
|
// var iconMarginPx =
|
||||||
|
// TypedValue.applyDimension(
|
||||||
|
// TypedValue.COMPLEX_UNIT_DIP, ICON_MARGIN.toFloat(), resources.displayMetrics)
|
||||||
|
// .toInt();
|
||||||
|
// if (item.icon != null) {
|
||||||
|
// if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
|
||||||
|
// item.icon = InsetDrawable(item.icon, iconMarginPx, 0, iconMarginPx,0)
|
||||||
|
// } else {
|
||||||
|
// item.icon =
|
||||||
|
// object : InsetDrawable(item.icon, iconMarginPx, 0, iconMarginPx, 0) {
|
||||||
|
// override fun getIntrinsicWidth(): Int {
|
||||||
|
// return intrinsicHeight + iconMarginPx + iconMarginPx
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
private void initFilters() {
|
private void initFilters() {
|
||||||
|
|
||||||
var onPredicateChanged = new OnGeneralChangedCallback() {
|
var onPredicateChanged = new OnGeneralChangedCallback() {
|
||||||
@ -678,8 +728,12 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
public void showFabMenu() {
|
||||||
|
fabPopupMenu.show();
|
||||||
|
}
|
||||||
|
|
||||||
public void createNewLU() {
|
public void createNewLU() {
|
||||||
this.mBindings.accettazioneOrdineInevasoFab.close(true);
|
this.fabPopupMenu.dismiss();
|
||||||
this.onLoadingStarted();
|
this.onLoadingStarted();
|
||||||
|
|
||||||
this.mViewModel.createNewLU(null, null, false, () -> {
|
this.mViewModel.createNewLU(null, null, false, () -> {
|
||||||
@ -688,7 +742,7 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void showCreatedUL() {
|
public void showCreatedUL() {
|
||||||
this.mBindings.accettazioneOrdineInevasoFab.close(true);
|
this.fabPopupMenu.dismiss();
|
||||||
|
|
||||||
this.mViewModel.retrieveExistentLU(this::startListaBancaliRegistratiActivity);
|
this.mViewModel.retrieveExistentLU(this::startListaBancaliRegistratiActivity);
|
||||||
}
|
}
|
||||||
@ -773,9 +827,12 @@ public class AccettazioneOrdiniPickingActivity extends BaseActivity implements A
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onInfoAggiuntiveRequest(RunnableArgss<String, MtbTCol> onComplete) {
|
public void onInfoAggiuntiveRequest(RunnableArgss<String, MtbTCol> onComplete) {
|
||||||
runOnUiThread(() -> {
|
// runOnUiThread(() -> {
|
||||||
DialogInfoAggiuntiveLU.newInstance(onComplete).show(getSupportFragmentManager(), "InfoAggiuntiveLUDialog");
|
// DialogInfoAggiuntiveLU.newInstance(onComplete).show(getSupportFragmentManager(), "InfoAggiuntiveLUDialog");
|
||||||
});
|
// });
|
||||||
|
|
||||||
|
DialogInfoAggiuntiveLUView.newInstance(onComplete, this::onLoadingEnded)
|
||||||
|
.show(getSupportFragmentManager(), DialogInfoAggiuntiveLUView.class.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -42,7 +42,6 @@ import it.integry.integrywmsnative.core.model.MtbColr;
|
|||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
import it.integry.integrywmsnative.core.model.VtbDest;
|
import it.integry.integrywmsnative.core.model.VtbDest;
|
||||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityToast;
|
import it.integry.integrywmsnative.core.utility.UtilityToast;
|
||||||
import it.integry.integrywmsnative.databinding.FragmentPickingLiberoBinding;
|
import it.integry.integrywmsnative.databinding.FragmentPickingLiberoBinding;
|
||||||
@ -54,6 +53,7 @@ import it.integry.integrywmsnative.ui.ElevatedToolbar;
|
|||||||
import it.integry.integrywmsnative.ui.SimpleDividerItemDecoration;
|
import it.integry.integrywmsnative.ui.SimpleDividerItemDecoration;
|
||||||
import it.integry.integrywmsnative.view.bottom_sheet__mtb_colr_edit.BottomSheetMtbColrEditModalView;
|
import it.integry.integrywmsnative.view.bottom_sheet__mtb_colr_edit.BottomSheetMtbColrEditModalView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.ask_cliente.DialogAskClienteView;
|
import it.integry.integrywmsnative.view.dialogs.ask_cliente.DialogAskClienteView;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.ask_linea_prod.DialogAskLineaProdView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_mtbcolr_list.DialogChooseArtsFromMtbColrList;
|
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_mtbcolr_list.DialogChooseArtsFromMtbColrList;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
|
||||||
@ -86,16 +86,20 @@ public class PickingLiberoFragment extends BaseFragment implements ITitledFragme
|
|||||||
private int barcodeScannerIstanceID = -1;
|
private int barcodeScannerIstanceID = -1;
|
||||||
|
|
||||||
private GestioneEnum mCurrentGestione;
|
private GestioneEnum mCurrentGestione;
|
||||||
|
private boolean mAskCliente;
|
||||||
|
private boolean mAskLineaProd;
|
||||||
|
|
||||||
public PickingLiberoFragment() {
|
public PickingLiberoFragment() {
|
||||||
// Required empty public constructor
|
// Required empty public constructor
|
||||||
}
|
}
|
||||||
|
|
||||||
public static PickingLiberoFragment newInstance(GestioneEnum gestioneEnum) {
|
public static PickingLiberoFragment newInstance(GestioneEnum gestioneEnum, boolean askCliente, boolean askLineaProd) {
|
||||||
PickingLiberoFragment fragment = new PickingLiberoFragment();
|
PickingLiberoFragment fragment = new PickingLiberoFragment();
|
||||||
Bundle args = new Bundle();
|
Bundle args = new Bundle();
|
||||||
|
|
||||||
args.putString("gestione", gestioneEnum.getText());
|
args.putString("gestione", gestioneEnum.getText());
|
||||||
|
args.putBoolean("askCliente", askCliente);
|
||||||
|
args.putBoolean("askLineaProd", askLineaProd);
|
||||||
|
|
||||||
fragment.setArguments(args);
|
fragment.setArguments(args);
|
||||||
return fragment;
|
return fragment;
|
||||||
@ -113,6 +117,8 @@ public class PickingLiberoFragment extends BaseFragment implements ITitledFragme
|
|||||||
setRetainInstance(true);
|
setRetainInstance(true);
|
||||||
|
|
||||||
mCurrentGestione = GestioneEnum.fromString(getArguments().getString("gestione"));
|
mCurrentGestione = GestioneEnum.fromString(getArguments().getString("gestione"));
|
||||||
|
mAskCliente = getArguments().getBoolean("askCliente");
|
||||||
|
mAskLineaProd = getArguments().getBoolean("askLineaProd");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -139,8 +145,7 @@ public class PickingLiberoFragment extends BaseFragment implements ITitledFragme
|
|||||||
|
|
||||||
this.initRecyclerView();
|
this.initRecyclerView();
|
||||||
|
|
||||||
boolean flagAskCliente = SettingsManager.iDB().isFlagAskClienteInPickingLibero();
|
mViewModel.init(mAskCliente, mAskLineaProd, mCurrentGestione);
|
||||||
mViewModel.init(flagAskCliente, mCurrentGestione);
|
|
||||||
|
|
||||||
return mBindings.getRoot();
|
return mBindings.getRoot();
|
||||||
}
|
}
|
||||||
@ -263,7 +268,7 @@ public class PickingLiberoFragment extends BaseFragment implements ITitledFragme
|
|||||||
null,
|
null,
|
||||||
() -> onComplete.run(true),
|
() -> onComplete.run(true),
|
||||||
() -> onComplete.run(false)
|
() -> onComplete.run(false)
|
||||||
).show(requireActivity().getSupportFragmentManager(), "tag");
|
).show(requireActivity().getSupportFragmentManager(), DialogSimpleMessageView.class.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -284,7 +289,13 @@ public class PickingLiberoFragment extends BaseFragment implements ITitledFragme
|
|||||||
@Override
|
@Override
|
||||||
public void onLUClienteRequired(RunnableArgss<VtbDest, String> onComplete, Runnable onAbort) {
|
public void onLUClienteRequired(RunnableArgss<VtbDest, String> onComplete, Runnable onAbort) {
|
||||||
DialogAskClienteView.newInstance(onComplete, onAbort)
|
DialogAskClienteView.newInstance(onComplete, onAbort)
|
||||||
.show(requireActivity().getSupportFragmentManager(), "tag");
|
.show(requireActivity().getSupportFragmentManager(), DialogAskClienteView.class.getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLULineaProdRequired(RunnableArgs<String> onComplete, Runnable onAbort) {
|
||||||
|
DialogAskLineaProdView.newInstance(onComplete, onAbort)
|
||||||
|
.show(getParentFragmentManager(), DialogAskLineaProdView.class.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -294,7 +305,7 @@ public class PickingLiberoFragment extends BaseFragment implements ITitledFragme
|
|||||||
onAbort.run();
|
onAbort.run();
|
||||||
BarcodeManager.enable();
|
BarcodeManager.enable();
|
||||||
})
|
})
|
||||||
.show(requireActivity().getSupportFragmentManager(), "tag");
|
.show(requireActivity().getSupportFragmentManager(), DialogChooseArtsFromMtbColrList.class.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -6,7 +6,9 @@ import dagger.Module;
|
|||||||
import dagger.Provides;
|
import dagger.Provides;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.ColliLavorazioneRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.ColliSpedizioneRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.GiacenzaRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.GiacenzaRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoAutomaticoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoAutomaticoRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
|
||||||
@ -21,8 +23,17 @@ public class PickingLiberoModule {
|
|||||||
BarcodeRESTConsumer barcodeRESTConsumer,
|
BarcodeRESTConsumer barcodeRESTConsumer,
|
||||||
PosizioniRESTConsumer posizioniRESTConsumer,
|
PosizioniRESTConsumer posizioniRESTConsumer,
|
||||||
GiacenzaRESTConsumer giacenzaRESTConsumer,
|
GiacenzaRESTConsumer giacenzaRESTConsumer,
|
||||||
MagazzinoAutomaticoRESTConsumer magazzinoAutomaticoRESTConsumer
|
MagazzinoAutomaticoRESTConsumer magazzinoAutomaticoRESTConsumer,
|
||||||
|
ColliLavorazioneRESTConsumer colliLavorazioneRESTConsumer,
|
||||||
|
ColliSpedizioneRESTConsumer colliSpedizioneRESTConsumer
|
||||||
) {
|
) {
|
||||||
return new PickingLiberoViewModel(articoloRESTConsumer, colliMagazzinoRESTConsumer, barcodeRESTConsumer, posizioniRESTConsumer, giacenzaRESTConsumer, magazzinoAutomaticoRESTConsumer);
|
return new PickingLiberoViewModel(articoloRESTConsumer,
|
||||||
|
colliMagazzinoRESTConsumer,
|
||||||
|
barcodeRESTConsumer,
|
||||||
|
posizioniRESTConsumer,
|
||||||
|
giacenzaRESTConsumer,
|
||||||
|
magazzinoAutomaticoRESTConsumer,
|
||||||
|
colliLavorazioneRESTConsumer,
|
||||||
|
colliSpedizioneRESTConsumer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -32,14 +32,18 @@ import it.integry.integrywmsnative.core.model.dto.PickDataDTO;
|
|||||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.ColliLavorazioneRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.ColliSpedizioneRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.GiacenzaRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.GiacenzaRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoAutomaticoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoAutomaticoRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.interfaces.ColliScaricoRESTConsumerInterface;
|
||||||
import it.integry.integrywmsnative.core.rest.model.Ean128Model;
|
import it.integry.integrywmsnative.core.rest.model.Ean128Model;
|
||||||
import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel;
|
import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel;
|
||||||
import it.integry.integrywmsnative.core.rest.model.magazzino_automatico.MagazzinoAutomaticoPickItemRequestDTO;
|
import it.integry.integrywmsnative.core.rest.model.magazzino_automatico.MagazzinoAutomaticoPickItemRequestDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.magazzino_automatico.MagazzinoAutomaticoPickItemsRequestDTO;
|
import it.integry.integrywmsnative.core.rest.model.magazzino_automatico.MagazzinoAutomaticoPickItemsRequestDTO;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.uds.CreateUDSRequestDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.uds.DeleteULRequestDTO;
|
import it.integry.integrywmsnative.core.rest.model.uds.DeleteULRequestDTO;
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
||||||
@ -63,8 +67,12 @@ public class PickingLiberoViewModel {
|
|||||||
private final GiacenzaRESTConsumer mGiacenzaRESTConsumer;
|
private final GiacenzaRESTConsumer mGiacenzaRESTConsumer;
|
||||||
private final MagazzinoAutomaticoRESTConsumer mMagazzinoAutomaticoRESTConsumer;
|
private final MagazzinoAutomaticoRESTConsumer mMagazzinoAutomaticoRESTConsumer;
|
||||||
|
|
||||||
|
private ColliScaricoRESTConsumerInterface mColliScaricoRESTConsumer;
|
||||||
|
private final ColliLavorazioneRESTConsumer mColliLavorazioneRESTConsumer;
|
||||||
|
private final ColliSpedizioneRESTConsumer mColliSpedizioneRESTConsumer;
|
||||||
|
|
||||||
private boolean mFlagAskCliente;
|
private boolean mFlagAskCliente;
|
||||||
|
private boolean mFlagAskLineaProd;
|
||||||
private GestioneEnum mDefaultGestione;
|
private GestioneEnum mDefaultGestione;
|
||||||
|
|
||||||
|
|
||||||
@ -77,19 +85,30 @@ public class PickingLiberoViewModel {
|
|||||||
BarcodeRESTConsumer barcodeRESTConsumer,
|
BarcodeRESTConsumer barcodeRESTConsumer,
|
||||||
PosizioniRESTConsumer posizioniRESTConsumer,
|
PosizioniRESTConsumer posizioniRESTConsumer,
|
||||||
GiacenzaRESTConsumer giacenzaRESTConsumer,
|
GiacenzaRESTConsumer giacenzaRESTConsumer,
|
||||||
MagazzinoAutomaticoRESTConsumer mMagazzinoAutomaticoRESTConsumer) {
|
MagazzinoAutomaticoRESTConsumer mMagazzinoAutomaticoRESTConsumer,
|
||||||
|
ColliLavorazioneRESTConsumer colliLavorazioneRESTConsumer,
|
||||||
|
ColliSpedizioneRESTConsumer colliSpedizioneRESTConsumer) {
|
||||||
this.mArticoloRESTConsumer = articoloRESTConsumer;
|
this.mArticoloRESTConsumer = articoloRESTConsumer;
|
||||||
this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer;
|
this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer;
|
||||||
this.mBarcodeRESTConsumer = barcodeRESTConsumer;
|
this.mBarcodeRESTConsumer = barcodeRESTConsumer;
|
||||||
this.mPosizioniRESTConsumer = posizioniRESTConsumer;
|
this.mPosizioniRESTConsumer = posizioniRESTConsumer;
|
||||||
this.mGiacenzaRESTConsumer = giacenzaRESTConsumer;
|
this.mGiacenzaRESTConsumer = giacenzaRESTConsumer;
|
||||||
this.mMagazzinoAutomaticoRESTConsumer = mMagazzinoAutomaticoRESTConsumer;
|
this.mMagazzinoAutomaticoRESTConsumer = mMagazzinoAutomaticoRESTConsumer;
|
||||||
|
this.mColliLavorazioneRESTConsumer = colliLavorazioneRESTConsumer;
|
||||||
|
this.mColliSpedizioneRESTConsumer = colliSpedizioneRESTConsumer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void init(boolean flagAskCliente, GestioneEnum defaultGestione) {
|
public void init(boolean flagAskCliente, boolean flagAskLineaProd, GestioneEnum defaultGestione) {
|
||||||
this.mFlagAskCliente = defaultGestione == GestioneEnum.VENDITA && flagAskCliente;
|
this.mFlagAskCliente = defaultGestione == GestioneEnum.VENDITA && flagAskCliente;
|
||||||
|
this.mFlagAskLineaProd = defaultGestione == GestioneEnum.LAVORAZIONE && flagAskLineaProd;
|
||||||
this.mDefaultGestione = defaultGestione;
|
this.mDefaultGestione = defaultGestione;
|
||||||
|
|
||||||
|
|
||||||
|
switch (mDefaultGestione) {
|
||||||
|
case LAVORAZIONE -> this.mColliScaricoRESTConsumer = mColliLavorazioneRESTConsumer;
|
||||||
|
case VENDITA -> this.mColliScaricoRESTConsumer = mColliSpedizioneRESTConsumer;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -279,46 +298,57 @@ public class PickingLiberoViewModel {
|
|||||||
public void createNewLU(Integer customNumCollo, String customSerCollo, Runnable onComplete) {
|
public void createNewLU(Integer customNumCollo, String customSerCollo, Runnable onComplete) {
|
||||||
if (this.mFlagAskCliente) {
|
if (this.mFlagAskCliente) {
|
||||||
this.sendLUClienteRequired((vtbDest, codJcom) -> {
|
this.sendLUClienteRequired((vtbDest, codJcom) -> {
|
||||||
createNewLU_PostClienteAsk(customNumCollo, customSerCollo, vtbDest, codJcom, onComplete);
|
createNewLU_PostClienteAsk(customNumCollo, customSerCollo, vtbDest, onComplete);
|
||||||
}, () -> {
|
}, () -> {
|
||||||
|
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
createNewLU_PostClienteAsk(customNumCollo, customSerCollo, null, null, onComplete);
|
createNewLU_PostClienteAsk(customNumCollo, customSerCollo, null, onComplete);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createNewLU_PostClienteAsk(Integer customNumCollo, String customSerCollo, VtbDest vtbDest, String codJcom, Runnable onComplete) {
|
private void createNewLU_PostClienteAsk(Integer customNumCollo, String customSerCollo, VtbDest vtbDest, Runnable onComplete) {
|
||||||
|
if (this.mFlagAskLineaProd) {
|
||||||
|
this.sendLULineaProdRequired(codJfas -> {
|
||||||
|
createNewLU_PostLineaProdAsk(customNumCollo, customSerCollo, vtbDest, codJfas, onComplete);
|
||||||
|
}, () -> {
|
||||||
|
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
createNewLU_PostLineaProdAsk(customNumCollo, customSerCollo, vtbDest, null, onComplete);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void createNewLU_PostLineaProdAsk(Integer customNumCollo, String customSerCollo, VtbDest vtbDest, String codJfas, Runnable onComplete) {
|
||||||
|
|
||||||
this.sendOnLoadingStarted();
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
MtbColt mtbColt = new MtbColt();
|
var createUDSRequest = new CreateUDSRequestDTO()
|
||||||
mtbColt.initDefaultFields(mDefaultGestione)
|
|
||||||
.setRifOrd(mDefaultGestione == GestioneEnum.LAVORAZIONE ? "PICKING LIBERO" : null)
|
.setRifOrd(mDefaultGestione == GestioneEnum.LAVORAZIONE ? "PICKING LIBERO" : null)
|
||||||
// .setCodAnag(SettingsManager.iDB().getProduzioneDefaultCodAnag())
|
.setCodMdep(SettingsManager.i().getUserSession().getDepo().getCodMdep())
|
||||||
.setSegno(-1)
|
.setCausaleCollo(CreateUDSRequestDTO.Causale.SCARICO)
|
||||||
.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
.setOrderRequired(mFlagAskLineaProd);
|
||||||
|
|
||||||
if (customNumCollo != null) {
|
if (customNumCollo != null) {
|
||||||
mtbColt.setNumCollo(customNumCollo);
|
createUDSRequest.setNumCollo(customNumCollo);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!UtilityString.isNullOrEmpty(customSerCollo)) {
|
if (!UtilityString.isNullOrEmpty(customSerCollo)) {
|
||||||
mtbColt.setSerCollo(customSerCollo);
|
createUDSRequest.setSerCollo(customSerCollo);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!UtilityString.isNullOrEmpty(codJfas)) {
|
||||||
|
createUDSRequest.setCodJfas(codJfas);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (vtbDest != null) {
|
if (vtbDest != null) {
|
||||||
mtbColt.setCodAnag(vtbDest.getCodAnag());
|
createUDSRequest.setCodAnag(vtbDest.getCodAnag());
|
||||||
mtbColt.setCodVdes(vtbDest.getCodVdes());
|
createUDSRequest.setCodVdes(vtbDest.getCodVdes());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!UtilityString.isNullOrEmpty(codJcom)) {
|
|
||||||
mtbColt.setCodJcom(codJcom);
|
|
||||||
}
|
|
||||||
|
|
||||||
mColliMagazzinoRESTConsumer.saveCollo(mtbColt, value -> {
|
mColliScaricoRESTConsumer.createUDS(createUDSRequest, mtbColt -> {
|
||||||
mtbColt
|
mtbColt
|
||||||
.setNumCollo(value.getNumCollo())
|
|
||||||
.setDataCollo(value.getDataColloS())
|
|
||||||
.setMtbColr(new ObservableArrayList<>());
|
.setMtbColr(new ObservableArrayList<>());
|
||||||
|
|
||||||
this.mCurrentMtbColt = mtbColt;
|
this.mCurrentMtbColt = mtbColt;
|
||||||
@ -328,6 +358,43 @@ public class PickingLiberoViewModel {
|
|||||||
if (onComplete != null) onComplete.run();
|
if (onComplete != null) onComplete.run();
|
||||||
this.sendLUOpened(mtbColt);
|
this.sendLUOpened(mtbColt);
|
||||||
}, this::sendError);
|
}, this::sendError);
|
||||||
|
|
||||||
|
// MtbColt mtbColt = new MtbColt();
|
||||||
|
// mtbColt.initDefaultFields(mDefaultGestione)
|
||||||
|
// .setRifOrd(mDefaultGestione == GestioneEnum.LAVORAZIONE ? "PICKING LIBERO" : null)
|
||||||
|
// .setSegno(-1)
|
||||||
|
// .setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
||||||
|
//
|
||||||
|
// if (customNumCollo != null) {
|
||||||
|
// mtbColt.setNumCollo(customNumCollo);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if (!UtilityString.isNullOrEmpty(customSerCollo)) {
|
||||||
|
// mtbColt.setSerCollo(customSerCollo);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if (vtbDest != null) {
|
||||||
|
// mtbColt.setCodAnag(vtbDest.getCodAnag());
|
||||||
|
// mtbColt.setCodVdes(vtbDest.getCodVdes());
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if (!UtilityString.isNullOrEmpty(codJcom)) {
|
||||||
|
// mtbColt.setCodJcom(codJcom);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// mColliMagazzinoRESTConsumer.saveCollo(mtbColt, value -> {
|
||||||
|
// mtbColt
|
||||||
|
// .setNumCollo(value.getNumCollo())
|
||||||
|
// .setDataCollo(value.getDataColloS())
|
||||||
|
// .setMtbColr(new ObservableArrayList<>());
|
||||||
|
//
|
||||||
|
// this.mCurrentMtbColt = mtbColt;
|
||||||
|
//
|
||||||
|
// this.sendOnLoadingEnded();
|
||||||
|
//
|
||||||
|
// if (onComplete != null) onComplete.run();
|
||||||
|
// this.sendLUOpened(mtbColt);
|
||||||
|
// }, this::sendError);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void dispatchArt(MtbAart mtbAart, Ean128Model ean128Model) {
|
private void dispatchArt(MtbAart mtbAart, Ean128Model ean128Model) {
|
||||||
@ -868,6 +935,10 @@ public class PickingLiberoViewModel {
|
|||||||
if (this.mListener != null) mListener.onLUClienteRequired(onComplete, onAbort);
|
if (this.mListener != null) mListener.onLUClienteRequired(onComplete, onAbort);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void sendLULineaProdRequired(RunnableArgs<String> onComplete, Runnable onAbort) {
|
||||||
|
if (this.mListener != null) mListener.onLULineaProdRequired(onComplete, onAbort);
|
||||||
|
}
|
||||||
|
|
||||||
private void sendArtSelectionRequest(List<MtbColr> mtbColrsToPick, MtbAart mtbAart, RunnableArgs<List<MtbColr>> onComplete, Runnable onAbort) {
|
private void sendArtSelectionRequest(List<MtbColr> mtbColrsToPick, MtbAart mtbAart, RunnableArgs<List<MtbColr>> onComplete, Runnable onAbort) {
|
||||||
if (this.mListener != null)
|
if (this.mListener != null)
|
||||||
mListener.onArtSelectionRequest(mtbColrsToPick, mtbAart, onComplete, onAbort);
|
mListener.onArtSelectionRequest(mtbColrsToPick, mtbAart, onComplete, onAbort);
|
||||||
@ -924,6 +995,8 @@ public class PickingLiberoViewModel {
|
|||||||
|
|
||||||
void onLUClienteRequired(RunnableArgss<VtbDest, String> onComplete, Runnable onAbort);
|
void onLUClienteRequired(RunnableArgss<VtbDest, String> onComplete, Runnable onAbort);
|
||||||
|
|
||||||
|
void onLULineaProdRequired(RunnableArgs<String> onComplete, Runnable onAbort);
|
||||||
|
|
||||||
void onArtSelectionRequest(List<MtbColr> mtbColrsToPick, MtbAart mtbAart, RunnableArgs<List<MtbColr>> onComplete, Runnable onAbort);
|
void onArtSelectionRequest(List<MtbColr> mtbColrsToPick, MtbAart mtbAart, RunnableArgs<List<MtbColr>> onComplete, Runnable onAbort);
|
||||||
|
|
||||||
void onItemDispatched(PickingObjectDTO pickingObjectDTO,
|
void onItemDispatched(PickingObjectDTO pickingObjectDTO,
|
||||||
|
|||||||
@ -52,7 +52,7 @@ import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFrag
|
|||||||
import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentViewModel;
|
import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentViewModel;
|
||||||
import it.integry.integrywmsnative.view.dialogs.ask_should_print.DialogAskShouldPrint;
|
import it.integry.integrywmsnative.view.dialogs.ask_should_print.DialogAskShouldPrint;
|
||||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAggiuntiveLU;
|
import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAggiuntiveLUView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
|
||||||
|
|
||||||
@ -276,7 +276,8 @@ public class PickingResiActivity extends BaseActivity implements BottomSheetFrag
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onInfoAggiuntiveRequired(RunnableArgss<String, MtbTCol> onComplete) {
|
public void onInfoAggiuntiveRequired(RunnableArgss<String, MtbTCol> onComplete) {
|
||||||
DialogInfoAggiuntiveLU.newInstance(onComplete).show(getSupportFragmentManager(), "InfoAggiuntiveLUDialog");
|
DialogInfoAggiuntiveLUView.newInstance(onComplete, this::onLoadingEnded)
|
||||||
|
.show(getSupportFragmentManager(), DialogInfoAggiuntiveLUView.class.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -73,7 +73,7 @@ import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
|
|||||||
import it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts.DialogChooseArtFromListaArtsView;
|
import it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts.DialogChooseArtFromListaArtsView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromMtbAartListView;
|
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromMtbAartListView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.choose_batch_lot.DialogChooseBatchLotView;
|
import it.integry.integrywmsnative.view.dialogs.choose_batch_lot.DialogChooseBatchLotView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAggiuntiveLU;
|
import it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAggiuntiveLUView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_peso_lu.DialogInputPesoLUView;
|
import it.integry.integrywmsnative.view.dialogs.input_peso_lu.DialogInputPesoLUView;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
|
||||||
@ -1015,6 +1015,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onInfoAggiuntiveRequired(MtbColt mtbColt, RunnableArgss<String, MtbTCol> onComplete) {
|
public void onInfoAggiuntiveRequired(MtbColt mtbColt, RunnableArgss<String, MtbTCol> onComplete) {
|
||||||
DialogInfoAggiuntiveLU.newInstance(mtbColt, onComplete).show(getSupportFragmentManager(), "InfoAggiuntiveLUDialog");
|
DialogInfoAggiuntiveLUView.newInstance(mtbColt, onComplete, this::onLoadingEnded)
|
||||||
|
.show(getSupportFragmentManager(), DialogInfoAggiuntiveLUView.class.getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,14 @@
|
|||||||
|
package it.integry.integrywmsnative.view.dialogs.ask_linea_prod;
|
||||||
|
|
||||||
|
import dagger.Subcomponent;
|
||||||
|
|
||||||
|
@Subcomponent
|
||||||
|
public interface DialogAskLineaProdComponent {
|
||||||
|
|
||||||
|
@Subcomponent.Factory
|
||||||
|
interface Factory {
|
||||||
|
DialogAskLineaProdComponent create();
|
||||||
|
}
|
||||||
|
|
||||||
|
void inject(DialogAskLineaProdView dialogAskLineaProdView);
|
||||||
|
}
|
||||||
@ -0,0 +1,14 @@
|
|||||||
|
package it.integry.integrywmsnative.view.dialogs.ask_linea_prod;
|
||||||
|
|
||||||
|
import dagger.Module;
|
||||||
|
import dagger.Provides;
|
||||||
|
|
||||||
|
@Module(subcomponents = DialogAskLineaProdComponent.class)
|
||||||
|
public class DialogAskLineaProdModule {
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
DialogAskLineaProdViewModel providesDialogAskLineaProdViewModel() {
|
||||||
|
return new DialogAskLineaProdViewModel();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,107 @@
|
|||||||
|
package it.integry.integrywmsnative.view.dialogs.ask_linea_prod;
|
||||||
|
|
||||||
|
import android.app.Dialog;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.DialogInterface;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||||
|
import it.integry.integrywmsnative.MainApplication;
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
|
||||||
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.databinding.DialogAskLineaProdBinding;
|
||||||
|
|
||||||
|
public class DialogAskLineaProdView extends BaseDialogFragment implements DialogAskLineaProdViewModel.Listener {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
DialogAskLineaProdViewModel mViewModel;
|
||||||
|
|
||||||
|
private final RunnableArgs<String> onComplete;
|
||||||
|
private final Runnable onAbort;
|
||||||
|
|
||||||
|
private DialogAskLineaProdBinding mBindings;
|
||||||
|
private Context mContext;
|
||||||
|
|
||||||
|
|
||||||
|
private int mBarcodeScannerIstanceID;
|
||||||
|
|
||||||
|
//Pass here all external parameters
|
||||||
|
public static DialogAskLineaProdView newInstance(RunnableArgs<String> onComplete, Runnable onAbort) {
|
||||||
|
return new DialogAskLineaProdView(onComplete, onAbort);
|
||||||
|
}
|
||||||
|
|
||||||
|
private DialogAskLineaProdView(RunnableArgs<String> onComplete, Runnable onAbort) {
|
||||||
|
super();
|
||||||
|
this.onComplete = onComplete;
|
||||||
|
this.onAbort = onAbort;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
|
||||||
|
this.mContext = requireContext();
|
||||||
|
|
||||||
|
mBindings = DialogAskLineaProdBinding.inflate(LayoutInflater.from(this.mContext), null, false);
|
||||||
|
mBindings.setLifecycleOwner(this);
|
||||||
|
|
||||||
|
MainApplication.appComponent
|
||||||
|
.dialogAskLineaProdComponent()
|
||||||
|
.create()
|
||||||
|
.inject(this);
|
||||||
|
|
||||||
|
mViewModel.setListener(this);
|
||||||
|
|
||||||
|
setCancelable(true);
|
||||||
|
|
||||||
|
var alertDialog = new MaterialAlertDialogBuilder(this.mContext)
|
||||||
|
.setView(mBindings.getRoot())
|
||||||
|
.setCancelable(isCancelable())
|
||||||
|
.setNegativeButton(R.string.abort, (dialogInterface, i) -> {
|
||||||
|
if(this.onAbort != null) this.onAbort.run();
|
||||||
|
})
|
||||||
|
.create();
|
||||||
|
|
||||||
|
alertDialog.setCanceledOnTouchOutside(isCancelable());
|
||||||
|
alertDialog.setOnShowListener(this);
|
||||||
|
return alertDialog;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onShow(DialogInterface dialogInterface) {
|
||||||
|
super.onShow(dialogInterface);
|
||||||
|
|
||||||
|
this.initBarcode();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initBarcode() {
|
||||||
|
mBarcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
|
||||||
|
.setOnScanSuccessful(onScanSuccessful)
|
||||||
|
.setOnScanFailed(this::onError));
|
||||||
|
|
||||||
|
BarcodeManager.enable();
|
||||||
|
}
|
||||||
|
|
||||||
|
private final RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
|
||||||
|
BarcodeManager.disable();
|
||||||
|
this.mViewModel.processBarcodeDTO(data, BarcodeManager::enable);
|
||||||
|
};
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onProductionLineSelected(String codJfas) {
|
||||||
|
this.onComplete.run(codJfas);
|
||||||
|
dismiss();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,60 @@
|
|||||||
|
package it.integry.integrywmsnative.view.dialogs.ask_linea_prod;
|
||||||
|
|
||||||
|
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||||
|
import it.integry.integrywmsnative.core.exception.InvalidLineaProdBarcodeException;
|
||||||
|
import it.integry.integrywmsnative.core.exception.NoResultFromBarcodeException;
|
||||||
|
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityPosizione;
|
||||||
|
|
||||||
|
public class DialogAskLineaProdViewModel {
|
||||||
|
|
||||||
|
private Listener mListener;
|
||||||
|
|
||||||
|
public void processBarcodeDTO(BarcodeScanDTO data, Runnable onComplete) {
|
||||||
|
if (UtilityBarcode.isEtichettaPosizione(data)) {
|
||||||
|
|
||||||
|
MtbDepoPosizione foundPosizione = UtilityPosizione.getFromCache(data.getStringValue());
|
||||||
|
|
||||||
|
if (!foundPosizione.isFlagLineaProduzione()) {
|
||||||
|
this.sendError(new InvalidLineaProdBarcodeException(data.getStringValue()));
|
||||||
|
onComplete.run();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
onComplete.run();
|
||||||
|
this.sendOnProductionLineSelected(foundPosizione.getPosizione());
|
||||||
|
|
||||||
|
} else {
|
||||||
|
this.sendError(new NoResultFromBarcodeException());
|
||||||
|
onComplete.run();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public DialogAskLineaProdViewModel setListener(Listener listener) {
|
||||||
|
this.mListener = listener;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendOnLoadingStarted() {
|
||||||
|
if (this.mListener != null) mListener.onLoadingStarted();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendOnLoadingEnded() {
|
||||||
|
if (this.mListener != null) mListener.onLoadingEnded();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendOnProductionLineSelected(String codJfas) {
|
||||||
|
if (this.mListener != null) mListener.onProductionLineSelected(codJfas);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendError(Exception ex) {
|
||||||
|
if (this.mListener != null) mListener.onError(ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface Listener extends ILoadingListener {
|
||||||
|
void onError(Exception ex);
|
||||||
|
void onProductionLineSelected(String codJfas);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,163 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu;
|
|
||||||
|
|
||||||
import android.content.DialogInterface;
|
|
||||||
import android.graphics.Color;
|
|
||||||
import android.graphics.drawable.ColorDrawable;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.View;
|
|
||||||
import android.view.ViewGroup;
|
|
||||||
import android.view.WindowManager;
|
|
||||||
import android.widget.AdapterView;
|
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import androidx.annotation.Nullable;
|
|
||||||
import androidx.databinding.DataBindingUtil;
|
|
||||||
import androidx.databinding.ObservableField;
|
|
||||||
|
|
||||||
import com.annimon.stream.Optional;
|
|
||||||
import com.annimon.stream.Stream;
|
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
|
|
||||||
import javax.inject.Inject;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.MainApplication;
|
|
||||||
import it.integry.integrywmsnative.R;
|
|
||||||
import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
|
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
|
||||||
import it.integry.integrywmsnative.core.model.MtbTCol;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDialog;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityObservable;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
|
||||||
import it.integry.integrywmsnative.databinding.DialogNoteAggiuntiveNuovaUlBinding;
|
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_lu_prod.adapter.DialogInputLUProdTipoColloAdapter;
|
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_lu_prod.adapter.DialogInputLUProdTipoColloListModel;
|
|
||||||
|
|
||||||
public class DialogInfoAggiuntiveLU extends BaseDialogFragment implements InfoAggiuntiveLUDialogViewModel.Listener {
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
InfoAggiuntiveLUDialogViewModel mViewModel;
|
|
||||||
|
|
||||||
private DialogNoteAggiuntiveNuovaUlBinding mBindings;
|
|
||||||
private final RunnableArgss<String, MtbTCol> mOnComplete;
|
|
||||||
private MtbColt currentMtbColt;
|
|
||||||
private DialogInputLUProdTipoColloAdapter codTcolArrayAdapter = null;
|
|
||||||
public ObservableField<String> additionalNotes = new ObservableField<>();
|
|
||||||
public ObservableField<String> selectedMtbTcol = new ObservableField<>();
|
|
||||||
public ObservableField<DialogInputLUProdTipoColloListModel> currentMtbTCol = new ObservableField<>();
|
|
||||||
|
|
||||||
public static DialogInfoAggiuntiveLU newInstance(@NotNull RunnableArgss<String, MtbTCol> onComplete) {
|
|
||||||
return new DialogInfoAggiuntiveLU(null, onComplete);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static DialogInfoAggiuntiveLU newInstance(MtbColt mtbColt, @NotNull RunnableArgss<String, MtbTCol> onComplete) {
|
|
||||||
return new DialogInfoAggiuntiveLU(mtbColt, onComplete);
|
|
||||||
}
|
|
||||||
|
|
||||||
private DialogInfoAggiuntiveLU(MtbColt mtbColt, @NotNull RunnableArgss<String, MtbTCol> onComplete) {
|
|
||||||
super();
|
|
||||||
this.mOnComplete = onComplete;
|
|
||||||
this.currentMtbColt = mtbColt;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onStart() {
|
|
||||||
super.onStart();
|
|
||||||
this.init();
|
|
||||||
|
|
||||||
UtilityDialog.setTo90PercentWidth(requireActivity(), this);
|
|
||||||
this.mViewModel.setListener(this);
|
|
||||||
this.mViewModel.init();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
|
||||||
@Override
|
|
||||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
|
||||||
mBindings = DataBindingUtil.inflate(inflater, R.layout.dialog_note_aggiuntive_nuova_ul, container, false);
|
|
||||||
mBindings.setLifecycleOwner(this);
|
|
||||||
|
|
||||||
MainApplication.appComponent
|
|
||||||
.infoAggiuntiveLUDialogComponent()
|
|
||||||
.create()
|
|
||||||
.inject(this);
|
|
||||||
|
|
||||||
mBindings.setView(this);
|
|
||||||
mBindings.setViewModel(this.mViewModel);
|
|
||||||
|
|
||||||
getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
|
|
||||||
getDialog().setCanceledOnTouchOutside(false);
|
|
||||||
getDialog().setCancelable(false);
|
|
||||||
getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
|
|
||||||
|
|
||||||
|
|
||||||
return mBindings.getRoot();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDismiss(@NonNull DialogInterface dialog) {
|
|
||||||
if (mOnComplete != null)
|
|
||||||
mOnComplete.run(additionalNotes.get(), mViewModel.getInternalTipoPed());
|
|
||||||
super.onDismiss(dialog);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private void init() {
|
|
||||||
|
|
||||||
|
|
||||||
UtilityObservable.addPropertyChanged(this.selectedMtbTcol, (value) -> {
|
|
||||||
if (this.codTcolArrayAdapter != null && this.codTcolArrayAdapter.getDataset() != null) {
|
|
||||||
Optional<DialogInputLUProdTipoColloListModel> selectedItem = Stream.of(this.codTcolArrayAdapter.getDataset())
|
|
||||||
.filter(x -> x.toString().equals(value))
|
|
||||||
.findFirst();
|
|
||||||
|
|
||||||
if (selectedItem.isPresent()) {
|
|
||||||
currentMtbTCol.set(selectedItem.get());
|
|
||||||
this.mViewModel.setInternalTipoPed(selectedItem.get().getOriginalModel());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
this.mViewModel.getTipiCollo().observe(getViewLifecycleOwner(), tipiCollo -> {
|
|
||||||
|
|
||||||
|
|
||||||
codTcolArrayAdapter = new DialogInputLUProdTipoColloAdapter(getActivity(), R.layout.array_adapter_single_item, tipiCollo);
|
|
||||||
mBindings.filledExposedDropdownCodTcol.setAdapter(codTcolArrayAdapter);
|
|
||||||
|
|
||||||
if (currentMtbColt != null && !UtilityString.isNullOrEmpty(currentMtbColt.getCodTcol()) && UtilityString.isNullOrEmpty(this.selectedMtbTcol.get())) {
|
|
||||||
MtbTCol tipoPedana = Stream.of(tipiCollo).filter(x -> x.getCodTcol().equalsIgnoreCase(currentMtbColt.getCodTcol())).findFirstOrElse(null);
|
|
||||||
if (tipoPedana != null) {
|
|
||||||
this.selectedMtbTcol.set(tipoPedana.getCodTcol() + " - " + tipoPedana.getDescrizione());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
this.mBindings.filledExposedDropdownCodTcol.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
|
||||||
@Override
|
|
||||||
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
|
|
||||||
currentMtbTCol.set(codTcolArrayAdapter.getItem(i));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onNothingSelected(AdapterView<?> adapterView) {
|
|
||||||
currentMtbTCol.set(null);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
mBindings.buttonConfirm.setOnClickListener(v -> {
|
|
||||||
dismiss();
|
|
||||||
});
|
|
||||||
|
|
||||||
if (this.currentMtbColt != null) {
|
|
||||||
this.additionalNotes.set(currentMtbColt.getAnnotazioni());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -0,0 +1,14 @@
|
|||||||
|
package it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu;
|
||||||
|
|
||||||
|
import dagger.Subcomponent;
|
||||||
|
|
||||||
|
@Subcomponent
|
||||||
|
public interface DialogInfoAggiuntiveLUComponent {
|
||||||
|
|
||||||
|
@Subcomponent.Factory
|
||||||
|
interface Factory {
|
||||||
|
DialogInfoAggiuntiveLUComponent create();
|
||||||
|
}
|
||||||
|
|
||||||
|
void inject(DialogInfoAggiuntiveLUView dialogInfoAggiuntiveLUView);
|
||||||
|
}
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
package it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu;
|
||||||
|
|
||||||
|
import dagger.Module;
|
||||||
|
import dagger.Provides;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoRESTConsumer;
|
||||||
|
|
||||||
|
@Module(subcomponents = DialogInfoAggiuntiveLUComponent.class)
|
||||||
|
public class DialogInfoAggiuntiveLUModule {
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
DialogInfoAggiuntiveLUViewModel providesDialogInfoAggiuntiveLUViewModel(MagazzinoRESTConsumer magazzinoRESTConsumer) {
|
||||||
|
return new DialogInfoAggiuntiveLUViewModel(magazzinoRESTConsumer);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,163 @@
|
|||||||
|
package it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu;
|
||||||
|
|
||||||
|
import android.app.Dialog;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.DialogInterface;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.widget.AdapterView;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.databinding.ObservableField;
|
||||||
|
|
||||||
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
|
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.MainApplication;
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityObservable;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
|
import it.integry.integrywmsnative.databinding.DialogInfoAggiuntiveLuBinding;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.input_lu_prod.adapter.DialogInputLUProdTipoColloAdapter;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.input_lu_prod.adapter.DialogInputLUProdTipoColloListModel;
|
||||||
|
|
||||||
|
public class DialogInfoAggiuntiveLUView extends BaseDialogFragment implements DialogInfoAggiuntiveLUViewModel.Listener {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
DialogInfoAggiuntiveLUViewModel mViewModel;
|
||||||
|
|
||||||
|
|
||||||
|
public ObservableField<String> additionalNotes = new ObservableField<>();
|
||||||
|
public ObservableField<String> selectedMtbTcol = new ObservableField<>();
|
||||||
|
public ObservableField<DialogInputLUProdTipoColloListModel> currentMtbTCol = new ObservableField<>();
|
||||||
|
|
||||||
|
|
||||||
|
private DialogInfoAggiuntiveLuBinding mBindings;
|
||||||
|
private Context mContext;
|
||||||
|
|
||||||
|
|
||||||
|
private final RunnableArgss<String, MtbTCol> 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(MtbColt mtbColt, @NotNull RunnableArgss<String, MtbTCol> onComplete, @NotNull Runnable onAbort) {
|
||||||
|
return new DialogInfoAggiuntiveLUView(mtbColt, onComplete, onAbort);
|
||||||
|
}
|
||||||
|
|
||||||
|
private DialogInfoAggiuntiveLUView(MtbColt mtbColt, @NotNull RunnableArgss<String, MtbTCol> onComplete, @NotNull Runnable onAbort) {
|
||||||
|
super();
|
||||||
|
this.mOnComplete = onComplete;
|
||||||
|
this.mOnAbort = onAbort;
|
||||||
|
this.currentMtbColt = mtbColt;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
|
||||||
|
this.mContext = requireContext();
|
||||||
|
|
||||||
|
mBindings = DialogInfoAggiuntiveLuBinding.inflate(LayoutInflater.from(this.mContext), null, false);
|
||||||
|
mBindings.setLifecycleOwner(this);
|
||||||
|
|
||||||
|
MainApplication.appComponent
|
||||||
|
.dialogInfoAggiuntiveLUComponent()
|
||||||
|
.create()
|
||||||
|
.inject(this);
|
||||||
|
|
||||||
|
mBindings.setView(this);
|
||||||
|
mBindings.setViewModel(mViewModel);
|
||||||
|
mViewModel.setListener(this);
|
||||||
|
|
||||||
|
setCancelable(false);
|
||||||
|
|
||||||
|
var alertDialog = new MaterialAlertDialogBuilder(this.mContext)
|
||||||
|
.setView(mBindings.getRoot())
|
||||||
|
.setCancelable(isCancelable())
|
||||||
|
.setPositiveButton(R.string.confirm, (dialogInterface, i) -> {
|
||||||
|
mOnComplete.run(additionalNotes.get(), currentMtbTCol.get() != null ? currentMtbTCol.get().getOriginalModel() : null);
|
||||||
|
})
|
||||||
|
.setNegativeButton(R.string.abort, (dialogInterface, i) -> {
|
||||||
|
this.mOnAbort.run();
|
||||||
|
})
|
||||||
|
.create();
|
||||||
|
|
||||||
|
alertDialog.setCanceledOnTouchOutside(isCancelable());
|
||||||
|
alertDialog.setOnShowListener(this);
|
||||||
|
return alertDialog;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onShow(DialogInterface dialogInterface) {
|
||||||
|
super.onShow(dialogInterface);
|
||||||
|
|
||||||
|
this.init();
|
||||||
|
this.mViewModel.init();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void init() {
|
||||||
|
if (this.currentMtbColt != null)
|
||||||
|
this.additionalNotes.set(currentMtbColt.getAnnotazioni());
|
||||||
|
|
||||||
|
var codTcolArrayAdapter = new DialogInputLUProdTipoColloAdapter(requireContext(),
|
||||||
|
R.layout.array_adapter_single_item,
|
||||||
|
this.mViewModel.getTipiCollo());
|
||||||
|
|
||||||
|
mBindings.filledExposedDropdownCodTcol.setAdapter(codTcolArrayAdapter);
|
||||||
|
|
||||||
|
this.mViewModel.getTipiCollo().observe(this, tipiCollo -> {
|
||||||
|
|
||||||
|
if (currentMtbColt != null && !UtilityString.isNullOrEmpty(currentMtbColt.getCodTcol()) && UtilityString.isNullOrEmpty(this.selectedMtbTcol.get())) {
|
||||||
|
tipiCollo.stream()
|
||||||
|
.filter(x -> x.getCodTcol().equalsIgnoreCase(currentMtbColt.getCodTcol()))
|
||||||
|
.findFirst()
|
||||||
|
.ifPresent(tipoPedana -> this.selectedMtbTcol.set(tipoPedana.getCodTcol() + " - " + tipoPedana.getDescrizione()));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
UtilityObservable.addPropertyChanged(this.selectedMtbTcol, (value) -> {
|
||||||
|
if (codTcolArrayAdapter.getDataset() != null) {
|
||||||
|
codTcolArrayAdapter.getDataset().stream()
|
||||||
|
.filter(x -> x.toString().equals(value))
|
||||||
|
.findFirst()
|
||||||
|
.ifPresent(tipoPedana -> {
|
||||||
|
currentMtbTCol.set(tipoPedana);
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
this.mBindings.filledExposedDropdownCodTcol.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
||||||
|
@Override
|
||||||
|
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
|
||||||
|
currentMtbTCol.set(codTcolArrayAdapter.getItem(i));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onNothingSelected(AdapterView<?> adapterView) {
|
||||||
|
currentMtbTCol.set(null);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -10,23 +10,21 @@ import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingL
|
|||||||
import it.integry.integrywmsnative.core.model.MtbTCol;
|
import it.integry.integrywmsnative.core.model.MtbTCol;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoRESTConsumer;
|
||||||
|
|
||||||
public class InfoAggiuntiveLUDialogViewModel {
|
public class DialogInfoAggiuntiveLUViewModel {
|
||||||
|
|
||||||
public final MutableLiveData<List<MtbTCol>> tipiCollo = new MutableLiveData<>();
|
private final MutableLiveData<List<MtbTCol>> tipiCollo = new MutableLiveData<>();
|
||||||
|
|
||||||
private MtbTCol internalTipoPed;
|
|
||||||
|
|
||||||
private Listener mListener;
|
private Listener mListener;
|
||||||
|
|
||||||
private final MagazzinoRESTConsumer mMagazzinoRESTConsumer;
|
private final MagazzinoRESTConsumer mMagazzinoRESTConsumer;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public InfoAggiuntiveLUDialogViewModel(MagazzinoRESTConsumer magazzinoRESTConsumer) {
|
public DialogInfoAggiuntiveLUViewModel(MagazzinoRESTConsumer mMagazzinoRESTConsumer) {
|
||||||
this.mMagazzinoRESTConsumer = magazzinoRESTConsumer;
|
this.mMagazzinoRESTConsumer = mMagazzinoRESTConsumer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void init() {
|
public void init() {
|
||||||
new Thread(this::sendOnLoadingStarted).start();
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
mMagazzinoRESTConsumer.getTipiCollo(tipiCollo -> {
|
mMagazzinoRESTConsumer.getTipiCollo(tipiCollo -> {
|
||||||
this.tipiCollo.postValue(tipiCollo);
|
this.tipiCollo.postValue(tipiCollo);
|
||||||
@ -35,19 +33,14 @@ public class InfoAggiuntiveLUDialogViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public MutableLiveData<List<MtbTCol>> getTipiCollo() {
|
public MutableLiveData<List<MtbTCol>> getTipiCollo() {
|
||||||
return this.tipiCollo;
|
return tipiCollo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setListener(Listener listener) {
|
||||||
public void setInternalTipoPed(MtbTCol internalTipoPed) {
|
this.mListener = listener;
|
||||||
this.internalTipoPed = internalTipoPed;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public MtbTCol getInternalTipoPed() {
|
|
||||||
return internalTipoPed;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void sendOnLoadingStarted() {
|
private void sendOnLoadingStarted() {
|
||||||
if (this.mListener != null) mListener.onLoadingStarted();
|
if (this.mListener != null) mListener.onLoadingStarted();
|
||||||
}
|
}
|
||||||
@ -60,10 +53,6 @@ public class InfoAggiuntiveLUDialogViewModel {
|
|||||||
if (this.mListener != null) mListener.onError(ex);
|
if (this.mListener != null) mListener.onError(ex);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setListener(Listener listener) {
|
|
||||||
this.mListener = listener;
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface Listener extends ILoadingListener {
|
public interface Listener extends ILoadingListener {
|
||||||
|
|
||||||
void onError(Exception ex);
|
void onError(Exception ex);
|
||||||
@ -1,15 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu;
|
|
||||||
|
|
||||||
import dagger.Subcomponent;
|
|
||||||
|
|
||||||
@Subcomponent
|
|
||||||
public interface InfoAggiuntiveLUDialogComponent {
|
|
||||||
|
|
||||||
@Subcomponent.Factory
|
|
||||||
interface Factory {
|
|
||||||
InfoAggiuntiveLUDialogComponent create();
|
|
||||||
}
|
|
||||||
|
|
||||||
void inject(DialogInfoAggiuntiveLU infoAggiuntiveLUDialog);
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,15 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu;
|
|
||||||
|
|
||||||
import dagger.Module;
|
|
||||||
import dagger.Provides;
|
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.MagazzinoRESTConsumer;
|
|
||||||
|
|
||||||
@Module(subcomponents = InfoAggiuntiveLUDialogComponent.class)
|
|
||||||
public class InfoAggiuntiveLUDialogModule {
|
|
||||||
|
|
||||||
@Provides
|
|
||||||
InfoAggiuntiveLUDialogViewModel providesInfoAggiuntiveLUDialogViewModel(MagazzinoRESTConsumer magazzinoRESTConsumer) {
|
|
||||||
return new InfoAggiuntiveLUDialogViewModel(magazzinoRESTConsumer);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -328,10 +328,11 @@ public class DialogInputLUProdView extends BaseDialogFragment implements DialogI
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
codTcolArrayAdapter = new DialogInputLUProdTipoColloAdapter(getActivity(), R.layout.array_adapter_single_item, this.mViewModel.getTipiCollo());
|
||||||
|
mBindings.filledExposedDropdownCodTcol.setAdapter(codTcolArrayAdapter);
|
||||||
|
|
||||||
this.mViewModel.getTipiCollo().observe(getViewLifecycleOwner(), tipiCollo -> {
|
this.mViewModel.getTipiCollo().observe(getViewLifecycleOwner(), tipiCollo -> {
|
||||||
|
|
||||||
codTcolArrayAdapter = new DialogInputLUProdTipoColloAdapter(getActivity(), R.layout.array_adapter_single_item, tipiCollo);
|
|
||||||
mBindings.filledExposedDropdownCodTcol.setAdapter(codTcolArrayAdapter);
|
|
||||||
|
|
||||||
if (mDialogInputLUProdDTO.getCodTcol() != null) {
|
if (mDialogInputLUProdDTO.getCodTcol() != null) {
|
||||||
Optional<MtbTCol> optTCol = Stream.of(tipiCollo)
|
Optional<MtbTCol> optTCol = Stream.of(tipiCollo)
|
||||||
|
|||||||
@ -4,6 +4,7 @@ import android.content.Context;
|
|||||||
import android.widget.ArrayAdapter;
|
import android.widget.ArrayAdapter;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.lifecycle.MutableLiveData;
|
||||||
|
|
||||||
import com.annimon.stream.Stream;
|
import com.annimon.stream.Stream;
|
||||||
|
|
||||||
@ -13,15 +14,20 @@ import it.integry.integrywmsnative.core.model.MtbTCol;
|
|||||||
|
|
||||||
public class DialogInputLUProdTipoColloAdapter extends ArrayAdapter<DialogInputLUProdTipoColloListModel> {
|
public class DialogInputLUProdTipoColloAdapter extends ArrayAdapter<DialogInputLUProdTipoColloListModel> {
|
||||||
|
|
||||||
private final List<DialogInputLUProdTipoColloListModel> mDataset;
|
private List<DialogInputLUProdTipoColloListModel> mDataset;
|
||||||
|
|
||||||
public DialogInputLUProdTipoColloAdapter(@NonNull Context context, int resource, @NonNull List<MtbTCol> objects) {
|
public DialogInputLUProdTipoColloAdapter(@NonNull Context context, int resource, @NonNull MutableLiveData<List<MtbTCol>> inputData) {
|
||||||
super(context, resource);
|
super(context, resource);
|
||||||
this.mDataset = Stream.of(objects).map(x -> new DialogInputLUProdTipoColloListModel()
|
|
||||||
.setOriginalModel(x))
|
|
||||||
.toList();
|
|
||||||
|
|
||||||
addAll(mDataset);
|
inputData.observeForever(data -> {
|
||||||
|
mDataset = Stream.of(data)
|
||||||
|
.map(x -> new DialogInputLUProdTipoColloListModel()
|
||||||
|
.setOriginalModel(x))
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
clear();
|
||||||
|
addAll(mDataset);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<DialogInputLUProdTipoColloListModel> getDataset() {
|
public List<DialogInputLUProdTipoColloListModel> getDataset() {
|
||||||
|
|||||||
10
app/src/main/res/drawable/ic_add_material3.xml
Normal file
10
app/src/main/res/drawable/ic_add_material3.xml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="24dp"
|
||||||
|
android:height="24dp"
|
||||||
|
android:viewportWidth="960"
|
||||||
|
android:viewportHeight="960"
|
||||||
|
android:tint="?attr/colorControlNormal">
|
||||||
|
<path
|
||||||
|
android:fillColor="@android:color/white"
|
||||||
|
android:pathData="M440,520L200,520L200,440L440,440L440,200L520,200L520,440L760,440L760,520L520,520L520,760L440,760L440,520Z"/>
|
||||||
|
</vector>
|
||||||
10
app/src/main/res/drawable/ic_inventory_2_material3.xml
Normal file
10
app/src/main/res/drawable/ic_inventory_2_material3.xml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="24dp"
|
||||||
|
android:height="24dp"
|
||||||
|
android:viewportWidth="960"
|
||||||
|
android:viewportHeight="960"
|
||||||
|
android:tint="?attr/colorControlNormal">
|
||||||
|
<path
|
||||||
|
android:fillColor="@android:color/white"
|
||||||
|
android:pathData="M200,880Q167,880 143.5,856.5Q120,833 120,800L120,349Q102,338 91,320.5Q80,303 80,280L80,160Q80,127 103.5,103.5Q127,80 160,80L800,80Q833,80 856.5,103.5Q880,127 880,160L880,280Q880,303 869,320.5Q858,338 840,349L840,800Q840,833 816.5,856.5Q793,880 760,880L200,880ZM200,360L200,800Q200,800 200,800Q200,800 200,800L760,800Q760,800 760,800Q760,800 760,800L760,360L200,360ZM160,280L800,280Q800,280 800,280Q800,280 800,280L800,160Q800,160 800,160Q800,160 800,160L160,160Q160,160 160,160Q160,160 160,160L160,280Q160,280 160,280Q160,280 160,280ZM360,560L600,560L600,480L360,480L360,560ZM480,580L480,580L480,580Q480,580 480,580Q480,580 480,580L480,580Q480,580 480,580Q480,580 480,580L480,580Z"/>
|
||||||
|
</vector>
|
||||||
@ -5,7 +5,7 @@
|
|||||||
<import type="android.view.View" />
|
<import type="android.view.View" />
|
||||||
|
|
||||||
<variable
|
<variable
|
||||||
name="accettazioneView"
|
name="view"
|
||||||
type="it.integry.integrywmsnative.gest.accettazione_ordini_picking.AccettazioneOrdiniPickingActivity" />
|
type="it.integry.integrywmsnative.gest.accettazione_ordini_picking.AccettazioneOrdiniPickingActivity" />
|
||||||
|
|
||||||
</data>
|
</data>
|
||||||
@ -80,7 +80,7 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:alpha="0.3"
|
android:alpha="0.3"
|
||||||
app:visibility="@{accettazioneView.noItemsToPick}">
|
app:visibility="@{view.noItemsToPick}">
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.Guideline
|
<androidx.constraintlayout.widget.Guideline
|
||||||
android:id="@+id/guideline_empty_top"
|
android:id="@+id/guideline_empty_top"
|
||||||
@ -129,66 +129,79 @@
|
|||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
<com.github.clans.fab.FloatingActionMenu
|
|
||||||
|
|
||||||
|
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
||||||
android:id="@+id/accettazione_ordine_inevaso_fab"
|
android:id="@+id/accettazione_ordine_inevaso_fab"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="wrap_content"
|
||||||
android:layout_alignParentBottom="true"
|
android:layout_gravity="bottom|end"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
android:layout_margin="16dp"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
android:onClick="@{() -> view.showFabMenu()}"
|
||||||
app:visibility="@{accettazioneView.noLUPresent}"
|
app:srcCompat="@drawable/ic_add_24dp"
|
||||||
fab:menu_animationDelayPerItem="50"
|
app:visibility="@{view.noLUPresent}"
|
||||||
fab:menu_backgroundColor="@color/white_bg_alpha"
|
style="?attr/floatingActionButtonPrimaryStyle" />
|
||||||
fab:menu_buttonSpacing="0dp"
|
|
||||||
fab:menu_colorNormal="@color/colorSecondary"
|
|
||||||
fab:menu_colorPressed="@color/colorSecondaryDark"
|
|
||||||
fab:menu_fab_size="normal"
|
|
||||||
fab:menu_labels_colorNormal="@color/white"
|
|
||||||
fab:menu_labels_colorPressed="@color/white_pressed"
|
|
||||||
fab:menu_labels_colorRipple="#66FFFFFF"
|
|
||||||
fab:menu_labels_cornerRadius="3dp"
|
|
||||||
fab:menu_labels_hideAnimation="@anim/fab_slide_out_to_right"
|
|
||||||
fab:menu_labels_margin="0dp"
|
|
||||||
fab:menu_labels_padding="8dp"
|
|
||||||
fab:menu_labels_paddingBottom="4dp"
|
|
||||||
fab:menu_labels_paddingLeft="8dp"
|
|
||||||
fab:menu_labels_paddingRight="8dp"
|
|
||||||
fab:menu_labels_paddingTop="4dp"
|
|
||||||
fab:menu_labels_position="left"
|
|
||||||
fab:menu_labels_showAnimation="@anim/fab_slide_in_from_right"
|
|
||||||
fab:menu_labels_showShadow="true"
|
|
||||||
fab:menu_labels_textColor="@color/black_semi_transparent"
|
|
||||||
fab:menu_labels_textSize="18sp"
|
|
||||||
fab:menu_openDirection="up"
|
|
||||||
fab:menu_shadowColor="#66000000"
|
|
||||||
fab:menu_shadowRadius="4dp"
|
|
||||||
fab:menu_shadowXOffset="1dp"
|
|
||||||
fab:menu_shadowYOffset="3dp"
|
|
||||||
fab:menu_showShadow="true">
|
|
||||||
|
|
||||||
<com.github.clans.fab.FloatingActionButton
|
<!-- <com.github.clans.fab.FloatingActionMenu-->
|
||||||
android:id="@+id/accettazione_ordine_inevaso_fab_item1"
|
<!-- android:id="@+id/accettazione_ordine_inevaso_fab"-->
|
||||||
android:layout_width="wrap_content"
|
<!-- android:layout_width="match_parent"-->
|
||||||
android:layout_height="wrap_content"
|
<!-- android:layout_height="match_parent"-->
|
||||||
android:src="@drawable/ic_box"
|
<!-- android:layout_alignParentBottom="true"-->
|
||||||
app:fab_colorNormal="@color/white"
|
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
|
||||||
app:fab_colorPressed="@color/white_pressed"
|
<!-- app:layout_constraintEnd_toEndOf="parent"-->
|
||||||
app:fab_colorRipple="#66FFFFFF"
|
<!-- app:visibility="@{view.noLUPresent}"-->
|
||||||
app:onClick="@{() -> accettazioneView.showCreatedUL()}"
|
<!-- fab:menu_animationDelayPerItem="50"-->
|
||||||
fab:fab_label="@string/action_show_created_ul" />
|
<!-- fab:menu_backgroundColor="@color/white_bg_alpha"-->
|
||||||
|
<!-- fab:menu_buttonSpacing="0dp"-->
|
||||||
|
<!-- fab:menu_colorNormal="@color/colorSecondary"-->
|
||||||
|
<!-- fab:menu_colorPressed="@color/colorSecondaryDark"-->
|
||||||
|
<!-- fab:menu_fab_size="normal"-->
|
||||||
|
<!-- fab:menu_labels_colorNormal="@color/white"-->
|
||||||
|
<!-- fab:menu_labels_colorPressed="@color/white_pressed"-->
|
||||||
|
<!-- fab:menu_labels_colorRipple="#66FFFFFF"-->
|
||||||
|
<!-- fab:menu_labels_cornerRadius="3dp"-->
|
||||||
|
<!-- fab:menu_labels_hideAnimation="@anim/fab_slide_out_to_right"-->
|
||||||
|
<!-- fab:menu_labels_margin="0dp"-->
|
||||||
|
<!-- fab:menu_labels_padding="8dp"-->
|
||||||
|
<!-- fab:menu_labels_paddingBottom="4dp"-->
|
||||||
|
<!-- fab:menu_labels_paddingLeft="8dp"-->
|
||||||
|
<!-- fab:menu_labels_paddingRight="8dp"-->
|
||||||
|
<!-- fab:menu_labels_paddingTop="4dp"-->
|
||||||
|
<!-- fab:menu_labels_position="left"-->
|
||||||
|
<!-- fab:menu_labels_showAnimation="@anim/fab_slide_in_from_right"-->
|
||||||
|
<!-- fab:menu_labels_showShadow="true"-->
|
||||||
|
<!-- fab:menu_labels_textColor="@color/black_semi_transparent"-->
|
||||||
|
<!-- fab:menu_labels_textSize="18sp"-->
|
||||||
|
<!-- fab:menu_openDirection="up"-->
|
||||||
|
<!-- fab:menu_shadowColor="#66000000"-->
|
||||||
|
<!-- fab:menu_shadowRadius="4dp"-->
|
||||||
|
<!-- fab:menu_shadowXOffset="1dp"-->
|
||||||
|
<!-- fab:menu_shadowYOffset="3dp"-->
|
||||||
|
<!-- fab:menu_showShadow="true">-->
|
||||||
|
|
||||||
<com.github.clans.fab.FloatingActionButton
|
<!-- <com.github.clans.fab.FloatingActionButton-->
|
||||||
android:id="@+id/accettazione_ordine_inevaso_fab_item2"
|
<!-- android:id="@+id/accettazione_ordine_inevaso_fab_item1"-->
|
||||||
android:layout_width="wrap_content"
|
<!-- android:layout_width="wrap_content"-->
|
||||||
android:layout_height="wrap_content"
|
<!-- android:layout_height="wrap_content"-->
|
||||||
android:src="@drawable/ic_add_24dp"
|
<!-- android:src="@drawable/ic_box"-->
|
||||||
app:fab_colorNormal="@color/white"
|
<!-- app:fab_colorNormal="@color/white"-->
|
||||||
app:fab_colorPressed="@color/white_pressed"
|
<!-- app:fab_colorPressed="@color/white_pressed"-->
|
||||||
app:fab_colorRipple="#66FFFFFF"
|
<!-- app:fab_colorRipple="#66FFFFFF"-->
|
||||||
app:onClick="@{() -> accettazioneView.createNewLU()}"
|
<!-- app:onClick="@{() -> view.showCreatedUL()}"-->
|
||||||
fab:fab_label="@string/action_create_ul" />
|
<!-- fab:fab_label="@string/action_show_created_ul" />-->
|
||||||
|
|
||||||
</com.github.clans.fab.FloatingActionMenu>
|
<!-- <com.github.clans.fab.FloatingActionButton-->
|
||||||
|
<!-- android:id="@+id/accettazione_ordine_inevaso_fab_item2"-->
|
||||||
|
<!-- android:layout_width="wrap_content"-->
|
||||||
|
<!-- android:layout_height="wrap_content"-->
|
||||||
|
<!-- android:src="@drawable/ic_add_24dp"-->
|
||||||
|
<!-- app:fab_colorNormal="@color/white"-->
|
||||||
|
<!-- app:fab_colorPressed="@color/white_pressed"-->
|
||||||
|
<!-- app:fab_colorRipple="#66FFFFFF"-->
|
||||||
|
<!-- app:onClick="@{() -> view.createNewLU()}"-->
|
||||||
|
<!-- fab:fab_label="@string/action_create_ul" />-->
|
||||||
|
|
||||||
|
<!-- </com.github.clans.fab.FloatingActionMenu>-->
|
||||||
|
|
||||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||||
|
|
||||||
@ -210,7 +223,7 @@
|
|||||||
app:behavior_hideable="false"
|
app:behavior_hideable="false"
|
||||||
app:behavior_peekHeight="66dp"
|
app:behavior_peekHeight="66dp"
|
||||||
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior"
|
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior"
|
||||||
app:visibility="@{accettazioneView.bottomSheetEnabled}"
|
app:visibility="@{view.bottomSheetEnabled}"
|
||||||
app:parentView="@id/bottom_sheet_lu_content" />
|
app:parentView="@id/bottom_sheet_lu_content" />
|
||||||
|
|
||||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||||
|
|||||||
66
app/src/main/res/layout/dialog_ask_linea_prod.xml
Normal file
66
app/src/main/res/layout/dialog_ask_linea_prod.xml
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
<?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:orientation="vertical" android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
app:cardCornerRadius="16dp"
|
||||||
|
app:cardElevation="0dp">
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:paddingHorizontal="16dp"
|
||||||
|
android:paddingVertical="16dp">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
|
style="@style/MaterialAlertDialog.Material3.Title.Icon.CenterStacked"
|
||||||
|
android:layout_width="36dp"
|
||||||
|
android:layout_height="36dp"
|
||||||
|
android:src="@drawable/ic_error_white_24dp"
|
||||||
|
app:tint="?colorPrimary" />
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/title_text"
|
||||||
|
style="@style/MaterialAlertDialog.Material3.Title.Text.CenterStacked"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
android:layout_marginBottom="16dp"
|
||||||
|
android:text="Linea produzione" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center"
|
||||||
|
android:layout_marginHorizontal="16dp">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<ProgressBar
|
||||||
|
android:id="@+id/progressBar"
|
||||||
|
style="?android:attr/progressBarStyle"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"/>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:layout_marginStart="8dp"
|
||||||
|
android:layout_marginEnd="12dp"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
style="@style/TextAppearance.Material3.BodyMedium"
|
||||||
|
android:text="Scansiona il codice a barre di una linea di produzione"/>
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
</androidx.cardview.widget.CardView>
|
||||||
|
</layout>
|
||||||
94
app/src/main/res/layout/dialog_info_aggiuntive_lu.xml
Normal file
94
app/src/main/res/layout/dialog_info_aggiuntive_lu.xml
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<layout xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||||
|
|
||||||
|
<data>
|
||||||
|
<import type="android.view.View" />
|
||||||
|
<variable
|
||||||
|
name="view"
|
||||||
|
type="it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAggiuntiveLUView" />
|
||||||
|
|
||||||
|
<variable
|
||||||
|
name="viewModel"
|
||||||
|
type="it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAggiuntiveLUViewModel" />
|
||||||
|
</data>
|
||||||
|
|
||||||
|
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:orientation="vertical" android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
app:cardCornerRadius="16dp"
|
||||||
|
app:cardElevation="0dp">
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:paddingHorizontal="16dp"
|
||||||
|
android:paddingVertical="16dp">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
|
style="@style/MaterialAlertDialog.Material3.Title.Icon.CenterStacked"
|
||||||
|
android:layout_width="36dp"
|
||||||
|
android:layout_height="36dp"
|
||||||
|
android:src="@drawable/ic_error_white_24dp"
|
||||||
|
app:tint="?colorPrimary" />
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/title_text"
|
||||||
|
style="@style/MaterialAlertDialog.Material3.Title.Text.CenterStacked"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
android:layout_marginBottom="16dp"
|
||||||
|
android:text="@string/lu_info" />
|
||||||
|
|
||||||
|
|
||||||
|
<com.google.android.material.textfield.TextInputLayout
|
||||||
|
android:id="@+id/input_cod_tcol"
|
||||||
|
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/title_text"
|
||||||
|
app:layout_constraintBottom_toTopOf="@id/level_number_layout"
|
||||||
|
android:visibility="@{viewModel.tipiCollo.empty ? View.GONE : View.VISIBLE}"
|
||||||
|
android:hint="@string/lu_type">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatAutoCompleteTextView
|
||||||
|
android:id="@+id/filled_exposed_dropdown_cod_tcol"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:imeOptions="actionNext"
|
||||||
|
android:inputType="textNoSuggestions"
|
||||||
|
android:nextFocusForward="@id/filled_exposed_dropdown_cod_jfas"
|
||||||
|
app:binding="@{view.selectedMtbTcol}"
|
||||||
|
android:singleLine="true" />
|
||||||
|
|
||||||
|
|
||||||
|
</com.google.android.material.textfield.TextInputLayout>
|
||||||
|
|
||||||
|
<com.google.android.material.textfield.TextInputLayout
|
||||||
|
android:id="@+id/level_number_layout"
|
||||||
|
style="@style/TextInputLayout.OutlinePrimary"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="16dp"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/input_cod_tcol">
|
||||||
|
|
||||||
|
<com.google.android.material.textfield.TextInputEditText
|
||||||
|
android:id="@+id/additional_notes_text"
|
||||||
|
style="@style/TextInputEditText.OutlinePrimary"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:hint="@string/hint_additional_notes"
|
||||||
|
app:binding="@{view.additionalNotes}"
|
||||||
|
android:inputType="text" />
|
||||||
|
|
||||||
|
</com.google.android.material.textfield.TextInputLayout>
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
</androidx.cardview.widget.CardView>
|
||||||
|
</layout>
|
||||||
@ -1,124 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
|
|
||||||
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
|
||||||
|
|
||||||
<data>
|
|
||||||
|
|
||||||
<import type="android.text.Html" />
|
|
||||||
|
|
||||||
<import type="it.integry.integrywmsnative.R" />
|
|
||||||
|
|
||||||
<variable
|
|
||||||
name="mContext"
|
|
||||||
type="android.content.Context" />
|
|
||||||
|
|
||||||
<import type="android.view.View" />
|
|
||||||
|
|
||||||
<variable
|
|
||||||
name="view"
|
|
||||||
type="it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.DialogInfoAggiuntiveLU" />
|
|
||||||
|
|
||||||
<variable
|
|
||||||
name="viewModel"
|
|
||||||
type="it.integry.integrywmsnative.view.dialogs.info_aggiuntive_lu.InfoAggiuntiveLUDialogViewModel" />
|
|
||||||
</data>
|
|
||||||
|
|
||||||
<androidx.cardview.widget.CardView
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="center_horizontal"
|
|
||||||
android:orientation="vertical"
|
|
||||||
app:cardBackgroundColor="@android:color/transparent"
|
|
||||||
app:cardCornerRadius="24dp"
|
|
||||||
app:cardElevation="0dp">
|
|
||||||
|
|
||||||
<androidx.cardview.widget.CardView
|
|
||||||
android:id="@+id/base"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="center_horizontal"
|
|
||||||
android:orientation="vertical"
|
|
||||||
app:cardBackgroundColor="@color/light_blue_300"
|
|
||||||
app:cardCornerRadius="24dp"
|
|
||||||
app:cardElevation="0dp">
|
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_margin="4dp"
|
|
||||||
android:padding="24dp"
|
|
||||||
android:background="@drawable/dialog_card_child_bg">
|
|
||||||
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
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/lu_info"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
|
||||||
|
|
||||||
<com.google.android.material.textfield.TextInputLayout
|
|
||||||
android:id="@+id/input_cod_tcol"
|
|
||||||
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginTop="8dp"
|
|
||||||
app:layout_constraintTop_toBottomOf="@id/title_text"
|
|
||||||
app:layout_constraintBottom_toTopOf="@id/level_number_layout"
|
|
||||||
android:visibility="@{viewModel.tipiCollo.empty ? View.GONE : View.VISIBLE}"
|
|
||||||
android:hint="@string/lu_type">
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatAutoCompleteTextView
|
|
||||||
android:id="@+id/filled_exposed_dropdown_cod_tcol"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:ellipsize="end"
|
|
||||||
android:imeOptions="actionNext"
|
|
||||||
android:inputType="textNoSuggestions"
|
|
||||||
android:nextFocusForward="@id/filled_exposed_dropdown_cod_jfas"
|
|
||||||
app:binding="@{view.selectedMtbTcol}"
|
|
||||||
android:singleLine="true" />
|
|
||||||
|
|
||||||
|
|
||||||
</com.google.android.material.textfield.TextInputLayout>
|
|
||||||
|
|
||||||
<com.google.android.material.textfield.TextInputLayout
|
|
||||||
android:id="@+id/level_number_layout"
|
|
||||||
style="@style/TextInputLayout.OutlinePrimary"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginTop="16dp"
|
|
||||||
app:layout_constraintTop_toBottomOf="@id/input_cod_tcol">
|
|
||||||
|
|
||||||
<com.google.android.material.textfield.TextInputEditText
|
|
||||||
android:id="@+id/additional_notes_text"
|
|
||||||
style="@style/TextInputEditText.OutlinePrimary"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:hint="@string/hint_additional_notes"
|
|
||||||
app:binding="@{view.additionalNotes}"
|
|
||||||
android:inputType="text" />
|
|
||||||
|
|
||||||
</com.google.android.material.textfield.TextInputLayout>
|
|
||||||
|
|
||||||
|
|
||||||
<com.google.android.material.button.MaterialButton
|
|
||||||
android:id="@+id/button_confirm"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/confirm"
|
|
||||||
android:layout_marginTop="24dp"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintTop_toBottomOf="@id/level_number_layout" />
|
|
||||||
|
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
||||||
</androidx.cardview.widget.CardView>
|
|
||||||
</androidx.cardview.widget.CardView>
|
|
||||||
|
|
||||||
</layout>
|
|
||||||
@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item
|
||||||
|
android:id="@+id/show_created_ul"
|
||||||
|
android:icon="@drawable/ic_inventory_2_material3"
|
||||||
|
android:title="@string/action_show_created_ul" />
|
||||||
|
<item
|
||||||
|
android:id="@+id/create_ul"
|
||||||
|
android:icon="@drawable/ic_add_material3"
|
||||||
|
android:title="@string/action_create_ul" />
|
||||||
|
|
||||||
|
</menu>
|
||||||
@ -222,6 +222,7 @@
|
|||||||
|
|
||||||
<string name="already_used_anonymous_barcode"><![CDATA[L\'etichetta scansionata è stata già utilizzata]]></string>
|
<string name="already_used_anonymous_barcode"><![CDATA[L\'etichetta scansionata è stata già utilizzata]]></string>
|
||||||
<string name="no_result_from_barcode">Il barcode scansionato non ha fornito alcun risultato</string>
|
<string name="no_result_from_barcode">Il barcode scansionato non ha fornito alcun risultato</string>
|
||||||
|
<string name="no_result_from_linea_prod_barcode">Il barcode scansionato non riguarda una linea di produzione</string>
|
||||||
<string name="no_result_from_cod_mart">Il codice articolo non ha fornito alcun risultato</string>
|
<string name="no_result_from_cod_mart">Il codice articolo non ha fornito alcun risultato</string>
|
||||||
<string name="multiple_results_from_barcode">Il barcode scansionato ha fornito molteplici risultati</string>
|
<string name="multiple_results_from_barcode">Il barcode scansionato ha fornito molteplici risultati</string>
|
||||||
<string name="no_doc_type_selected">Nessun tipo documento selezionato</string>
|
<string name="no_doc_type_selected">Nessun tipo documento selezionato</string>
|
||||||
|
|||||||
@ -227,7 +227,8 @@
|
|||||||
<string name="no_doc_type_selected">No document type selected</string>
|
<string name="no_doc_type_selected">No document type selected</string>
|
||||||
|
|
||||||
<string name="already_used_anonymous_barcode">The scanned label has already been used</string>
|
<string name="already_used_anonymous_barcode">The scanned label has already been used</string>
|
||||||
<string name="no_result_from_barcode">The scanned barcode did not produce any results</string>
|
<string name="no_result_from_barcode">The scanned barcode does not produce any results</string>
|
||||||
|
<string name="no_result_from_linea_prod_barcode">The scanned barcode does not represent any production line</string>
|
||||||
<string name="no_result_from_cod_mart">The item code did not produce any results</string>
|
<string name="no_result_from_cod_mart">The item code did not produce any results</string>
|
||||||
<string name="please_open_lu">Before continuing open new LU</string>
|
<string name="please_open_lu">Before continuing open new LU</string>
|
||||||
<string name="multiple_results_from_barcode">The scanned barcode produced multiple results</string>
|
<string name="multiple_results_from_barcode">The scanned barcode produced multiple results</string>
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
buildscript {
|
buildscript {
|
||||||
ext {
|
ext {
|
||||||
kotlin_version = '1.9.0'
|
kotlin_version = '1.9.0'
|
||||||
agp_version = '8.1.2'
|
agp_version = '8.1.4'
|
||||||
}
|
}
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user