Compare commits
66 Commits
v1.13.21(1
...
v1.15.0(18
| Author | SHA1 | Date | |
|---|---|---|---|
| d16cec069c | |||
| 0729b8ce87 | |||
| 92a2cdaec6 | |||
| 497bc54ebd | |||
| b00cd1f097 | |||
| cfc3649807 | |||
| 5ddd2e6235 | |||
| 2174a19c0f | |||
| 44cdbf929f | |||
| 65c0e520c5 | |||
| 062abb4ea3 | |||
| 1d759cdcbf | |||
| 15e1793962 | |||
| 55fee02f36 | |||
| 575ac2577f | |||
| 3fc5cd3660 | |||
| d77fbff509 | |||
| 58865ca34b | |||
| 23aa7f5261 | |||
| 65532a3185 | |||
| 1440c52322 | |||
| 4e36053ba6 | |||
| c7777b261d | |||
| 7b0a86bb81 | |||
| ebf2bd578e | |||
| f90e2acc3e | |||
| 035f058bc3 | |||
| 73e57e9430 | |||
| 13cc9f6053 | |||
| d9844315a3 | |||
| ade37f07d6 | |||
| f02e9921cb | |||
| e8ce7a9eeb | |||
| 61b0049a87 | |||
| 5c4d72dae2 | |||
| 39f52bf3dd | |||
| e50aa1f014 | |||
| b1d06605cd | |||
| ed55eb4279 | |||
| 9ac96ac8fd | |||
| 5be3fd9c25 | |||
| bab558252a | |||
| c256b39119 | |||
| af76627c50 | |||
| f9544566e9 | |||
| 4f02c3a4bc | |||
| ea8d8835cd | |||
| 61e07e8f76 | |||
| 962e1f7fa4 | |||
| 07d889bcd5 | |||
| 170db3eb0a | |||
| 856a807e3e | |||
| c56aa812ff | |||
| 770f014a70 | |||
| f6ff7aa80d | |||
| 4cd3e7e102 | |||
| 69bf5e319e | |||
| 88fe4d82cd | |||
| c8cd794cfc | |||
| 5dcc567eab | |||
| 89eafaf6ca | |||
| 6fc7f80ed4 | |||
| 2464d44222 | |||
| 96d544f2ad | |||
| e85ddc6580 | |||
| 89f6b9ce71 |
@@ -7,8 +7,8 @@ apply plugin: 'com.google.gms.google-services'
|
|||||||
|
|
||||||
android {
|
android {
|
||||||
|
|
||||||
def appVersionCode = 167
|
def appVersionCode = 181
|
||||||
def appVersionName = '1.13.21'
|
def appVersionName = '1.15.0'
|
||||||
|
|
||||||
signingConfigs {
|
signingConfigs {
|
||||||
release {
|
release {
|
||||||
@@ -21,7 +21,7 @@ android {
|
|||||||
|
|
||||||
applicationVariants.all { variant ->
|
applicationVariants.all { variant ->
|
||||||
variant.outputs.all { output ->
|
variant.outputs.all { output ->
|
||||||
output.outputFileName = "android-release_v2.apk"
|
output.outputFileName = "android-release.apk"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -60,8 +60,8 @@ android {
|
|||||||
|
|
||||||
build {
|
build {
|
||||||
doLast {
|
doLast {
|
||||||
delete "$projectDir/build/outputs/apk/release/version_v2.txt"
|
delete "$projectDir/build/outputs/apk/release/version.txt"
|
||||||
file("$projectDir/build/outputs/apk/release/version_v2.txt").text = appVersionCode + '\n' + appVersionName
|
file("$projectDir/build/outputs/apk/release/version.txt").text = appVersionCode + '\n' + appVersionName
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -91,7 +91,7 @@ dependencies {
|
|||||||
//Firebase
|
//Firebase
|
||||||
|
|
||||||
// Import the Firebase BoM
|
// Import the Firebase BoM
|
||||||
implementation platform('com.google.firebase:firebase-bom:26.0.0')
|
implementation platform('com.google.firebase:firebase-bom:26.3.0')
|
||||||
implementation 'com.google.firebase:firebase-analytics'
|
implementation 'com.google.firebase:firebase-analytics'
|
||||||
implementation 'com.google.firebase:firebase-core'
|
implementation 'com.google.firebase:firebase-core'
|
||||||
implementation 'com.google.firebase:firebase-crash'
|
implementation 'com.google.firebase:firebase-crash'
|
||||||
@@ -102,8 +102,8 @@ dependencies {
|
|||||||
|
|
||||||
implementation 'androidx.appcompat:appcompat:1.2.0'
|
implementation 'androidx.appcompat:appcompat:1.2.0'
|
||||||
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.3.0-alpha03'
|
implementation 'com.google.android.material:material:1.3.0-rc01'
|
||||||
implementation 'androidx.constraintlayout:constraintlayout:2.0.3'
|
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
|
||||||
implementation 'androidx.cardview:cardview:1.0.0'
|
implementation 'androidx.cardview:cardview:1.0.0'
|
||||||
implementation 'androidx.recyclerview:recyclerview:1.1.0'
|
implementation 'androidx.recyclerview:recyclerview:1.1.0'
|
||||||
implementation 'androidx.preference:preference-ktx:1.1.1'
|
implementation 'androidx.preference:preference-ktx:1.1.1'
|
||||||
|
|||||||
@@ -296,12 +296,12 @@ public class MainActivity extends BaseActivity
|
|||||||
|
|
||||||
if(fragment instanceof IScrollableFragment) {
|
if(fragment instanceof IScrollableFragment) {
|
||||||
((IScrollableFragment) fragment).setScrollToolbar(mBinding.appBarMain.elevatedToolbar);
|
((IScrollableFragment) fragment).setScrollToolbar(mBinding.appBarMain.elevatedToolbar);
|
||||||
((IScrollableFragment) fragment).setOnPreDestroy(() -> {
|
((IScrollableFragment) fragment).setScrollableOnPreDestroy(() -> {
|
||||||
mBinding.appBarMain.elevatedToolbar.resetAll();
|
mBinding.appBarMain.elevatedToolbar.resetAll();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if(fragment instanceof ISelectAllFragment && ((ISelectAllFragment)fragment).isEnabled()) {
|
if(fragment instanceof ISelectAllFragment && ((ISelectAllFragment)fragment).isSelectAllButtonEnabled()) {
|
||||||
mBinding.appBarMain.mainSelectAll.setVisibility(View.VISIBLE);
|
mBinding.appBarMain.mainSelectAll.setVisibility(View.VISIBLE);
|
||||||
mBinding.appBarMain.mainSelectAll.setOnClickListener(new OnSingleClickListener() {
|
mBinding.appBarMain.mainSelectAll.setOnClickListener(new OnSingleClickListener() {
|
||||||
@Override
|
@Override
|
||||||
@@ -309,9 +309,10 @@ public class MainActivity extends BaseActivity
|
|||||||
((ISelectAllFragment)fragment).onSelectAll();
|
((ISelectAllFragment)fragment).onSelectAll();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
((ISelectAllFragment) fragment).setSelectAllOnPreDestroy(() -> {
|
||||||
mBinding.appBarMain.mainSelectAll.setVisibility(View.GONE);
|
mBinding.appBarMain.mainSelectAll.setVisibility(View.GONE);
|
||||||
mBinding.appBarMain.mainSelectAll.setOnClickListener(null);
|
mBinding.appBarMain.mainSelectAll.setOnClickListener(null);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if(fragment instanceof IFilterableFragment) {
|
if(fragment instanceof IFilterableFragment) {
|
||||||
|
|||||||
@@ -7,10 +7,14 @@ import it.integry.integrywmsnative.core.context.AppContext;
|
|||||||
import it.integry.integrywmsnative.core.data_store.db.RoomModule;
|
import it.integry.integrywmsnative.core.data_store.db.RoomModule;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_picking.AccettazionePickingComponent;
|
import it.integry.integrywmsnative.gest.accettazione_picking.AccettazionePickingComponent;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_picking.AccettazionePickingModule;
|
import it.integry.integrywmsnative.gest.accettazione_picking.AccettazionePickingModule;
|
||||||
|
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.OrdiniUscitaElencoComponent;
|
||||||
|
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.OrdiniUscitaElencoModule;
|
||||||
import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoComponent;
|
import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoComponent;
|
||||||
import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoModule;
|
import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoModule;
|
||||||
import it.integry.integrywmsnative.gest.picking_resi.PickingResiComponent;
|
import it.integry.integrywmsnative.gest.picking_resi.PickingResiComponent;
|
||||||
import it.integry.integrywmsnative.gest.picking_resi.PickingResiModule;
|
import it.integry.integrywmsnative.gest.picking_resi.PickingResiModule;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_posizionamento_da_ord.ProdPosizionamentoDaOrdComponent;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_posizionamento_da_ord.ProdPosizionamentoDaOrdModule;
|
||||||
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditComponent;
|
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditComponent;
|
||||||
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditModule;
|
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditModule;
|
||||||
import it.integry.integrywmsnative.gest.pv_ordini_acquisto.PVOrdineAcquistoGrigliaComponent;
|
import it.integry.integrywmsnative.gest.pv_ordini_acquisto.PVOrdineAcquistoGrigliaComponent;
|
||||||
@@ -35,6 +39,8 @@ import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQua
|
|||||||
SpedizioneModule.class,
|
SpedizioneModule.class,
|
||||||
AccettazionePickingModule.class,
|
AccettazionePickingModule.class,
|
||||||
PickingResiModule.class,
|
PickingResiModule.class,
|
||||||
|
ProdPosizionamentoDaOrdModule.class,
|
||||||
|
OrdiniUscitaElencoModule.class,
|
||||||
DialogInputQuantityV2Module.class})
|
DialogInputQuantityV2Module.class})
|
||||||
public interface MainApplicationComponent {
|
public interface MainApplicationComponent {
|
||||||
|
|
||||||
@@ -46,6 +52,8 @@ public interface MainApplicationComponent {
|
|||||||
SpedizioneComponent.Factory spedizioneComponent();
|
SpedizioneComponent.Factory spedizioneComponent();
|
||||||
AccettazionePickingComponent.Factory accettazionePickingComponent();
|
AccettazionePickingComponent.Factory accettazionePickingComponent();
|
||||||
PickingResiComponent.Factory pickingResiComponent();
|
PickingResiComponent.Factory pickingResiComponent();
|
||||||
|
ProdPosizionamentoDaOrdComponent.Factory prodPosizionamentoDaOrdComponent();
|
||||||
|
OrdiniUscitaElencoComponent.Factory prodOrdineLavorazioneElencoComponent();
|
||||||
DialogInputQuantityV2Component.Factory dialogInputQuantityV2Component();
|
DialogInputQuantityV2Component.Factory dialogInputQuantityV2Component();
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
|||||||
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.GestSetupRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.GestSetupRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
||||||
|
|
||||||
@@ -41,8 +42,8 @@ public class MainApplicationModule {
|
|||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
OrdiniRESTConsumer provideOrdiniRESTConsumer() {
|
OrdiniRESTConsumer provideOrdiniRESTConsumer(SystemRESTConsumer systemRESTConsumer) {
|
||||||
return new OrdiniRESTConsumer();
|
return new OrdiniRESTConsumer(systemRESTConsumer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@@ -59,8 +60,8 @@ public class MainApplicationModule {
|
|||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
ColliMagazzinoRESTConsumer provideColliMagazzinoRESTConsumer() {
|
ColliMagazzinoRESTConsumer provideColliMagazzinoRESTConsumer(ArticoloRESTConsumer articoloRESTConsumer) {
|
||||||
return new ColliMagazzinoRESTConsumer();
|
return new ColliMagazzinoRESTConsumer(articoloRESTConsumer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@@ -81,5 +82,11 @@ public class MainApplicationModule {
|
|||||||
return new SystemRESTConsumer();
|
return new SystemRESTConsumer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Singleton
|
||||||
|
PosizioniRESTConsumer providesPosizioniRESTConsumer(SystemRESTConsumer systemRESTConsumer) {
|
||||||
|
return new PosizioniRESTConsumer(systemRESTConsumer);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,15 +3,14 @@ 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.gest.accettazione.MainAccettazioneFragment;
|
import it.integry.integrywmsnative.gest.accettazione.MainAccettazioneFragment;
|
||||||
|
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.OrdiniUscitaElencoFragment;
|
||||||
import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoFragment;
|
import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoFragment;
|
||||||
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.ProdOrdineProduzioneElencoFragment;
|
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.ProdOrdineProduzioneElencoFragment;
|
||||||
import it.integry.integrywmsnative.gest.prod_pick_ord_lavorazione.ProdOrdineLavorazioneElencoFragment;
|
|
||||||
import it.integry.integrywmsnative.gest.prod_recupero_materiale.ProdRecuperoMaterialeFragment;
|
import it.integry.integrywmsnative.gest.prod_recupero_materiale.ProdRecuperoMaterialeFragment;
|
||||||
import it.integry.integrywmsnative.gest.prod_versamento_materiale.ProdVersamentoMaterialeFragment;
|
import it.integry.integrywmsnative.gest.prod_versamento_materiale.ProdVersamentoMaterialeFragment;
|
||||||
import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeFragment;
|
import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeFragment;
|
||||||
import it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.UltimiArriviFornitoreFragment;
|
|
||||||
import it.integry.integrywmsnative.gest.ultime_consegne_cliente.UltimeConsegneClienteFragment;
|
import it.integry.integrywmsnative.gest.ultime_consegne_cliente.UltimeConsegneClienteFragment;
|
||||||
import it.integry.integrywmsnative.gest.vendita.MainVenditaFragment;
|
import it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore.UltimiArriviFornitoreFragment;
|
||||||
import it.integry.integrywmsnative.gest.versamento_merce.VersamentoMerceFragment;
|
import it.integry.integrywmsnative.gest.versamento_merce.VersamentoMerceFragment;
|
||||||
|
|
||||||
public class MenuConfiguration extends BaseMenuConfiguration {
|
public class MenuConfiguration extends BaseMenuConfiguration {
|
||||||
@@ -48,7 +47,7 @@ public class MenuConfiguration extends BaseMenuConfiguration {
|
|||||||
.setTitleText(R.string.vendita_title_fragment)
|
.setTitleText(R.string.vendita_title_fragment)
|
||||||
.setTitleIcon(R.drawable.ic_dashboard_spedizione)
|
.setTitleIcon(R.drawable.ic_dashboard_spedizione)
|
||||||
.setDrawerIcon(R.drawable.ic_black_upload)
|
.setDrawerIcon(R.drawable.ic_black_upload)
|
||||||
.setFragmentFactory(MainVenditaFragment::newInstance))
|
.setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.VENDITA, GestioneEnum.VENDITA, -1)))
|
||||||
|
|
||||||
.addItem(new MenuItem()
|
.addItem(new MenuItem()
|
||||||
.setID(R.id.nav_free_picking)
|
.setID(R.id.nav_free_picking)
|
||||||
@@ -79,7 +78,7 @@ public class MenuConfiguration extends BaseMenuConfiguration {
|
|||||||
.setTitleText(R.string.prod_ordine_lavorazione_title_fragment)
|
.setTitleText(R.string.prod_ordine_lavorazione_title_fragment)
|
||||||
.setTitleIcon(R.drawable.ic_dashboard_prod_picking_lavorazione)
|
.setTitleIcon(R.drawable.ic_dashboard_prod_picking_lavorazione)
|
||||||
.setDrawerIcon(R.drawable.ic_black_external)
|
.setDrawerIcon(R.drawable.ic_black_external)
|
||||||
.setFragmentFactory(ProdOrdineLavorazioneElencoFragment::newInstance))
|
.setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.PRODUZIONE, GestioneEnum.LAVORAZIONE, -1)))
|
||||||
|
|
||||||
.addItem(new MenuItem()
|
.addItem(new MenuItem()
|
||||||
.setID(R.id.nav_free_lav_picking)
|
.setID(R.id.nav_free_lav_picking)
|
||||||
@@ -88,6 +87,13 @@ public class MenuConfiguration extends BaseMenuConfiguration {
|
|||||||
.setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_barcode_scanner)
|
.setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_barcode_scanner)
|
||||||
.setFragmentFactory(() -> PickingLiberoFragment.newInstance(GestioneEnum.LAVORAZIONE)))
|
.setFragmentFactory(() -> PickingLiberoFragment.newInstance(GestioneEnum.LAVORAZIONE)))
|
||||||
|
|
||||||
|
.addItem(new MenuItem()
|
||||||
|
.setID(R.id.nav_prod_posizionamento_da_ord)
|
||||||
|
.setTitleText(it.integry.integrywmsnative.R.string.versamento_merce_fragment_title)
|
||||||
|
.setTitleIcon(R.drawable.ic_dashboard_prod_versamento_merce)
|
||||||
|
.setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_load_shelf)
|
||||||
|
.setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.PRODUZIONE, GestioneEnum.LAVORAZIONE, 1)))
|
||||||
|
|
||||||
.addItem(new MenuItem()
|
.addItem(new MenuItem()
|
||||||
.setID(R.id.nav_prod_versamento_materiale)
|
.setID(R.id.nav_prod_versamento_materiale)
|
||||||
.setTitleText(R.string.prod_versamento_materiale_title_fragment)
|
.setTitleText(R.string.prod_versamento_materiale_title_fragment)
|
||||||
|
|||||||
@@ -1,16 +1,13 @@
|
|||||||
package it.integry.integrywmsnative.core.class_router.interfaces;
|
package it.integry.integrywmsnative.core.class_router.interfaces;
|
||||||
|
|
||||||
import android.app.Dialog;
|
|
||||||
import android.app.ProgressDialog;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
|
||||||
|
|
||||||
public interface IOrdiniVendita {
|
public interface IOrdiniVendita {
|
||||||
|
|
||||||
void distribuisciCollo(MtbColt mtbColt, List<OrdineVenditaInevasoDTO> testateOrdini, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> onFailed);
|
void distribuisciCollo(MtbColt mtbColt, List<OrdineUscitaInevasoDTO> testateOrdini, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> onFailed);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,12 +8,8 @@ import com.google.android.gms.common.util.IOUtils;
|
|||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.google.gson.reflect.TypeToken;
|
import com.google.gson.reflect.TypeToken;
|
||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
|
||||||
import java.io.DataInputStream;
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.lang.reflect.Type;
|
import java.lang.reflect.Type;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -22,8 +18,8 @@ import java.util.Random;
|
|||||||
|
|
||||||
import it.integry.integrywmsnative.core.CommonConst;
|
import it.integry.integrywmsnative.core.CommonConst;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
|
||||||
|
|
||||||
public class ColliDataRecover {
|
public class ColliDataRecover {
|
||||||
|
|
||||||
@@ -35,7 +31,7 @@ public class ColliDataRecover {
|
|||||||
private String gestioneCollo;
|
private String gestioneCollo;
|
||||||
private String filtro;
|
private String filtro;
|
||||||
|
|
||||||
private List<OrdineVenditaInevasoDTO> testateOrdini;
|
private List<OrdineUscitaInevasoDTO> testateOrdini;
|
||||||
|
|
||||||
public int getId() {
|
public int getId() {
|
||||||
return id;
|
return id;
|
||||||
@@ -91,11 +87,11 @@ public class ColliDataRecover {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<OrdineVenditaInevasoDTO> getTestateOrdini() {
|
public List<OrdineUscitaInevasoDTO> getTestateOrdini() {
|
||||||
return testateOrdini;
|
return testateOrdini;
|
||||||
}
|
}
|
||||||
|
|
||||||
public RecoverDTO setTestateOrdini(List<OrdineVenditaInevasoDTO> testateOrdini) {
|
public RecoverDTO setTestateOrdini(List<OrdineUscitaInevasoDTO> testateOrdini) {
|
||||||
this.testateOrdini = testateOrdini;
|
this.testateOrdini = testateOrdini;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -153,7 +149,7 @@ public class ColliDataRecover {
|
|||||||
return recoverDTOOptional.isPresent() ? recoverDTOOptional.get() : null;
|
return recoverDTOOptional.isPresent() ? recoverDTOOptional.get() : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int startNewSession(MtbColt mtbColtSession, List<OrdineVenditaInevasoDTO> testateOrdini) {
|
public static int startNewSession(MtbColt mtbColtSession, List<OrdineUscitaInevasoDTO> testateOrdini) {
|
||||||
Integer newId = null;
|
Integer newId = null;
|
||||||
|
|
||||||
while(newId == null) {
|
while(newId == null) {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package it.integry.integrywmsnative.core.data_recover;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
|
||||||
|
|
||||||
public class ColliDataRecoverDTO {
|
public class ColliDataRecoverDTO {
|
||||||
|
|
||||||
@@ -14,7 +14,7 @@ public class ColliDataRecoverDTO {
|
|||||||
private String gestioneCollo;
|
private String gestioneCollo;
|
||||||
private String filtro;
|
private String filtro;
|
||||||
|
|
||||||
private List<OrdineVenditaInevasoDTO> testateOrdini;
|
private List<OrdineUscitaInevasoDTO> testateOrdini;
|
||||||
|
|
||||||
public int getId() {
|
public int getId() {
|
||||||
return id;
|
return id;
|
||||||
@@ -70,11 +70,11 @@ public class ColliDataRecoverDTO {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<OrdineVenditaInevasoDTO> getTestateOrdini() {
|
public List<OrdineUscitaInevasoDTO> getTestateOrdini() {
|
||||||
return testateOrdini;
|
return testateOrdini;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ColliDataRecoverDTO setTestateOrdini(List<OrdineVenditaInevasoDTO> testateOrdini) {
|
public ColliDataRecoverDTO setTestateOrdini(List<OrdineUscitaInevasoDTO> testateOrdini) {
|
||||||
this.testateOrdini = testateOrdini;
|
this.testateOrdini = testateOrdini;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,8 +21,8 @@ import javax.inject.Singleton;
|
|||||||
|
|
||||||
import it.integry.integrywmsnative.core.CommonConst;
|
import it.integry.integrywmsnative.core.CommonConst;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
public class ColliDataRecoverService {
|
public class ColliDataRecoverService {
|
||||||
@@ -72,7 +72,7 @@ public class ColliDataRecoverService {
|
|||||||
return recoverDTOOptional.isPresent() ? recoverDTOOptional.get() : null;
|
return recoverDTOOptional.isPresent() ? recoverDTOOptional.get() : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int startNewSession(MtbColt mtbColtSession, List<OrdineVenditaInevasoDTO> testateOrdini) {
|
public int startNewSession(MtbColt mtbColtSession, List<OrdineUscitaInevasoDTO> testateOrdini) {
|
||||||
Integer newId = null;
|
Integer newId = null;
|
||||||
|
|
||||||
while(newId == null) {
|
while(newId == null) {
|
||||||
|
|||||||
@@ -171,7 +171,7 @@ public class Converters {
|
|||||||
view.addTextChangedListener(watcher);
|
view.addTextChangedListener(watcher);
|
||||||
}
|
}
|
||||||
String newValue = observableString.get();
|
String newValue = observableString.get();
|
||||||
String viewValue = view.getText().toString().trim();
|
String viewValue = view.getText().toString();
|
||||||
|
|
||||||
if(!viewValue.equalsIgnoreCase(newValue)) {
|
if(!viewValue.equalsIgnoreCase(newValue)) {
|
||||||
view.setText(newValue);
|
view.setText(newValue);
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package it.integry.integrywmsnative.core.exception;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityResources;
|
||||||
|
|
||||||
|
public class InvalidLUMultiCodMdepException extends Exception {
|
||||||
|
|
||||||
|
public InvalidLUMultiCodMdepException() {
|
||||||
|
super(UtilityResources.getString(R.string.error_multiple_cod_mdep_ord));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -5,6 +5,6 @@ import it.integry.integrywmsnative.core.utility.UtilityResources;
|
|||||||
|
|
||||||
public class NoPrintersFoundException extends Exception {
|
public class NoPrintersFoundException extends Exception {
|
||||||
public NoPrintersFoundException() {
|
public NoPrintersFoundException() {
|
||||||
super(UtilityResources.getString(R.string.exception_printer_not_found));
|
super(UtilityResources.getString(R.string.exception_no_printer_found));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package it.integry.integrywmsnative.core.expansion;
|
||||||
|
|
||||||
|
public interface RunnableArgsWithReturn<T, R> {
|
||||||
|
|
||||||
|
R run(T data);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -6,6 +6,6 @@ public interface IScrollableFragment {
|
|||||||
|
|
||||||
void setScrollToolbar(ElevatedToolbar toolbar);
|
void setScrollToolbar(ElevatedToolbar toolbar);
|
||||||
|
|
||||||
void setOnPreDestroy(Runnable onPreDestroy);
|
void setScrollableOnPreDestroy(Runnable onPreDestroy);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,10 @@ package it.integry.integrywmsnative.core.interfaces;
|
|||||||
|
|
||||||
public interface ISelectAllFragment {
|
public interface ISelectAllFragment {
|
||||||
|
|
||||||
boolean isEnabled();
|
boolean isSelectAllButtonEnabled();
|
||||||
|
|
||||||
void onSelectAll();
|
void onSelectAll();
|
||||||
|
|
||||||
|
void setSelectAllOnPreDestroy(Runnable onPreDestroy);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package it.integry.integrywmsnative.core.interfaces;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
import androidx.appcompat.app.ActionBar;
|
|
||||||
import androidx.appcompat.widget.AppCompatTextView;
|
import androidx.appcompat.widget.AppCompatTextView;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -13,4 +12,6 @@ public interface ITitledFragment {
|
|||||||
|
|
||||||
void onCreateActionBar(AppCompatTextView titleText, Context context);
|
void onCreateActionBar(AppCompatTextView titleText, Context context);
|
||||||
|
|
||||||
|
void onActionBarPreDestroy(Runnable onActionBarPreDestroy);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ public class MtbColt extends EntityBase {
|
|||||||
private BigDecimal lunghezzaCm;
|
private BigDecimal lunghezzaCm;
|
||||||
private BigDecimal larghezzaCm;
|
private BigDecimal larghezzaCm;
|
||||||
private BigDecimal altezzaCm;
|
private BigDecimal altezzaCm;
|
||||||
|
private String codJcom;
|
||||||
|
|
||||||
private List<MtbCols> mtbCols;
|
private List<MtbCols> mtbCols;
|
||||||
|
|
||||||
@@ -500,6 +501,15 @@ public class MtbColt extends EntityBase {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getCodJcom() {
|
||||||
|
return codJcom;
|
||||||
|
}
|
||||||
|
|
||||||
|
public MtbColt setCodJcom(String codJcom) {
|
||||||
|
this.codJcom = codJcom;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public void generaFiltroOrdineFromDTO(List<FiltroOrdineDTO> filtroOrdineDtos) {
|
public void generaFiltroOrdineFromDTO(List<FiltroOrdineDTO> filtroOrdineDtos) {
|
||||||
|
|
||||||
String xmlPrefix = "{\"whereCond\": \"";
|
String xmlPrefix = "{\"whereCond\": \"";
|
||||||
|
|||||||
@@ -0,0 +1,60 @@
|
|||||||
|
package it.integry.integrywmsnative.core.model;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
|
|
||||||
|
public class OrdineInevasoDTO {
|
||||||
|
|
||||||
|
private String data;
|
||||||
|
private Integer numero;
|
||||||
|
private String gestione;
|
||||||
|
private String codMdep;
|
||||||
|
|
||||||
|
public String getDataOrdS() {
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getDataOrdD() {
|
||||||
|
return UtilityDate.recognizeDateWithExceptionHandler(getDataOrdS());
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineInevasoDTO setData(String data) {
|
||||||
|
this.data = data;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getNumOrd() {
|
||||||
|
return numero;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineInevasoDTO setNumero(Integer numero) {
|
||||||
|
this.numero = numero;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getGestione() {
|
||||||
|
return gestione;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GestioneEnum getGestioneEnum() {
|
||||||
|
return GestioneEnum.fromString(getGestione());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public OrdineInevasoDTO setGestione(String gestione) {
|
||||||
|
this.gestione = gestione;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodMdep() {
|
||||||
|
return codMdep;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineInevasoDTO setCodMdep(String codMdep) {
|
||||||
|
this.codMdep = codMdep;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -40,7 +40,11 @@ public class ArticoloRESTConsumer extends _BaseRESTConsumer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static void getByCodMart(List<String> codMartToFind, RunnableArgs<List<MtbAart>> onComplete, RunnableArgs<Exception> onFailed) {
|
public void getByCodMart(List<String> codMartToFind, RunnableArgs<List<MtbAart>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
getByCodMartStatic(codMartToFind, onComplete, onFailed);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void getByCodMartStatic(List<String> codMartToFind, RunnableArgs<List<MtbAart>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
|
||||||
String joinedCods = Stream.of(codMartToFind)
|
String joinedCods = Stream.of(codMartToFind)
|
||||||
.collect(Collectors.joining(","));
|
.collect(Collectors.joining(","));
|
||||||
|
|||||||
@@ -45,6 +45,13 @@ import retrofit2.Response;
|
|||||||
@Singleton
|
@Singleton
|
||||||
public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
|
public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
|
||||||
|
|
||||||
|
private ArticoloRESTConsumer mArticoloRESTConsumer;
|
||||||
|
|
||||||
|
public ColliMagazzinoRESTConsumer(ArticoloRESTConsumer articoloRESTConsumer) {
|
||||||
|
this.mArticoloRESTConsumer = articoloRESTConsumer;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public static void saveColloStatic(MtbColt mtbColtToSave, final ISimpleOperationCallback<MtbColt> callback) {
|
public static void saveColloStatic(MtbColt mtbColtToSave, final ISimpleOperationCallback<MtbColt> callback) {
|
||||||
|
|
||||||
for (int i = 0; i < mtbColtToSave.getMtbColr().size(); i++) {
|
for (int i = 0; i < mtbColtToSave.getMtbColr().size(); i++) {
|
||||||
@@ -88,8 +95,11 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void saveColli(List<MtbColt> mtbColtsToSave, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
saveColliStatic(mtbColtsToSave, onComplete, onFailed);
|
||||||
|
}
|
||||||
|
|
||||||
public static void saveColli(List<MtbColt> mtbColtsToSave, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> onFailed) {
|
public static void saveColliStatic(List<MtbColt> mtbColtsToSave, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
|
||||||
for (MtbColt mtbColt : mtbColtsToSave) {
|
for (MtbColt mtbColt : mtbColtsToSave) {
|
||||||
mtbColt.setMtbCols(null);
|
mtbColt.setMtbCols(null);
|
||||||
@@ -375,7 +385,6 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
onComplete.run(newList);
|
onComplete.run(newList);
|
||||||
}, onFailed);
|
}, onFailed);
|
||||||
}
|
}
|
||||||
@@ -430,7 +439,7 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ArticoloRESTConsumer.getByCodMart(codMarts, arts -> {
|
ArticoloRESTConsumer.getByCodMartStatic(codMarts, arts -> {
|
||||||
|
|
||||||
if (arts != null && arts.size() > 0) {
|
if (arts != null && arts.size() > 0) {
|
||||||
for (MtbColt mtbColt : mtbColts) {
|
for (MtbColt mtbColt : mtbColts) {
|
||||||
|
|||||||
@@ -1,18 +1,28 @@
|
|||||||
package it.integry.integrywmsnative.core.rest.consumers;
|
package it.integry.integrywmsnative.core.rest.consumers;
|
||||||
|
|
||||||
import com.annimon.stream.Stream;
|
import com.annimon.stream.Stream;
|
||||||
|
import com.google.gson.reflect.TypeToken;
|
||||||
|
import com.orhanobut.logger.Logger;
|
||||||
|
|
||||||
|
import java.lang.reflect.Type;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
|
import it.integry.integrywmsnative.core.model.OrdineInevasoDTO;
|
||||||
|
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||||
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
||||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityDB;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityLogger;
|
import it.integry.integrywmsnative.core.utility.UtilityLogger;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityQuery;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
|
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.GetPickingListDTO;
|
import it.integry.integrywmsnative.core.rest.model.GetPickingListDTO;
|
||||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
|
||||||
import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO;
|
import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO;
|
||||||
import retrofit2.Call;
|
import retrofit2.Call;
|
||||||
import retrofit2.Callback;
|
import retrofit2.Callback;
|
||||||
@@ -21,31 +31,10 @@ import retrofit2.Response;
|
|||||||
@Singleton
|
@Singleton
|
||||||
public class OrdiniRESTConsumer extends _BaseRESTConsumer {
|
public class OrdiniRESTConsumer extends _BaseRESTConsumer {
|
||||||
|
|
||||||
public static void retrieveListaArticoliFromOrdiniUscita(List<OrdineVenditaInevasoDTO> orders, RunnableArgs<List<SitArtOrdDTO>> onComplete, RunnableArgs<Exception> onFailed) {
|
private final SystemRESTConsumer mSystemRESTConsumer;
|
||||||
|
|
||||||
List<GetPickingListDTO> getPickingListDTOs = Stream.of(orders)
|
public OrdiniRESTConsumer(SystemRESTConsumer systemRESTConsumer) {
|
||||||
.map(x -> new GetPickingListDTO()
|
this.mSystemRESTConsumer = systemRESTConsumer;
|
||||||
.setData(x.getDataOrdS())
|
|
||||||
.setGestione(x.getGestione())
|
|
||||||
.setNumero(x.getNumOrd())
|
|
||||||
.setDataConsegna(x.getDataConsS())
|
|
||||||
.setIdViaggio(x.getIdViaggio()))
|
|
||||||
.toList();
|
|
||||||
|
|
||||||
OrdiniRESTConsumerService service = RESTBuilder.getService(OrdiniRESTConsumerService.class, 90);
|
|
||||||
|
|
||||||
service.getArticoliFromOrdini(getPickingListDTOs).enqueue(new Callback<ServiceRESTResponse<List<SitArtOrdDTO>>>() {
|
|
||||||
@Override
|
|
||||||
public void onResponse(Call<ServiceRESTResponse<List<SitArtOrdDTO>>> call, Response<ServiceRESTResponse<List<SitArtOrdDTO>>> response) {
|
|
||||||
analyzeAnswer(response, "retrieveListaArticoliFromOrdiniVendita", onComplete, onFailed);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFailure(Call<ServiceRESTResponse<List<SitArtOrdDTO>>> call, Throwable t) {
|
|
||||||
UtilityLogger.errorMe(new Exception(t));
|
|
||||||
onFailed.run(new Exception(t));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void getSuggestedPickingList(String codMdep, List<SitArtOrdDTO> sitArtOrdList, RunnableArgs<List<PickingObjectDTO>> onComplete, RunnableArgs<Exception> onFailed) {
|
public void getSuggestedPickingList(String codMdep, List<SitArtOrdDTO> sitArtOrdList, RunnableArgs<List<PickingObjectDTO>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
@@ -69,4 +58,91 @@ public class OrdiniRESTConsumer extends _BaseRESTConsumer {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void getOrdiniInevasi(String codMdep, GestioneEnum gestione, RunnableArgs<List<OrdineUscitaInevasoDTO>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
|
||||||
|
OrdiniRESTConsumerService service = RESTBuilder.getService(OrdiniRESTConsumerService.class);
|
||||||
|
|
||||||
|
service.getOrdiniInevasi(codMdep, gestione.getText())
|
||||||
|
.enqueue(new Callback<ServiceRESTResponse<List<OrdineUscitaInevasoDTO>>>() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(Call<ServiceRESTResponse<List<OrdineUscitaInevasoDTO>>> call, Response<ServiceRESTResponse<List<OrdineUscitaInevasoDTO>>> response) {
|
||||||
|
analyzeAnswer(response, "getOrdiniInevasi", onComplete, ex -> {
|
||||||
|
Logger.e(ex, "Errore durante il caricamento degli ordini di lavorazione");
|
||||||
|
if(onFailed != null) onFailed.run(ex);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Call<ServiceRESTResponse<List<OrdineUscitaInevasoDTO>>> call, Throwable t) {
|
||||||
|
Logger.e(t, "Errore durante il caricamento degli ordini di lavorazione");
|
||||||
|
if(onFailed != null) onFailed.run(new Exception(t));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void retrieveListaArticoliFromOrdiniUscita(List<OrdineUscitaInevasoDTO> orders, RunnableArgs<List<SitArtOrdDTO>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
List<GetPickingListDTO> getPickingListDTOs = Stream.of(orders)
|
||||||
|
.map(x -> new GetPickingListDTO()
|
||||||
|
.setData(x.getDataOrdS())
|
||||||
|
.setGestione(x.getGestione())
|
||||||
|
.setNumero(x.getNumOrd())
|
||||||
|
.setDataConsegna(x.getDataConsS())
|
||||||
|
.setIdViaggio(x.getIdViaggio()))
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
OrdiniRESTConsumerService service = RESTBuilder.getService(OrdiniRESTConsumerService.class, 90);
|
||||||
|
|
||||||
|
service.getArticoliFromOrdini(getPickingListDTOs).enqueue(new Callback<ServiceRESTResponse<List<SitArtOrdDTO>>>() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(Call<ServiceRESTResponse<List<SitArtOrdDTO>>> call, Response<ServiceRESTResponse<List<SitArtOrdDTO>>> response) {
|
||||||
|
analyzeAnswer(response, "retrieveListaArticoliFromOrdiniUscita", onComplete, onFailed);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Call<ServiceRESTResponse<List<SitArtOrdDTO>>> call, Throwable t) {
|
||||||
|
UtilityLogger.errorMe(new Exception(t));
|
||||||
|
onFailed.run(new Exception(t));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void getBancaliGiaRegistrati(List<OrdineInevasoDTO> orders, GestioneEnum gestione, int segno, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
String baseSql = "SELECT DISTINCT mtb_colt.* " +
|
||||||
|
"FROM mtb_colt, " +
|
||||||
|
" mtb_colr " +
|
||||||
|
"WHERE mtb_colt.gestione = mtb_colr.gestione " +
|
||||||
|
" AND mtb_colt.ser_collo = mtb_colr.ser_collo " +
|
||||||
|
" AND mtb_colt.data_collo = mtb_colr.data_collo " +
|
||||||
|
" AND mtb_colt.num_collo = mtb_colr.num_collo " +
|
||||||
|
" AND mtb_colt.gestione = " + UtilityDB.valueToString(gestione.getText()) + " " +
|
||||||
|
" AND mtb_colt.segno = " + UtilityDB.valueToString(segno) + " " +
|
||||||
|
" AND mtb_colt.data_doc IS NULL AND ";
|
||||||
|
|
||||||
|
List<HashMap<String, Object>> whereCondMapList = new ArrayList<>();
|
||||||
|
for (OrdineInevasoDTO ordineInevaso : orders) {
|
||||||
|
HashMap<String, Object> whereCondMap = new HashMap<>();
|
||||||
|
whereCondMap.put("mtb_colr.data_ord", ordineInevaso.getDataOrdD());
|
||||||
|
whereCondMap.put("mtb_colr.num_ord", ordineInevaso.getNumOrd());
|
||||||
|
whereCondMap.put("mtb_colr.gestione", ordineInevaso.getGestione());
|
||||||
|
|
||||||
|
whereCondMapList.add(whereCondMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
baseSql += "(" + UtilityQuery.concatFieldListInWhereCond(whereCondMapList) + ")";
|
||||||
|
|
||||||
|
Type typeOfObjectsList = new TypeToken<ArrayList<MtbColt>>() {}.getType();
|
||||||
|
this.mSystemRESTConsumer.processSql(baseSql, typeOfObjectsList, new ISimpleOperationCallback<List<MtbColt>>() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(List<MtbColt> value) {
|
||||||
|
if(onComplete != null) onComplete.run(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailed(Exception ex) {
|
||||||
|
if(onFailed != null) onFailed.run(ex);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,10 +4,12 @@ import java.util.List;
|
|||||||
|
|
||||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||||
import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO;
|
import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
|
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.GetPickingListDTO;
|
import it.integry.integrywmsnative.core.rest.model.GetPickingListDTO;
|
||||||
import retrofit2.Call;
|
import retrofit2.Call;
|
||||||
import retrofit2.http.Body;
|
import retrofit2.http.Body;
|
||||||
|
import retrofit2.http.GET;
|
||||||
import retrofit2.http.POST;
|
import retrofit2.http.POST;
|
||||||
import retrofit2.http.Query;
|
import retrofit2.http.Query;
|
||||||
|
|
||||||
@@ -18,4 +20,7 @@ public interface OrdiniRESTConsumerService {
|
|||||||
|
|
||||||
@POST("wms/getSuggestedPickingList")
|
@POST("wms/getSuggestedPickingList")
|
||||||
Call<ServiceRESTResponse<List<PickingObjectDTO>>> getSuggestedPickingList(@Query("codMdep") String codMdep, @Body List<SitArtOrdDTO> sitArtOrdDTOList);
|
Call<ServiceRESTResponse<List<PickingObjectDTO>>> getSuggestedPickingList(@Query("codMdep") String codMdep, @Body List<SitArtOrdDTO> sitArtOrdDTOList);
|
||||||
|
|
||||||
|
@GET("SM2GetOrdiniVenditaInevasi")
|
||||||
|
Call<ServiceRESTResponse<List<OrdineUscitaInevasoDTO>>> getOrdiniInevasi(@Query("codMdep") String codMdep, @Query("gestione") String gestione);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ import java.lang.reflect.Type;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
||||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
@@ -17,8 +19,14 @@ import retrofit2.Call;
|
|||||||
import retrofit2.Callback;
|
import retrofit2.Callback;
|
||||||
import retrofit2.Response;
|
import retrofit2.Response;
|
||||||
|
|
||||||
|
@Singleton
|
||||||
public class PosizioniRESTConsumer extends _BaseRESTConsumer{
|
public class PosizioniRESTConsumer extends _BaseRESTConsumer{
|
||||||
|
|
||||||
|
private final SystemRESTConsumer mSystemRESTConsumer;
|
||||||
|
|
||||||
|
public PosizioniRESTConsumer(SystemRESTConsumer systemRESTConsumer) {
|
||||||
|
this.mSystemRESTConsumer = systemRESTConsumer;
|
||||||
|
}
|
||||||
|
|
||||||
public static void getAvailablePosizioni(RunnableArgs<List<MtbDepoPosizione>> onComplete, RunnableArgs<Exception> onFailed) {
|
public static void getAvailablePosizioni(RunnableArgs<List<MtbDepoPosizione>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
||||||
@@ -39,12 +47,12 @@ public class PosizioniRESTConsumer extends _BaseRESTConsumer{
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void getBancaliInPosizione(MtbDepoPosizione mtbDepoPosizione, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
getBancaliInPosizioneStatic(mtbDepoPosizione, onComplete, onFailed);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void getBancaliInPosizioneStatic(MtbDepoPosizione mtbDepoPosizione, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
public static void getBancaliInPosizione(MtbDepoPosizione mtbDepoPosizione, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> onFailed) {
|
String sql = "SELECT * FROM mtb_colt WHERE segno > 0 AND cod_mdep = " + UtilityDB.valueToString(mtbDepoPosizione.getCodMdep()) + " AND posizione = " + UtilityDB.valueToString(mtbDepoPosizione.getPosizione());
|
||||||
|
|
||||||
|
|
||||||
String sql = "SELECT * FROM mtb_colt WHERE cod_mdep = " + UtilityDB.valueToString(mtbDepoPosizione.getCodMdep()) + " AND posizione = " + UtilityDB.valueToString(mtbDepoPosizione.getPosizione());
|
|
||||||
|
|
||||||
|
|
||||||
Type typeOfObjectsList = new TypeToken<ArrayList<MtbColt>>() {}.getType();
|
Type typeOfObjectsList = new TypeToken<ArrayList<MtbColt>>() {}.getType();
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import android.util.Log;
|
|||||||
|
|
||||||
import com.annimon.stream.Stream;
|
import com.annimon.stream.Stream;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
@@ -11,6 +12,8 @@ import javax.inject.Singleton;
|
|||||||
import it.integry.integrywmsnative.BuildConfig;
|
import it.integry.integrywmsnative.BuildConfig;
|
||||||
import it.integry.integrywmsnative.core.exception.NoPrintersFoundException;
|
import it.integry.integrywmsnative.core.exception.NoPrintersFoundException;
|
||||||
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.JasperDTO;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.JasperPairDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
@@ -89,7 +92,10 @@ public class PrinterRESTConsumer extends _BaseRESTConsumer {
|
|||||||
printerService.getAvailablePrinters(codMdep, printerTypeStr).enqueue(new Callback<ServiceRESTResponse<List<String>>>() {
|
printerService.getAvailablePrinters(codMdep, printerTypeStr).enqueue(new Callback<ServiceRESTResponse<List<String>>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onResponse(Call<ServiceRESTResponse<List<String>>> call, Response<ServiceRESTResponse<List<String>>> response) {
|
public void onResponse(Call<ServiceRESTResponse<List<String>>> call, Response<ServiceRESTResponse<List<String>>> response) {
|
||||||
analyzeAnswer(response, "GetAvailablePrinters", onComplete, onFailed);
|
analyzeAnswer(response, "GetAvailablePrinters", printerList -> {
|
||||||
|
printerList = Stream.of(printerList).filter(x -> !UtilityString.isNullOrEmpty(x)).toList();
|
||||||
|
onComplete.run(printerList);
|
||||||
|
}, onFailed);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -130,7 +136,7 @@ public class PrinterRESTConsumer extends _BaseRESTConsumer {
|
|||||||
.enqueue(new Callback<ServiceRESTResponse<Object>>() {
|
.enqueue(new Callback<ServiceRESTResponse<Object>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onResponse(Call<ServiceRESTResponse<Object>> call, Response<ServiceRESTResponse<Object>> response) {
|
public void onResponse(Call<ServiceRESTResponse<Object>> call, Response<ServiceRESTResponse<Object>> response) {
|
||||||
analyzeAnswer(response, "PrintCollo", data -> {
|
analyzeAnswer(response, "printCollo", data -> {
|
||||||
onComplete.run();
|
onComplete.run();
|
||||||
}, onFailed);
|
}, onFailed);
|
||||||
}
|
}
|
||||||
@@ -142,7 +148,38 @@ public class PrinterRESTConsumer extends _BaseRESTConsumer {
|
|||||||
} else onFailed.run(new Exception(t));
|
} else onFailed.run(new Exception(t));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void printReport(String printerName, String reportName, HashMap<String, Object> params, int quantity, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
// if(BuildConfig.DEBUG) {
|
||||||
|
// onComplete.run();
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
|
||||||
|
JasperDTO jasperDTO = new JasperDTO();
|
||||||
|
jasperDTO.setReportName(reportName);
|
||||||
|
|
||||||
|
Stream.of(params)
|
||||||
|
.forEach(x -> jasperDTO.getParams().add(new JasperPairDTO(x.getKey(), x.getValue())));
|
||||||
|
|
||||||
|
PrinterRESTConsumerService printerService = RESTBuilder.getService(PrinterRESTConsumerService.class);
|
||||||
|
printerService
|
||||||
|
.processPrintReport(printerName, quantity, jasperDTO)
|
||||||
|
.enqueue(new Callback<ServiceRESTResponse<Object>>() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(Call<ServiceRESTResponse<Object>> call, Response<ServiceRESTResponse<Object>> response) {
|
||||||
|
analyzeAnswer(response, "printReport", data -> {
|
||||||
|
onComplete.run();
|
||||||
|
}, onFailed);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Call<ServiceRESTResponse<Object>> call, Throwable t) {
|
||||||
|
if(t.getMessage().contains("Printer not found")) {
|
||||||
|
onFailed.run(new NoPrintersFoundException());
|
||||||
|
} else onFailed.run(new Exception(t));
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,10 @@ package it.integry.integrywmsnative.core.rest.consumers;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.JasperDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
||||||
import retrofit2.Call;
|
import retrofit2.Call;
|
||||||
|
import retrofit2.http.Body;
|
||||||
import retrofit2.http.Field;
|
import retrofit2.http.Field;
|
||||||
import retrofit2.http.FormUrlEncoded;
|
import retrofit2.http.FormUrlEncoded;
|
||||||
import retrofit2.http.POST;
|
import retrofit2.http.POST;
|
||||||
@@ -34,4 +36,11 @@ public interface PrinterRESTConsumerService {
|
|||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
@POST("processPrintReport")
|
||||||
|
Call<ServiceRESTResponse<Object>> processPrintReport(
|
||||||
|
@Query("printerName") String printerName,
|
||||||
|
@Query("numberOfCopies") int printQuantity,
|
||||||
|
@Body JasperDTO jasperDTO
|
||||||
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import android.util.Log;
|
|||||||
|
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.google.gson.reflect.TypeToken;
|
import com.google.gson.reflect.TypeToken;
|
||||||
|
import com.orhanobut.logger.Logger;
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
@@ -66,7 +67,7 @@ public class SystemRESTConsumer extends _BaseRESTConsumer {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(Call<ServiceRESTResponse<Object>> call, Throwable t) {
|
public void onFailure(Call<ServiceRESTResponse<Object>> call, Throwable t) {
|
||||||
Log.e("ProcessSql", t.toString());
|
Logger.e(t, "ProcessSQL");
|
||||||
onFailed.run(new Exception(t));
|
onFailed.run(new Exception(t));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package it.integry.integrywmsnative.core.rest.model;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class JasperDTO {
|
||||||
|
|
||||||
|
private String reportName;
|
||||||
|
private List<JasperPairDTO> params = new ArrayList<>();
|
||||||
|
|
||||||
|
public String getReportName() {
|
||||||
|
return reportName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public JasperDTO setReportName(String reportName) {
|
||||||
|
this.reportName = reportName;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<JasperPairDTO> getParams() {
|
||||||
|
return params;
|
||||||
|
}
|
||||||
|
|
||||||
|
public JasperDTO setParams(List<JasperPairDTO> params) {
|
||||||
|
this.params = params;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
package it.integry.integrywmsnative.core.rest.model;
|
||||||
|
|
||||||
|
public class JasperPairDTO {
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
private Object value;
|
||||||
|
|
||||||
|
public JasperPairDTO(String name, Object value) {
|
||||||
|
this.name = name;
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public JasperPairDTO setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public JasperPairDTO setValue(Object value) {
|
||||||
|
this.value = value;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,23 +1,18 @@
|
|||||||
package it.integry.integrywmsnative.gest.vendita.dto;
|
package it.integry.integrywmsnative.core.rest.model;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
import it.integry.integrywmsnative.core.model.OrdineInevasoDTO;
|
||||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
|
|
||||||
public class OrdineVenditaInevasoDTO {
|
public class OrdineUscitaInevasoDTO extends OrdineInevasoDTO {
|
||||||
|
|
||||||
private String data;
|
|
||||||
private Integer numero;
|
|
||||||
private Integer idViaggio;
|
private Integer idViaggio;
|
||||||
private String gestione;
|
|
||||||
private String listino;
|
private String listino;
|
||||||
private String termCons;
|
private String termCons;
|
||||||
private String codAuto;
|
private String codAuto;
|
||||||
private String codMdep;
|
|
||||||
private String descrizioneAuto;
|
private String descrizioneAuto;
|
||||||
private String codVvet;
|
private String codVvet;
|
||||||
private String descrizioneVettore;
|
private String descrizioneVettore;
|
||||||
@@ -49,64 +44,25 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
private String nomeAgente;
|
private String nomeAgente;
|
||||||
private String codJfas;
|
private String codJfas;
|
||||||
|
|
||||||
public BindableBoolean selected;
|
|
||||||
|
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO() {
|
|
||||||
this.selected = new BindableBoolean(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public String getDataOrdS() {
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Date getDataOrdD() {
|
|
||||||
return UtilityDate.recognizeDateWithExceptionHandler(getDataOrdS());
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setData(String data) {
|
|
||||||
this.data = data;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getNumOrd() {
|
|
||||||
return numero;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setNumero(Integer numero) {
|
|
||||||
this.numero = numero;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getIdViaggio() {
|
public Integer getIdViaggio() {
|
||||||
return idViaggio;
|
return idViaggio;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setIdViaggio(Integer idViaggio) {
|
public OrdineUscitaInevasoDTO setIdViaggio(Integer idViaggio) {
|
||||||
this.idViaggio = idViaggio;
|
this.idViaggio = idViaggio;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getGestione() {
|
|
||||||
return gestione;
|
|
||||||
}
|
|
||||||
|
|
||||||
public GestioneEnum getGestioneEnum() {
|
|
||||||
return GestioneEnum.fromString(getGestione());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setGestione(String gestione) {
|
|
||||||
this.gestione = gestione;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getListino() {
|
public String getListino() {
|
||||||
return listino;
|
return listino;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setListino(String listino) {
|
public OrdineUscitaInevasoDTO setListino(String listino) {
|
||||||
this.listino = listino;
|
this.listino = listino;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -115,7 +71,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return termCons;
|
return termCons;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setTermCons(String termCons) {
|
public OrdineUscitaInevasoDTO setTermCons(String termCons) {
|
||||||
this.termCons = termCons;
|
this.termCons = termCons;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -124,25 +80,16 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return codAuto;
|
return codAuto;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setCodAuto(String codAuto) {
|
public OrdineUscitaInevasoDTO setCodAuto(String codAuto) {
|
||||||
this.codAuto = codAuto;
|
this.codAuto = codAuto;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getCodMdep() {
|
|
||||||
return codMdep;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setCodMdep(String codMdep) {
|
|
||||||
this.codMdep = codMdep;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDescrizioneAuto() {
|
public String getDescrizioneAuto() {
|
||||||
return descrizioneAuto;
|
return descrizioneAuto;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setDescrizioneAuto(String descrizioneAuto) {
|
public OrdineUscitaInevasoDTO setDescrizioneAuto(String descrizioneAuto) {
|
||||||
this.descrizioneAuto = descrizioneAuto;
|
this.descrizioneAuto = descrizioneAuto;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -151,7 +98,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return codVvet;
|
return codVvet;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setCodVvet(String codVvet) {
|
public OrdineUscitaInevasoDTO setCodVvet(String codVvet) {
|
||||||
this.codVvet = codVvet;
|
this.codVvet = codVvet;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -160,7 +107,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return descrizioneVettore;
|
return descrizioneVettore;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setDescrizioneVettore(String descrizioneVettore) {
|
public OrdineUscitaInevasoDTO setDescrizioneVettore(String descrizioneVettore) {
|
||||||
this.descrizioneVettore = descrizioneVettore;
|
this.descrizioneVettore = descrizioneVettore;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -173,7 +120,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return UtilityDate.recognizeDateWithExceptionHandler(getDataInizTraspS());
|
return UtilityDate.recognizeDateWithExceptionHandler(getDataInizTraspS());
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setDataInizTrasp(String dataInizTrasp) {
|
public OrdineUscitaInevasoDTO setDataInizTrasp(String dataInizTrasp) {
|
||||||
this.dataInizTrasp = dataInizTrasp;
|
this.dataInizTrasp = dataInizTrasp;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -182,7 +129,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return descrizionePaga;
|
return descrizionePaga;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setDescrizionePaga(String descrizionePaga) {
|
public OrdineUscitaInevasoDTO setDescrizionePaga(String descrizionePaga) {
|
||||||
this.descrizionePaga = descrizionePaga;
|
this.descrizionePaga = descrizionePaga;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -191,7 +138,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return rifOrd;
|
return rifOrd;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setRifOrd(String rifOrd) {
|
public OrdineUscitaInevasoDTO setRifOrd(String rifOrd) {
|
||||||
this.rifOrd = rifOrd;
|
this.rifOrd = rifOrd;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -200,7 +147,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return codAnagOrd;
|
return codAnagOrd;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setCodAnagOrd(String codAnagOrd) {
|
public OrdineUscitaInevasoDTO setCodAnagOrd(String codAnagOrd) {
|
||||||
this.codAnagOrd = codAnagOrd;
|
this.codAnagOrd = codAnagOrd;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -209,7 +156,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return codJcom;
|
return codJcom;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setCodJcom(String codJcom) {
|
public OrdineUscitaInevasoDTO setCodJcom(String codJcom) {
|
||||||
this.codJcom = codJcom;
|
this.codJcom = codJcom;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -218,7 +165,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return descrizioneCom;
|
return descrizioneCom;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setDescrizioneCom(String descrizioneCom) {
|
public OrdineUscitaInevasoDTO setDescrizioneCom(String descrizioneCom) {
|
||||||
this.descrizioneCom = descrizioneCom;
|
this.descrizioneCom = descrizioneCom;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -227,7 +174,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return ragSocCom;
|
return ragSocCom;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setRagSocCom(String ragSocCom) {
|
public OrdineUscitaInevasoDTO setRagSocCom(String ragSocCom) {
|
||||||
this.ragSocCom = ragSocCom;
|
this.ragSocCom = ragSocCom;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -236,7 +183,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return ragSocOrd;
|
return ragSocOrd;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setRagSocOrd(String ragSocOrd) {
|
public OrdineUscitaInevasoDTO setRagSocOrd(String ragSocOrd) {
|
||||||
this.ragSocOrd = ragSocOrd;
|
this.ragSocOrd = ragSocOrd;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -245,7 +192,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return destinatario;
|
return destinatario;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setDestinatario(String destinatario) {
|
public OrdineUscitaInevasoDTO setDestinatario(String destinatario) {
|
||||||
this.destinatario = destinatario;
|
this.destinatario = destinatario;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -254,7 +201,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return citta;
|
return citta;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setCitta(String citta) {
|
public OrdineUscitaInevasoDTO setCitta(String citta) {
|
||||||
this.citta = citta;
|
this.citta = citta;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -263,7 +210,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return provincia;
|
return provincia;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setProvincia(String provincia) {
|
public OrdineUscitaInevasoDTO setProvincia(String provincia) {
|
||||||
this.provincia = provincia;
|
this.provincia = provincia;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -272,7 +219,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return indirizzo;
|
return indirizzo;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setIndirizzo(String indirizzo) {
|
public OrdineUscitaInevasoDTO setIndirizzo(String indirizzo) {
|
||||||
this.indirizzo = indirizzo;
|
this.indirizzo = indirizzo;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -281,7 +228,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return pesoTotale;
|
return pesoTotale;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setPesoTotale(BigDecimal pesoTotale) {
|
public OrdineUscitaInevasoDTO setPesoTotale(BigDecimal pesoTotale) {
|
||||||
this.pesoTotale = pesoTotale;
|
this.pesoTotale = pesoTotale;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -290,7 +237,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return numCnfdaEvadere;
|
return numCnfdaEvadere;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setNumCnfdaEvadere(BigDecimal numCnfdaEvadere) {
|
public OrdineUscitaInevasoDTO setNumCnfdaEvadere(BigDecimal numCnfdaEvadere) {
|
||||||
this.numCnfdaEvadere = numCnfdaEvadere;
|
this.numCnfdaEvadere = numCnfdaEvadere;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -299,7 +246,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return numCnfDisp;
|
return numCnfDisp;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setNumCnfDisp(BigDecimal numCnfDisp) {
|
public OrdineUscitaInevasoDTO setNumCnfDisp(BigDecimal numCnfDisp) {
|
||||||
this.numCnfDisp = numCnfDisp;
|
this.numCnfDisp = numCnfDisp;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -312,7 +259,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return UtilityDate.recognizeDateWithExceptionHandler(getDataConsS());
|
return UtilityDate.recognizeDateWithExceptionHandler(getDataConsS());
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setDataCons(String dataCons) {
|
public OrdineUscitaInevasoDTO setDataCons(String dataCons) {
|
||||||
this.dataCons = dataCons;
|
this.dataCons = dataCons;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -321,7 +268,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return barcode;
|
return barcode;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setBarcode(String barcode) {
|
public OrdineUscitaInevasoDTO setBarcode(String barcode) {
|
||||||
this.barcode = barcode;
|
this.barcode = barcode;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -330,7 +277,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return numRighe;
|
return numRighe;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setNumRighe(Integer numRighe) {
|
public OrdineUscitaInevasoDTO setNumRighe(Integer numRighe) {
|
||||||
this.numRighe = numRighe;
|
this.numRighe = numRighe;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -339,7 +286,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return righeInPartenza;
|
return righeInPartenza;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setRigheInPartenza(Integer righeInPartenza) {
|
public OrdineUscitaInevasoDTO setRigheInPartenza(Integer righeInPartenza) {
|
||||||
this.righeInPartenza = righeInPartenza;
|
this.righeInPartenza = righeInPartenza;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -348,7 +295,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return saldoContabile;
|
return saldoContabile;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setSaldoContabile(BigDecimal saldoContabile) {
|
public OrdineUscitaInevasoDTO setSaldoContabile(BigDecimal saldoContabile) {
|
||||||
this.saldoContabile = saldoContabile;
|
this.saldoContabile = saldoContabile;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -357,7 +304,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return codVzon;
|
return codVzon;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setCodVzon(String codVzon) {
|
public OrdineUscitaInevasoDTO setCodVzon(String codVzon) {
|
||||||
this.codVzon = codVzon;
|
this.codVzon = codVzon;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -366,7 +313,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return ragSocOrdV;
|
return ragSocOrdV;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setRagSocOrdV(String ragSocOrdV) {
|
public OrdineUscitaInevasoDTO setRagSocOrdV(String ragSocOrdV) {
|
||||||
this.ragSocOrdV = ragSocOrdV;
|
this.ragSocOrdV = ragSocOrdV;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -375,7 +322,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return colliRiservati;
|
return colliRiservati;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setColliRiservati(int colliRiservati) {
|
public OrdineUscitaInevasoDTO setColliRiservati(int colliRiservati) {
|
||||||
this.colliRiservati = colliRiservati;
|
this.colliRiservati = colliRiservati;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -384,7 +331,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return existColloBoolean;
|
return existColloBoolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setExistColloBoolean(boolean existColloBoolean) {
|
public OrdineUscitaInevasoDTO setExistColloBoolean(boolean existColloBoolean) {
|
||||||
this.existColloBoolean = existColloBoolean;
|
this.existColloBoolean = existColloBoolean;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -393,7 +340,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return flagEvaso;
|
return flagEvaso;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setFlagEvaso(boolean flagEvaso) {
|
public OrdineUscitaInevasoDTO setFlagEvaso(boolean flagEvaso) {
|
||||||
this.flagEvaso = flagEvaso;
|
this.flagEvaso = flagEvaso;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -402,7 +349,7 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return nomeAgente;
|
return nomeAgente;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setNomeAgente(String nomeAgente) {
|
public OrdineUscitaInevasoDTO setNomeAgente(String nomeAgente) {
|
||||||
this.nomeAgente = nomeAgente;
|
this.nomeAgente = nomeAgente;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
@@ -411,36 +358,27 @@ public class OrdineVenditaInevasoDTO {
|
|||||||
return codJfas;
|
return codJfas;
|
||||||
}
|
}
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setCodJfas(String codJfas) {
|
public OrdineUscitaInevasoDTO setCodJfas(String codJfas) {
|
||||||
this.codJfas = codJfas;
|
this.codJfas = codJfas;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isSelected() {
|
|
||||||
return selected.get();
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineVenditaInevasoDTO setSelected(boolean selected) {
|
|
||||||
this.selected.set(selected);
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean equals(Object o) {
|
public boolean equals(Object o) {
|
||||||
if (this == o) return true;
|
if (this == o) return true;
|
||||||
if (o == null || getClass() != o.getClass()) return false;
|
if (o == null || getClass() != o.getClass()) return false;
|
||||||
|
|
||||||
OrdineVenditaInevasoDTO that = (OrdineVenditaInevasoDTO) o;
|
OrdineUscitaInevasoDTO that = (OrdineUscitaInevasoDTO) o;
|
||||||
|
|
||||||
if (!data.equals(that.data)) return false;
|
if (!getDataOrdS().equals(that.getDataOrdS())) return false;
|
||||||
if (!numero.equals(that.numero)) return false;
|
if (!getNumOrd().equals(that.getNumOrd())) return false;
|
||||||
return getGestione().equals(that.getGestione());
|
return getGestione().equals(that.getGestione());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
int result = data.hashCode();
|
int result = getDataOrdS().hashCode();
|
||||||
result = 31 * result + numero.hashCode();
|
result = 31 * result + getNumOrd().hashCode();
|
||||||
result = 31 * result + getGestione().hashCode();
|
result = 31 * result + getGestione().hashCode();
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -21,6 +21,7 @@ public class DBSettingsModel {
|
|||||||
private String defaultCausaleRettificaGiacenze;
|
private String defaultCausaleRettificaGiacenze;
|
||||||
private DistribuzioneColloDTO.CriterioDistribuzione defaultCriterioDistribuzione;
|
private DistribuzioneColloDTO.CriterioDistribuzione defaultCriterioDistribuzione;
|
||||||
private boolean flagAskClienteInPickingLibero;
|
private boolean flagAskClienteInPickingLibero;
|
||||||
|
private boolean flagAllowEmptyClienteInPickingLibero;
|
||||||
|
|
||||||
private boolean flagCanAddExtraItemSpedizione;
|
private boolean flagCanAddExtraItemSpedizione;
|
||||||
private boolean flagCanAutoOpenNewULAccettazione;
|
private boolean flagCanAutoOpenNewULAccettazione;
|
||||||
@@ -33,6 +34,7 @@ public class DBSettingsModel {
|
|||||||
private boolean flagSpedizioneEnableManualPick;
|
private boolean flagSpedizioneEnableManualPick;
|
||||||
private boolean flagSpedizioneCanSelectMultipleOrders;
|
private boolean flagSpedizioneCanSelectMultipleOrders;
|
||||||
private String produzioneDefaultCodAnag;
|
private String produzioneDefaultCodAnag;
|
||||||
|
private String reportNameSpedizionChiudiOrdine;
|
||||||
|
|
||||||
public boolean isFlagSpedizioneEnableFakeGiacenza() {
|
public boolean isFlagSpedizioneEnableFakeGiacenza() {
|
||||||
return flagSpedizioneEnableFakeGiacenza;
|
return flagSpedizioneEnableFakeGiacenza;
|
||||||
@@ -132,6 +134,15 @@ public class DBSettingsModel {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isFlagAllowEmptyClienteInPickingLibero() {
|
||||||
|
return flagAllowEmptyClienteInPickingLibero;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DBSettingsModel setFlagAllowEmptyClienteInPickingLibero(boolean flagAllowEmptyClienteInPickingLibero) {
|
||||||
|
this.flagAllowEmptyClienteInPickingLibero = flagAllowEmptyClienteInPickingLibero;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isFlagCanAddExtraItemSpedizione() {
|
public boolean isFlagCanAddExtraItemSpedizione() {
|
||||||
return flagCanAddExtraItemSpedizione;
|
return flagCanAddExtraItemSpedizione;
|
||||||
}
|
}
|
||||||
@@ -231,4 +242,13 @@ public class DBSettingsModel {
|
|||||||
this.produzioneDefaultCodAnag = produzioneDefaultCodAnag;
|
this.produzioneDefaultCodAnag = produzioneDefaultCodAnag;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getReportNameSpedizionChiudiOrdine() {
|
||||||
|
return reportNameSpedizionChiudiOrdine;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DBSettingsModel setReportNameSpedizionChiudiOrdine(String reportNameSpedizionChiudiOrdine) {
|
||||||
|
this.reportNameSpedizionChiudiOrdine = reportNameSpedizionChiudiOrdine;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -202,6 +202,10 @@ public class SettingsManager {
|
|||||||
.setGestName("PICKING")
|
.setGestName("PICKING")
|
||||||
.setSection("PICKING_LIBERO")
|
.setSection("PICKING_LIBERO")
|
||||||
.setKeySection("FLAG_ASK_CLIENTE"));
|
.setKeySection("FLAG_ASK_CLIENTE"));
|
||||||
|
stbGestSetupList.add(new StbGestSetup()
|
||||||
|
.setGestName("PICKING")
|
||||||
|
.setSection("PICKING_LIBERO")
|
||||||
|
.setKeySection("FLAG_ALLOW_EMPTY_CLIENTE"));
|
||||||
stbGestSetupList.add(new StbGestSetup()
|
stbGestSetupList.add(new StbGestSetup()
|
||||||
.setGestName("PICKING")
|
.setGestName("PICKING")
|
||||||
.setSection("SPEDIZIONE")
|
.setSection("SPEDIZIONE")
|
||||||
@@ -250,6 +254,10 @@ public class SettingsManager {
|
|||||||
.setGestName("PICKING")
|
.setGestName("PICKING")
|
||||||
.setSection("SPEDIZIONE")
|
.setSection("SPEDIZIONE")
|
||||||
.setKeySection("FLAG_CAN_SELECT_MULTIPLE_ORDERS"));
|
.setKeySection("FLAG_CAN_SELECT_MULTIPLE_ORDERS"));
|
||||||
|
stbGestSetupList.add(new StbGestSetup()
|
||||||
|
.setGestName("PICKING")
|
||||||
|
.setSection("SPEDIZIONE")
|
||||||
|
.setKeySection("REPORT_PACKING_LIST"));
|
||||||
|
|
||||||
|
|
||||||
GestSetupRESTConsumer.getValues(stbGestSetupList, list -> {
|
GestSetupRESTConsumer.getValues(stbGestSetupList, list -> {
|
||||||
@@ -259,6 +267,7 @@ public class SettingsManager {
|
|||||||
dbSettingsModelIstance.setDefaultCodAnag(getValueFromList(list, "SETUP","COD_ANAG_DEFAULT", String.class));
|
dbSettingsModelIstance.setDefaultCodAnag(getValueFromList(list, "SETUP","COD_ANAG_DEFAULT", String.class));
|
||||||
dbSettingsModelIstance.setDefaultCriterioDistribuzione(getValueFromList(list, "SETUP","DEFAULT_CRITERIO_DISTRIBUZIONE", String.class));
|
dbSettingsModelIstance.setDefaultCriterioDistribuzione(getValueFromList(list, "SETUP","DEFAULT_CRITERIO_DISTRIBUZIONE", String.class));
|
||||||
dbSettingsModelIstance.setFlagAskClienteInPickingLibero(getValueFromList(list, "PICKING_LIBERO", "FLAG_ASK_CLIENTE", Boolean.class));
|
dbSettingsModelIstance.setFlagAskClienteInPickingLibero(getValueFromList(list, "PICKING_LIBERO", "FLAG_ASK_CLIENTE", Boolean.class));
|
||||||
|
dbSettingsModelIstance.setFlagAllowEmptyClienteInPickingLibero(getValueFromList(list, "PICKING_LIBERO", "FLAG_ALLOW_EMPTY_CLIENTE", Boolean.class));
|
||||||
dbSettingsModelIstance.setFlagCanAddExtraItemSpedizione(getValueFromList(list, "SPEDIZIONE", "FLAG_CAN_ADD_EXTRA_ITEMS", Boolean.class));
|
dbSettingsModelIstance.setFlagCanAddExtraItemSpedizione(getValueFromList(list, "SPEDIZIONE", "FLAG_CAN_ADD_EXTRA_ITEMS", Boolean.class));
|
||||||
dbSettingsModelIstance.setFlagCanAutoOpenNewULAccettazione(getValueFromList(list, "ACCETTAZIONE", "FLAG_AUTO_OPEN_NEW_UL", Boolean.class));
|
dbSettingsModelIstance.setFlagCanAutoOpenNewULAccettazione(getValueFromList(list, "ACCETTAZIONE", "FLAG_AUTO_OPEN_NEW_UL", Boolean.class));
|
||||||
dbSettingsModelIstance.setFlagCanAddExtraQuantitySpedizione(getValueFromList(list, "SPEDIZIONE", "FLAG_CAN_ADD_EXTRA_QUANTITY", Boolean.class));
|
dbSettingsModelIstance.setFlagCanAddExtraQuantitySpedizione(getValueFromList(list, "SPEDIZIONE", "FLAG_CAN_ADD_EXTRA_QUANTITY", Boolean.class));
|
||||||
@@ -271,6 +280,7 @@ public class SettingsManager {
|
|||||||
dbSettingsModelIstance.setFlagSpedizioneEnableManualPick(getValueFromList(list, "SPEDIZIONE", "ENABLE_MANUAL_PICK", Boolean.class));
|
dbSettingsModelIstance.setFlagSpedizioneEnableManualPick(getValueFromList(list, "SPEDIZIONE", "ENABLE_MANUAL_PICK", Boolean.class));
|
||||||
dbSettingsModelIstance.setFlagSpedizioneEnableFakeGiacenza(getValueFromList(list, "SPEDIZIONE", "ENABLE_FAKE_GIACENZA", Boolean.class));
|
dbSettingsModelIstance.setFlagSpedizioneEnableFakeGiacenza(getValueFromList(list, "SPEDIZIONE", "ENABLE_FAKE_GIACENZA", Boolean.class));
|
||||||
dbSettingsModelIstance.setFlagSpedizioneCanSelectMultipleOrders(getValueFromList(list, "SPEDIZIONE", "FLAG_CAN_SELECT_MULTIPLE_ORDERS", Boolean.class));
|
dbSettingsModelIstance.setFlagSpedizioneCanSelectMultipleOrders(getValueFromList(list, "SPEDIZIONE", "FLAG_CAN_SELECT_MULTIPLE_ORDERS", Boolean.class));
|
||||||
|
dbSettingsModelIstance.setReportNameSpedizionChiudiOrdine(getValueFromList(list, "SPEDIZIONE", "REPORT_PACKING_LIST", String.class));
|
||||||
|
|
||||||
if(onComplete != null) onComplete.run();
|
if(onComplete != null) onComplete.run();
|
||||||
}, onFailed);
|
}, onFailed);
|
||||||
|
|||||||
@@ -0,0 +1,60 @@
|
|||||||
|
package it.integry.integrywmsnative.core.utility;
|
||||||
|
|
||||||
|
import java.lang.reflect.Field;
|
||||||
|
import java.lang.reflect.Modifier;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class UtilityReflections {
|
||||||
|
|
||||||
|
|
||||||
|
public static void copy(Object from, Object to) throws Exception {
|
||||||
|
UtilityReflections.copy(from, to, Object.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void copy(Object from, Object to, Class depth) throws Exception {
|
||||||
|
Class fromClass = from.getClass();
|
||||||
|
Class toClass = to.getClass();
|
||||||
|
List<Field> fromFields = collectFields(fromClass, depth);
|
||||||
|
List<Field> toFields = collectFields(toClass, depth);
|
||||||
|
Field target;
|
||||||
|
for (Field source : fromFields) {
|
||||||
|
if ((target = findAndRemove(source, toFields)) != null) {
|
||||||
|
source.setAccessible(true);
|
||||||
|
target.setAccessible(true);
|
||||||
|
target.set(to, source.get(from));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static List<Field> collectFields(Class c, Class depth) {
|
||||||
|
List<Field> accessibleFields = new ArrayList<>();
|
||||||
|
do {
|
||||||
|
int modifiers;
|
||||||
|
for (Field field : c.getDeclaredFields()) {
|
||||||
|
modifiers = field.getModifiers();
|
||||||
|
if (!Modifier.isStatic(modifiers)/* && Modifier.isPublic(modifiers)*/) {
|
||||||
|
accessibleFields.add(field);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
c = c.getSuperclass();
|
||||||
|
} while (c != null && c != depth);
|
||||||
|
return accessibleFields;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Field findAndRemove(Field field, List<Field> fields) {
|
||||||
|
Field actual;
|
||||||
|
for (Iterator<Field> i = fields.iterator(); i.hasNext();) {
|
||||||
|
actual = i.next();
|
||||||
|
if (field.getName().equals(actual.getName())
|
||||||
|
&& field.getType().equals(actual.getType())) {
|
||||||
|
i.remove();
|
||||||
|
return actual;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -45,7 +45,7 @@ import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
|||||||
|
|
||||||
public class MainAccettazioneFragment extends Fragment implements ISearcableFragment, ITitledFragment, IScrollableFragment {
|
public class MainAccettazioneFragment extends Fragment implements ISearcableFragment, ITitledFragment, IScrollableFragment {
|
||||||
|
|
||||||
private Runnable mOnPreDestroy;
|
private List<Runnable> mOnPreDestroyList = new ArrayList<>();
|
||||||
private ElevatedToolbar mToolbar;
|
private ElevatedToolbar mToolbar;
|
||||||
|
|
||||||
private FragmentMainAccettazioneBinding mBinding;
|
private FragmentMainAccettazioneBinding mBinding;
|
||||||
@@ -81,11 +81,15 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
|
|||||||
mAppBarTitle.setText(context.getText(R.string.accettazione_title_fragment).toString());
|
mAppBarTitle.setText(context.getText(R.string.accettazione_title_fragment).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) {
|
||||||
|
this.mOnPreDestroyList.add(onActionBarPreDestroy);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
|
|
||||||
init();
|
init();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -110,7 +114,9 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroy() {
|
public void onDestroy() {
|
||||||
if(mOnPreDestroy != null) mOnPreDestroy.run();
|
for (Runnable onPreDestroy : mOnPreDestroyList) {
|
||||||
|
onPreDestroy.run();
|
||||||
|
}
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -249,7 +255,7 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setOnPreDestroy(Runnable onPreDestroy) {
|
public void setScrollableOnPreDestroy(Runnable onPreDestroy) {
|
||||||
mOnPreDestroy = onPreDestroy;
|
this.mOnPreDestroyList.add(onPreDestroy);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -52,6 +52,7 @@ import it.integry.integrywmsnative.gest.accettazione_picking.core.AccettazioneLi
|
|||||||
import it.integry.integrywmsnative.gest.accettazione_picking.core.AccettazioneListModel;
|
import it.integry.integrywmsnative.gest.accettazione_picking.core.AccettazioneListModel;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_picking.dto.AccettazioneOrdineInevasoOrderBy;
|
import it.integry.integrywmsnative.gest.accettazione_picking.dto.AccettazioneOrdineInevasoOrderBy;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_picking.dto.PickingObjectDTO;
|
import it.integry.integrywmsnative.gest.accettazione_picking.dto.PickingObjectDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.accettazione_picking.rest.RecoverMtbColt;
|
||||||
import it.integry.integrywmsnative.gest.lista_bancali.ListaBancaliActivity;
|
import it.integry.integrywmsnative.gest.lista_bancali.ListaBancaliActivity;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException;
|
import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
||||||
@@ -246,7 +247,7 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
|
|||||||
}
|
}
|
||||||
|
|
||||||
accettazioneListModel.setQtaEvasa(numCnfEvasa);
|
accettazioneListModel.setQtaEvasa(numCnfEvasa);
|
||||||
accettazioneListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfOrd());
|
accettazioneListModel.setQtaTot(x.getSitArtOrdDTO().getNumCnfDaEvadere());
|
||||||
accettazioneListModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col));
|
accettazioneListModel.setUntMis(UtilityResources.getString(R.string.unt_mis_col));
|
||||||
} else {
|
} else {
|
||||||
BigDecimal qtaEvasa = BigDecimal.ZERO;
|
BigDecimal qtaEvasa = BigDecimal.ZERO;
|
||||||
@@ -263,9 +264,6 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
|
|||||||
accettazioneListModel.setUntMis(x.getMtbAart().getUntMis());
|
accettazioneListModel.setUntMis(x.getMtbAart().getUntMis());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x.getMtbAart() != null)
|
|
||||||
accettazioneListModel.setUntMis(x.getMtbAart().getUntMis());
|
|
||||||
|
|
||||||
accettazioneListModel.setOriginalModel(x);
|
accettazioneListModel.setOriginalModel(x);
|
||||||
|
|
||||||
list.add(accettazioneListModel);
|
list.add(accettazioneListModel);
|
||||||
@@ -458,8 +456,13 @@ public class AccettazionePickingActivity extends BaseActivity implements Accetta
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void startListaBancaliRegistratiActivity(ArrayList<MtbColt> mtbColts){
|
public void startListaBancaliRegistratiActivity(ArrayList<RecoverMtbColt> mtbColts) {
|
||||||
Intent myIntent = ListaBancaliActivity.createIntent(this, mtbColts, false, PrinterRESTConsumer.Type.SECONDARIA, ReportManager.getReportNameLUFromGestione(GestioneEnum.ACQUISTO));
|
|
||||||
|
Intent myIntent = ListaBancaliActivity.createIntent(this,
|
||||||
|
Stream.of(mtbColts).map(x -> (MtbColt)x).toList(),
|
||||||
|
input -> ((RecoverMtbColt) input).isFlagCanBeRecovered(),
|
||||||
|
PrinterRESTConsumer.Type.SECONDARIA,
|
||||||
|
ReportManager.getReportNameLUFromGestione(GestioneEnum.ACQUISTO));
|
||||||
this.startActivityForResult(myIntent, PICK_UL_REQUEST);
|
this.startActivityForResult(myIntent, PICK_UL_REQUEST);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package it.integry.integrywmsnative.gest.accettazione_picking;
|
package it.integry.integrywmsnative.gest.accettazione_picking;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
import androidx.databinding.ObservableArrayList;
|
import androidx.databinding.ObservableArrayList;
|
||||||
import androidx.lifecycle.MutableLiveData;
|
import androidx.lifecycle.MutableLiveData;
|
||||||
|
|
||||||
@@ -50,8 +51,10 @@ import it.integry.integrywmsnative.core.utility.UtilityDate;
|
|||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
|
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
|
||||||
import it.integry.integrywmsnative.gest.accettazione.dto.SitArtOrdDTO;
|
import it.integry.integrywmsnative.gest.accettazione.dto.SitArtOrdDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.accettazione_picking.dto.HistoryMtbAartDTO;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_picking.dto.PickingObjectDTO;
|
import it.integry.integrywmsnative.gest.accettazione_picking.dto.PickingObjectDTO;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_picking.rest.AccettazionePickingRESTConsumer;
|
import it.integry.integrywmsnative.gest.accettazione_picking.rest.AccettazionePickingRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.gest.accettazione_picking.rest.RecoverMtbColt;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException;
|
import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.exceptions.NotCurrentYearLUException;
|
import it.integry.integrywmsnative.gest.spedizione.exceptions.NotCurrentYearLUException;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
||||||
@@ -69,12 +72,14 @@ public class AccettazionePickingViewModel {
|
|||||||
|
|
||||||
private List<OrdineAccettazioneInevasoDTO> mOrders;
|
private List<OrdineAccettazioneInevasoDTO> mOrders;
|
||||||
private List<SitArtOrdDTO> mSitArts;
|
private List<SitArtOrdDTO> mSitArts;
|
||||||
private MutableLiveData<List<PickingObjectDTO>> mPickingList = new MutableLiveData<>();
|
private final MutableLiveData<List<PickingObjectDTO>> mPickingList = new MutableLiveData<>();
|
||||||
|
|
||||||
private MtbColt mCurrentMtbColt = null;
|
private MtbColt mCurrentMtbColt = null;
|
||||||
private GestioneEnum defaultGestioneOfUL = null;
|
private GestioneEnum defaultGestioneOfUL = null;
|
||||||
private String mDefaultCodMdep = null;
|
private String mDefaultCodMdep = null;
|
||||||
|
|
||||||
|
private final List<HistoryMtbAartDTO> mHistoryUsedAarts = new ArrayList<>();
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public AccettazionePickingViewModel(ArticoloRESTConsumer articoloRESTConsumer,
|
public AccettazionePickingViewModel(ArticoloRESTConsumer articoloRESTConsumer,
|
||||||
BarcodeRESTConsumer barcodeRESTConsumer,
|
BarcodeRESTConsumer barcodeRESTConsumer,
|
||||||
@@ -135,7 +140,7 @@ public class AccettazionePickingViewModel {
|
|||||||
.map(SitArtOrdDTO::getCodMart)
|
.map(SitArtOrdDTO::getCodMart)
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
ArticoloRESTConsumer.getByCodMart(codMarts, listMtbAarts -> {
|
this.mArticoloRESTConsumer.getByCodMart(codMarts, listMtbAarts -> {
|
||||||
List<PickingObjectDTO> pickingList = Stream.of(sitArtOrdList)
|
List<PickingObjectDTO> pickingList = Stream.of(sitArtOrdList)
|
||||||
.map(sitArtOrdDTO -> {
|
.map(sitArtOrdDTO -> {
|
||||||
MtbAart mtbAart = null;
|
MtbAart mtbAart = null;
|
||||||
@@ -161,7 +166,7 @@ public class AccettazionePickingViewModel {
|
|||||||
return mPickingList;
|
return mPickingList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void retrieveExistentLU(RunnableArgs<ArrayList<MtbColt>> onComplete) {
|
public void retrieveExistentLU(RunnableArgs<ArrayList<RecoverMtbColt>> onComplete) {
|
||||||
this.sendOnLoadingStarted();
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
this.mAccettazionePickingRESTConsumer.getBancaliGiaRegistrati(this.mSitArts, mtbColtList -> {
|
this.mAccettazionePickingRESTConsumer.getBancaliGiaRegistrati(this.mSitArts, mtbColtList -> {
|
||||||
@@ -421,7 +426,7 @@ public class AccettazionePickingViewModel {
|
|||||||
|
|
||||||
|
|
||||||
public void dispatchOrdineRow(final PickingObjectDTO pickingObjectDTO) {
|
public void dispatchOrdineRow(final PickingObjectDTO pickingObjectDTO) {
|
||||||
if(this.mCurrentMtbColt == null) return;
|
if (this.mCurrentMtbColt == null) return;
|
||||||
|
|
||||||
BigDecimal totalQtaOrd = pickingObjectDTO.getSitArtOrdDTO().getQtaOrd();
|
BigDecimal totalQtaOrd = pickingObjectDTO.getSitArtOrdDTO().getQtaOrd();
|
||||||
BigDecimal totalNumCnfOrd = pickingObjectDTO.getSitArtOrdDTO().getNumCnfOrd();
|
BigDecimal totalNumCnfOrd = pickingObjectDTO.getSitArtOrdDTO().getNumCnfOrd();
|
||||||
@@ -436,8 +441,8 @@ public class AccettazionePickingViewModel {
|
|||||||
qtaColWithdrawRows.addAndGet(row.getQtaCol());
|
qtaColWithdrawRows.addAndGet(row.getQtaCol());
|
||||||
});
|
});
|
||||||
|
|
||||||
BigDecimal numCnfDaEvadere = pickingObjectDTO.getSitArtOrdDTO().getNumCnfOrd().subtract(numCnfWithdrawRows.getBigDecimalValue());
|
BigDecimal numCnfDaEvadere = pickingObjectDTO.getSitArtOrdDTO().getNumCnfDaEvadere().subtract(numCnfWithdrawRows.getBigDecimalValue());
|
||||||
BigDecimal qtaDaEvadere = pickingObjectDTO.getSitArtOrdDTO().getQtaOrd().subtract(qtaColWithdrawRows.getBigDecimalValue());
|
BigDecimal qtaDaEvadere = pickingObjectDTO.getSitArtOrdDTO().getQtaDaEvadere().subtract(qtaColWithdrawRows.getBigDecimalValue());
|
||||||
BigDecimal qtaCnfDaEvadere = qtaCnfOrd;
|
BigDecimal qtaCnfDaEvadere = qtaCnfOrd;
|
||||||
|
|
||||||
numCnfDaEvadere = UtilityBigDecimal.getGreaterBetween(numCnfDaEvadere, BigDecimal.ZERO);
|
numCnfDaEvadere = UtilityBigDecimal.getGreaterBetween(numCnfDaEvadere, BigDecimal.ZERO);
|
||||||
@@ -510,12 +515,12 @@ public class AccettazionePickingViewModel {
|
|||||||
initialQtaTot = totalQtaOrd;
|
initialQtaTot = totalQtaOrd;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(UtilityBigDecimal.greaterThan(initialNumCnf, pickingObjectDTO.getMtbAart().getColliPedana())) {
|
if (UtilityBigDecimal.greaterThan(pickingObjectDTO.getMtbAart().getColliPedana(), BigDecimal.ZERO) && UtilityBigDecimal.greaterThan(initialNumCnf, pickingObjectDTO.getMtbAart().getColliPedana())) {
|
||||||
initialNumCnf = pickingObjectDTO.getMtbAart().getColliPedana();
|
initialNumCnf = pickingObjectDTO.getMtbAart().getColliPedana();
|
||||||
initialQtaTot = initialNumCnf.multiply(initialQtaCnf);
|
initialQtaTot = initialNumCnf.multiply(initialQtaCnf);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(dataScad == null && pickingObjectDTO.getMtbAart().getGgScadPartita() != null && pickingObjectDTO.getMtbAart().getGgScadPartita() > 0) {
|
if (dataScad == null && pickingObjectDTO.getMtbAart().getGgScadPartita() != null && pickingObjectDTO.getMtbAart().getGgScadPartita() > 0) {
|
||||||
dataScad = UtilityDate.getDateInstance();
|
dataScad = UtilityDate.getDateInstance();
|
||||||
Calendar c = new GregorianCalendar();
|
Calendar c = new GregorianCalendar();
|
||||||
c.setTime(dataScad);
|
c.setTime(dataScad);
|
||||||
@@ -523,6 +528,15 @@ public class AccettazionePickingViewModel {
|
|||||||
dataScad = c.getTime();
|
dataScad = c.getTime();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(partitaMag == null && dataScad == null) {
|
||||||
|
HistoryMtbAartDTO historyMtbAartDTO = this.getHistoryItemIfExists(pickingObjectDTO.getMtbAart().getCodMart());
|
||||||
|
|
||||||
|
if(historyMtbAartDTO != null) {
|
||||||
|
partitaMag = historyMtbAartDTO.getPartitaMag();
|
||||||
|
dataScad = historyMtbAartDTO.getDataScad();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
this.sendOnItemDispatched(
|
this.sendOnItemDispatched(
|
||||||
pickingObjectDTO,
|
pickingObjectDTO,
|
||||||
pickingObjectDTO.getMtbAart(),
|
pickingObjectDTO.getMtbAart(),
|
||||||
@@ -573,6 +587,8 @@ public class AccettazionePickingViewModel {
|
|||||||
.setRigaOrd(pickingObjectDTO.getSitArtOrdDTO().getRigaOrd());
|
.setRigaOrd(pickingObjectDTO.getSitArtOrdDTO().getRigaOrd());
|
||||||
|
|
||||||
|
|
||||||
|
this.addHistoryItem(mtbColr);
|
||||||
|
|
||||||
mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
||||||
|
|
||||||
MtbColt cloneMtbColt = (MtbColt) mCurrentMtbColt.clone();
|
MtbColt cloneMtbColt = (MtbColt) mCurrentMtbColt.clone();
|
||||||
@@ -668,6 +684,8 @@ public class AccettazionePickingViewModel {
|
|||||||
|
|
||||||
mtbColt.getMtbColr().add(mtbColr);
|
mtbColt.getMtbColr().add(mtbColr);
|
||||||
|
|
||||||
|
this.addHistoryItem(mtbColr);
|
||||||
|
|
||||||
this.mColliMagazzinoRESTConsumer.saveCollo(mtbColt, (value) -> {
|
this.mColliMagazzinoRESTConsumer.saveCollo(mtbColt, (value) -> {
|
||||||
|
|
||||||
mtbColr.setNumCnf(numCnf)
|
mtbColr.setNumCnf(numCnf)
|
||||||
@@ -678,7 +696,7 @@ public class AccettazionePickingViewModel {
|
|||||||
.filter(x -> Stream.of(x.getWithdrawMtbColrs()).anyMatch(y -> y == mtbColrToUpdate))
|
.filter(x -> Stream.of(x.getWithdrawMtbColrs()).anyMatch(y -> y == mtbColrToUpdate))
|
||||||
.findSingle();
|
.findSingle();
|
||||||
|
|
||||||
if(pickingObjectDTO.isPresent()) {
|
if (pickingObjectDTO.isPresent()) {
|
||||||
pickingObjectDTO.get().getWithdrawMtbColrs().remove(mtbColrToUpdate);
|
pickingObjectDTO.get().getWithdrawMtbColrs().remove(mtbColrToUpdate);
|
||||||
pickingObjectDTO.get().getWithdrawMtbColrs().add(mtbColr);
|
pickingObjectDTO.get().getWithdrawMtbColrs().add(mtbColr);
|
||||||
}
|
}
|
||||||
@@ -813,6 +831,30 @@ public class AccettazionePickingViewModel {
|
|||||||
this.sendFilterRemoved();
|
this.sendFilterRemoved();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void addHistoryItem(@NonNull MtbColr mtbColr) {
|
||||||
|
Optional<HistoryMtbAartDTO> optional = Stream.of(this.mHistoryUsedAarts)
|
||||||
|
.filter(x -> x.getCodMart().equalsIgnoreCase(mtbColr.getCodMart()))
|
||||||
|
.findFirst();
|
||||||
|
|
||||||
|
if (optional.isPresent()) {
|
||||||
|
optional.get()
|
||||||
|
.setPartitaMag(mtbColr.getPartitaMag())
|
||||||
|
.setDataScad(mtbColr.getDataScadPartitaD());
|
||||||
|
} else {
|
||||||
|
this.mHistoryUsedAarts.add(new HistoryMtbAartDTO()
|
||||||
|
.setCodMart(mtbColr.getCodMart())
|
||||||
|
.setPartitaMag(mtbColr.getPartitaMag())
|
||||||
|
.setDataScad(mtbColr.getDataScadPartitaD()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private HistoryMtbAartDTO getHistoryItemIfExists(@NonNull String codMart) {
|
||||||
|
Optional<HistoryMtbAartDTO> optional = Stream.of(this.mHistoryUsedAarts)
|
||||||
|
.filter(x -> x.getCodMart().equalsIgnoreCase(codMart))
|
||||||
|
.findFirst();
|
||||||
|
|
||||||
|
return optional.isPresent() ? optional.get() : null;
|
||||||
|
}
|
||||||
|
|
||||||
private void sendOnLoadingStarted() {
|
private void sendOnLoadingStarted() {
|
||||||
if (this.mListener != null) mListener.onLoadingStarted();
|
if (this.mListener != null) mListener.onLoadingStarted();
|
||||||
|
|||||||
@@ -0,0 +1,37 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.accettazione_picking.dto;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
public class HistoryMtbAartDTO {
|
||||||
|
|
||||||
|
private String codMart;
|
||||||
|
private String partitaMag;
|
||||||
|
private Date dataScad;
|
||||||
|
|
||||||
|
public String getCodMart() {
|
||||||
|
return codMart;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HistoryMtbAartDTO setCodMart(String codMart) {
|
||||||
|
this.codMart = codMart;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPartitaMag() {
|
||||||
|
return partitaMag;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HistoryMtbAartDTO setPartitaMag(String partitaMag) {
|
||||||
|
this.partitaMag = partitaMag;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getDataScad() {
|
||||||
|
return dataScad;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HistoryMtbAartDTO setDataScad(Date dataScad) {
|
||||||
|
this.dataScad = dataScad;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -5,18 +5,18 @@ import com.google.gson.reflect.TypeToken;
|
|||||||
|
|
||||||
import java.lang.reflect.Type;
|
import java.lang.reflect.Type;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ISimpleOperationCallback;
|
import it.integry.integrywmsnative.core.rest.consumers.ISimpleOperationCallback;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityLogger;
|
import it.integry.integrywmsnative.core.utility.UtilityLogger;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityQuery;
|
||||||
import it.integry.integrywmsnative.gest.accettazione.dto.SitArtOrdDTO;
|
import it.integry.integrywmsnative.gest.accettazione.dto.SitArtOrdDTO;
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
@@ -29,56 +29,120 @@ public class AccettazionePickingRESTConsumer {
|
|||||||
this.mSystemRestConsumer = systemRESTConsumer;
|
this.mSystemRestConsumer = systemRESTConsumer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void getBancaliGiaRegistrati(List<SitArtOrdDTO> ordiniToShow, RunnableArgs<ArrayList<MtbColt>> onComplete, RunnableArgs<Exception> onFailed) {
|
public void getBancaliGiaRegistrati(List<SitArtOrdDTO> ordiniToShow, RunnableArgs<ArrayList<RecoverMtbColt>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
List<HashMap<String, Object>> whereCondListMap = new ArrayList<>();
|
||||||
|
|
||||||
List<String> colliWhereCond = new ArrayList<>();
|
Stream
|
||||||
|
.of(ordiniToShow)
|
||||||
|
.distinctBy(x -> x.getDataOrd() + " " + x.getGestione() + " " + x.getNumOrd())
|
||||||
|
.forEach(x -> {
|
||||||
|
try {
|
||||||
|
HashMap<String, Object> whereCondMap = new HashMap<>();
|
||||||
|
whereCondMap.put("mtb_colr.data_ord", UtilityDate.recognizeDate(x.getDataOrd()));
|
||||||
|
whereCondMap.put("mtb_colr.gestione", x.getGestione().equalsIgnoreCase("P") ? "L" : x.getGestione());
|
||||||
|
whereCondMap.put("mtb_colr.num_ord", x.getNumOrd());
|
||||||
|
|
||||||
|
whereCondListMap.add(whereCondMap);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
UtilityLogger.errorMe(ex);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
Stream.of(ordiniToShow).forEach(x -> {
|
String sql = "SELECT DISTINCT CAST(CASE WHEN MAX(ISNULL(mtb_colr_scar.num_collo, 0)) = 0 THEN 1 ELSE 0 END AS BIT) AS flagCanBeRecovered, " +
|
||||||
try {
|
" mtb_colt.gestione," +
|
||||||
Date date = UtilityDate.recognizeDate(x.getDataOrd());
|
" mtb_colt.data_collo," +
|
||||||
String dateString = UtilityDate.formatDate(date, "yyyy/MM/dd");
|
" mtb_colt.num_collo," +
|
||||||
|
" segno," +
|
||||||
if (!colliWhereCond.contains(x.getGestione() + " " + dateString + " " + x.getNumOrd())) {
|
" peso_kg," +
|
||||||
String gestione = x.getGestione().equalsIgnoreCase("P") ? "L" : x.getGestione();
|
" lunghezza_cm," +
|
||||||
colliWhereCond.add(gestione + " " + dateString + " " + x.getNumOrd());
|
" larghezza_cm," +
|
||||||
}
|
" altezza_cm," +
|
||||||
} catch (Exception ex){
|
" cod_anag," +
|
||||||
UtilityLogger.errorMe(ex);
|
" cod_dtip," +
|
||||||
}
|
" mtb_colt.data_doc," +
|
||||||
});
|
" mtb_colt.ser_doc," +
|
||||||
|
" mtb_colt.num_doc," +
|
||||||
|
" rif_ord," +
|
||||||
|
" mtb_colt.ser_collo," +
|
||||||
|
" cod_tcol," +
|
||||||
|
" mtb_colt.data_ord," +
|
||||||
|
" mtb_colt.num_ord," +
|
||||||
|
" cod_vdes," +
|
||||||
|
" cod_mdep," +
|
||||||
|
" cod_vlis," +
|
||||||
|
" preparato_da," +
|
||||||
|
" ora_iniz_prep," +
|
||||||
|
" ora_fine_prep," +
|
||||||
|
" filtro_ordini," +
|
||||||
|
" annotazioni," +
|
||||||
|
" posizione," +
|
||||||
|
" cod_dtip_provv," +
|
||||||
|
" data_doc_provv," +
|
||||||
|
" ser_doc_provv," +
|
||||||
|
" num_doc_provv," +
|
||||||
|
" cod_jfas," +
|
||||||
|
" data_vers," +
|
||||||
|
" mtb_colt.peso_netto_kg " +
|
||||||
|
"FROM mtb_colt" +
|
||||||
|
" INNER JOIN mtb_colr ON " +
|
||||||
|
" mtb_colt.gestione = mtb_colr.gestione AND " +
|
||||||
|
" mtb_colt.ser_collo = mtb_colr.ser_collo AND " +
|
||||||
|
" mtb_colt.data_collo = mtb_colr.data_collo AND " +
|
||||||
|
" mtb_colt.num_collo = mtb_colr.num_collo " +
|
||||||
|
" LEFT OUTER JOIN mtb_colr mtb_colr_scar ON mtb_colr_scar.num_collo_rif = mtb_colr.num_collo AND " +
|
||||||
|
" mtb_colr_scar.gestione_rif = mtb_colr.gestione AND " +
|
||||||
|
" mtb_colr_scar.ser_collo_rif = mtb_colr.ser_collo AND " +
|
||||||
|
" mtb_colr_scar.data_collo_rif = mtb_colr.data_collo " +
|
||||||
|
" WHERE (" + UtilityQuery.concatFieldListInWhereCond(whereCondListMap) + ") " +
|
||||||
|
" AND mtb_colt.data_doc IS NULL " +
|
||||||
|
" GROUP BY mtb_colt.gestione," +
|
||||||
|
" mtb_colt.data_collo," +
|
||||||
|
" mtb_colt.num_collo," +
|
||||||
|
" segno," +
|
||||||
|
" peso_kg," +
|
||||||
|
" lunghezza_cm," +
|
||||||
|
" larghezza_cm," +
|
||||||
|
" altezza_cm," +
|
||||||
|
" cod_anag," +
|
||||||
|
" cod_dtip," +
|
||||||
|
" mtb_colt.data_doc," +
|
||||||
|
" mtb_colt.ser_doc," +
|
||||||
|
" mtb_colt.num_doc," +
|
||||||
|
" rif_ord," +
|
||||||
|
" mtb_colt.ser_collo," +
|
||||||
|
" cod_tcol," +
|
||||||
|
" mtb_colt.data_ord," +
|
||||||
|
" mtb_colt.num_ord," +
|
||||||
|
" cod_vdes," +
|
||||||
|
" cod_mdep," +
|
||||||
|
" cod_vlis," +
|
||||||
|
" preparato_da," +
|
||||||
|
" ora_iniz_prep," +
|
||||||
|
" ora_fine_prep," +
|
||||||
|
" filtro_ordini," +
|
||||||
|
" annotazioni," +
|
||||||
|
" posizione," +
|
||||||
|
" cod_dtip_provv," +
|
||||||
|
" data_doc_provv," +
|
||||||
|
" ser_doc_provv," +
|
||||||
|
" num_doc_provv," +
|
||||||
|
" cod_jfas," +
|
||||||
|
" data_vers," +
|
||||||
|
" mtb_colt.peso_netto_kg";
|
||||||
|
|
||||||
|
|
||||||
StringBuilder colliINCondition = new StringBuilder();
|
Type typeOfObjectsList = new TypeToken<ArrayList<RecoverMtbColt>>() {
|
||||||
|
}.getType();
|
||||||
for(int i = 0; i < colliWhereCond.size(); i ++){
|
mSystemRestConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<RecoverMtbColt>>() {
|
||||||
colliINCondition.append("'").append(colliWhereCond.get(i)).append("'");
|
|
||||||
|
|
||||||
if(i < (colliWhereCond.size()-1)) colliINCondition.append(",");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
String sql = "SELECT DISTINCT mtb_colt.* " +
|
|
||||||
"FROM mtb_colt, mtb_colr " +
|
|
||||||
"WHERE mtb_colt.gestione = mtb_colr.gestione AND " +
|
|
||||||
"mtb_colt.ser_collo = mtb_colr.ser_collo AND " +
|
|
||||||
"mtb_colt.data_collo = mtb_colr.data_collo AND " +
|
|
||||||
"mtb_colt.num_collo = mtb_colr.num_collo AND " +
|
|
||||||
"mtb_colt.gestione + ' ' + CONVERT(VARCHAR(15), mtb_colr.data_ord, 111) + ' ' + CONVERT(VARCHAR, mtb_colr.num_ord) IN (" + colliINCondition +
|
|
||||||
") AND mtb_colt.data_doc IS NULL ";
|
|
||||||
|
|
||||||
|
|
||||||
Type typeOfObjectsList = new TypeToken<ArrayList<MtbColt>>() {}.getType();
|
|
||||||
mSystemRestConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<MtbColt>>() {
|
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(ArrayList<MtbColt> value) {
|
public void onSuccess(ArrayList<RecoverMtbColt> value) {
|
||||||
if(onComplete != null) onComplete.run(value);
|
if (onComplete != null) onComplete.run(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFailed(Exception ex) {
|
public void onFailed(Exception ex) {
|
||||||
if(onFailed != null) onFailed.run(ex);
|
if (onFailed != null) onFailed.run(ex);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.accettazione_picking.rest;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
|
|
||||||
|
public class RecoverMtbColt extends MtbColt {
|
||||||
|
|
||||||
|
private boolean flagCanBeRecovered;
|
||||||
|
|
||||||
|
public boolean isFlagCanBeRecovered() {
|
||||||
|
return flagCanBeRecovered;
|
||||||
|
}
|
||||||
|
|
||||||
|
public RecoverMtbColt setFlagCanBeRecovered(boolean flagCanBeRecovered) {
|
||||||
|
this.flagCanBeRecovered = flagCanBeRecovered;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -6,12 +6,12 @@ import android.os.Bundle;
|
|||||||
|
|
||||||
import androidx.databinding.DataBindingUtil;
|
import androidx.databinding.DataBindingUtil;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.data_cache.DataCache;
|
import it.integry.integrywmsnative.core.data_cache.DataCache;
|
||||||
import it.integry.integrywmsnative.core.expansion.BaseActivity;
|
import it.integry.integrywmsnative.core.expansion.BaseActivity;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgsWithReturn;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
||||||
import it.integry.integrywmsnative.databinding.ActivityListaBancaliBinding;
|
import it.integry.integrywmsnative.databinding.ActivityListaBancaliBinding;
|
||||||
@@ -32,7 +32,7 @@ public class ListaBancaliActivity extends BaseActivity {
|
|||||||
|
|
||||||
private ListaBancaliViewModel mViewModel;
|
private ListaBancaliViewModel mViewModel;
|
||||||
|
|
||||||
private boolean mCanRecoverUl;
|
private RunnableArgsWithReturn<MtbColt, Boolean> mCanRecoverUl;
|
||||||
private PrinterRESTConsumer.Type mPrinterType;
|
private PrinterRESTConsumer.Type mPrinterType;
|
||||||
private String mReportName;
|
private String mReportName;
|
||||||
private boolean mFlagOnlyResiduo;
|
private boolean mFlagOnlyResiduo;
|
||||||
@@ -41,34 +41,25 @@ public class ListaBancaliActivity extends BaseActivity {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static Intent createIntent(Context context, ArrayList<MtbColt> items, boolean canRecoverUl, PrinterRESTConsumer.Type printerType, String reportName) {
|
public static Intent createIntent(Context context, List<MtbColt> items, RunnableArgsWithReturn<MtbColt, Boolean> canRecoverUlAction, PrinterRESTConsumer.Type printerType, String reportName) {
|
||||||
Intent myIntent = new Intent(context, ListaBancaliActivity.class);
|
return createIntent(context, items, canRecoverUlAction, printerType, true, reportName);
|
||||||
|
|
||||||
String mtbColtsKey = DataCache.addItem(items);
|
|
||||||
myIntent.putExtra(Key.MtbColtsKey, mtbColtsKey);
|
|
||||||
|
|
||||||
String canRecoverULKey = DataCache.addItem(canRecoverUl);
|
|
||||||
myIntent.putExtra(Key.CanRecoverUL, canRecoverULKey);
|
|
||||||
|
|
||||||
String printerTypeKey = DataCache.addItem(printerType);
|
|
||||||
myIntent.putExtra(Key.PrinterType, printerTypeKey);
|
|
||||||
|
|
||||||
String reportNameKey = DataCache.addItem(reportName);
|
|
||||||
myIntent.putExtra(Key.ReportName, reportNameKey);
|
|
||||||
|
|
||||||
String flagOnlyResiduoKey = DataCache.addItem(true);
|
|
||||||
myIntent.putExtra(Key.FlagOnlyResiduo, flagOnlyResiduoKey);
|
|
||||||
|
|
||||||
return myIntent;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Intent createIntent(Context context, ArrayList<MtbColt> items, boolean canRecoverUl, PrinterRESTConsumer.Type printerType, boolean onlyResiduo) {
|
public static Intent createIntent(Context context, List<MtbColt> items, boolean canRecoverUl, PrinterRESTConsumer.Type printerType, boolean onlyResiduo) {
|
||||||
|
return createIntent(context, items, input -> canRecoverUl, printerType, onlyResiduo);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Intent createIntent(Context context, List<MtbColt> items, RunnableArgsWithReturn<MtbColt, Boolean> canRecoverUlAction, PrinterRESTConsumer.Type printerType, boolean onlyResiduo) {
|
||||||
|
return createIntent(context, items, canRecoverUlAction, printerType, onlyResiduo, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Intent createIntent(Context context, List<MtbColt> items, RunnableArgsWithReturn<MtbColt, Boolean> canRecoverUlAction, PrinterRESTConsumer.Type printerType, boolean onlyResiduo, String reportName) {
|
||||||
Intent myIntent = new Intent(context, ListaBancaliActivity.class);
|
Intent myIntent = new Intent(context, ListaBancaliActivity.class);
|
||||||
|
|
||||||
String mtbColtsKey = DataCache.addItem(items);
|
String mtbColtsKey = DataCache.addItem(items);
|
||||||
myIntent.putExtra(Key.MtbColtsKey, mtbColtsKey);
|
myIntent.putExtra(Key.MtbColtsKey, mtbColtsKey);
|
||||||
|
|
||||||
String canRecoverULKey = DataCache.addItem(canRecoverUl);
|
String canRecoverULKey = DataCache.addItem(canRecoverUlAction);
|
||||||
myIntent.putExtra(Key.CanRecoverUL, canRecoverULKey);
|
myIntent.putExtra(Key.CanRecoverUL, canRecoverULKey);
|
||||||
|
|
||||||
String printerTypeKey = DataCache.addItem(printerType);
|
String printerTypeKey = DataCache.addItem(printerType);
|
||||||
@@ -77,9 +68,13 @@ public class ListaBancaliActivity extends BaseActivity {
|
|||||||
String flagOnlyResiduoKey = DataCache.addItem(onlyResiduo);
|
String flagOnlyResiduoKey = DataCache.addItem(onlyResiduo);
|
||||||
myIntent.putExtra(Key.FlagOnlyResiduo, flagOnlyResiduoKey);
|
myIntent.putExtra(Key.FlagOnlyResiduo, flagOnlyResiduoKey);
|
||||||
|
|
||||||
|
String reportNameKey = DataCache.addItem(reportName);
|
||||||
|
myIntent.putExtra(Key.ReportName, reportNameKey);
|
||||||
|
|
||||||
return myIntent;
|
return myIntent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
@@ -108,7 +103,7 @@ public class ListaBancaliActivity extends BaseActivity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void startContenutoBancaleActivity(MtbColt item){
|
public void startContenutoBancaleActivity(MtbColt item){
|
||||||
Intent myIntent = ContenutoBancaleActivity.createIntent(this, item, mCanRecoverUl, mPrinterType, mReportName);
|
Intent myIntent = ContenutoBancaleActivity.createIntent(this, item, mCanRecoverUl.run(item), mPrinterType, mReportName);
|
||||||
startActivityForResult(myIntent, PICK_UL_REQUEST);
|
startActivityForResult(myIntent, PICK_UL_REQUEST);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ public class MainFragment extends Fragment implements ITitledFragment, IScrollab
|
|||||||
|
|
||||||
private FragmentMainBinding mBindings;
|
private FragmentMainBinding mBindings;
|
||||||
|
|
||||||
private Runnable mOnPreDestroy;
|
private List<Runnable> mOnPreDestroyList = new ArrayList<>();
|
||||||
private ElevatedToolbar mToolbar;
|
private ElevatedToolbar mToolbar;
|
||||||
|
|
||||||
private LayoutInflater mLayoutInflater;
|
private LayoutInflater mLayoutInflater;
|
||||||
@@ -89,7 +89,9 @@ public class MainFragment extends Fragment implements ITitledFragment, IScrollab
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroy() {
|
public void onDestroy() {
|
||||||
if (mOnPreDestroy != null) mOnPreDestroy.run();
|
for (Runnable onPreDestroy : mOnPreDestroyList) {
|
||||||
|
onPreDestroy.run();
|
||||||
|
}
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -208,14 +210,19 @@ public class MainFragment extends Fragment implements ITitledFragment, IScrollab
|
|||||||
titleText.setText(context.getText(R.string.app_name).toString());
|
titleText.setText(context.getText(R.string.app_name).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) {
|
||||||
|
this.mOnPreDestroyList.add(onActionBarPreDestroy);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setScrollToolbar(ElevatedToolbar toolbar) {
|
public void setScrollToolbar(ElevatedToolbar toolbar) {
|
||||||
mToolbar = toolbar;
|
mToolbar = toolbar;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setOnPreDestroy(Runnable onPreDestroy) {
|
public void setScrollableOnPreDestroy(Runnable onPreDestroy) {
|
||||||
mOnPreDestroy = onPreDestroy;
|
mOnPreDestroyList.add(onPreDestroy);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.ordini_uscita_elenco;
|
||||||
|
|
||||||
|
import dagger.Subcomponent;
|
||||||
|
|
||||||
|
@Subcomponent
|
||||||
|
public interface OrdiniUscitaElencoComponent {
|
||||||
|
|
||||||
|
@Subcomponent.Factory
|
||||||
|
interface Factory {
|
||||||
|
OrdiniUscitaElencoComponent create();
|
||||||
|
}
|
||||||
|
|
||||||
|
void inject(OrdiniUscitaElencoFragment ordiniUscitaElencoFragment);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.ordini_uscita_elenco;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityReflections;
|
||||||
|
|
||||||
|
public class OrdiniUscitaElencoDTO extends OrdineUscitaInevasoDTO {
|
||||||
|
|
||||||
|
private boolean hidden = false;
|
||||||
|
|
||||||
|
public static OrdiniUscitaElencoDTO fromParent(OrdineUscitaInevasoDTO parent) throws Exception {
|
||||||
|
OrdiniUscitaElencoDTO child = new OrdiniUscitaElencoDTO();
|
||||||
|
UtilityReflections.copy(parent, child);
|
||||||
|
return child;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isHidden() {
|
||||||
|
return hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdiniUscitaElencoDTO setHidden(boolean hidden) {
|
||||||
|
this.hidden = hidden;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,354 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.ordini_uscita_elenco;
|
||||||
|
|
||||||
|
import android.app.Dialog;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.text.Html;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.appcompat.widget.AppCompatTextView;
|
||||||
|
import androidx.databinding.DataBindingUtil;
|
||||||
|
import androidx.databinding.ObservableArrayList;
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
|
||||||
|
import com.annimon.stream.ComparatorCompat;
|
||||||
|
import com.annimon.stream.Stream;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.MainApplication;
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||||
|
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
||||||
|
import it.integry.integrywmsnative.core.interfaces.IFilterableFragment;
|
||||||
|
import it.integry.integrywmsnative.core.interfaces.ILifecycleFragment;
|
||||||
|
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
|
||||||
|
import it.integry.integrywmsnative.core.interfaces.ISelectAllFragment;
|
||||||
|
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
|
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO;
|
||||||
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||||
|
import it.integry.integrywmsnative.databinding.FragmentMainOrdiniUscitaBinding;
|
||||||
|
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.dialogs.DialogVenditaFiltroAvanzato;
|
||||||
|
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.dialogs.DialogVenditaFiltroAvanzatoViewModel;
|
||||||
|
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.list.OrdiniUscitaElencoAdapter;
|
||||||
|
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.list.OrdiniUscitaElencoListModel;
|
||||||
|
import it.integry.integrywmsnative.gest.spedizione.SpedizioneActivity;
|
||||||
|
import it.integry.integrywmsnative.ui.ElevatedToolbar;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||||
|
|
||||||
|
public class OrdiniUscitaElencoFragment extends Fragment implements ITitledFragment, ILifecycleFragment, IScrollableFragment, ISelectAllFragment, IFilterableFragment, OrdiniUscitaElencoViewModel.Listener {
|
||||||
|
|
||||||
|
public BindableBoolean fabVisible = new BindableBoolean(false);
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
OrdiniUscitaElencoViewModel mViewModel;
|
||||||
|
|
||||||
|
private FragmentMainOrdiniUscitaBinding mBindings = null;
|
||||||
|
|
||||||
|
private ObservableArrayList<OrdiniUscitaElencoListModel> mOrdiniInevasiMutableData = new ObservableArrayList<>();
|
||||||
|
|
||||||
|
private GestioneEnum mCurrentGestioneOrd = null;
|
||||||
|
private GestioneEnum mCurrentGestioneCol = null;
|
||||||
|
private int mCurrentSegnoCol = 0;
|
||||||
|
|
||||||
|
private ElevatedToolbar mToolbar;
|
||||||
|
private List<Runnable> mOnPreDestroyList = new ArrayList<>();
|
||||||
|
|
||||||
|
private int barcodeScannerIstanceID = -1;
|
||||||
|
private Dialog mCurrentProgress;
|
||||||
|
|
||||||
|
|
||||||
|
public OrdiniUscitaElencoFragment() {
|
||||||
|
// Required empty public constructor
|
||||||
|
}
|
||||||
|
|
||||||
|
public static OrdiniUscitaElencoFragment newInstance(GestioneEnum gestioneOrd, GestioneEnum gestioneCol, int segnoCol) {
|
||||||
|
OrdiniUscitaElencoFragment fragment = new OrdiniUscitaElencoFragment();
|
||||||
|
Bundle args = new Bundle();
|
||||||
|
|
||||||
|
args.putString("gestioneOrd", gestioneOrd.getText());
|
||||||
|
args.putString("gestioneCol", gestioneCol.getText());
|
||||||
|
args.putInt("segnoCol", segnoCol);
|
||||||
|
|
||||||
|
fragment.setArguments(args);
|
||||||
|
return fragment;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
mCurrentGestioneOrd = GestioneEnum.fromString(getArguments().getString("gestioneOrd"));
|
||||||
|
mCurrentGestioneCol = GestioneEnum.fromString(getArguments().getString("gestioneCol"));
|
||||||
|
mCurrentSegnoCol = getArguments().getInt("segnoCol");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
|
Bundle savedInstanceState) {
|
||||||
|
|
||||||
|
mBindings = DataBindingUtil.inflate(inflater, R.layout.fragment_main_ordini_uscita, container, false);
|
||||||
|
|
||||||
|
MainApplication.appComponent
|
||||||
|
.prodOrdineLavorazioneElencoComponent()
|
||||||
|
.create()
|
||||||
|
.inject(this);
|
||||||
|
|
||||||
|
mViewModel.setListener(this);
|
||||||
|
|
||||||
|
mBindings.setLifecycleOwner(this);
|
||||||
|
mBindings.setView(this);
|
||||||
|
mBindings.setViewmodel(mViewModel);
|
||||||
|
|
||||||
|
this.initRecyclerView();
|
||||||
|
|
||||||
|
return mBindings.getRoot();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
||||||
|
super.onViewCreated(view, savedInstanceState);
|
||||||
|
|
||||||
|
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
||||||
|
mViewModel.init(codMdep, mCurrentGestioneOrd, mCurrentGestioneCol, mCurrentSegnoCol);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initRecyclerView() {
|
||||||
|
|
||||||
|
boolean canSelectMultipleOrdini = SettingsManager.iDB().isFlagSpedizioneCanSelectMultipleOrders();
|
||||||
|
boolean canSelectMultipleClienti = SettingsManager.iDB().isFlagMultiClienteOrdV();
|
||||||
|
|
||||||
|
this.mViewModel.getOrderList().observe(getViewLifecycleOwner(), this::refreshList);
|
||||||
|
|
||||||
|
OrdiniUscitaElencoAdapter ordiniUscitaElencoAdapter =
|
||||||
|
new OrdiniUscitaElencoAdapter(getActivity(), mOrdiniInevasiMutableData)
|
||||||
|
.setEmptyView(this.mBindings.ordiniVenditaEmptyView)
|
||||||
|
.setOnGroupItemClicked(x -> {
|
||||||
|
if(!canSelectMultipleClienti) {
|
||||||
|
Stream.of(mOrdiniInevasiMutableData)
|
||||||
|
.filter(y -> !y.getGroupTitle().equalsIgnoreCase(x) && y.getSelectedObservable().get())
|
||||||
|
.forEach(y -> y.getSelectedObservable().set(false));
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean allSelected = Stream.of(mOrdiniInevasiMutableData)
|
||||||
|
.filter(y -> y.getGroupTitle().equalsIgnoreCase(x))
|
||||||
|
.allMatch(y -> y.getSelectedObservable().get());
|
||||||
|
|
||||||
|
Stream.of(mOrdiniInevasiMutableData)
|
||||||
|
.filter(y -> y.getGroupTitle().equalsIgnoreCase(x))
|
||||||
|
.forEach(y -> y.getSelectedObservable().set(!allSelected));
|
||||||
|
})
|
||||||
|
.setOnItemChecked(x -> {
|
||||||
|
if(!canSelectMultipleClienti && x.getSelectedObservable().get()) {
|
||||||
|
Stream.of(mOrdiniInevasiMutableData)
|
||||||
|
.filter(y -> !y.getGroupTitle().equalsIgnoreCase(x.getGroupTitle()) && y.getSelectedObservable().get())
|
||||||
|
.forEach(y -> y.getSelectedObservable().set(false));
|
||||||
|
}
|
||||||
|
|
||||||
|
fabVisible.set(Stream.of(mOrdiniInevasiMutableData)
|
||||||
|
.anyMatch(y -> y.getSelectedObservable().get()));
|
||||||
|
});
|
||||||
|
|
||||||
|
this.mBindings.venditaMainList.setAdapter(ordiniUscitaElencoAdapter);
|
||||||
|
this.mBindings.venditaMainList.setLayoutManager(new LinearLayoutManager(getActivity()));
|
||||||
|
|
||||||
|
if(mToolbar != null)
|
||||||
|
mToolbar.setRecyclerView(this.mBindings.venditaMainList);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void refreshList(List<OrdiniUscitaElencoDTO> orderList) {
|
||||||
|
this.mOrdiniInevasiMutableData.clear();
|
||||||
|
this.mOrdiniInevasiMutableData.addAll(convertDataModelToListModel(orderList));
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<OrdiniUscitaElencoListModel> convertDataModelToListModel(List<OrdiniUscitaElencoDTO> dataList) {
|
||||||
|
|
||||||
|
ComparatorCompat<OrdiniUscitaElencoDTO> comparator = ComparatorCompat
|
||||||
|
.comparing(OrdiniUscitaElencoDTO::getRagSocOrd)
|
||||||
|
.thenComparing(ComparatorCompat.comparing(OrdiniUscitaElencoDTO::getNumOrd));
|
||||||
|
|
||||||
|
List<OrdiniUscitaElencoListModel> notHiddenElements = Stream.of(dataList)
|
||||||
|
.filter(x -> !x.isHidden())
|
||||||
|
.sorted(comparator)
|
||||||
|
.map(x -> {
|
||||||
|
OrdiniUscitaElencoListModel listModel = new OrdiniUscitaElencoListModel();
|
||||||
|
|
||||||
|
listModel.setGroupTitle(x.getRagSocOrd());
|
||||||
|
|
||||||
|
String testataOrdString = String.format(getString(R.string.ord_ven_testata), String.valueOf(x.getNumOrd()), UtilityDate.formatDate(x.getDataOrdD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
||||||
|
listModel.setDescription(testataOrdString);
|
||||||
|
|
||||||
|
listModel.setSubDescription(x.getRifOrd());
|
||||||
|
|
||||||
|
String testataDataConsString = String.format(getString(R.string.ord_ven_testata_data_cons), UtilityDate.formatDate(x.getDataConsD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
||||||
|
listModel.setRightDescription(testataDataConsString);
|
||||||
|
|
||||||
|
listModel.setOriginalModel(x);
|
||||||
|
|
||||||
|
return listModel;
|
||||||
|
})
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
return notHiddenElements;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onResume() {
|
||||||
|
super.onResume();
|
||||||
|
Stream.of(this.mOrdiniInevasiMutableData)
|
||||||
|
.forEach(x -> x.getSelectedObservable().set(false));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onPreDestroy(Runnable onComplete) {
|
||||||
|
for (Runnable onPreDestroy : mOnPreDestroyList) {
|
||||||
|
onPreDestroy.run();
|
||||||
|
}
|
||||||
|
|
||||||
|
BarcodeManager.removeCallback(barcodeScannerIstanceID);
|
||||||
|
onComplete.run();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreateActionBar(AppCompatTextView titleText, Context context) {
|
||||||
|
titleText.setText(context.getText(R.string.prod_ordine_lavorazione_title_fragment).toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) {
|
||||||
|
this.mOnPreDestroyList.add(onActionBarPreDestroy);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void dispatchOrders() {
|
||||||
|
|
||||||
|
List<OrdiniUscitaElencoDTO> selectedOrders = Stream.of(this.mOrdiniInevasiMutableData)
|
||||||
|
.filter(x -> x.getSelectedObservable().get())
|
||||||
|
.map(OrdiniUscitaElencoListModel::getOriginalModel)
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
this.mViewModel.loadPicking(selectedOrders);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void openProgress() {
|
||||||
|
getActivity().runOnUiThread(() -> {
|
||||||
|
if (this.mCurrentProgress == null) {
|
||||||
|
this.mCurrentProgress = UtilityProgress.createDefaultProgressDialog(getActivity());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void closeProgress() {
|
||||||
|
getActivity().runOnUiThread(() -> {
|
||||||
|
if (mCurrentProgress != null) {
|
||||||
|
mCurrentProgress.dismiss();
|
||||||
|
mCurrentProgress = null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLoadingStarted() {
|
||||||
|
BarcodeManager.disable();
|
||||||
|
this.openProgress();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLoadingEnded() {
|
||||||
|
this.closeProgress();
|
||||||
|
BarcodeManager.enable();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(Exception ex) {
|
||||||
|
this.closeProgress();
|
||||||
|
UtilityExceptions.defaultException(getActivity(), ex, mCurrentProgress);
|
||||||
|
BarcodeManager.enable();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onOrdersDispatched(List<OrdineUscitaInevasoDTO> orders, List<SitArtOrdDTO> sitArts, List<MtbColt> alreadyRegisteredMtbColts) {
|
||||||
|
List<String> codMarts = Stream.of(sitArts)
|
||||||
|
.distinctBy(SitArtOrdDTO::getCodMart)
|
||||||
|
.map(SitArtOrdDTO::getCodMart)
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
int alreadyRegisteredUL = alreadyRegisteredMtbColts.size();
|
||||||
|
|
||||||
|
DialogSimpleMessageHelper.makeInfoDialog(getActivity(),
|
||||||
|
getText(R.string.orders).toString(),
|
||||||
|
Html.fromHtml(String.format(getActivity().getResources().getQuantityString(R.plurals.loaded_orders_message, orders.size()), orders.size())
|
||||||
|
+ "<br />" +
|
||||||
|
"<b>" + codMarts.size() + "</b> " + getActivity().getResources().getQuantityString(R.plurals.available_articles, codMarts.size())
|
||||||
|
+ "<br />" +
|
||||||
|
"<b>" + alreadyRegisteredUL + "</b> " + getActivity().getResources().getQuantityString(R.plurals.already_registered_lu, alreadyRegisteredUL)),
|
||||||
|
null,
|
||||||
|
() -> SpedizioneActivity.startActivity(getActivity(), sitArts, orders, alreadyRegisteredMtbColts, mCurrentGestioneCol, mCurrentSegnoCol)
|
||||||
|
).show();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setScrollToolbar(ElevatedToolbar toolbar) {
|
||||||
|
mToolbar = toolbar;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setScrollableOnPreDestroy(Runnable onPreDestroy) {
|
||||||
|
this.mOnPreDestroyList.add(onPreDestroy);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isSelectAllButtonEnabled() {
|
||||||
|
return SettingsManager.iDB().isFlagMultiClienteOrdV();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSelectAll() {
|
||||||
|
boolean allSelected = Stream.of(mOrdiniInevasiMutableData)
|
||||||
|
.allMatch(x -> x.getSelectedObservable().get());
|
||||||
|
|
||||||
|
Stream.of(mOrdiniInevasiMutableData)
|
||||||
|
.filter(x -> !x.getOriginalModel().isHidden())
|
||||||
|
.forEach(x -> x.getSelectedObservable().set(!allSelected));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setSelectAllOnPreDestroy(Runnable onPreDestroy) {
|
||||||
|
this.mOnPreDestroyList.add(onPreDestroy);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private DialogVenditaFiltroAvanzatoViewModel mAppliedFilterViewModel;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFilterClick() {
|
||||||
|
DialogVenditaFiltroAvanzato.make(
|
||||||
|
getActivity(),
|
||||||
|
this.mViewModel.getOrderList().getValue(),
|
||||||
|
mAppliedFilterViewModel,
|
||||||
|
|
||||||
|
(filteredOrderList, filter) -> {
|
||||||
|
mAppliedFilterViewModel = filter;
|
||||||
|
|
||||||
|
if(filteredOrderList != null){
|
||||||
|
refreshList(filteredOrderList);
|
||||||
|
}
|
||||||
|
|
||||||
|
}).show();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.ordini_uscita_elenco;
|
||||||
|
|
||||||
|
import dagger.Module;
|
||||||
|
import dagger.Provides;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer;
|
||||||
|
|
||||||
|
@Module(subcomponents = OrdiniUscitaElencoComponent.class)
|
||||||
|
public class OrdiniUscitaElencoModule {
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
OrdiniUscitaElencoViewModel providesProdOrdineLavorazioneElencoViewModel(OrdiniRESTConsumer ordiniRESTConsumer) {
|
||||||
|
return new OrdiniUscitaElencoViewModel(ordiniRESTConsumer);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,159 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.ordini_uscita_elenco;
|
||||||
|
|
||||||
|
import androidx.lifecycle.MutableLiveData;
|
||||||
|
|
||||||
|
import com.annimon.stream.Stream;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.exception.InvalidLUMultiCodMdepException;
|
||||||
|
import it.integry.integrywmsnative.core.exception.InvalidLUMultiGestioneException;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
|
import it.integry.integrywmsnative.core.model.OrdineInevasoDTO;
|
||||||
|
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO;
|
||||||
|
|
||||||
|
public class OrdiniUscitaElencoViewModel {
|
||||||
|
|
||||||
|
private final MutableLiveData<List<OrdiniUscitaElencoDTO>> mOrderList = new MutableLiveData<>();
|
||||||
|
|
||||||
|
private final OrdiniRESTConsumer mOrdiniRESTConsumer;
|
||||||
|
private Listener mListener;
|
||||||
|
private String mCurrentCodMdep;
|
||||||
|
private GestioneEnum mCurrentGestioneOrd;
|
||||||
|
private GestioneEnum mCurrentGestioneCol;
|
||||||
|
private int mCurrentSegnoCol;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public OrdiniUscitaElencoViewModel(OrdiniRESTConsumer ordiniRESTConsumer) {
|
||||||
|
this.mOrdiniRESTConsumer = ordiniRESTConsumer;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void init(String currentCodMdep, GestioneEnum gestioneOrd, GestioneEnum gestioneCol, int segnoCol) {
|
||||||
|
this.mCurrentCodMdep = currentCodMdep;
|
||||||
|
this.mCurrentGestioneOrd = gestioneOrd;
|
||||||
|
this.mCurrentGestioneCol = gestioneCol;
|
||||||
|
this.mCurrentSegnoCol = segnoCol;
|
||||||
|
|
||||||
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
|
new Thread(() -> {
|
||||||
|
Date loadingStartDate = new Date();
|
||||||
|
|
||||||
|
this.mOrdiniRESTConsumer.getOrdiniInevasi(this.mCurrentCodMdep, mCurrentGestioneOrd,
|
||||||
|
ordiniLavorazione -> {
|
||||||
|
this.mOrderList.postValue(Stream.of(ordiniLavorazione)
|
||||||
|
.map(x -> {
|
||||||
|
try {
|
||||||
|
return OrdiniUscitaElencoDTO.fromParent(x);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.toList());
|
||||||
|
|
||||||
|
long forcedDelaySecs = (new Date().getTime() - loadingStartDate.getTime()) / 1000;
|
||||||
|
|
||||||
|
if(2 - forcedDelaySecs > 0) {
|
||||||
|
try {
|
||||||
|
Thread.sleep((2 - forcedDelaySecs) * 1000);
|
||||||
|
} catch (Exception ignored) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.sendOnLoadingEnded();
|
||||||
|
}, this::sendError);
|
||||||
|
}).start();
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void loadPicking(List<OrdiniUscitaElencoDTO> selectedOrders) {
|
||||||
|
List<GestioneEnum> foundGestioni = Stream.of(selectedOrders)
|
||||||
|
.map(OrdineUscitaInevasoDTO::getGestioneEnum)
|
||||||
|
.withoutNulls()
|
||||||
|
.distinct()
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
if(foundGestioni != null && foundGestioni.size() > 1) {
|
||||||
|
this.sendError(new InvalidLUMultiGestioneException());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
List<String> foundCodMdep = Stream.of(selectedOrders)
|
||||||
|
.map(OrdineUscitaInevasoDTO::getCodMdep)
|
||||||
|
.withoutNulls()
|
||||||
|
.distinct()
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
if(foundCodMdep != null && foundCodMdep.size() > 1) {
|
||||||
|
this.sendError(new InvalidLUMultiCodMdepException());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
|
List<OrdineUscitaInevasoDTO> selectedOrdersBase = Stream.of(selectedOrders)
|
||||||
|
.map(x -> (OrdineUscitaInevasoDTO) x)
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
this.mOrdiniRESTConsumer.retrieveListaArticoliFromOrdiniUscita(selectedOrdersBase, sitArts -> {
|
||||||
|
|
||||||
|
this.mOrdiniRESTConsumer.getBancaliGiaRegistrati(
|
||||||
|
Stream.of(selectedOrdersBase).map(x -> (OrdineInevasoDTO) x).toList(),
|
||||||
|
mCurrentGestioneCol,
|
||||||
|
mCurrentSegnoCol,
|
||||||
|
mtbColtList -> {
|
||||||
|
this.sendOnOrdersDispatched(selectedOrdersBase, sitArts, mtbColtList);
|
||||||
|
|
||||||
|
this.sendOnLoadingEnded();
|
||||||
|
}, this::sendError);
|
||||||
|
}, this::sendError);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public MutableLiveData<List<OrdiniUscitaElencoDTO>> getOrderList() {
|
||||||
|
return mOrderList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdiniUscitaElencoViewModel 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 sendError(Exception ex) {
|
||||||
|
if (this.mListener != null) mListener.onError(ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendOnOrdersDispatched(List<OrdineUscitaInevasoDTO> orders, List<SitArtOrdDTO> sitArts, List<MtbColt> alreadyRegisteredMtbColts) {
|
||||||
|
if (this.mListener != null) mListener.onOrdersDispatched(orders, sitArts, alreadyRegisteredMtbColts);
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface Listener {
|
||||||
|
void onLoadingStarted();
|
||||||
|
|
||||||
|
void onLoadingEnded();
|
||||||
|
|
||||||
|
void onError(Exception ex);
|
||||||
|
|
||||||
|
void onOrdersDispatched(List<OrdineUscitaInevasoDTO> orders, List<SitArtOrdDTO> sitArts, List<MtbColt> alreadyRegisteredMtbColts);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package it.integry.integrywmsnative.gest.vendita.dialogs;
|
package it.integry.integrywmsnative.gest.ordini_uscita_elenco.dialogs;
|
||||||
|
|
||||||
import android.app.DatePickerDialog;
|
import android.app.DatePickerDialog;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@@ -28,19 +28,19 @@ import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
|||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
import it.integry.integrywmsnative.databinding.DialogVenditaFiltroAvanzatoBinding;
|
import it.integry.integrywmsnative.databinding.DialogVenditaFiltroAvanzatoBinding;
|
||||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.OrdiniUscitaElencoDTO;
|
||||||
|
|
||||||
|
|
||||||
public class DialogVenditaFiltroAvanzato {
|
public class DialogVenditaFiltroAvanzato {
|
||||||
|
|
||||||
|
|
||||||
private AlertDialog currentAlert;
|
private final AlertDialog currentAlert;
|
||||||
private Context currentContext;
|
private final Context currentContext;
|
||||||
|
|
||||||
private RunnableArgss<List<OrdineVenditaInevasoDTO>, DialogVenditaFiltroAvanzatoViewModel> currentOnFilterDone;
|
private final RunnableArgss<List<OrdiniUscitaElencoDTO>, DialogVenditaFiltroAvanzatoViewModel> currentOnFilterDone;
|
||||||
|
|
||||||
private List<OrdineVenditaInevasoDTO> currentOrderList;
|
private final List<OrdiniUscitaElencoDTO> currentOrderList;
|
||||||
private List<OrdineVenditaInevasoDTO> currentFilteredOrderList;
|
private List<OrdiniUscitaElencoDTO> currentFilteredOrderList;
|
||||||
|
|
||||||
private ArrayAdapter<String> arrayAdapterCodMdep;
|
private ArrayAdapter<String> arrayAdapterCodMdep;
|
||||||
private ArrayAdapter<String> arrayAdapterIdViaggio;
|
private ArrayAdapter<String> arrayAdapterIdViaggio;
|
||||||
@@ -51,30 +51,30 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
private ArrayAdapter<String> arrayAdapterAgente;
|
private ArrayAdapter<String> arrayAdapterAgente;
|
||||||
private ArrayAdapter<String> arrayAdapterAutomezzo;
|
private ArrayAdapter<String> arrayAdapterAutomezzo;
|
||||||
|
|
||||||
private Predicate<OrdineVenditaInevasoDTO> currentDepositoPredicate = null;
|
private Predicate<OrdiniUscitaElencoDTO> currentDepositoPredicate = null;
|
||||||
private Predicate<OrdineVenditaInevasoDTO> currentIdViaggioPredicate = null;
|
private Predicate<OrdiniUscitaElencoDTO> currentIdViaggioPredicate = null;
|
||||||
private Predicate<OrdineVenditaInevasoDTO> currentNumOrdsPredicate = null;
|
private Predicate<OrdiniUscitaElencoDTO> currentNumOrdsPredicate = null;
|
||||||
private Predicate<OrdineVenditaInevasoDTO> currentClientePredicate = null;
|
private Predicate<OrdiniUscitaElencoDTO> currentClientePredicate = null;
|
||||||
private Predicate<OrdineVenditaInevasoDTO> currentDataConsPredicate = null;
|
private Predicate<OrdiniUscitaElencoDTO> currentDataConsPredicate = null;
|
||||||
private Predicate<OrdineVenditaInevasoDTO> currentTermConsPredicate = null;
|
private Predicate<OrdiniUscitaElencoDTO> currentTermConsPredicate = null;
|
||||||
private Predicate<OrdineVenditaInevasoDTO> currentVettorePredicate = null;
|
private Predicate<OrdiniUscitaElencoDTO> currentVettorePredicate = null;
|
||||||
private Predicate<OrdineVenditaInevasoDTO> currentAgentePredicate = null;
|
private Predicate<OrdiniUscitaElencoDTO> currentAgentePredicate = null;
|
||||||
private Predicate<OrdineVenditaInevasoDTO> currentAutomezzoPredicate = null;
|
private Predicate<OrdiniUscitaElencoDTO> currentAutomezzoPredicate = null;
|
||||||
|
|
||||||
private boolean firstInit = true;
|
private boolean firstInit = true;
|
||||||
|
|
||||||
public static AlertDialog make(final Context context, final List<OrdineVenditaInevasoDTO> ordersList, RunnableArgss<List<OrdineVenditaInevasoDTO>, DialogVenditaFiltroAvanzatoViewModel> onDismiss) {
|
public static AlertDialog make(final Context context, final List<OrdiniUscitaElencoDTO> ordersList, RunnableArgss<List<OrdiniUscitaElencoDTO>, DialogVenditaFiltroAvanzatoViewModel> onDismiss) {
|
||||||
return new DialogVenditaFiltroAvanzato(context, ordersList, null, onDismiss).currentAlert;
|
return new DialogVenditaFiltroAvanzato(context, ordersList, null, onDismiss).currentAlert;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static AlertDialog make(final Context context,
|
public static AlertDialog make(final Context context,
|
||||||
final List<OrdineVenditaInevasoDTO> ordersList,
|
final List<OrdiniUscitaElencoDTO> ordersList,
|
||||||
DialogVenditaFiltroAvanzatoViewModel baseViewModel,
|
DialogVenditaFiltroAvanzatoViewModel baseViewModel,
|
||||||
RunnableArgss<List<OrdineVenditaInevasoDTO>, DialogVenditaFiltroAvanzatoViewModel> onDismiss) {
|
RunnableArgss<List<OrdiniUscitaElencoDTO>, DialogVenditaFiltroAvanzatoViewModel> onDismiss) {
|
||||||
return new DialogVenditaFiltroAvanzato(context, ordersList, baseViewModel, onDismiss).currentAlert;
|
return new DialogVenditaFiltroAvanzato(context, ordersList, baseViewModel, onDismiss).currentAlert;
|
||||||
}
|
}
|
||||||
|
|
||||||
private DialogVenditaFiltroAvanzato(final Context context, final List<OrdineVenditaInevasoDTO> ordersList, DialogVenditaFiltroAvanzatoViewModel baseViewModel, RunnableArgss<List<OrdineVenditaInevasoDTO>, DialogVenditaFiltroAvanzatoViewModel> onDismiss) {
|
private DialogVenditaFiltroAvanzato(final Context context, final List<OrdiniUscitaElencoDTO> ordersList, DialogVenditaFiltroAvanzatoViewModel baseViewModel, RunnableArgss<List<OrdiniUscitaElencoDTO>, DialogVenditaFiltroAvanzatoViewModel> onDismiss) {
|
||||||
currentContext = context;
|
currentContext = context;
|
||||||
currentOrderList = ordersList;
|
currentOrderList = ordersList;
|
||||||
currentOnFilterDone = onDismiss;
|
currentOnFilterDone = onDismiss;
|
||||||
@@ -456,7 +456,7 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
if(currentAgentePredicate == null && currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentAutomezzoPredicate == null && currentVettorePredicate == null && currentTermConsPredicate == null && currentDepositoPredicate == null){
|
if(currentAgentePredicate == null && currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentAutomezzoPredicate == null && currentVettorePredicate == null && currentTermConsPredicate == null && currentDepositoPredicate == null){
|
||||||
currentFilteredOrderList = currentOrderList;
|
currentFilteredOrderList = currentOrderList;
|
||||||
} else if(!skipRecalc){
|
} else if(!skipRecalc){
|
||||||
Stream<OrdineVenditaInevasoDTO> tmpStream = Stream.of(currentOrderList)
|
Stream<OrdiniUscitaElencoDTO> tmpStream = Stream.of(currentOrderList)
|
||||||
.filter(x ->
|
.filter(x ->
|
||||||
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
||||||
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
||||||
@@ -484,7 +484,7 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
if(currentDepositoPredicate == null && currentIdViaggioPredicate == null && currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentAutomezzoPredicate == null && currentVettorePredicate == null && currentTermConsPredicate == null){
|
if(currentDepositoPredicate == null && currentIdViaggioPredicate == null && currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentAutomezzoPredicate == null && currentVettorePredicate == null && currentTermConsPredicate == null){
|
||||||
currentFilteredOrderList = currentOrderList;
|
currentFilteredOrderList = currentOrderList;
|
||||||
} else if(!skipRecalc){
|
} else if(!skipRecalc){
|
||||||
Stream<OrdineVenditaInevasoDTO> tmpStream = Stream.of(currentOrderList)
|
Stream<OrdiniUscitaElencoDTO> tmpStream = Stream.of(currentOrderList)
|
||||||
.filter(x ->
|
.filter(x ->
|
||||||
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
||||||
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
||||||
@@ -500,14 +500,14 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
currentFilteredOrderList = tmpStream.toList();
|
currentFilteredOrderList = tmpStream.toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
return Stream.of(currentFilteredOrderList).map(OrdineVenditaInevasoDTO::getNomeAgente).distinct().withoutNulls().sorted().toList();
|
return Stream.of(currentFilteredOrderList).map(OrdiniUscitaElencoDTO::getNomeAgente).distinct().withoutNulls().sorted().toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<String> getAvailableCodMdeps(boolean skipRecalc) {
|
private List<String> getAvailableCodMdeps(boolean skipRecalc) {
|
||||||
if(currentAgentePredicate == null && currentIdViaggioPredicate == null && currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentAutomezzoPredicate == null && currentVettorePredicate == null && currentTermConsPredicate == null){
|
if(currentAgentePredicate == null && currentIdViaggioPredicate == null && currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentAutomezzoPredicate == null && currentVettorePredicate == null && currentTermConsPredicate == null){
|
||||||
currentFilteredOrderList = currentOrderList;
|
currentFilteredOrderList = currentOrderList;
|
||||||
} else if(!skipRecalc){
|
} else if(!skipRecalc){
|
||||||
Stream<OrdineVenditaInevasoDTO> tmpStream = Stream.of(currentOrderList)
|
Stream<OrdiniUscitaElencoDTO> tmpStream = Stream.of(currentOrderList)
|
||||||
.filter(x ->
|
.filter(x ->
|
||||||
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
||||||
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
||||||
@@ -522,14 +522,14 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
currentFilteredOrderList = tmpStream.toList();
|
currentFilteredOrderList = tmpStream.toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
return Stream.of(currentFilteredOrderList).map(OrdineVenditaInevasoDTO::getCodMdep).distinct().withoutNulls().sorted().toList();
|
return Stream.of(currentFilteredOrderList).map(OrdiniUscitaElencoDTO::getCodMdep).distinct().withoutNulls().sorted().toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<String> getAvailableCliente(boolean skipRecalc) {
|
private List<String> getAvailableCliente(boolean skipRecalc) {
|
||||||
if(currentAgentePredicate == null && currentIdViaggioPredicate == null && currentNumOrdsPredicate == null && currentDepositoPredicate == null && currentDataConsPredicate == null && currentAutomezzoPredicate == null && currentVettorePredicate == null && currentTermConsPredicate == null){
|
if(currentAgentePredicate == null && currentIdViaggioPredicate == null && currentNumOrdsPredicate == null && currentDepositoPredicate == null && currentDataConsPredicate == null && currentAutomezzoPredicate == null && currentVettorePredicate == null && currentTermConsPredicate == null){
|
||||||
currentFilteredOrderList = currentOrderList;
|
currentFilteredOrderList = currentOrderList;
|
||||||
} else if(!skipRecalc){
|
} else if(!skipRecalc){
|
||||||
Stream<OrdineVenditaInevasoDTO> tmpStream = Stream.of(currentOrderList)
|
Stream<OrdiniUscitaElencoDTO> tmpStream = Stream.of(currentOrderList)
|
||||||
.filter(x ->
|
.filter(x ->
|
||||||
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
||||||
(currentDepositoPredicate == null || (currentDepositoPredicate.test(x))) &&
|
(currentDepositoPredicate == null || (currentDepositoPredicate.test(x))) &&
|
||||||
@@ -544,14 +544,14 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
currentFilteredOrderList = tmpStream.toList();
|
currentFilteredOrderList = tmpStream.toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
return Stream.of(currentFilteredOrderList).map(OrdineVenditaInevasoDTO::getRagSocOrd).distinct().withoutNulls().sorted().toList();
|
return Stream.of(currentFilteredOrderList).map(OrdiniUscitaElencoDTO::getRagSocOrd).distinct().withoutNulls().sorted().toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<String> getAvailableNumOrds(boolean skipRecalc) {
|
private List<String> getAvailableNumOrds(boolean skipRecalc) {
|
||||||
if(currentAgentePredicate == null && currentIdViaggioPredicate == null && currentDepositoPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentAutomezzoPredicate == null && currentVettorePredicate == null && currentTermConsPredicate == null){
|
if(currentAgentePredicate == null && currentIdViaggioPredicate == null && currentDepositoPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentAutomezzoPredicate == null && currentVettorePredicate == null && currentTermConsPredicate == null){
|
||||||
currentFilteredOrderList = currentOrderList;
|
currentFilteredOrderList = currentOrderList;
|
||||||
} else if(!skipRecalc){
|
} else if(!skipRecalc){
|
||||||
Stream<OrdineVenditaInevasoDTO> tmpStream = Stream.of(currentOrderList)
|
Stream<OrdiniUscitaElencoDTO> tmpStream = Stream.of(currentOrderList)
|
||||||
.filter(x ->
|
.filter(x ->
|
||||||
(currentDepositoPredicate == null || (currentDepositoPredicate.test(x))) &&
|
(currentDepositoPredicate == null || (currentDepositoPredicate.test(x))) &&
|
||||||
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
||||||
@@ -573,7 +573,7 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
if(currentAgentePredicate == null && currentIdViaggioPredicate == null && currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentAutomezzoPredicate == null && currentVettorePredicate == null && currentDepositoPredicate == null){
|
if(currentAgentePredicate == null && currentIdViaggioPredicate == null && currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentAutomezzoPredicate == null && currentVettorePredicate == null && currentDepositoPredicate == null){
|
||||||
currentFilteredOrderList = currentOrderList;
|
currentFilteredOrderList = currentOrderList;
|
||||||
} else if(!skipRecalc){
|
} else if(!skipRecalc){
|
||||||
Stream<OrdineVenditaInevasoDTO> tmpStream = Stream.of(currentOrderList)
|
Stream<OrdiniUscitaElencoDTO> tmpStream = Stream.of(currentOrderList)
|
||||||
.filter(x ->
|
.filter(x ->
|
||||||
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
||||||
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
||||||
@@ -588,14 +588,14 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
currentFilteredOrderList = tmpStream.toList();
|
currentFilteredOrderList = tmpStream.toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
return Stream.of(currentFilteredOrderList).map(OrdineVenditaInevasoDTO::getTermCons).distinct().withoutNulls().sorted().toList();
|
return Stream.of(currentFilteredOrderList).map(OrdiniUscitaElencoDTO::getTermCons).distinct().withoutNulls().sorted().toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<String> getAvailableVettori(boolean skipRecalc) {
|
private List<String> getAvailableVettori(boolean skipRecalc) {
|
||||||
if(currentAgentePredicate == null && currentIdViaggioPredicate == null && currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentTermConsPredicate == null && currentAutomezzoPredicate == null && currentDepositoPredicate == null){
|
if(currentAgentePredicate == null && currentIdViaggioPredicate == null && currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentTermConsPredicate == null && currentAutomezzoPredicate == null && currentDepositoPredicate == null){
|
||||||
currentFilteredOrderList = currentOrderList;
|
currentFilteredOrderList = currentOrderList;
|
||||||
} else if(!skipRecalc){
|
} else if(!skipRecalc){
|
||||||
Stream<OrdineVenditaInevasoDTO> tmpStream = Stream.of(currentOrderList)
|
Stream<OrdiniUscitaElencoDTO> tmpStream = Stream.of(currentOrderList)
|
||||||
.filter(x ->
|
.filter(x ->
|
||||||
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
||||||
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
||||||
@@ -617,7 +617,7 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
if(currentAgentePredicate == null && currentIdViaggioPredicate == null && currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentTermConsPredicate == null && currentVettorePredicate == null && currentDepositoPredicate == null){
|
if(currentAgentePredicate == null && currentIdViaggioPredicate == null && currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentTermConsPredicate == null && currentVettorePredicate == null && currentDepositoPredicate == null){
|
||||||
currentFilteredOrderList = currentOrderList;
|
currentFilteredOrderList = currentOrderList;
|
||||||
} else if(!skipRecalc){
|
} else if(!skipRecalc){
|
||||||
Stream<OrdineVenditaInevasoDTO> tmpStream = Stream.of(currentOrderList)
|
Stream<OrdiniUscitaElencoDTO> tmpStream = Stream.of(currentOrderList)
|
||||||
.filter(x ->
|
.filter(x ->
|
||||||
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
||||||
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
||||||
@@ -632,7 +632,7 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
currentFilteredOrderList = tmpStream.toList();
|
currentFilteredOrderList = tmpStream.toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
return Stream.of(currentFilteredOrderList).map(OrdineVenditaInevasoDTO::getDescrizioneAuto).distinct().withoutNulls().sorted().toList();
|
return Stream.of(currentFilteredOrderList).map(OrdiniUscitaElencoDTO::getDescrizioneAuto).distinct().withoutNulls().sorted().toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void refreshList() {
|
private void refreshList() {
|
||||||
@@ -640,7 +640,7 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
if(currentAgentePredicate == null && currentIdViaggioPredicate == null && currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentTermConsPredicate == null && currentVettorePredicate == null && currentAutomezzoPredicate == null && currentDepositoPredicate == null){
|
if(currentAgentePredicate == null && currentIdViaggioPredicate == null && currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentTermConsPredicate == null && currentVettorePredicate == null && currentAutomezzoPredicate == null && currentDepositoPredicate == null){
|
||||||
currentFilteredOrderList = currentOrderList;
|
currentFilteredOrderList = currentOrderList;
|
||||||
} else {
|
} else {
|
||||||
Stream<OrdineVenditaInevasoDTO> tmpStream = Stream.of(currentOrderList)
|
Stream<OrdiniUscitaElencoDTO> tmpStream = Stream.of(currentOrderList)
|
||||||
.filter(x ->
|
.filter(x ->
|
||||||
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
||||||
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package it.integry.integrywmsnative.gest.vendita.dialogs;
|
package it.integry.integrywmsnative.gest.ordini_uscita_elenco.dialogs;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
@@ -0,0 +1,176 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.ordini_uscita_elenco.list;
|
||||||
|
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.text.Html;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import androidx.databinding.DataBindingUtil;
|
||||||
|
import androidx.databinding.ObservableArrayList;
|
||||||
|
import androidx.databinding.ObservableList;
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import com.zhukic.sectionedrecyclerview.SectionedRecyclerViewAdapter;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.OnListGeneralChangedCallback;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.OnSingleClickListener;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
|
import it.integry.integrywmsnative.databinding.FragmentMainOrdiniUscitaListGroupModelBinding;
|
||||||
|
import it.integry.integrywmsnative.databinding.FragmentMainOrdiniUscitaListModelBinding;
|
||||||
|
|
||||||
|
public class OrdiniUscitaElencoAdapter extends SectionedRecyclerViewAdapter<OrdiniUscitaElencoAdapter.SubheaderHolder, OrdiniUscitaElencoAdapter.SingleItemViewHolder> {
|
||||||
|
|
||||||
|
private final Context mContext;
|
||||||
|
private final List<OrdiniUscitaElencoListModel> mDataset = new ArrayList<>();
|
||||||
|
private View mEmptyView;
|
||||||
|
|
||||||
|
private RunnableArgs<String> mOnGroupItemClicked;
|
||||||
|
private RunnableArgs<OrdiniUscitaElencoListModel> mOnItemChecked;
|
||||||
|
|
||||||
|
static class SubheaderHolder extends RecyclerView.ViewHolder {
|
||||||
|
|
||||||
|
FragmentMainOrdiniUscitaListModelBinding mBinding;
|
||||||
|
|
||||||
|
SubheaderHolder(FragmentMainOrdiniUscitaListModelBinding binding) {
|
||||||
|
super(binding.getRoot());
|
||||||
|
this.mBinding = binding;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
static class SingleItemViewHolder extends RecyclerView.ViewHolder {
|
||||||
|
|
||||||
|
FragmentMainOrdiniUscitaListGroupModelBinding mBinding;
|
||||||
|
|
||||||
|
SingleItemViewHolder(FragmentMainOrdiniUscitaListGroupModelBinding binding) {
|
||||||
|
super(binding.getRoot());
|
||||||
|
this.mBinding = binding;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdiniUscitaElencoAdapter(Context context, ObservableArrayList<OrdiniUscitaElencoListModel> mutableDataSet) {
|
||||||
|
this.mContext = context;
|
||||||
|
|
||||||
|
mutableDataSet.addOnListChangedCallback(new OnListGeneralChangedCallback() {
|
||||||
|
@Override
|
||||||
|
public void onChanged(ObservableList sender) {
|
||||||
|
mDataset.clear();
|
||||||
|
mDataset.addAll(sender);
|
||||||
|
notifyDataSetChanged();
|
||||||
|
notifyDataChanged();
|
||||||
|
checkIfEmpty();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdiniUscitaElencoAdapter setOnGroupItemClicked(RunnableArgs<String> onGroupItemClicked) {
|
||||||
|
this.mOnGroupItemClicked = onGroupItemClicked;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdiniUscitaElencoAdapter setOnItemChecked(RunnableArgs<OrdiniUscitaElencoListModel> onItemChecked) {
|
||||||
|
this.mOnItemChecked = onItemChecked;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdiniUscitaElencoAdapter setEmptyView(View emptyView) {
|
||||||
|
this.mEmptyView = emptyView;
|
||||||
|
this.checkIfEmpty();
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void checkIfEmpty() {
|
||||||
|
if (mEmptyView != null) {
|
||||||
|
final boolean emptyViewVisible = getItemCount() == 0;
|
||||||
|
mEmptyView.setVisibility(emptyViewVisible ? View.VISIBLE : View.GONE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public OrdiniUscitaElencoAdapter.SubheaderHolder onCreateSubheaderViewHolder(ViewGroup parent, int viewType) {
|
||||||
|
FragmentMainOrdiniUscitaListModelBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.fragment_main_ordini_uscita__list_model, parent, false);
|
||||||
|
return new OrdiniUscitaElencoAdapter.SubheaderHolder(binding);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public OrdiniUscitaElencoAdapter.SingleItemViewHolder onCreateItemViewHolder(ViewGroup parent, int viewType) {
|
||||||
|
FragmentMainOrdiniUscitaListGroupModelBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.fragment_main_ordini_uscita__list_group_model, parent, false);
|
||||||
|
return new OrdiniUscitaElencoAdapter.SingleItemViewHolder(binding);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBindSubheaderViewHolder(OrdiniUscitaElencoAdapter.SubheaderHolder subheaderHolder, int nextItemPosition) {
|
||||||
|
OrdiniUscitaElencoListModel pickingObjectDTO = this.mDataset.get(nextItemPosition);
|
||||||
|
|
||||||
|
subheaderHolder.mBinding.groupTitle.setVisibility(UtilityString.isNullOrEmpty(pickingObjectDTO.getGroupTitle()) ? View.GONE : View.VISIBLE);
|
||||||
|
subheaderHolder.mBinding.groupTitle.setText(Html.fromHtml(pickingObjectDTO.getGroupTitle()));
|
||||||
|
|
||||||
|
subheaderHolder.mBinding.getRoot().setOnClickListener(new OnSingleClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onSingleClick(View v) {
|
||||||
|
if(mOnGroupItemClicked != null) mOnGroupItemClicked.run(pickingObjectDTO.getGroupTitle());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBindItemViewHolder(final OrdiniUscitaElencoAdapter.SingleItemViewHolder holder, final int position) {
|
||||||
|
OrdiniUscitaElencoListModel listModel = this.mDataset.get(position);
|
||||||
|
|
||||||
|
listModel.getSelectedObservable().resetOnPropertyChangedCallback();
|
||||||
|
|
||||||
|
if(!UtilityString.isNullOrEmpty(listModel.getDescription()))
|
||||||
|
holder.mBinding.descrizione.setText(Html.fromHtml(listModel.getDescription()));
|
||||||
|
|
||||||
|
if(!UtilityString.isNullOrEmpty(listModel.getSubDescription()))
|
||||||
|
holder.mBinding.subDescrizione.setText(Html.fromHtml(listModel.getSubDescription()));
|
||||||
|
|
||||||
|
if(!UtilityString.isNullOrEmpty(listModel.getRightDescription()))
|
||||||
|
holder.mBinding.rightDescrizione.setText(Html.fromHtml(listModel.getRightDescription()));
|
||||||
|
|
||||||
|
if(!UtilityString.isNullOrEmpty(listModel.getRightSubDescription()))
|
||||||
|
holder.mBinding.rightSubDescrizione.setText(Html.fromHtml(listModel.getRightSubDescription()));
|
||||||
|
|
||||||
|
holder.mBinding.setSelected(listModel.getSelectedObservable());
|
||||||
|
holder.mBinding.executePendingBindings();
|
||||||
|
holder.mBinding.checkbox.jumpDrawablesToCurrentState();
|
||||||
|
|
||||||
|
listModel.getSelectedObservable().addOnPropertyChangedCallback(() -> {
|
||||||
|
if(this.mOnItemChecked != null) this.mOnItemChecked.run(listModel);
|
||||||
|
});
|
||||||
|
|
||||||
|
holder.mBinding.getRoot().setOnClickListener(v -> {
|
||||||
|
listModel.getSelectedObservable().set(!listModel.getSelectedObservable().get());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onPlaceSubheaderBetweenItems(int position) {
|
||||||
|
|
||||||
|
if (getItemSize() == 1) return true;
|
||||||
|
else if (getItemSize() > 1) {
|
||||||
|
OrdiniUscitaElencoListModel compare1 = this.mDataset.get(position);
|
||||||
|
OrdiniUscitaElencoListModel compare2 = this.mDataset.get(position + 1);
|
||||||
|
|
||||||
|
if (UtilityString.equalsIgnoreCase(compare1.getGroupTitle(), compare2.getGroupTitle())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemSize() {
|
||||||
|
return mDataset.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,87 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.ordini_uscita_elenco.list;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
||||||
|
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.OrdiniUscitaElencoDTO;
|
||||||
|
|
||||||
|
public class OrdiniUscitaElencoListModel implements Cloneable {
|
||||||
|
private String groupTitle;
|
||||||
|
|
||||||
|
private String description;
|
||||||
|
private String subDescription;
|
||||||
|
private String rightDescription;
|
||||||
|
private String rightSubDescription;
|
||||||
|
|
||||||
|
private boolean hidden;
|
||||||
|
private BindableBoolean selected = new BindableBoolean();
|
||||||
|
|
||||||
|
|
||||||
|
private OrdiniUscitaElencoDTO originalModel;
|
||||||
|
|
||||||
|
|
||||||
|
public String getGroupTitle() {
|
||||||
|
return groupTitle;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdiniUscitaElencoListModel setGroupTitle(String groupTitle) {
|
||||||
|
this.groupTitle = groupTitle;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescription() {
|
||||||
|
return description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdiniUscitaElencoListModel setDescription(String description) {
|
||||||
|
this.description = description;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSubDescription() {
|
||||||
|
return subDescription;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdiniUscitaElencoListModel setSubDescription(String subDescription) {
|
||||||
|
this.subDescription = subDescription;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRightDescription() {
|
||||||
|
return rightDescription;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdiniUscitaElencoListModel setRightDescription(String rightDescription) {
|
||||||
|
this.rightDescription = rightDescription;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRightSubDescription() {
|
||||||
|
return rightSubDescription;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdiniUscitaElencoListModel setRightSubDescription(String rightSubDescription) {
|
||||||
|
this.rightSubDescription = rightSubDescription;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isHidden() {
|
||||||
|
return hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdiniUscitaElencoListModel setHidden(boolean hidden) {
|
||||||
|
this.hidden = hidden;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BindableBoolean getSelectedObservable() {
|
||||||
|
return selected;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdiniUscitaElencoDTO getOriginalModel() {
|
||||||
|
return originalModel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdiniUscitaElencoListModel setOriginalModel(OrdiniUscitaElencoDTO originalModel) {
|
||||||
|
this.originalModel = originalModel;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -20,6 +20,7 @@ import androidx.recyclerview.widget.LinearLayoutManager;
|
|||||||
import com.tfb.fbtoast.FBToast;
|
import com.tfb.fbtoast.FBToast;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -75,7 +76,7 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
|
|||||||
public BindableBoolean thereIsAnyRowInUL = new BindableBoolean(false);
|
public BindableBoolean thereIsAnyRowInUL = new BindableBoolean(false);
|
||||||
public BindableBoolean thereIsAnOpenULWithoutRows = new BindableBoolean(false);
|
public BindableBoolean thereIsAnOpenULWithoutRows = new BindableBoolean(false);
|
||||||
|
|
||||||
private Runnable mOnPreDestroy;
|
private final List<Runnable> mOnPreDestroyList = new ArrayList<>();
|
||||||
private ElevatedToolbar mToolbar;
|
private ElevatedToolbar mToolbar;
|
||||||
private AppCompatTextView mToolbarTitleText;
|
private AppCompatTextView mToolbarTitleText;
|
||||||
|
|
||||||
@@ -107,6 +108,11 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
|
|||||||
mToolbarTitleText.setText(context.getText(R.string.free_picking_title_fragment).toString());
|
mToolbarTitleText.setText(context.getText(R.string.free_picking_title_fragment).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) {
|
||||||
|
this.mOnPreDestroyList.add(onActionBarPreDestroy);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
@@ -231,7 +237,9 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroyView() {
|
public void onDestroyView() {
|
||||||
if (mOnPreDestroy != null) mOnPreDestroy.run();
|
for (Runnable onPreDestroy : mOnPreDestroyList) {
|
||||||
|
onPreDestroy.run();
|
||||||
|
}
|
||||||
super.onDestroyView();
|
super.onDestroyView();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -241,8 +249,8 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setOnPreDestroy(Runnable onPreDestroy) {
|
public void setScrollableOnPreDestroy(Runnable onPreDestroy) {
|
||||||
mOnPreDestroy = onPreDestroy;
|
mOnPreDestroyList.add(onPreDestroy);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -309,10 +317,10 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onLUClienteRequired(RunnableArgs<VtbDest> onComplete, Runnable onAbort) {
|
public void onLUClienteRequired(RunnableArgss<VtbDest, String> onComplete, Runnable onAbort) {
|
||||||
DialogAskCliente.makeBase(getActivity(), (status, result) -> {
|
DialogAskCliente.makeBase(getActivity(), (status, result, codJcom) -> {
|
||||||
if (status == DialogConsts.Results.YES) {
|
if (status == DialogConsts.Results.YES) {
|
||||||
onComplete.run(result);
|
onComplete.run(result, codJcom);
|
||||||
} else {
|
} else {
|
||||||
onAbort.run();
|
onAbort.run();
|
||||||
}
|
}
|
||||||
@@ -401,7 +409,8 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPreDestroy(Runnable onComplete) {
|
public void onPreDestroy(Runnable onComplete) {
|
||||||
if(thereIsAnOpenedUL.get()) mViewModel.closeLU(onComplete);
|
|
||||||
BarcodeManager.removeCallback(barcodeScannerIstanceID);
|
BarcodeManager.removeCallback(barcodeScannerIstanceID);
|
||||||
|
if(thereIsAnOpenedUL.get()) mViewModel.closeLU(onComplete);
|
||||||
|
else onComplete.run();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,9 +6,7 @@ import com.annimon.stream.Stream;
|
|||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Calendar;
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.GregorianCalendar;
|
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -181,15 +179,15 @@ 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 -> {
|
this.sendLUClienteRequired((vtbDest, codJcom) -> {
|
||||||
createNewLU_PostClienteAsk(customNumCollo, customSerCollo, vtbDest, onComplete);
|
createNewLU_PostClienteAsk(customNumCollo, customSerCollo, vtbDest, codJcom, onComplete);
|
||||||
}, onComplete);
|
}, onComplete);
|
||||||
} else {
|
} else {
|
||||||
createNewLU_PostClienteAsk(customNumCollo, customSerCollo, null, onComplete);
|
createNewLU_PostClienteAsk(customNumCollo, customSerCollo, null, null, onComplete);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createNewLU_PostClienteAsk(Integer customNumCollo, String customSerCollo, VtbDest vtbDest, Runnable onComplete) {
|
private void createNewLU_PostClienteAsk(Integer customNumCollo, String customSerCollo, VtbDest vtbDest, String codJcom, Runnable onComplete) {
|
||||||
MtbColt mtbColt = new MtbColt();
|
MtbColt mtbColt = new MtbColt();
|
||||||
mtbColt.initDefaultFields();
|
mtbColt.initDefaultFields();
|
||||||
mtbColt.setGestione(mDefaultGestione)
|
mtbColt.setGestione(mDefaultGestione)
|
||||||
@@ -211,6 +209,10 @@ public class PickingLiberoViewModel {
|
|||||||
mtbColt.setCodVdes(vtbDest.getCodVdes());
|
mtbColt.setCodVdes(vtbDest.getCodVdes());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!UtilityString.isNullOrEmpty(codJcom)) {
|
||||||
|
mtbColt.setCodJcom(codJcom);
|
||||||
|
}
|
||||||
|
|
||||||
mColliMagazzinoRESTConsumer.saveCollo(mtbColt, value -> {
|
mColliMagazzinoRESTConsumer.saveCollo(mtbColt, value -> {
|
||||||
mtbColt
|
mtbColt
|
||||||
.setNumCollo(value.getNumCollo())
|
.setNumCollo(value.getNumCollo())
|
||||||
@@ -233,9 +235,9 @@ public class PickingLiberoViewModel {
|
|||||||
BigDecimal qtaColDaPrelevare = null;
|
BigDecimal qtaColDaPrelevare = null;
|
||||||
BigDecimal qtaCnfDaPrelevare = null;
|
BigDecimal qtaCnfDaPrelevare = null;
|
||||||
|
|
||||||
BigDecimal initialNumCnf = null;
|
BigDecimal initialNumCnf;
|
||||||
BigDecimal initialQtaCnf = null;
|
BigDecimal initialQtaCnf;
|
||||||
BigDecimal initialQtaTot = null;
|
BigDecimal initialQtaTot;
|
||||||
|
|
||||||
String partitaMag = null;
|
String partitaMag = null;
|
||||||
Date dataScad = null;
|
Date dataScad = null;
|
||||||
@@ -758,7 +760,7 @@ public class PickingLiberoViewModel {
|
|||||||
if (this.mListener != null) mListener.onMtbColrDeleteRequest(onComplete);
|
if (this.mListener != null) mListener.onMtbColrDeleteRequest(onComplete);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendLUClienteRequired(RunnableArgs<VtbDest> onComplete, Runnable onAbort) {
|
private void sendLUClienteRequired(RunnableArgss<VtbDest, String> onComplete, Runnable onAbort) {
|
||||||
if (this.mListener != null) mListener.onLUClienteRequired(onComplete, onAbort);
|
if (this.mListener != null) mListener.onLUClienteRequired(onComplete, onAbort);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -816,7 +818,7 @@ public class PickingLiberoViewModel {
|
|||||||
|
|
||||||
void onError(Exception ex);
|
void onError(Exception ex);
|
||||||
|
|
||||||
void onLUClienteRequired(RunnableArgs<VtbDest> onComplete, Runnable onAbort);
|
void onLUClienteRequired(RunnableArgss<VtbDest, String> onComplete, Runnable onAbort);
|
||||||
|
|
||||||
void onArtSelectionRequest(List<MtbColr> mtbColrsToPick, RunnableArgs<List<MtbColr>> onComplete, Runnable onAbort);
|
void onArtSelectionRequest(List<MtbColr> mtbColrsToPick, RunnableArgs<List<MtbColr>> onComplete, Runnable onAbort);
|
||||||
|
|
||||||
|
|||||||
@@ -16,8 +16,8 @@ import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFrag
|
|||||||
public class PickingResiModule {
|
public class PickingResiModule {
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
PickingResiRESTConsumer providesPickingResiRESTConsumer(SystemRESTConsumer systemRESTConsumer) {
|
PickingResiRESTConsumer providesPickingResiRESTConsumer(SystemRESTConsumer systemRESTConsumer, ArticoloRESTConsumer articoloRESTConsumer) {
|
||||||
return new PickingResiRESTConsumer(systemRESTConsumer);
|
return new PickingResiRESTConsumer(systemRESTConsumer, articoloRESTConsumer);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
|
|||||||
@@ -25,10 +25,12 @@ public class PickingResiRESTConsumer {
|
|||||||
|
|
||||||
|
|
||||||
private final SystemRESTConsumer mSystemRestConsumer;
|
private final SystemRESTConsumer mSystemRestConsumer;
|
||||||
|
private final ArticoloRESTConsumer mArticoloRESTConsumer;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public PickingResiRESTConsumer(SystemRESTConsumer systemRESTConsumer) {
|
public PickingResiRESTConsumer(SystemRESTConsumer systemRESTConsumer, ArticoloRESTConsumer articoloRESTConsumer) {
|
||||||
this.mSystemRestConsumer = systemRESTConsumer;
|
this.mSystemRestConsumer = systemRESTConsumer;
|
||||||
|
this.mArticoloRESTConsumer = articoloRESTConsumer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void loadDocRows(List<DocumentoResoDTO> documents, RunnableArgs<ArrayList<WithdrawableDtbDocr>> onComplete, RunnableArgs<Exception> onFailed) {
|
public void loadDocRows(List<DocumentoResoDTO> documents, RunnableArgs<ArrayList<WithdrawableDtbDocr>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
@@ -37,148 +39,18 @@ public class PickingResiRESTConsumer {
|
|||||||
for(int i = 0; i < documents.size(); i++) {
|
for(int i = 0; i < documents.size(); i++) {
|
||||||
HashMap<String, Object> filter = new HashMap<>();
|
HashMap<String, Object> filter = new HashMap<>();
|
||||||
|
|
||||||
filter.put("dtb_docr.data_doc", documents.get(i).getDataDocD());
|
filter.put("data_doc", documents.get(i).getDataDocD());
|
||||||
filter.put("dtb_docr.num_doc", documents.get(i).getNumDoc());
|
filter.put("num_doc", documents.get(i).getNumDoc());
|
||||||
filter.put("dtb_docr.ser_doc", documents.get(i).getSerDoc());
|
filter.put("ser_doc", documents.get(i).getSerDoc());
|
||||||
filter.put("dtb_docr.cod_anag", documents.get(i).getCodAnag());
|
filter.put("cod_anag", documents.get(i).getCodAnag());
|
||||||
filter.put("dtb_docr.cod_dtip", documents.get(i).getCodDtip());
|
filter.put("cod_dtip", documents.get(i).getCodDtip());
|
||||||
|
|
||||||
filterCond.add(filter);
|
filterCond.add(filter);
|
||||||
}
|
}
|
||||||
|
|
||||||
String sql = "SELECT dtb_docr.[cod_anag]" +
|
String sql = "SELECT * FROM dvw_situazione_qta_docs " +
|
||||||
" ,dtb_docr.[cod_dtip]" +
|
|
||||||
" ,dtb_docr.[data_doc]" +
|
|
||||||
" ,dtb_docr.[ser_doc]" +
|
|
||||||
" ,dtb_docr.[num_doc]" +
|
|
||||||
" ,dtb_docr.[id_riga]" +
|
|
||||||
" ,dtb_docr.[cod_mart]" +
|
|
||||||
" ,dtb_docr.[descrizione]" +
|
|
||||||
" ,dtb_docr.[unt_doc]" +
|
|
||||||
" ,(dtb_docr.[rap_conv] / dtb_docr.[rap_conv]) as rap_conv" +
|
|
||||||
" ,(dtb_docr.[qta_doc] * dtb_docr.[rap_conv]) - ISNULL(mtb_colr.qta_col, 0) as qta_doc" +
|
|
||||||
" ,dtb_docr.[val_unt]" +
|
|
||||||
" ,dtb_docr.[sconto5]" +
|
|
||||||
" ,dtb_docr.[sconto6]" +
|
|
||||||
" ,dtb_docr.[sconto7]" +
|
|
||||||
" ,dtb_docr.[sconto8]" +
|
|
||||||
" ,dtb_docr.[cod_aliq]" +
|
|
||||||
" ,dtb_docr.[perc_prov]" +
|
|
||||||
" ,dtb_docr.[val_prov]" +
|
|
||||||
" ,dtb_docr.[data_ord]" +
|
|
||||||
" ,dtb_docr.[num_ord]" +
|
|
||||||
" ,dtb_docr.[riga_ord]" +
|
|
||||||
" ,dtb_docr.[importo_riga]" +
|
|
||||||
" ,dtb_docr.[cod_col]" +
|
|
||||||
" ,dtb_docr.[cod_tagl]" +
|
|
||||||
" ,dtb_docr.[cod_jcom]" +
|
|
||||||
" ,dtb_docr.[cod_mdep]" +
|
|
||||||
" ,dtb_docr.[perc_gest]" +
|
|
||||||
" ,dtb_docr.[val_gest]" +
|
|
||||||
" ,dtb_docr.[partita_mag]" +
|
|
||||||
" ,dtb_docr.[val_unt_iva]" +
|
|
||||||
" ,dtb_docr.[qta_cnf]" +
|
|
||||||
" ,dtb_docr.[descrizione_estesa]" +
|
|
||||||
" ,dtb_docr.[costo_unt]" +
|
|
||||||
" ,dtb_docr.[perc_ispe]" +
|
|
||||||
" ,dtb_docr.[val_ispe]" +
|
|
||||||
" ,dtb_docr.[perc_promo]" +
|
|
||||||
" ,dtb_docr.[val_promo]" +
|
|
||||||
" ,dtb_docr.[perc_oneri]" +
|
|
||||||
" ,dtb_docr.[val_oneri]" +
|
|
||||||
" ,dtb_docr.[flag_evaso_forzato]" +
|
|
||||||
" ,dtb_docr.[cod_dtip_comp]" +
|
|
||||||
" ,dtb_docr.[data_doc_comp]" +
|
|
||||||
" ,dtb_docr.[ser_doc_comp]" +
|
|
||||||
" ,dtb_docr.[num_doc_comp]" +
|
|
||||||
" ,dtb_docr.[cod_promo]" +
|
|
||||||
" ,dtb_docr.[perc_prov2]" +
|
|
||||||
" ,dtb_docr.[val_prov2]" +
|
|
||||||
" ,dtb_docr.[cod_art_for]" +
|
|
||||||
" ,dtb_docr.[unt_doc2]" +
|
|
||||||
" ,dtb_docr.[qta_doc2]" +
|
|
||||||
" ,dtb_docr.[unt_doc3]" +
|
|
||||||
" ,dtb_docr.[qta_doc3]" +
|
|
||||||
" ,dtb_docr.[num_cnf]" +
|
|
||||||
" ,dtb_docr.[peso_lordo]" +
|
|
||||||
" ,dtb_docr.[posizione]" +
|
|
||||||
" ,dtb_docr.[cod_anag_comp]" +
|
|
||||||
" ,dtb_docr.[cod_mtip]" +
|
|
||||||
" ,dtb_docr.[matricola]" +
|
|
||||||
" ,dtb_docr.[data_iniz_comp]" +
|
|
||||||
" ,dtb_docr.[data_fine_comp]" +
|
|
||||||
" ,dtb_docr.[cod_kit]" +
|
|
||||||
" ,dtb_docr.[cod_alis]" +
|
|
||||||
" ,dtb_docr.[data_ins_row]" +
|
|
||||||
" ,dtb_docr.[note] " +
|
|
||||||
" ,dtb_doct.[gestione] " +
|
|
||||||
" ,mtb_partita_mag.[data_scad] as data_scad_partita_mag " +
|
|
||||||
"FROM dtb_docr " +
|
|
||||||
"INNER JOIN dtb_doct ON dtb_docr.num_doc = dtb_doct.num_doc AND dtb_docr.data_doc = dtb_doct.data_doc AND dtb_docr.cod_anag = dtb_doct.cod_anag AND dtb_docr.cod_dtip = dtb_doct.cod_dtip AND dtb_docr.ser_doc = dtb_doct.ser_doc " +
|
|
||||||
"INNER JOIN mtb_aart ON dtb_docr.cod_mart = mtb_aart.cod_mart " +
|
|
||||||
"LEFT OUTER JOIN mtb_partita_mag ON dtb_docr.cod_mart = mtb_partita_mag.cod_mart " +
|
|
||||||
" AND dtb_docr.partita_mag = mtb_partita_mag.partita_mag " +
|
|
||||||
"LEFT OUTER JOIN ctb_cont ON mtb_aart.cod_ccon_ricavi = ctb_cont.cod_ccon " +
|
|
||||||
"LEFT OUTER JOIN ctb_grup ON ctb_cont.cod_cgrp = ctb_grup.cod_cgrp " +
|
|
||||||
"LEFT OUTER JOIN (" +
|
|
||||||
" SELECT gestione," +
|
|
||||||
" cod_mart," +
|
|
||||||
" cod_col," +
|
|
||||||
" cod_tagl," +
|
|
||||||
" SUM(qta_col) as qta_col," +
|
|
||||||
" data_ord," +
|
|
||||||
" num_ord," +
|
|
||||||
" riga_ord," +
|
|
||||||
" partita_mag," +
|
|
||||||
" qta_cnf," +
|
|
||||||
" gestione_rif," +
|
|
||||||
" data_collo_rif," +
|
|
||||||
" ser_collo_rif," +
|
|
||||||
" num_collo_rif," +
|
|
||||||
" cod_jcom," +
|
|
||||||
" SUM(num_cnf) as num_cnf," +
|
|
||||||
" cod_anag_doc," +
|
|
||||||
" cod_dtip_doc," +
|
|
||||||
" data_doc," +
|
|
||||||
" ser_doc," +
|
|
||||||
" num_doc," +
|
|
||||||
" id_riga_doc" +
|
|
||||||
" FROM mtb_colr" +
|
|
||||||
" GROUP BY gestione," +
|
|
||||||
" cod_barre," +
|
|
||||||
" cod_mart," +
|
|
||||||
" cod_col," +
|
|
||||||
" cod_tagl," +
|
|
||||||
" data_ord," +
|
|
||||||
" num_ord," +
|
|
||||||
" riga_ord," +
|
|
||||||
" partita_mag," +
|
|
||||||
" qta_cnf," +
|
|
||||||
" gestione_rif," +
|
|
||||||
" data_collo_rif," +
|
|
||||||
" ser_collo_rif," +
|
|
||||||
" num_collo_rif," +
|
|
||||||
" cod_jcom," +
|
|
||||||
" cod_anag_doc," +
|
|
||||||
" cod_dtip_doc," +
|
|
||||||
" data_doc," +
|
|
||||||
" ser_doc," +
|
|
||||||
" num_doc," +
|
|
||||||
" id_riga_doc" +
|
|
||||||
" ) mtb_colr" +
|
|
||||||
" ON " +
|
|
||||||
" dtb_docr.cod_anag = mtb_colr.cod_anag_doc AND " +
|
|
||||||
" dtb_docr.cod_dtip = mtb_colr.cod_dtip_doc AND " +
|
|
||||||
" dtb_docr.ser_doc = mtb_colr.ser_doc AND " +
|
|
||||||
" dtb_docr.data_doc = mtb_colr.data_doc AND " +
|
|
||||||
" dtb_docr.num_doc = mtb_colr.num_doc AND " +
|
|
||||||
" dtb_docr.id_riga = mtb_colr.id_riga_doc " +
|
|
||||||
"WHERE " +
|
"WHERE " +
|
||||||
" (ctb_grup.sezione <> 1 OR ctb_grup.sezione IS NULL) AND " +
|
|
||||||
" dtb_docr.[qta_doc] - ISNULL(mtb_colr.qta_col, 0) > 0 AND" +
|
|
||||||
" ( " +
|
|
||||||
UtilityQuery.concatFieldListInWhereCond(filterCond) +
|
UtilityQuery.concatFieldListInWhereCond(filterCond) +
|
||||||
" ) " +
|
|
||||||
"ORDER BY cod_mart";
|
"ORDER BY cod_mart";
|
||||||
|
|
||||||
|
|
||||||
@@ -194,7 +66,7 @@ public class PickingResiRESTConsumer {
|
|||||||
.distinct()
|
.distinct()
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
ArticoloRESTConsumer.getByCodMart(codMarts, arts -> {
|
mArticoloRESTConsumer.getByCodMart(codMarts, arts -> {
|
||||||
|
|
||||||
if(arts != null && arts.size() > 0) {
|
if(arts != null && arts.size() > 0) {
|
||||||
for (DtbDocr value : values) {
|
for (DtbDocr value : values) {
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
|||||||
*/
|
*/
|
||||||
public class ProdOrdineProduzioneElencoFragment extends Fragment implements ITitledFragment, IScrollableFragment, IFilterableFragment {
|
public class ProdOrdineProduzioneElencoFragment extends Fragment implements ITitledFragment, IScrollableFragment, IFilterableFragment {
|
||||||
|
|
||||||
private Runnable mOnPreDestroy;
|
private final List<Runnable> mOnPreDestroyList = new ArrayList<>();
|
||||||
private ElevatedToolbar mToolbar;
|
private ElevatedToolbar mToolbar;
|
||||||
|
|
||||||
private FragmentProdOrdineProduzioneElencoBinding mBinding;
|
private FragmentProdOrdineProduzioneElencoBinding mBinding;
|
||||||
@@ -102,12 +102,26 @@ public class ProdOrdineProduzioneElencoFragment extends Fragment implements ITit
|
|||||||
return mBinding.getRoot();
|
return mBinding.getRoot();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDestroy() {
|
||||||
|
super.onDestroy();
|
||||||
|
|
||||||
|
for (Runnable onPreDestroy : mOnPreDestroyList) {
|
||||||
|
onPreDestroy.run();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreateActionBar(AppCompatTextView titleText, Context context) {
|
public void onCreateActionBar(AppCompatTextView titleText, Context context) {
|
||||||
mAppBarTitle = titleText;
|
mAppBarTitle = titleText;
|
||||||
mAppBarTitle.setText(context.getText(R.string.prod_ordine_produzione_title_fragment).toString());
|
mAppBarTitle.setText(context.getText(R.string.prod_ordine_produzione_title_fragment).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) {
|
||||||
|
this.mOnPreDestroyList.add(onActionBarPreDestroy);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private void init() {
|
private void init() {
|
||||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(getActivity());
|
final Dialog progress = UtilityProgress.createDefaultProgressDialog(getActivity());
|
||||||
@@ -139,8 +153,8 @@ public class ProdOrdineProduzioneElencoFragment extends Fragment implements ITit
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setOnPreDestroy(Runnable onPreDestroy) {
|
public void setScrollableOnPreDestroy(Runnable onPreDestroy) {
|
||||||
mOnPreDestroy = onPreDestroy;
|
mOnPreDestroyList.add(onPreDestroy);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,275 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.gest.prod_pick_ord_lavorazione;
|
|
||||||
|
|
||||||
|
|
||||||
import android.app.Dialog;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.text.Html;
|
|
||||||
import android.text.SpannableString;
|
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.View;
|
|
||||||
import android.view.ViewGroup;
|
|
||||||
|
|
||||||
import androidx.appcompat.widget.AppCompatTextView;
|
|
||||||
import androidx.databinding.DataBindingUtil;
|
|
||||||
import androidx.fragment.app.Fragment;
|
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
|
||||||
|
|
||||||
import com.annimon.stream.Stream;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
|
||||||
import it.integry.integrywmsnative.core.data_cache.DataCache;
|
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
|
||||||
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
|
|
||||||
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
|
||||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
|
||||||
import it.integry.integrywmsnative.core.rest.CommonRESTException;
|
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer;
|
|
||||||
import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO;
|
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityToast;
|
|
||||||
import it.integry.integrywmsnative.databinding.FragmentProdOrdineLavorazioneElencoBinding;
|
|
||||||
import it.integry.integrywmsnative.gest.prod_pick_ord_lavorazione.core.ProdOrdineLavorazioneHelper;
|
|
||||||
import it.integry.integrywmsnative.gest.prod_pick_ord_lavorazione.core.ProdOrdineLavorazioneListAdapter;
|
|
||||||
import it.integry.integrywmsnative.gest.spedizione.SpedizioneActivity;
|
|
||||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
|
||||||
import it.integry.integrywmsnative.ui.ElevatedToolbar;
|
|
||||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A simple {@link Fragment} subclass.
|
|
||||||
*/
|
|
||||||
public class ProdOrdineLavorazioneElencoFragment extends Fragment implements ITitledFragment, IScrollableFragment {
|
|
||||||
private FragmentProdOrdineLavorazioneElencoBinding mBinding;
|
|
||||||
private ProdOrdineLavorazioneHelper mHelper;
|
|
||||||
|
|
||||||
private Runnable mOnPreDestroy;
|
|
||||||
private ElevatedToolbar mToolbar;
|
|
||||||
|
|
||||||
private ProdOrdineLavorazioneListAdapter mAdapter;
|
|
||||||
|
|
||||||
private List<OrdineVenditaInevasoDTO> mOriginalOrderList;
|
|
||||||
private List<OrdineVenditaInevasoDTO> mRenderedOrderList = new ArrayList<>();
|
|
||||||
|
|
||||||
|
|
||||||
public ProdOrdineLavorazioneElencoFragment() {
|
|
||||||
// Required empty public constructor
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static ProdOrdineLavorazioneElencoFragment newInstance() {
|
|
||||||
ProdOrdineLavorazioneElencoFragment fragment = new ProdOrdineLavorazioneElencoFragment();
|
|
||||||
Bundle args = new Bundle();
|
|
||||||
fragment.setArguments(args);
|
|
||||||
return fragment;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
|
||||||
Bundle savedInstanceState) {
|
|
||||||
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_prod_ordine_lavorazione_elenco, container, false);
|
|
||||||
|
|
||||||
mBinding.ordineLavorazioneMainList.setLayoutManager(new LinearLayoutManager(getActivity()));
|
|
||||||
mBinding.ordineLavorazioneMainFab.hide();
|
|
||||||
|
|
||||||
mBinding.ordineLavorazioneMainFab.setOnClickListener(v -> onVenditaMainFabClick());
|
|
||||||
|
|
||||||
if (mToolbar != null) mToolbar.setRecyclerView(mBinding.ordineLavorazioneMainList);
|
|
||||||
|
|
||||||
init();
|
|
||||||
return mBinding.getRoot();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCreateActionBar(AppCompatTextView titleText, Context context) {
|
|
||||||
titleText.setText(context.getText(R.string.prod_ordine_lavorazione_title_fragment).toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setScrollToolbar(ElevatedToolbar toolbar) {
|
|
||||||
mToolbar = toolbar;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setOnPreDestroy(Runnable onPreDestroy) {
|
|
||||||
mOnPreDestroy = onPreDestroy;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private void init() {
|
|
||||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(getActivity());
|
|
||||||
|
|
||||||
mHelper = new ProdOrdineLavorazioneHelper(getActivity());
|
|
||||||
// mViewModel = new VenditaViewModel(getActivity(), this, mBinding, mHelper);
|
|
||||||
|
|
||||||
mHelper.loadOrdini(ordini -> {
|
|
||||||
if (ordini != null) {
|
|
||||||
UtilityToast.showToast("Caricati " + ordini.size() + " ordini");
|
|
||||||
mOriginalOrderList = ordini;
|
|
||||||
// mViewModel.setListOrder(ordini);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
mBinding.ordineLavorazioneEmptyView.setVisibility(ordini != null && ordini.size() > 0 ? View.GONE : View.VISIBLE);
|
|
||||||
|
|
||||||
refreshOrdini(ordini);
|
|
||||||
initRecyclerView();
|
|
||||||
progress.dismiss();
|
|
||||||
}, ex -> {
|
|
||||||
mOriginalOrderList = new ArrayList<>();
|
|
||||||
progress.dismiss();
|
|
||||||
|
|
||||||
String errorMessage = CommonRESTException.tryRecognizeThenGetMessage(ex);
|
|
||||||
if (errorMessage == null) errorMessage = ex.getMessage();
|
|
||||||
DialogSimpleMessageHelper.makeErrorDialog(getActivity(), new SpannableString(errorMessage), null, null).show();
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public void refreshOrdini(List<OrdineVenditaInevasoDTO> ordini) {
|
|
||||||
|
|
||||||
mRenderedOrderList.clear();
|
|
||||||
if (ordini != null && ordini.size() > 0) mRenderedOrderList.addAll(ordini);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void initRecyclerView() {
|
|
||||||
mAdapter = new ProdOrdineLavorazioneListAdapter(getActivity(), mRenderedOrderList, onSingleSelectionChanged);
|
|
||||||
mBinding.ordineLavorazioneMainList.setAdapter(mAdapter);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void refreshRecyclerView() {
|
|
||||||
mAdapter.updateItems(mRenderedOrderList);
|
|
||||||
}
|
|
||||||
|
|
||||||
private RunnableArgs<OrdineVenditaInevasoDTO> onSingleSelectionChanged = dto -> {
|
|
||||||
List<OrdineVenditaInevasoDTO> selectedOrders = mHelper.getSelectedOrders(mOriginalOrderList);
|
|
||||||
|
|
||||||
if (!SettingsManager.iDB().isFlagMultiClienteOrdV()) {
|
|
||||||
boolean allMatch = Stream.of(selectedOrders).allMatch(x -> dto.getCodAnagOrd().equalsIgnoreCase(x.getCodAnagOrd()));
|
|
||||||
|
|
||||||
if (!allMatch) {
|
|
||||||
Stream.of(selectedOrders)
|
|
||||||
.filter(x -> !x.getCodAnagOrd().equalsIgnoreCase(dto.getCodAnagOrd()))
|
|
||||||
.forEach(x -> x.setSelected(false));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (selectedOrders != null && selectedOrders.size() > 0) {
|
|
||||||
mBinding.ordineLavorazioneMainFab.show();
|
|
||||||
} else {
|
|
||||||
mBinding.ordineLavorazioneMainFab.hide();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
private void onVenditaMainFabClick() {
|
|
||||||
|
|
||||||
List<OrdineVenditaInevasoDTO> selectedOrders = mHelper.getSelectedOrders(mOriginalOrderList);
|
|
||||||
List<String> barcodes = new ArrayList<>();
|
|
||||||
|
|
||||||
String dataCons = null;
|
|
||||||
|
|
||||||
for (OrdineVenditaInevasoDTO ordine : selectedOrders) {
|
|
||||||
if (!barcodes.contains(ordine.getBarcode())) barcodes.add(ordine.getBarcode());
|
|
||||||
|
|
||||||
if (dataCons == null) dataCons = ordine.getDataConsS();
|
|
||||||
else if (!dataCons.equalsIgnoreCase(ordine.getDataConsS())) dataCons = "";
|
|
||||||
}
|
|
||||||
|
|
||||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(getActivity());
|
|
||||||
|
|
||||||
|
|
||||||
checkSelectedOrders(selectedOrders, () -> {
|
|
||||||
RunnableArgs<List<SitArtOrdDTO>> onPostGetListaArts = sitArtsDTO -> {
|
|
||||||
mHelper.getBancaliLavorazioneGiaRegistrati(selectedOrders, mtbColtList -> {
|
|
||||||
progress.dismiss();
|
|
||||||
|
|
||||||
List<String> codMarts = Stream.of(sitArtsDTO)
|
|
||||||
.distinctBy(SitArtOrdDTO::getCodMart)
|
|
||||||
.map(SitArtOrdDTO::getCodMart)
|
|
||||||
.toList();
|
|
||||||
|
|
||||||
int alreadyRegisteredUL = mtbColtList.size();
|
|
||||||
|
|
||||||
|
|
||||||
DialogSimpleMessageHelper.makeInfoDialog(getActivity(),
|
|
||||||
getText(R.string.orders).toString(),
|
|
||||||
Html.fromHtml(String.format(getActivity().getResources().getQuantityString(R.plurals.loaded_orders_message, selectedOrders.size()), selectedOrders.size())
|
|
||||||
+ "<br />" +
|
|
||||||
"<b>" + codMarts.size() + "</b> " + getActivity().getResources().getQuantityString(R.plurals.available_articles, codMarts.size())
|
|
||||||
+ "<br />" +
|
|
||||||
"<b>" + alreadyRegisteredUL + "</b> " + getActivity().getResources().getQuantityString(R.plurals.already_registered_lu, alreadyRegisteredUL)),
|
|
||||||
null,
|
|
||||||
() -> startPickingActivity(sitArtsDTO, selectedOrders, mtbColtList)
|
|
||||||
).show();
|
|
||||||
|
|
||||||
}, ex -> UtilityExceptions.defaultException(getActivity(), ex, progress));
|
|
||||||
};
|
|
||||||
|
|
||||||
OrdiniRESTConsumer.retrieveListaArticoliFromOrdiniUscita(selectedOrders, onPostGetListaArts, ex -> UtilityExceptions.defaultException(getActivity(), ex, progress));
|
|
||||||
|
|
||||||
}, progress::dismiss);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void checkSelectedOrders(List<OrdineVenditaInevasoDTO> selectedOrders, Runnable onComplete, Runnable onFailed) {
|
|
||||||
if (selectedOrders != null && selectedOrders.size() > 0) {
|
|
||||||
|
|
||||||
//Definizione della gestione collo di default
|
|
||||||
List<GestioneEnum> foundGestioni = Stream.of(selectedOrders)
|
|
||||||
.map(OrdineVenditaInevasoDTO::getGestioneEnum)
|
|
||||||
.withoutNulls()
|
|
||||||
.distinctBy(x -> x)
|
|
||||||
.toList();
|
|
||||||
|
|
||||||
if (foundGestioni != null && foundGestioni.size() > 1) {
|
|
||||||
DialogSimpleMessageHelper.makeErrorDialog(getContext(), new SpannableString(getString(R.string.error_multiple_gest)), null, onFailed::run).show();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Definizione del deposito di default
|
|
||||||
List<String> foundCodMdep = Stream.of(selectedOrders)
|
|
||||||
.map(OrdineVenditaInevasoDTO::getCodMdep)
|
|
||||||
.withoutNulls()
|
|
||||||
.distinctBy(x -> x)
|
|
||||||
.toList();
|
|
||||||
|
|
||||||
if (foundCodMdep != null && foundCodMdep.size() > 1) {
|
|
||||||
DialogSimpleMessageHelper.makeErrorDialog(getContext(), new SpannableString(getString(R.string.error_multiple_cod_mdep_ordv)), null, onFailed::run).show();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
onComplete.run();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void startPickingActivity(List<SitArtOrdDTO> ordini, List<OrdineVenditaInevasoDTO> selectedOrders, List<MtbColt> mtbColtList) {
|
|
||||||
Intent myIntent = new Intent(getActivity(), SpedizioneActivity.class);
|
|
||||||
|
|
||||||
String keyPickingList = DataCache.addItem(ordini);
|
|
||||||
myIntent.putExtra("keyPickingList", keyPickingList);
|
|
||||||
|
|
||||||
String keyTestateOrdini = DataCache.addItem(selectedOrders);
|
|
||||||
myIntent.putExtra("keyTestateOrdini", keyTestateOrdini);
|
|
||||||
|
|
||||||
String keyColliRegistrati = DataCache.addItem(mtbColtList);
|
|
||||||
myIntent.putExtra("keyColliRegistrati", keyColliRegistrati);
|
|
||||||
|
|
||||||
getActivity().startActivity(myIntent);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,183 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.gest.prod_pick_ord_lavorazione.core;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
import com.annimon.stream.Stream;
|
|
||||||
import com.google.firebase.perf.metrics.Trace;
|
|
||||||
import com.google.gson.reflect.TypeToken;
|
|
||||||
|
|
||||||
import java.lang.reflect.Type;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
|
||||||
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ISimpleOperationCallback;
|
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
|
||||||
import it.integry.integrywmsnative.core.rest.model.EsitoType;
|
|
||||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDB;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityFirebase;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityLogger;
|
|
||||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
|
||||||
import it.integry.integrywmsnative.gest.vendita.rest.OrdiniVenditaRESTConsumerService;
|
|
||||||
import retrofit2.Call;
|
|
||||||
import retrofit2.Callback;
|
|
||||||
import retrofit2.Response;
|
|
||||||
|
|
||||||
public class ProdOrdineLavorazioneHelper {
|
|
||||||
|
|
||||||
|
|
||||||
private Context mContext;
|
|
||||||
|
|
||||||
public ProdOrdineLavorazioneHelper(Context context){
|
|
||||||
mContext = context;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void loadOrdini(RunnableArgs<List<OrdineVenditaInevasoDTO>> onComplete, RunnableArgs<Exception> onFailed){
|
|
||||||
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
|
||||||
|
|
||||||
Trace perfTrace = UtilityFirebase.getNewPerformanceTrace("db_load_ords_lavorazione");
|
|
||||||
perfTrace.start();
|
|
||||||
|
|
||||||
OrdiniVenditaRESTConsumerService service = RESTBuilder.getService(OrdiniVenditaRESTConsumerService.class);
|
|
||||||
service
|
|
||||||
.listOrdiniInevasi(codMdep, "P")
|
|
||||||
.enqueue(new Callback<ServiceRESTResponse<List<OrdineVenditaInevasoDTO>>>() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onResponse(Call<ServiceRESTResponse<List<OrdineVenditaInevasoDTO>>> call, Response<ServiceRESTResponse<List<OrdineVenditaInevasoDTO>>> response) {
|
|
||||||
|
|
||||||
if(response.isSuccessful()) {
|
|
||||||
|
|
||||||
if(response.body() != null) {
|
|
||||||
if(response.body().getEsito() == EsitoType.OK) {
|
|
||||||
UtilityFirebase.stopPerformanceTrace(perfTrace, false);
|
|
||||||
onComplete.run(response.body().getDto());
|
|
||||||
} else {
|
|
||||||
UtilityFirebase.stopPerformanceTrace(perfTrace, true);
|
|
||||||
Log.e("Ord Lavorazione", response.body().getErrorMessage());
|
|
||||||
onFailed.run(new Exception(response.body().getErrorMessage()));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
UtilityFirebase.stopPerformanceTrace(perfTrace, true);
|
|
||||||
Log.e("Ord Lavorazione", response.message());
|
|
||||||
onFailed.run(new Exception(response.message()));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
UtilityFirebase.stopPerformanceTrace(perfTrace, true);
|
|
||||||
Log.e("Ord Lavorazione", "Status " + response.code() + ": " + response.message());
|
|
||||||
onFailed.run(new Exception("Status " + response.code() + ": " + response.message()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFailure(Call<ServiceRESTResponse<List<OrdineVenditaInevasoDTO>>> call, Throwable t) {
|
|
||||||
UtilityFirebase.stopPerformanceTrace(perfTrace, true);
|
|
||||||
Log.e("Ord Lavorazione", t.toString());
|
|
||||||
UtilityLogger.errorMe(new Exception(t));
|
|
||||||
onFailed.run(new Exception(t));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<OrdineVenditaInevasoDTO> getSelectedOrders(List<OrdineVenditaInevasoDTO> ordiniList) {
|
|
||||||
return Stream.of(ordiniList)
|
|
||||||
.filter(OrdineVenditaInevasoDTO::isSelected)
|
|
||||||
.toList();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// public void retrievePickingList(List<OrdineLavorazioneInevasoDTO> orders, RunnableArgs<List<SitArtOrdDTO>> onComplete, RunnableArgs<Exception> onFailed){
|
|
||||||
// String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// Trace perfTrace = UtilityFirebase.getNewPerformanceTrace("db_load_pick_lavorazione");
|
|
||||||
// perfTrace.start();
|
|
||||||
//
|
|
||||||
// List<GetPickingListDTO> getPickingListDTOs = Stream.of(orders)
|
|
||||||
// .map(x -> new GetPickingListDTO()
|
|
||||||
// .setData(x.getDataOrdS())
|
|
||||||
// .setGestione(x.getGestione())
|
|
||||||
// .setNumero(x.getNumOrd())
|
|
||||||
// .setDataConsegna(x.getDataConsS())
|
|
||||||
// .setIdViaggio(x.getIdViaggio()))
|
|
||||||
// .toList();
|
|
||||||
//
|
|
||||||
// OrdiniRESTConsumerService service = RESTBuilder.getService(OrdiniRESTConsumerService.class, 90);
|
|
||||||
// service.getArticoliFromOrdini(getPickingListDTOs).enqueue(new Callback<ServiceRESTResponse<List<SitArtOrdDTO>>>() {
|
|
||||||
// @Override
|
|
||||||
// public void onResponse(Call<ServiceRESTResponse<List<SitArtOrdDTO>>> call, Response<ServiceRESTResponse<List<SitArtOrdDTO>>> response) {
|
|
||||||
// analyzeAnswer(response, "retrieveListaArticoliFromOrdiniVendita", onComplete, onFailed);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public void onFailure(Call<ServiceRESTResponse<List<SitArtOrdDTO>>> call, Throwable t) {
|
|
||||||
// UtilityFirebase.stopPerformanceTrace(perfTrace, true);
|
|
||||||
// Log.e("Ord Lavorazione", t.toString());
|
|
||||||
// UtilityLogger.errorMe(new Exception(t));
|
|
||||||
// onFailed.run(new Exception(t));
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void getBancaliLavorazioneGiaRegistrati(List<OrdineVenditaInevasoDTO> orders, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> onFailed) {
|
|
||||||
|
|
||||||
String baseSql = "SELECT DISTINCT mtb_colt.* " +
|
|
||||||
"FROM mtb_colt, " +
|
|
||||||
" mtb_colr " +
|
|
||||||
"WHERE mtb_colt.gestione = mtb_colr.gestione " +
|
|
||||||
" AND mtb_colt.ser_collo = mtb_colr.ser_collo " +
|
|
||||||
" AND mtb_colt.data_collo = mtb_colr.data_collo " +
|
|
||||||
" AND mtb_colt.num_collo = mtb_colr.num_collo " +
|
|
||||||
" AND mtb_colt.gestione = 'L' " +
|
|
||||||
" AND mtb_colt.segno = -1 " +
|
|
||||||
// " AND mtb_colt.ser_collo = '/' " +
|
|
||||||
" AND mtb_colt.data_doc IS NULL AND ";
|
|
||||||
|
|
||||||
StringBuilder whereCond = new StringBuilder();
|
|
||||||
|
|
||||||
for(int i = 0; i < orders.size(); i++){
|
|
||||||
|
|
||||||
|
|
||||||
whereCond
|
|
||||||
.append("(mtb_colr.data_ord = '").append(UtilityDate.formatDate(orders.get(i).getDataOrdD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH)).append("' ")
|
|
||||||
.append("AND mtb_colr.num_ord = ").append(orders.get(i).getNumOrd()).append(" ")
|
|
||||||
.append("AND mtb_colr.gestione = ").append(UtilityDB.valueToString(orders.get(i).getGestione()))
|
|
||||||
.append(") ");
|
|
||||||
|
|
||||||
if(i != (orders.size() - 1)){
|
|
||||||
whereCond.append("OR ");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
baseSql += "( " + whereCond + ")";
|
|
||||||
|
|
||||||
Type typeOfObjectsList = new TypeToken<ArrayList<MtbColt>>() {}.getType();
|
|
||||||
SystemRESTConsumer.processSqlStatic(baseSql, typeOfObjectsList, new ISimpleOperationCallback<List<MtbColt>>() {
|
|
||||||
@Override
|
|
||||||
public void onSuccess(List<MtbColt> value) {
|
|
||||||
if(onComplete != null) onComplete.run(value);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFailed(Exception ex) {
|
|
||||||
if(onFailed != null) onFailed.run(ex);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,174 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.gest.prod_pick_ord_lavorazione.core;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.text.Html;
|
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.ViewGroup;
|
|
||||||
|
|
||||||
import androidx.databinding.DataBindingUtil;
|
|
||||||
import androidx.databinding.Observable;
|
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
|
||||||
|
|
||||||
import com.annimon.stream.Stream;
|
|
||||||
import com.zhukic.sectionedrecyclerview.SectionedRecyclerViewAdapter;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
|
||||||
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
|
||||||
import it.integry.integrywmsnative.databinding.FragmentProdOrdineLavorazioneListGroupModelBinding;
|
|
||||||
import it.integry.integrywmsnative.databinding.FragmentProdOrdineLavorazioneListModelBinding;
|
|
||||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
|
||||||
import it.integry.integrywmsnative.ui.fastscroll.SectionTitleProvider;
|
|
||||||
|
|
||||||
public class ProdOrdineLavorazioneListAdapter extends SectionedRecyclerViewAdapter<ProdOrdineLavorazioneListAdapter.SubheaderHolder, ProdOrdineLavorazioneListAdapter.SingleItemViewHolder> implements SectionTitleProvider {
|
|
||||||
private Context mContext;
|
|
||||||
|
|
||||||
private List<OrdineVenditaInevasoDTO> mDataset;
|
|
||||||
private RunnableArgs<OrdineVenditaInevasoDTO> mOnSingleSelectionChanged;
|
|
||||||
|
|
||||||
static class SubheaderHolder extends RecyclerView.ViewHolder {
|
|
||||||
|
|
||||||
FragmentProdOrdineLavorazioneListModelBinding binding;
|
|
||||||
|
|
||||||
SubheaderHolder(FragmentProdOrdineLavorazioneListModelBinding binding) {
|
|
||||||
super(binding.getRoot());
|
|
||||||
this.binding = binding;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
static class SingleItemViewHolder extends RecyclerView.ViewHolder {
|
|
||||||
|
|
||||||
FragmentProdOrdineLavorazioneListGroupModelBinding binding;
|
|
||||||
|
|
||||||
SingleItemViewHolder(FragmentProdOrdineLavorazioneListGroupModelBinding binding) {
|
|
||||||
super(binding.getRoot());
|
|
||||||
this.binding = binding;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public ProdOrdineLavorazioneListAdapter(Context context, List<OrdineVenditaInevasoDTO> myDataset, RunnableArgs<OrdineVenditaInevasoDTO> onSingleSelectionChanged) {
|
|
||||||
mContext = context;
|
|
||||||
mDataset = orderItems(myDataset);
|
|
||||||
mOnSingleSelectionChanged = onSingleSelectionChanged;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void updateItems(List<OrdineVenditaInevasoDTO> updatedDataset) {
|
|
||||||
mDataset.clear();
|
|
||||||
mDataset.addAll(orderItems(updatedDataset));
|
|
||||||
notifyDataSetChanged();
|
|
||||||
notifyDataChanged();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private List<OrdineVenditaInevasoDTO> orderItems(List<OrdineVenditaInevasoDTO> dataset) {
|
|
||||||
return Stream.of(dataset)
|
|
||||||
.sortBy(OrdineVenditaInevasoDTO::getRagSocOrd)
|
|
||||||
.toList();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ProdOrdineLavorazioneListAdapter.SubheaderHolder onCreateSubheaderViewHolder(ViewGroup parent, int viewType) {
|
|
||||||
FragmentProdOrdineLavorazioneListModelBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.fragment_prod_ordine_lavorazione__list_model, parent, false);
|
|
||||||
return new ProdOrdineLavorazioneListAdapter.SubheaderHolder(binding);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ProdOrdineLavorazioneListAdapter.SingleItemViewHolder onCreateItemViewHolder(ViewGroup parent, int viewType) {
|
|
||||||
FragmentProdOrdineLavorazioneListGroupModelBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.fragment_prod_ordine_lavorazione__list_group_model, parent, false);
|
|
||||||
return new ProdOrdineLavorazioneListAdapter.SingleItemViewHolder(binding);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBindSubheaderViewHolder(ProdOrdineLavorazioneListAdapter.SubheaderHolder subheaderHolder, int nextItemPosition) {
|
|
||||||
subheaderHolder.binding.ordineLavorazioneMainListGroupHeader.setText(mDataset.get(nextItemPosition).getRagSocOrd());
|
|
||||||
|
|
||||||
subheaderHolder.binding.getRoot().setOnClickListener(v -> {
|
|
||||||
|
|
||||||
boolean anySelected = Stream.of(mDataset)
|
|
||||||
.filter(x -> x.getCodAnagOrd().equals(mDataset.get(nextItemPosition).getCodAnagOrd()))
|
|
||||||
.anyMatch(OrdineVenditaInevasoDTO::isSelected);
|
|
||||||
|
|
||||||
Stream.of(mDataset)
|
|
||||||
.filter(x -> x.getCodAnagOrd().equals(mDataset.get(nextItemPosition).getCodAnagOrd()))
|
|
||||||
.forEach(x -> x.setSelected(!anySelected));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBindItemViewHolder(SingleItemViewHolder h, int itemPosition) {
|
|
||||||
final OrdineVenditaInevasoDTO ordine = mDataset.get(itemPosition);
|
|
||||||
final SingleItemViewHolder holder = h;
|
|
||||||
|
|
||||||
holder.binding.ordineLavorazioneMainListGroupItemContainerCheckBox.setTag(ordine.getNumOrd());
|
|
||||||
|
|
||||||
holder.binding.ordineLavorazioneMainListGroupItemContainerCheckBox.setOnCheckedChangeListener(null);
|
|
||||||
|
|
||||||
ordine.selected.resetOnPropertyChangedCallback();
|
|
||||||
|
|
||||||
|
|
||||||
String testataOrdString = String.format(mContext.getString(R.string.ord_ven_testata), String.valueOf(ordine.getNumOrd()), UtilityDate.formatDate(ordine.getDataOrdD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
|
||||||
holder.binding.ordineLavorazioneMainListGroupItemContainerTestataOrd.setText(Html.fromHtml(testataOrdString));
|
|
||||||
|
|
||||||
String testataDataConsString = String.format(mContext.getString(R.string.ord_ven_testata_data_cons), UtilityDate.formatDate(ordine.getDataConsD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
|
||||||
holder.binding.ordineLavorazioneMainListGroupItemContainerTestataDataCons.setText(Html.fromHtml(testataDataConsString));
|
|
||||||
|
|
||||||
holder.binding.venditaMainListGroupItemContainerDetailOrd.setText(ordine.getRifOrd());
|
|
||||||
|
|
||||||
if(!UtilityString.isNullOrEmpty(ordine.getCodJcom())) {
|
|
||||||
// holder.binding.ordineLavorazioneMainListGroupItemContainerTestataCodJcom.setText(ordine.getCodJcom());
|
|
||||||
}
|
|
||||||
|
|
||||||
holder.binding.setCheckboxValue(ordine.selected);
|
|
||||||
|
|
||||||
holder.binding.getRoot().setOnClickListener(v -> {
|
|
||||||
ordine.setSelected(!ordine.isSelected());
|
|
||||||
});
|
|
||||||
|
|
||||||
holder.binding.ordineLavorazioneMainListGroupItemContainerCheckBox.setChecked(ordine.isSelected());
|
|
||||||
|
|
||||||
//Bindable to View
|
|
||||||
ordine.selected.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
|
|
||||||
@Override
|
|
||||||
public void onPropertyChanged(Observable sender, int propertyId) {
|
|
||||||
if(holder.binding.ordineLavorazioneMainListGroupItemContainerCheckBox.getTag().equals(ordine.getNumOrd())) {
|
|
||||||
holder.binding.ordineLavorazioneMainListGroupItemContainerCheckBox.setChecked(((BindableBoolean) sender).get());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
//View to Bindable
|
|
||||||
holder.binding.ordineLavorazioneMainListGroupItemContainerCheckBox.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
|
||||||
ordine.setSelected(isChecked);
|
|
||||||
mOnSingleSelectionChanged.run(ordine);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onPlaceSubheaderBetweenItems(int position) {
|
|
||||||
return !this.mDataset.get(position).getRagSocOrd().equalsIgnoreCase(this.mDataset.get(position + 1).getRagSocOrd());
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getItemSize() {
|
|
||||||
return mDataset.size();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getSectionTitle(int position) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,447 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.gest.prod_pick_ord_lavorazione.dto;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.text.ParseException;
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
|
||||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
|
||||||
|
|
||||||
public class OrdineLavorazioneInevasoDTO {
|
|
||||||
|
|
||||||
private String data;
|
|
||||||
private Integer numero;
|
|
||||||
private Integer idViaggio;
|
|
||||||
private String gestione;
|
|
||||||
private String listino;
|
|
||||||
private String termCons;
|
|
||||||
private String codAuto;
|
|
||||||
private String codMdep;
|
|
||||||
private String descrizioneAuto;
|
|
||||||
private String codVvet;
|
|
||||||
private String descrizioneVettore;
|
|
||||||
private String dataInizTrasp;
|
|
||||||
private String descrizionePaga;
|
|
||||||
private String rifOrd;
|
|
||||||
private String codAnagOrd;
|
|
||||||
private String codJcom;
|
|
||||||
private String descrizioneCom;
|
|
||||||
private String ragSocCom;
|
|
||||||
private String ragSocOrd;
|
|
||||||
private String destinatario;
|
|
||||||
private String citta;
|
|
||||||
private String provincia;
|
|
||||||
private String indirizzo;
|
|
||||||
private BigDecimal pesoTotale;
|
|
||||||
private BigDecimal numCnfdaEvadere;
|
|
||||||
private BigDecimal numCnfDisp;
|
|
||||||
private String dataCons;
|
|
||||||
private String barcode;
|
|
||||||
private Integer numRighe;
|
|
||||||
private Integer righeInPartenza;
|
|
||||||
private BigDecimal saldoContabile;
|
|
||||||
private String codVzon;
|
|
||||||
private String ragSocOrdV;
|
|
||||||
private int colliRiservati;
|
|
||||||
private boolean existColloBoolean;
|
|
||||||
private boolean flagEvaso;
|
|
||||||
private String nomeAgente;
|
|
||||||
private String codJfas;
|
|
||||||
|
|
||||||
public BindableBoolean selected;
|
|
||||||
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO() {
|
|
||||||
this.selected = new BindableBoolean(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public String getDataOrdS() {
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Date getDataOrdD() {
|
|
||||||
return UtilityDate.recognizeDateWithExceptionHandler(getDataOrdS());
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setData(String data) {
|
|
||||||
this.data = data;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getNumOrd() {
|
|
||||||
return numero;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setNumero(Integer numero) {
|
|
||||||
this.numero = numero;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getIdViaggio() {
|
|
||||||
return idViaggio;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setIdViaggio(Integer idViaggio) {
|
|
||||||
this.idViaggio = idViaggio;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getGestione() {
|
|
||||||
return gestione;
|
|
||||||
}
|
|
||||||
|
|
||||||
public GestioneEnum getGestioneEnum() {
|
|
||||||
return GestioneEnum.fromString(getGestione());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setGestione(String gestione) {
|
|
||||||
this.gestione = gestione;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getListino() {
|
|
||||||
return listino;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setListino(String listino) {
|
|
||||||
this.listino = listino;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getTermCons() {
|
|
||||||
return termCons;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setTermCons(String termCons) {
|
|
||||||
this.termCons = termCons;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCodAuto() {
|
|
||||||
return codAuto;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setCodAuto(String codAuto) {
|
|
||||||
this.codAuto = codAuto;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCodMdep() {
|
|
||||||
return codMdep;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setCodMdep(String codMdep) {
|
|
||||||
this.codMdep = codMdep;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDescrizioneAuto() {
|
|
||||||
return descrizioneAuto;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setDescrizioneAuto(String descrizioneAuto) {
|
|
||||||
this.descrizioneAuto = descrizioneAuto;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCodVvet() {
|
|
||||||
return codVvet;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setCodVvet(String codVvet) {
|
|
||||||
this.codVvet = codVvet;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDescrizioneVettore() {
|
|
||||||
return descrizioneVettore;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setDescrizioneVettore(String descrizioneVettore) {
|
|
||||||
this.descrizioneVettore = descrizioneVettore;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDataInizTraspS() {
|
|
||||||
return dataInizTrasp;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Date getDataInizTraspD() throws ParseException {
|
|
||||||
return UtilityDate.recognizeDateWithExceptionHandler(getDataInizTraspS());
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setDataInizTrasp(String dataInizTrasp) {
|
|
||||||
this.dataInizTrasp = dataInizTrasp;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDescrizionePaga() {
|
|
||||||
return descrizionePaga;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setDescrizionePaga(String descrizionePaga) {
|
|
||||||
this.descrizionePaga = descrizionePaga;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getRifOrd() {
|
|
||||||
return rifOrd;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setRifOrd(String rifOrd) {
|
|
||||||
this.rifOrd = rifOrd;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCodAnagOrd() {
|
|
||||||
return codAnagOrd;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setCodAnagOrd(String codAnagOrd) {
|
|
||||||
this.codAnagOrd = codAnagOrd;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCodJcom() {
|
|
||||||
return codJcom;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setCodJcom(String codJcom) {
|
|
||||||
this.codJcom = codJcom;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDescrizioneCom() {
|
|
||||||
return descrizioneCom;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setDescrizioneCom(String descrizioneCom) {
|
|
||||||
this.descrizioneCom = descrizioneCom;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getRagSocCom() {
|
|
||||||
return ragSocCom;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setRagSocCom(String ragSocCom) {
|
|
||||||
this.ragSocCom = ragSocCom;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getRagSocOrd() {
|
|
||||||
return ragSocOrd;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setRagSocOrd(String ragSocOrd) {
|
|
||||||
this.ragSocOrd = ragSocOrd;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDestinatario() {
|
|
||||||
return destinatario;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setDestinatario(String destinatario) {
|
|
||||||
this.destinatario = destinatario;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCitta() {
|
|
||||||
return citta;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setCitta(String citta) {
|
|
||||||
this.citta = citta;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getProvincia() {
|
|
||||||
return provincia;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setProvincia(String provincia) {
|
|
||||||
this.provincia = provincia;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getIndirizzo() {
|
|
||||||
return indirizzo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setIndirizzo(String indirizzo) {
|
|
||||||
this.indirizzo = indirizzo;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getPesoTotale() {
|
|
||||||
return pesoTotale;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setPesoTotale(BigDecimal pesoTotale) {
|
|
||||||
this.pesoTotale = pesoTotale;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getNumCnfdaEvadere() {
|
|
||||||
return numCnfdaEvadere;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setNumCnfdaEvadere(BigDecimal numCnfdaEvadere) {
|
|
||||||
this.numCnfdaEvadere = numCnfdaEvadere;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getNumCnfDisp() {
|
|
||||||
return numCnfDisp;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setNumCnfDisp(BigDecimal numCnfDisp) {
|
|
||||||
this.numCnfDisp = numCnfDisp;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDataConsS() {
|
|
||||||
return dataCons;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Date getDataConsD() {
|
|
||||||
return UtilityDate.recognizeDateWithExceptionHandler(getDataConsS());
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setDataCons(String dataCons) {
|
|
||||||
this.dataCons = dataCons;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getBarcode() {
|
|
||||||
return barcode;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setBarcode(String barcode) {
|
|
||||||
this.barcode = barcode;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getNumRighe() {
|
|
||||||
return numRighe;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setNumRighe(Integer numRighe) {
|
|
||||||
this.numRighe = numRighe;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getRigheInPartenza() {
|
|
||||||
return righeInPartenza;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setRigheInPartenza(Integer righeInPartenza) {
|
|
||||||
this.righeInPartenza = righeInPartenza;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BigDecimal getSaldoContabile() {
|
|
||||||
return saldoContabile;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setSaldoContabile(BigDecimal saldoContabile) {
|
|
||||||
this.saldoContabile = saldoContabile;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCodVzon() {
|
|
||||||
return codVzon;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setCodVzon(String codVzon) {
|
|
||||||
this.codVzon = codVzon;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getRagSocOrdV() {
|
|
||||||
return ragSocOrdV;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setRagSocOrdV(String ragSocOrdV) {
|
|
||||||
this.ragSocOrdV = ragSocOrdV;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getColliRiservati() {
|
|
||||||
return colliRiservati;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setColliRiservati(int colliRiservati) {
|
|
||||||
this.colliRiservati = colliRiservati;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isExistColloBoolean() {
|
|
||||||
return existColloBoolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setExistColloBoolean(boolean existColloBoolean) {
|
|
||||||
this.existColloBoolean = existColloBoolean;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isFlagEvaso() {
|
|
||||||
return flagEvaso;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setFlagEvaso(boolean flagEvaso) {
|
|
||||||
this.flagEvaso = flagEvaso;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getNomeAgente() {
|
|
||||||
return nomeAgente;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setNomeAgente(String nomeAgente) {
|
|
||||||
this.nomeAgente = nomeAgente;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getCodJfas() {
|
|
||||||
return codJfas;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setCodJfas(String codJfas) {
|
|
||||||
this.codJfas = codJfas;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isSelected() {
|
|
||||||
return selected.get();
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineLavorazioneInevasoDTO setSelected(boolean selected) {
|
|
||||||
this.selected.set(selected);
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object o) {
|
|
||||||
if (this == o) return true;
|
|
||||||
if (o == null || getClass() != o.getClass()) return false;
|
|
||||||
|
|
||||||
OrdineLavorazioneInevasoDTO that = (OrdineLavorazioneInevasoDTO) o;
|
|
||||||
|
|
||||||
if (!data.equals(that.data)) return false;
|
|
||||||
if (!numero.equals(that.numero)) return false;
|
|
||||||
return getGestione().equals(that.getGestione());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
int result = data.hashCode();
|
|
||||||
result = 31 * result + numero.hashCode();
|
|
||||||
result = 31 * result + getGestione().hashCode();
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.prod_posizionamento_da_ord;
|
||||||
|
|
||||||
|
import dagger.Subcomponent;
|
||||||
|
|
||||||
|
@Subcomponent
|
||||||
|
public interface ProdPosizionamentoDaOrdComponent {
|
||||||
|
|
||||||
|
@Subcomponent.Factory
|
||||||
|
interface Factory {
|
||||||
|
|
||||||
|
ProdPosizionamentoDaOrdComponent create();
|
||||||
|
}
|
||||||
|
|
||||||
|
void inject(ProdPosizionamentoDaOrdFragment prodPosizionamentoDaOrdFragment);
|
||||||
|
}
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.prod_posizionamento_da_ord;
|
||||||
|
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import androidx.databinding.DataBindingUtil;
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.MainApplication;
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.databinding.FragmentProdPosizionamentoDaOrdBinding;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A simple {@link Fragment} subclass.
|
||||||
|
* Use the {@link ProdPosizionamentoDaOrdFragment#newInstance} factory method to
|
||||||
|
* create an instance of this fragment.
|
||||||
|
*/
|
||||||
|
public class ProdPosizionamentoDaOrdFragment extends Fragment {
|
||||||
|
|
||||||
|
private FragmentProdPosizionamentoDaOrdBinding mBinding = null;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
ProdPosizionamentoDaOrdViewModel mViewModel;
|
||||||
|
|
||||||
|
public ProdPosizionamentoDaOrdFragment() {
|
||||||
|
// Required empty public constructor
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static ProdPosizionamentoDaOrdFragment newInstance() {
|
||||||
|
ProdPosizionamentoDaOrdFragment fragment = new ProdPosizionamentoDaOrdFragment();
|
||||||
|
return fragment;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
|
Bundle savedInstanceState) {
|
||||||
|
// Inflate the layout for this fragment
|
||||||
|
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_prod_posizionamento_da_ord, container,false);
|
||||||
|
|
||||||
|
MainApplication.appComponent
|
||||||
|
.prodPosizionamentoDaOrdComponent()
|
||||||
|
.create()
|
||||||
|
.inject(this);
|
||||||
|
|
||||||
|
// mViewModel.setListener(this);
|
||||||
|
|
||||||
|
mBinding.setLifecycleOwner(this);
|
||||||
|
mBinding.setView(this);
|
||||||
|
mBinding.setViewmodel(mViewModel);
|
||||||
|
|
||||||
|
return mBinding.getRoot();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.prod_posizionamento_da_ord;
|
||||||
|
|
||||||
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
|
import dagger.Module;
|
||||||
|
import dagger.Provides;
|
||||||
|
|
||||||
|
@Module(subcomponents = ProdPosizionamentoDaOrdComponent.class)
|
||||||
|
public class ProdPosizionamentoDaOrdModule {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Singleton
|
||||||
|
ProdPosizionamentoDaOrdViewModel providesProdPosizionamentoDaOrdViewModel() {
|
||||||
|
return new ProdPosizionamentoDaOrdViewModel();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.prod_posizionamento_da_ord;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
public class ProdPosizionamentoDaOrdViewModel {
|
||||||
|
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public ProdPosizionamentoDaOrdViewModel() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -3,27 +3,23 @@ package it.integry.integrywmsnative.gest.prod_recupero_materiale;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
import androidx.appcompat.widget.AppCompatTextView;
|
import androidx.appcompat.widget.AppCompatTextView;
|
||||||
import androidx.databinding.DataBindingUtil;
|
import androidx.databinding.DataBindingUtil;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
|
|
||||||
import android.view.LayoutInflater;
|
import java.util.ArrayList;
|
||||||
import android.view.View;
|
import java.util.List;
|
||||||
import android.view.ViewGroup;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
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.interfaces.IPoppableActivity;
|
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
|
||||||
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
|
||||||
import it.integry.integrywmsnative.databinding.FragmentProdRecuperoMaterialeBinding;
|
import it.integry.integrywmsnative.databinding.FragmentProdRecuperoMaterialeBinding;
|
||||||
import it.integry.integrywmsnative.gest.prod_recupero_materiale.core.ProdRecuperoMaterialeHelper;
|
import it.integry.integrywmsnative.gest.prod_recupero_materiale.core.ProdRecuperoMaterialeHelper;
|
||||||
import it.integry.integrywmsnative.gest.prod_recupero_materiale.viewmodel.ProdRecuperoMaterialeViewModel;
|
import it.integry.integrywmsnative.gest.prod_recupero_materiale.viewmodel.ProdRecuperoMaterialeViewModel;
|
||||||
import it.integry.integrywmsnative.gest.prod_versamento_materiale.ProdVersamentoMaterialeFragment;
|
|
||||||
import it.integry.integrywmsnative.gest.prod_versamento_materiale.core.ProdVersamentoMaterialHelper;
|
|
||||||
import it.integry.integrywmsnative.gest.prod_versamento_materiale.viewmodel.ProdVersamentoMaterialViewModel;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A simple {@link Fragment} subclass.
|
* A simple {@link Fragment} subclass.
|
||||||
@@ -33,6 +29,8 @@ public class ProdRecuperoMaterialeFragment extends Fragment implements ITitledFr
|
|||||||
private ProdRecuperoMaterialeViewModel mViewmodel;
|
private ProdRecuperoMaterialeViewModel mViewmodel;
|
||||||
private ProdRecuperoMaterialeHelper mHelper;
|
private ProdRecuperoMaterialeHelper mHelper;
|
||||||
|
|
||||||
|
private List<Runnable> mOnPreDestroyList = new ArrayList<>();
|
||||||
|
|
||||||
public ProdRecuperoMaterialeFragment() {
|
public ProdRecuperoMaterialeFragment() {
|
||||||
// Required empty public constructor
|
// Required empty public constructor
|
||||||
}
|
}
|
||||||
@@ -57,7 +55,6 @@ public class ProdRecuperoMaterialeFragment extends Fragment implements ITitledFr
|
|||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_prod_recupero_materiale, container, false);
|
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_prod_recupero_materiale, container, false);
|
||||||
|
|
||||||
|
|
||||||
init();
|
init();
|
||||||
return mBinding.getRoot();
|
return mBinding.getRoot();
|
||||||
}
|
}
|
||||||
@@ -75,10 +72,17 @@ public class ProdRecuperoMaterialeFragment extends Fragment implements ITitledFr
|
|||||||
titleText.setText(context.getText(R.string.prod_recupero_materiale_title_fragment).toString());
|
titleText.setText(context.getText(R.string.prod_recupero_materiale_title_fragment).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) {
|
||||||
|
this.mOnPreDestroyList.add(onActionBarPreDestroy);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroy() {
|
public void onDestroy() {
|
||||||
|
for (Runnable onPreDestroy : mOnPreDestroyList) {
|
||||||
|
onPreDestroy.run();
|
||||||
|
}
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -262,7 +262,7 @@ public class ProdRecuperoMaterialeHelper {
|
|||||||
.distinct()
|
.distinct()
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
ArticoloRESTConsumer.getByCodMart(codMarts, arts -> {
|
ArticoloRESTConsumer.getByCodMartStatic(codMarts, arts -> {
|
||||||
|
|
||||||
if(arts != null && arts.size() > 0) {
|
if(arts != null && arts.size() > 0) {
|
||||||
for (HistoryVersamentoProdULDTO value : newUlList) {
|
for (HistoryVersamentoProdULDTO value : newUlList) {
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
package it.integry.integrywmsnative.gest.prod_recupero_materiale.viewmodel;
|
package it.integry.integrywmsnative.gest.prod_recupero_materiale.viewmodel;
|
||||||
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.content.Context;
|
|
||||||
import android.text.SpannableString;
|
import android.text.SpannableString;
|
||||||
|
|
||||||
import androidx.databinding.ObservableArrayList;
|
import androidx.databinding.ObservableArrayList;
|
||||||
import androidx.databinding.ObservableField;
|
import androidx.databinding.ObservableField;
|
||||||
|
import androidx.fragment.app.FragmentActivity;
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
|
||||||
import com.annimon.stream.Stream;
|
import com.annimon.stream.Stream;
|
||||||
@@ -18,6 +17,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
|
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
|
||||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||||
@@ -31,6 +31,7 @@ import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsume
|
|||||||
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
||||||
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;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||||
@@ -39,15 +40,16 @@ import it.integry.integrywmsnative.databinding.FragmentProdRecuperoMaterialeBind
|
|||||||
import it.integry.integrywmsnative.gest.prod_recupero_materiale.core.HistoryULsListAdapter;
|
import it.integry.integrywmsnative.gest.prod_recupero_materiale.core.HistoryULsListAdapter;
|
||||||
import it.integry.integrywmsnative.gest.prod_recupero_materiale.core.ProdRecuperoMaterialeHelper;
|
import it.integry.integrywmsnative.gest.prod_recupero_materiale.core.ProdRecuperoMaterialeHelper;
|
||||||
import it.integry.integrywmsnative.gest.prod_recupero_materiale.dto.HistoryVersamentoProdULDTO;
|
import it.integry.integrywmsnative.gest.prod_recupero_materiale.dto.HistoryVersamentoProdULDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
||||||
import it.integry.integrywmsnative.view.dialogs.DialogCommon;
|
import it.integry.integrywmsnative.view.dialogs.DialogCommon;
|
||||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
|
||||||
import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLU;
|
import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLU;
|
||||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
|
||||||
|
|
||||||
public class ProdRecuperoMaterialeViewModel {
|
public class ProdRecuperoMaterialeViewModel {
|
||||||
|
|
||||||
private Context mContext;
|
private FragmentActivity mContext;
|
||||||
|
|
||||||
private FragmentProdRecuperoMaterialeBinding mBinding;
|
private FragmentProdRecuperoMaterialeBinding mBinding;
|
||||||
private ProdRecuperoMaterialeHelper mHelper;
|
private ProdRecuperoMaterialeHelper mHelper;
|
||||||
@@ -61,7 +63,7 @@ public class ProdRecuperoMaterialeViewModel {
|
|||||||
|
|
||||||
private int barcodeScannerIstanceID = -1;
|
private int barcodeScannerIstanceID = -1;
|
||||||
|
|
||||||
public void init(Activity context, FragmentProdRecuperoMaterialeBinding binding, ProdRecuperoMaterialeHelper helper, Runnable onRecuperoCompleted) {
|
public void init(FragmentActivity context, FragmentProdRecuperoMaterialeBinding binding, ProdRecuperoMaterialeHelper helper, Runnable onRecuperoCompleted) {
|
||||||
mContext = context;
|
mContext = context;
|
||||||
mBinding = binding;
|
mBinding = binding;
|
||||||
mHelper = helper;
|
mHelper = helper;
|
||||||
@@ -152,32 +154,72 @@ public class ProdRecuperoMaterialeViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// private void dispatchItem(HistoryVersamentoProdULDTO item, MtbColt sourceMtbColt, Dialog dialogProgress) {
|
||||||
|
// BigDecimal qtaDaEvadere = BigDecimal.ZERO;
|
||||||
|
//
|
||||||
|
// qtaDaEvadere = qtaDaEvadere.add(item.getQtaCol());
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// DialogInputQuantity.DTO dto = new DialogInputQuantity.DTO()
|
||||||
|
// .setBatchLot(item.getPartitaMag())
|
||||||
|
// .setQtaDaEvadere(null)
|
||||||
|
// .setQtaOrd(null)
|
||||||
|
// .setMtbAart(item.getMtbAart())
|
||||||
|
// .setCanPartitaMagBeChanged(false)
|
||||||
|
// .setNumCnf(1)
|
||||||
|
// .setQtaCnf(item.getQtaCnf())
|
||||||
|
// .setQtaTot(item.getQtaCnf())
|
||||||
|
// .setMaxQta(qtaDaEvadere)
|
||||||
|
// .setQtaDisponibile(qtaDaEvadere);
|
||||||
|
//
|
||||||
|
// DialogInputQuantity.makeBase(mContext, dto, false, quantity -> {
|
||||||
|
// onItemDispatched(item, quantity.qtaTot.getBigDecimal(), sourceMtbColt, dialogProgress);
|
||||||
|
// }, () -> {
|
||||||
|
// if (dialogProgress != null) dialogProgress.dismiss();
|
||||||
|
// }).show();
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
private void dispatchItem(HistoryVersamentoProdULDTO item, MtbColt sourceMtbColt, Dialog dialogProgress) {
|
private void dispatchItem(HistoryVersamentoProdULDTO item, MtbColt sourceMtbColt, Dialog dialogProgress) {
|
||||||
BigDecimal qtaDaEvadere = BigDecimal.ZERO;
|
BigDecimal qtaDaEvadere = BigDecimal.ZERO;
|
||||||
|
BigDecimal numCnfDaEvadere = BigDecimal.ZERO;
|
||||||
|
|
||||||
qtaDaEvadere = qtaDaEvadere.add(item.getQtaCol());
|
qtaDaEvadere = qtaDaEvadere.add(item.getQtaCol());
|
||||||
|
|
||||||
|
if(!UtilityBigDecimal.equalsTo(qtaDaEvadere, BigDecimal.ZERO)) {
|
||||||
|
numCnfDaEvadere = UtilityBigDecimal.divide(qtaDaEvadere, item.getQtaCnf());
|
||||||
|
}
|
||||||
|
|
||||||
DialogInputQuantity.DTO dto = new DialogInputQuantity.DTO()
|
DialogInputQuantityV2DTO dialogInputQuantityV2DTO = new DialogInputQuantityV2DTO()
|
||||||
.setBatchLot(item.getPartitaMag())
|
|
||||||
.setQtaDaEvadere(null)
|
|
||||||
.setQtaOrd(null)
|
|
||||||
.setMtbAart(item.getMtbAart())
|
.setMtbAart(item.getMtbAart())
|
||||||
.setCanPartitaMagBeChanged(false)
|
.setInitialNumCnf(BigDecimal.ONE)
|
||||||
.setNumCnf(1)
|
.setInitialQtaCnf(item.getQtaCnf())
|
||||||
.setQtaCnf(item.getQtaCnf())
|
.setInitialQtaTot(item.getQtaCnf())
|
||||||
.setQtaTot(item.getQtaCnf())
|
|
||||||
.setMaxQta(qtaDaEvadere)
|
|
||||||
.setQtaDisponibile(qtaDaEvadere);
|
|
||||||
|
|
||||||
DialogInputQuantity.makeBase(mContext, dto, false, quantity -> {
|
.setTotalQtaAvailable(qtaDaEvadere)
|
||||||
onItemDispatched(item, quantity.qtaTot.getBigDecimal(), sourceMtbColt, dialogProgress);
|
.setTotalNumCnfAvailable(numCnfDaEvadere)
|
||||||
}, () -> {
|
.setQtaCnfAvailable(item.getQtaCnf())
|
||||||
if (dialogProgress != null) dialogProgress.dismiss();
|
.setPartitaMag(item.getPartitaMag())
|
||||||
}).show();
|
// .setDataScad(item.getDa)
|
||||||
|
.setCanOverflowOrderQuantity(false)
|
||||||
|
.setCanLUBeClosed(false);
|
||||||
|
|
||||||
|
DialogInputQuantityV2
|
||||||
|
.newInstance(dialogInputQuantityV2DTO, (resultDTO, shouldCloseLU) -> {
|
||||||
|
PickedQuantityDTO pickedQuantityDTO = new PickedQuantityDTO()
|
||||||
|
.setNumCnf(resultDTO.getNumCnf())
|
||||||
|
.setQtaCnf(resultDTO.getQtaCnf())
|
||||||
|
.setQtaTot(resultDTO.getQtaTot())
|
||||||
|
.setPartitaMag(resultDTO.getPartitaMag())
|
||||||
|
.setDataScad(resultDTO.getDataScad());
|
||||||
|
|
||||||
|
onItemDispatched(item, resultDTO.getQtaTot(), sourceMtbColt, dialogProgress);
|
||||||
|
}, () -> {
|
||||||
|
if (dialogProgress != null) dialogProgress.dismiss();
|
||||||
|
})
|
||||||
|
.show(mContext.getSupportFragmentManager(), "tag");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void onItemDispatched(HistoryVersamentoProdULDTO item, BigDecimal quantity, MtbColt sourceMtbColt, Dialog progress) {
|
private void onItemDispatched(HistoryVersamentoProdULDTO item, BigDecimal quantity, MtbColt sourceMtbColt, Dialog progress) {
|
||||||
|
|
||||||
if (progress == null) {
|
if (progress == null) {
|
||||||
@@ -257,7 +299,7 @@ public class ProdRecuperoMaterialeViewModel {
|
|||||||
colliToSave.add(mtbColtScarico);
|
colliToSave.add(mtbColtScarico);
|
||||||
|
|
||||||
boolean finalShouldPrint = shouldPrint;
|
boolean finalShouldPrint = shouldPrint;
|
||||||
ColliMagazzinoRESTConsumer.saveColli(colliToSave, value -> {
|
ColliMagazzinoRESTConsumer.saveColliStatic(colliToSave, value -> {
|
||||||
|
|
||||||
FBToast.successToast(mContext, mContext.getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT);
|
FBToast.successToast(mContext, mContext.getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT);
|
||||||
|
|
||||||
|
|||||||
@@ -2,14 +2,16 @@ package it.integry.integrywmsnative.gest.prod_versamento_materiale;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
import androidx.appcompat.widget.AppCompatTextView;
|
import androidx.appcompat.widget.AppCompatTextView;
|
||||||
import androidx.databinding.DataBindingUtil;
|
import androidx.databinding.DataBindingUtil;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
|
|
||||||
import android.view.LayoutInflater;
|
import java.util.ArrayList;
|
||||||
import android.view.View;
|
import java.util.List;
|
||||||
import android.view.ViewGroup;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
|
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
|
||||||
@@ -17,7 +19,6 @@ import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
|||||||
import it.integry.integrywmsnative.databinding.FragmentProdVersamentoMaterialeBinding;
|
import it.integry.integrywmsnative.databinding.FragmentProdVersamentoMaterialeBinding;
|
||||||
import it.integry.integrywmsnative.gest.prod_versamento_materiale.core.ProdVersamentoMaterialHelper;
|
import it.integry.integrywmsnative.gest.prod_versamento_materiale.core.ProdVersamentoMaterialHelper;
|
||||||
import it.integry.integrywmsnative.gest.prod_versamento_materiale.viewmodel.ProdVersamentoMaterialViewModel;
|
import it.integry.integrywmsnative.gest.prod_versamento_materiale.viewmodel.ProdVersamentoMaterialViewModel;
|
||||||
import it.integry.integrywmsnative.gest.versamento_merce.viewmodel.VersamentoMerceViewModel;
|
|
||||||
|
|
||||||
public class ProdVersamentoMaterialeFragment extends Fragment implements ITitledFragment {
|
public class ProdVersamentoMaterialeFragment extends Fragment implements ITitledFragment {
|
||||||
|
|
||||||
@@ -25,6 +26,8 @@ public class ProdVersamentoMaterialeFragment extends Fragment implements ITitled
|
|||||||
private ProdVersamentoMaterialViewModel mViewmodel;
|
private ProdVersamentoMaterialViewModel mViewmodel;
|
||||||
private ProdVersamentoMaterialHelper mHelper;
|
private ProdVersamentoMaterialHelper mHelper;
|
||||||
|
|
||||||
|
private List<Runnable> mOnPreDestroyList = new ArrayList<>();
|
||||||
|
|
||||||
public ProdVersamentoMaterialeFragment() {
|
public ProdVersamentoMaterialeFragment() {
|
||||||
// Required empty public constructor
|
// Required empty public constructor
|
||||||
}
|
}
|
||||||
@@ -40,9 +43,7 @@ public class ProdVersamentoMaterialeFragment extends Fragment implements ITitled
|
|||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
|
|
||||||
mViewmodel = new ProdVersamentoMaterialViewModel();
|
mViewmodel = new ProdVersamentoMaterialViewModel();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -58,17 +59,13 @@ public class ProdVersamentoMaterialeFragment extends Fragment implements ITitled
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAttach(Context context) {
|
public void onDestroy() {
|
||||||
super.onAttach(context);
|
super.onDestroy();
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDetach() {
|
|
||||||
super.onDetach();
|
|
||||||
|
|
||||||
|
for (Runnable onPreDestroy : mOnPreDestroyList) {
|
||||||
|
onPreDestroy.run();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -81,7 +78,6 @@ public class ProdVersamentoMaterialeFragment extends Fragment implements ITitled
|
|||||||
});
|
});
|
||||||
|
|
||||||
mViewmodel.openLU();
|
mViewmodel.openLU();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -89,4 +85,9 @@ public class ProdVersamentoMaterialeFragment extends Fragment implements ITitled
|
|||||||
public void onCreateActionBar(AppCompatTextView titleText, Context context) {
|
public void onCreateActionBar(AppCompatTextView titleText, Context context) {
|
||||||
titleText.setText(context.getText(R.string.prod_versamento_materiale_title_fragment).toString());
|
titleText.setText(context.getText(R.string.prod_versamento_materiale_title_fragment).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) {
|
||||||
|
this.mOnPreDestroyList.add(onActionBarPreDestroy);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -113,7 +113,7 @@ public class ProdVersamentoMaterialViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void choosePosition() {
|
private void choosePosition() {
|
||||||
DialogAskPositionOfLU.makeBase(mContext, null, true, (status, mtbDepoPosizione) -> {
|
DialogAskPositionOfLU.makeBase(mContext, true, (status, mtbDepoPosizione) -> {
|
||||||
|
|
||||||
if (status == DialogConsts.Results.ABORT) {
|
if (status == DialogConsts.Results.ABORT) {
|
||||||
((IPoppableActivity) mContext).pop();
|
((IPoppableActivity) mContext).pop();
|
||||||
|
|||||||
@@ -58,12 +58,17 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled
|
|||||||
private List<OrdineWrapper> mRenderedOrderList = new ArrayList<>();
|
private List<OrdineWrapper> mRenderedOrderList = new ArrayList<>();
|
||||||
private boolean mRedirectToNewOrder = true;
|
private boolean mRedirectToNewOrder = true;
|
||||||
|
|
||||||
|
private final List<Runnable> mOnPreDestroyList = new ArrayList<>();
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
GrigliaRepository mGrigliaRepository;
|
GrigliaRepository mGrigliaRepository;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
ArticoliOrdineRepository mArticoliOrdineRepository;
|
ArticoliOrdineRepository mArticoliOrdineRepository;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
ArticoloGrigliaRepository mArticoloGrigliaRepository;
|
ArticoloGrigliaRepository mArticoloGrigliaRepository;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
OrdineRepository mOrdineRepository;
|
OrdineRepository mOrdineRepository;
|
||||||
|
|
||||||
@@ -117,6 +122,11 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled
|
|||||||
titleText.setText(context.getText(R.string.pv_elenco_ordiniA_title_fragment).toString());
|
titleText.setText(context.getText(R.string.pv_elenco_ordiniA_title_fragment).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) {
|
||||||
|
this.mOnPreDestroyList.add(onActionBarPreDestroy);
|
||||||
|
}
|
||||||
|
|
||||||
private void setGriglia(Griglia griglia) {
|
private void setGriglia(Griglia griglia) {
|
||||||
mGriglia = griglia;
|
mGriglia = griglia;
|
||||||
mBinding.fabNewOrder.setVisibility(View.VISIBLE);
|
mBinding.fabNewOrder.setVisibility(View.VISIBLE);
|
||||||
@@ -191,8 +201,6 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void deleteOrdine(Ordine ordine) {
|
private void deleteOrdine(Ordine ordine) {
|
||||||
|
|
||||||
|
|
||||||
String text = "Stai per eliminare un ordine sei sicuro?";
|
String text = "Stai per eliminare un ordine sei sicuro?";
|
||||||
|
|
||||||
DialogSimpleMessageHelper.makeWarningDialog(getActivity(), new SpannableString(Html.fromHtml(text)), null, () -> getActivity().runOnUiThread(() -> {
|
DialogSimpleMessageHelper.makeWarningDialog(getActivity(), new SpannableString(Html.fromHtml(text)), null, () -> getActivity().runOnUiThread(() -> {
|
||||||
@@ -231,8 +239,8 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setOnPreDestroy(Runnable onPreDestroy) {
|
public void setScrollableOnPreDestroy(Runnable onPreDestroy) {
|
||||||
|
this.mOnPreDestroyList.add(onPreDestroy);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -242,4 +250,13 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled
|
|||||||
fetchOrders();
|
fetchOrders();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDestroy() {
|
||||||
|
super.onDestroy();
|
||||||
|
|
||||||
|
for (Runnable onPreDestroy : mOnPreDestroyList) {
|
||||||
|
onPreDestroy.run();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,114 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.gest.pv_ordini_acquisto;
|
|
||||||
|
|
||||||
import android.app.Dialog;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.text.SpannableString;
|
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.View;
|
|
||||||
import android.view.ViewGroup;
|
|
||||||
|
|
||||||
import androidx.appcompat.widget.AppCompatTextView;
|
|
||||||
import androidx.databinding.DataBindingUtil;
|
|
||||||
import androidx.fragment.app.Fragment;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
|
||||||
import it.integry.integrywmsnative.core.data_store.db.repository.implementations.OrdineDataSource;
|
|
||||||
import it.integry.integrywmsnative.core.data_store.db.view_model.OrdineWithGriglia;
|
|
||||||
import it.integry.integrywmsnative.core.interfaces.IFilterableFragment;
|
|
||||||
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
|
|
||||||
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
|
||||||
import it.integry.integrywmsnative.databinding.FragmentPvOrdiniATrasmessiElencoBinding;
|
|
||||||
import it.integry.integrywmsnative.gest.pv_ordini_acquisto.core.OrdineAcquistoPvTransmittedListAdapter;
|
|
||||||
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.dialog.DialogOrdineProduzioneFiltroAvanzato;
|
|
||||||
import it.integry.integrywmsnative.ui.ElevatedToolbar;
|
|
||||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
|
||||||
|
|
||||||
public class PVOrdiniAcquistoTransmittedListFragment extends Fragment implements ITitledFragment, IScrollableFragment, IFilterableFragment {
|
|
||||||
|
|
||||||
private FragmentPvOrdiniATrasmessiElencoBinding mBinding;
|
|
||||||
private OrdineAcquistoPvTransmittedListAdapter mAdapter;
|
|
||||||
|
|
||||||
private List<OrdineWithGriglia> mOriginalOrderList;
|
|
||||||
private List<OrdineWithGriglia> mRenderedOrderList = new ArrayList<>();
|
|
||||||
|
|
||||||
private DialogOrdineProduzioneFiltroAvanzato.DialogOrdineProduzioneFiltroAvanzatoViewModel mAppliedFilterViewModel;
|
|
||||||
|
|
||||||
public PVOrdiniAcquistoTransmittedListFragment() {
|
|
||||||
// Required empty public constructor
|
|
||||||
}
|
|
||||||
|
|
||||||
public static PVOrdiniAcquistoTransmittedListFragment newInstance() {
|
|
||||||
PVOrdiniAcquistoTransmittedListFragment fragment = new PVOrdiniAcquistoTransmittedListFragment();
|
|
||||||
Bundle args = new Bundle();
|
|
||||||
fragment.setArguments(args);
|
|
||||||
return fragment;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
|
|
||||||
// Inflate the layout for this fragment
|
|
||||||
|
|
||||||
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_pv_ordini_a_trasmessi_elenco, container, false);
|
|
||||||
mBinding.setView(this);
|
|
||||||
|
|
||||||
|
|
||||||
//init();
|
|
||||||
return mBinding.getRoot();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCreateActionBar(AppCompatTextView titleText, Context context) {
|
|
||||||
titleText.setText(context.getText(R.string.pv_elenco_ordiniA_title_fragment).toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setScrollToolbar(ElevatedToolbar toolbar) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setOnPreDestroy(Runnable onPreDestroy) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFilterClick() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private void init(){
|
|
||||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(getActivity());
|
|
||||||
|
|
||||||
|
|
||||||
//TODO: resolve databinding
|
|
||||||
OrdineDataSource repository = null; //new OrdineDataSource();
|
|
||||||
|
|
||||||
repository.selectAllTransmitted((ordini)->{
|
|
||||||
mOriginalOrderList = ordini;
|
|
||||||
mBinding.ordiniAEmptyView.setVisibility(ordini != null && ordini.size() > 0 ? View.GONE : View.VISIBLE);
|
|
||||||
refreshRenderedOrdini(ordini);
|
|
||||||
initRecyclerView();
|
|
||||||
progress.dismiss();
|
|
||||||
},(e)->{
|
|
||||||
progress.dismiss();
|
|
||||||
String errorMessage = e.getMessage();
|
|
||||||
DialogSimpleMessageHelper.makeErrorDialog(getActivity(), new SpannableString(errorMessage), null, null).show();
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private void initRecyclerView() {
|
|
||||||
mAdapter = new OrdineAcquistoPvTransmittedListAdapter(getActivity(), mRenderedOrderList);
|
|
||||||
mBinding.ordineAMainList.setAdapter(mAdapter);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void refreshRenderedOrdini(List<OrdineWithGriglia> ordini) {
|
|
||||||
mRenderedOrderList.clear();
|
|
||||||
if(ordini != null) mRenderedOrderList.addAll(ordini);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,133 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.gest.pv_ordini_acquisto.core;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.text.Html;
|
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.ViewGroup;
|
|
||||||
|
|
||||||
import androidx.databinding.DataBindingUtil;
|
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
|
||||||
|
|
||||||
import com.annimon.stream.Stream;
|
|
||||||
import com.zhukic.sectionedrecyclerview.SectionedRecyclerViewAdapter;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
|
||||||
import it.integry.integrywmsnative.core.data_store.db.view_model.OrdineWithGriglia;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
|
||||||
import it.integry.integrywmsnative.databinding.FragmentOrdineAPvTransmittedListModelBinding;
|
|
||||||
import it.integry.integrywmsnative.databinding.FragmentOrdiniAPvListSingleItemBinding;
|
|
||||||
import it.integry.integrywmsnative.ui.fastscroll.SectionTitleProvider;
|
|
||||||
|
|
||||||
public class OrdineAcquistoPvTransmittedListAdapter extends SectionedRecyclerViewAdapter<OrdineAcquistoPvTransmittedListAdapter.SubheaderHolder, OrdineAcquistoPvTransmittedListAdapter.SingleItemViewHolder> implements SectionTitleProvider {
|
|
||||||
|
|
||||||
|
|
||||||
private Context mContext;
|
|
||||||
|
|
||||||
private List<OrdineWithGriglia> mOriginalDataset;
|
|
||||||
private List<OrdineWithGriglia> mDataset;
|
|
||||||
|
|
||||||
|
|
||||||
static class SubheaderHolder extends RecyclerView.ViewHolder {
|
|
||||||
|
|
||||||
FragmentOrdineAPvTransmittedListModelBinding binding;
|
|
||||||
|
|
||||||
SubheaderHolder(FragmentOrdineAPvTransmittedListModelBinding binding) {
|
|
||||||
super(binding.getRoot());
|
|
||||||
this.binding = binding;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
static class SingleItemViewHolder extends RecyclerView.ViewHolder {
|
|
||||||
|
|
||||||
FragmentOrdiniAPvListSingleItemBinding binding;
|
|
||||||
|
|
||||||
SingleItemViewHolder(FragmentOrdiniAPvListSingleItemBinding binding) {
|
|
||||||
super(binding.getRoot());
|
|
||||||
this.binding = binding;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public OrdineAcquistoPvTransmittedListAdapter(Context context, List<OrdineWithGriglia> myDataset) {
|
|
||||||
mContext = context;
|
|
||||||
mOriginalDataset = myDataset;
|
|
||||||
mDataset = orderItems(myDataset);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void updateItems(List<OrdineWithGriglia> updatedDataset) {
|
|
||||||
mDataset.clear();
|
|
||||||
mDataset.addAll(orderItems(updatedDataset));
|
|
||||||
notifyDataSetChanged();
|
|
||||||
notifyDataChanged();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private List<OrdineWithGriglia> orderItems(List<OrdineWithGriglia> dataset) {
|
|
||||||
return Stream.of(dataset)
|
|
||||||
.distinctBy(OrdineWithGriglia::getGriglia)
|
|
||||||
.sortBy(x -> UtilityDate.formatDate(x.getOrdine().getDataIns(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH))
|
|
||||||
.toList();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public SubheaderHolder onCreateSubheaderViewHolder(ViewGroup parent, int viewType) {
|
|
||||||
FragmentOrdineAPvTransmittedListModelBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.fragment_ordine_a_pv_transmitted__list_model, parent, false);
|
|
||||||
return new SubheaderHolder(binding);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public SingleItemViewHolder onCreateItemViewHolder(ViewGroup parent, int viewType) {
|
|
||||||
FragmentOrdiniAPvListSingleItemBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.fragment_ordini_a_pv__list_single_item, parent, false);
|
|
||||||
return new SingleItemViewHolder(binding);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBindSubheaderViewHolder(OrdineAcquistoPvTransmittedListAdapter.SubheaderHolder subheaderHolder, int nextItemPosition) {
|
|
||||||
subheaderHolder.binding.ordineAPvMainListGroupHeader.setText(mDataset.get(nextItemPosition).getGriglia().getCodAlis());
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBindItemViewHolder(OrdineAcquistoPvTransmittedListAdapter.SingleItemViewHolder h, int itemPosition) {
|
|
||||||
final OrdineWithGriglia ordine = mDataset.get(itemPosition);
|
|
||||||
final OrdineAcquistoPvTransmittedListAdapter.SingleItemViewHolder holder = h;
|
|
||||||
|
|
||||||
|
|
||||||
String testataOrdString = String.format(mContext.getString(R.string.ord_acq_testata), String.valueOf(ordine.getOrdine().getOrdineId()), UtilityDate.formatDate(ordine.getOrdine().getDataIns(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
|
||||||
|
|
||||||
holder.binding.badge1.setText(ordine.getOrdine().isTransmitted() ? "TRASMESSO" : "NON TRASMESSO");
|
|
||||||
|
|
||||||
holder.binding.descriptionMain.setText(Html.fromHtml(testataOrdString));
|
|
||||||
|
|
||||||
|
|
||||||
holder.binding.getRoot().setOnClickListener(v -> {
|
|
||||||
//TODO: aprire descrizione Ordine
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onPlaceSubheaderBetweenItems(int position) {
|
|
||||||
return !(this.mDataset.get(position).getGriglia().getGrigliaId() == this.mDataset.get(position + 1).getGriglia().getGrigliaId());
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getItemSize() {
|
|
||||||
return mDataset.size();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getSectionTitle(int position) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -25,6 +25,7 @@ import com.tfb.fbtoast.FBToast;
|
|||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
@@ -83,6 +84,8 @@ public class RettificaGiacenzeFragment extends Fragment implements ITitledFragme
|
|||||||
|
|
||||||
private Dialog mCurrentProgress;
|
private Dialog mCurrentProgress;
|
||||||
|
|
||||||
|
private List<Runnable> mOnPreDestroyList = new ArrayList<>();
|
||||||
|
|
||||||
public RettificaGiacenzeFragment() {
|
public RettificaGiacenzeFragment() {
|
||||||
// Required empty public constructor
|
// Required empty public constructor
|
||||||
}
|
}
|
||||||
@@ -198,12 +201,25 @@ public class RettificaGiacenzeFragment extends Fragment implements ITitledFragme
|
|||||||
super.onAttach(context);
|
super.onAttach(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDestroy() {
|
||||||
|
for(Runnable onPreDestroy : mOnPreDestroyList) {
|
||||||
|
onPreDestroy.run();
|
||||||
|
}
|
||||||
|
|
||||||
|
super.onDestroy();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreateActionBar(AppCompatTextView titleText, Context context) {
|
public void onCreateActionBar(AppCompatTextView titleText, Context context) {
|
||||||
titleText.setText(context.getText(R.string.rettifica_giacenze_fragment_title).toString());
|
titleText.setText(context.getText(R.string.rettifica_giacenze_fragment_title).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) {
|
||||||
|
this.mOnPreDestroyList.add(onActionBarPreDestroy);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private final RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
|
private final RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
|
||||||
BarcodeManager.disable();
|
BarcodeManager.disable();
|
||||||
@@ -489,7 +505,7 @@ public class RettificaGiacenzeFragment extends Fragment implements ITitledFragme
|
|||||||
DialogYesNo.make(getActivity(), "Posiziona UL", "Vuoi cambiare la posizione della UL corrente?", result -> {
|
DialogYesNo.make(getActivity(), "Posiziona UL", "Vuoi cambiare la posizione della UL corrente?", result -> {
|
||||||
switch (result) {
|
switch (result) {
|
||||||
case YES:
|
case YES:
|
||||||
DialogAskPositionOfLU.makeBase(getActivity(), mViewModel.getCurrentMtbColt(), false, (status, mtbDepoPosizione) -> {
|
DialogAskPositionOfLU.makeBase(getActivity(), false, (status, mtbDepoPosizione) -> {
|
||||||
if (status == DialogConsts.Results.ABORT) {
|
if (status == DialogConsts.Results.ABORT) {
|
||||||
onComplete.run(false, null);
|
onComplete.run(false, null);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
package it.integry.integrywmsnative.gest.rettifica_giacenze;
|
package it.integry.integrywmsnative.gest.rettifica_giacenze;
|
||||||
|
|
||||||
import androidx.databinding.ObservableArrayList;
|
|
||||||
|
|
||||||
import com.annimon.stream.Stream;
|
import com.annimon.stream.Stream;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
@@ -27,12 +25,12 @@ import it.integry.integrywmsnative.core.model.MtbColr;
|
|||||||
import it.integry.integrywmsnative.core.model.MtbCols;
|
import it.integry.integrywmsnative.core.model.MtbCols;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
|
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
|
||||||
|
import it.integry.integrywmsnative.core.model.dto.PickDataDTO;
|
||||||
import it.integry.integrywmsnative.core.report.ReportManager;
|
import it.integry.integrywmsnative.core.report.ReportManager;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
@@ -40,7 +38,6 @@ import it.integry.integrywmsnative.core.utility.UtilityString;
|
|||||||
import it.integry.integrywmsnative.gest.rettifica_giacenze.core.RettificaGiacenzeRESTConsumer;
|
import it.integry.integrywmsnative.gest.rettifica_giacenze.core.RettificaGiacenzeRESTConsumer;
|
||||||
import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.FornitoreDTO;
|
import it.integry.integrywmsnative.gest.rettifica_giacenze.dto.FornitoreDTO;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException;
|
import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException;
|
||||||
import it.integry.integrywmsnative.core.model.dto.PickDataDTO;
|
|
||||||
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
|
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
|
||||||
|
|
||||||
@@ -61,6 +58,8 @@ public class RettificaGiacenzeViewModel {
|
|||||||
private String mCurrentCodMdep;
|
private String mCurrentCodMdep;
|
||||||
private boolean mIsCreatedLU;
|
private boolean mIsCreatedLU;
|
||||||
|
|
||||||
|
private boolean mAnyEditDone = false;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public RettificaGiacenzeViewModel(ArticoloRESTConsumer articoloRESTConsumer,
|
public RettificaGiacenzeViewModel(ArticoloRESTConsumer articoloRESTConsumer,
|
||||||
ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
|
ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
|
||||||
@@ -89,14 +88,10 @@ public class RettificaGiacenzeViewModel {
|
|||||||
this.sendOnLoadingEnded();
|
this.sendOnLoadingEnded();
|
||||||
|
|
||||||
this.sendOnLUOpenRequest((mtbColt, created) -> {
|
this.sendOnLUOpenRequest((mtbColt, created) -> {
|
||||||
//if(mtbColt.getGestioneEnum() == GestioneEnum.ACQUISTO) {
|
|
||||||
// this.sendError(new InvalidLUGestioneException(GestioneEnum.ACQUISTO));
|
|
||||||
//} else {
|
|
||||||
this.mCurrentMtbColt = mtbColt;
|
this.mCurrentMtbColt = mtbColt;
|
||||||
this.mIsCreatedLU = created;
|
this.mIsCreatedLU = created;
|
||||||
|
|
||||||
this.sendLUOpened(mtbColt);
|
this.sendLUOpened(mtbColt);
|
||||||
//}
|
|
||||||
});
|
});
|
||||||
}, this::sendError);
|
}, this::sendError);
|
||||||
}
|
}
|
||||||
@@ -327,7 +322,7 @@ public class RettificaGiacenzeViewModel {
|
|||||||
|
|
||||||
mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
||||||
|
|
||||||
if (!mIsCreatedLU && mCurrentMtbColt.isDocumentPresent()) {
|
// if (!mIsCreatedLU && mCurrentMtbColt.isDocumentPresent()) {
|
||||||
mtbColr
|
mtbColr
|
||||||
.setQtaCol(BigDecimal.ZERO)
|
.setQtaCol(BigDecimal.ZERO)
|
||||||
.setNumCnf(BigDecimal.ZERO)
|
.setNumCnf(BigDecimal.ZERO)
|
||||||
@@ -350,42 +345,46 @@ public class RettificaGiacenzeViewModel {
|
|||||||
|
|
||||||
mCurrentMtbColt.getMtbColr().add(mtbColr);
|
mCurrentMtbColt.getMtbColr().add(mtbColr);
|
||||||
|
|
||||||
|
this.mAnyEditDone = true;
|
||||||
|
|
||||||
this.sendOnRowSaved();
|
this.sendOnRowSaved();
|
||||||
this.sendOnLoadingEnded();
|
this.sendOnLoadingEnded();
|
||||||
|
|
||||||
if (shouldCloseLU) closeLU(false, null);
|
if (shouldCloseLU) closeLU(true, null);
|
||||||
}, this::sendError);
|
}, this::sendError);
|
||||||
} else {
|
// } else {
|
||||||
mtbColr
|
// mtbColr
|
||||||
.setQtaCol(qtaTot)
|
// .setQtaCol(qtaTot)
|
||||||
.setQtaCnf(qtaCnf)
|
// .setQtaCnf(qtaCnf)
|
||||||
.setNumCnf(numCnf);
|
// .setNumCnf(numCnf);
|
||||||
|
//
|
||||||
MtbColt cloneMtbColt = (MtbColt) mCurrentMtbColt.clone();
|
// MtbColt cloneMtbColt = (MtbColt) mCurrentMtbColt.clone();
|
||||||
cloneMtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
// cloneMtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
||||||
|
//
|
||||||
cloneMtbColt.setMtbColr(new ObservableArrayList<>());
|
// cloneMtbColt.setMtbColr(new ObservableArrayList<>());
|
||||||
|
//
|
||||||
cloneMtbColt.getMtbColr().add(mtbColr);
|
// cloneMtbColt.getMtbColr().add(mtbColr);
|
||||||
|
//
|
||||||
mColliMagazzinoRESTConsumer.saveCollo(cloneMtbColt, value -> {
|
// mColliMagazzinoRESTConsumer.saveCollo(cloneMtbColt, value -> {
|
||||||
mtbColr
|
// mtbColr
|
||||||
.setDataCollo(value.getDataColloS())
|
// .setDataCollo(value.getDataColloS())
|
||||||
.setNumCollo(value.getNumCollo())
|
// .setNumCollo(value.getNumCollo())
|
||||||
.setGestione(value.getGestione())
|
// .setGestione(value.getGestione())
|
||||||
.setSerCollo(value.getSerCollo())
|
// .setSerCollo(value.getSerCollo())
|
||||||
.setRiga(value.getMtbColr().get(0).getRiga())
|
// .setRiga(value.getMtbColr().get(0).getRiga())
|
||||||
.setUntMis(pickingObjectDTO.getMtbAart().getUntMis())
|
// .setUntMis(pickingObjectDTO.getMtbAart().getUntMis())
|
||||||
.setMtbAart(pickingObjectDTO.getMtbAart());
|
// .setMtbAart(pickingObjectDTO.getMtbAart());
|
||||||
|
//
|
||||||
mCurrentMtbColt.getMtbColr().add(mtbColr);
|
// mCurrentMtbColt.getMtbColr().add(mtbColr);
|
||||||
|
//
|
||||||
this.sendOnRowSaved();
|
// this.mAnyEditDone = true;
|
||||||
this.sendOnLoadingEnded();
|
//
|
||||||
|
// this.sendOnRowSaved();
|
||||||
if (shouldCloseLU) closeLU(false, null);
|
// this.sendOnLoadingEnded();
|
||||||
}, this::sendError);
|
//
|
||||||
}
|
// if (shouldCloseLU) closeLU(true, null);
|
||||||
|
// }, this::sendError);
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -417,9 +416,11 @@ public class RettificaGiacenzeViewModel {
|
|||||||
|
|
||||||
if(shouldChangePosition) {
|
if(shouldChangePosition) {
|
||||||
this.savePosizione(mtbDepoPosizione, () -> {
|
this.savePosizione(mtbDepoPosizione, () -> {
|
||||||
|
this.mAnyEditDone = false;
|
||||||
postSaveBehaviour(onComplete);
|
postSaveBehaviour(onComplete);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
this.mAnyEditDone = false;
|
||||||
postSaveBehaviour(onComplete);
|
postSaveBehaviour(onComplete);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -427,7 +428,7 @@ public class RettificaGiacenzeViewModel {
|
|||||||
}, this::sendError);
|
}, this::sendError);
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!UtilityString.isNullOrEmpty(mDefaultCausale) && saveCausale) {
|
if (!UtilityString.isNullOrEmpty(mDefaultCausale) && (saveCausale || mAnyEditDone)) {
|
||||||
this.saveCausaleRettificaGiacenze(saveAction);
|
this.saveCausaleRettificaGiacenze(saveAction);
|
||||||
} else {
|
} else {
|
||||||
saveAction.run();
|
saveAction.run();
|
||||||
@@ -548,7 +549,7 @@ public class RettificaGiacenzeViewModel {
|
|||||||
private void saveEditedRow(MtbColr mtbColrToUpdate, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, Date dataScad, boolean shouldCloseLU) {
|
private void saveEditedRow(MtbColr mtbColrToUpdate, BigDecimal numCnf, BigDecimal qtaCnf, BigDecimal qtaTot, String partitaMag, Date dataScad, boolean shouldCloseLU) {
|
||||||
this.sendOnLoadingStarted();
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
if(!mIsCreatedLU && mCurrentMtbColt.isDocumentPresent()) {
|
// if(!mIsCreatedLU && mCurrentMtbColt.isDocumentPresent()) {
|
||||||
|
|
||||||
this.mColliMagazzinoRESTConsumer.creaRettificaCollo(
|
this.mColliMagazzinoRESTConsumer.creaRettificaCollo(
|
||||||
mtbColrToUpdate,
|
mtbColrToUpdate,
|
||||||
@@ -564,49 +565,53 @@ public class RettificaGiacenzeViewModel {
|
|||||||
this.mCurrentMtbColt.getMtbColr().remove(mtbColrToUpdate);
|
this.mCurrentMtbColt.getMtbColr().remove(mtbColrToUpdate);
|
||||||
this.mCurrentMtbColt.getMtbColr().add(mtbColrToUpdate);
|
this.mCurrentMtbColt.getMtbColr().add(mtbColrToUpdate);
|
||||||
|
|
||||||
|
this.mAnyEditDone = true;
|
||||||
|
|
||||||
this.sendOnRowSaved();
|
this.sendOnRowSaved();
|
||||||
},
|
},
|
||||||
this::sendError
|
this::sendError
|
||||||
);
|
);
|
||||||
|
|
||||||
} else {
|
// } else {
|
||||||
|
//
|
||||||
MtbColt mtbColt = new MtbColt()
|
// MtbColt mtbColt = new MtbColt()
|
||||||
.setNumCollo(mtbColrToUpdate.getNumCollo())
|
// .setNumCollo(mtbColrToUpdate.getNumCollo())
|
||||||
.setDataCollo(mtbColrToUpdate.getDataColloS())
|
// .setDataCollo(mtbColrToUpdate.getDataColloS())
|
||||||
.setSerCollo(mtbColrToUpdate.getSerCollo())
|
// .setSerCollo(mtbColrToUpdate.getSerCollo())
|
||||||
.setGestione(mtbColrToUpdate.getGestione())
|
// .setGestione(mtbColrToUpdate.getGestione())
|
||||||
.setMtbColr(new ObservableArrayList<>());
|
// .setMtbColr(new ObservableArrayList<>());
|
||||||
mtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
// mtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
||||||
|
//
|
||||||
final MtbColr mtbColr = (MtbColr) mtbColrToUpdate.clone();
|
// final MtbColr mtbColr = (MtbColr) mtbColrToUpdate.clone();
|
||||||
mtbColr
|
// mtbColr
|
||||||
.setNumCnf(numCnf.subtract(mtbColr.getNumCnf()))
|
// .setNumCnf(numCnf.subtract(mtbColr.getNumCnf()))
|
||||||
.setQtaCnf(qtaCnf)
|
// .setQtaCnf(qtaCnf)
|
||||||
.setQtaCol(qtaTot.subtract(mtbColr.getQtaCol()))
|
// .setQtaCol(qtaTot.subtract(mtbColr.getQtaCol()))
|
||||||
.setPartitaMag(partitaMag)
|
// .setPartitaMag(partitaMag)
|
||||||
.setDataScadPartita(dataScad)
|
// .setDataScadPartita(dataScad)
|
||||||
.setUtente(SettingsManager.i().getUser().getFullname())
|
// .setUtente(SettingsManager.i().getUser().getFullname())
|
||||||
.setCausale(MtbColr.Causale.RETTIFICA)
|
// .setCausale(MtbColr.Causale.RETTIFICA)
|
||||||
.setDatetimeRow(UtilityDate.getDateInstance())
|
// .setDatetimeRow(UtilityDate.getDateInstance())
|
||||||
.setOperation(CommonModelConsts.OPERATION.INSERT);
|
// .setOperation(CommonModelConsts.OPERATION.INSERT);
|
||||||
|
//
|
||||||
mtbColt.getMtbColr().add(mtbColr);
|
// mtbColt.getMtbColr().add(mtbColr);
|
||||||
|
//
|
||||||
this.mColliMagazzinoRESTConsumer.saveCollo(mtbColt, (value) -> {
|
// this.mColliMagazzinoRESTConsumer.saveCollo(mtbColt, (value) -> {
|
||||||
|
//
|
||||||
mtbColr.setNumCnf(numCnf)
|
// mtbColr.setNumCnf(numCnf)
|
||||||
.setQtaCnf(qtaCnf)
|
// .setQtaCnf(qtaCnf)
|
||||||
.setQtaCol(qtaTot);
|
// .setQtaCol(qtaTot);
|
||||||
|
//
|
||||||
this.mCurrentMtbColt.getMtbColr().remove(mtbColrToUpdate);
|
// this.mCurrentMtbColt.getMtbColr().remove(mtbColrToUpdate);
|
||||||
this.mCurrentMtbColt.getMtbColr().add(mtbColr);
|
// this.mCurrentMtbColt.getMtbColr().add(mtbColr);
|
||||||
|
//
|
||||||
this.sendOnRowSaved();
|
// this.mAnyEditDone = true;
|
||||||
this.sendOnLoadingEnded();
|
//
|
||||||
|
// this.sendOnRowSaved();
|
||||||
}, this::sendError);
|
// this.sendOnLoadingEnded();
|
||||||
}
|
//
|
||||||
|
// }, this::sendError);
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
public void deleteRow(MtbColr mtbColrToDelete) {
|
public void deleteRow(MtbColr mtbColrToDelete) {
|
||||||
@@ -614,7 +619,7 @@ public class RettificaGiacenzeViewModel {
|
|||||||
if (shouldDelete) {
|
if (shouldDelete) {
|
||||||
this.sendOnLoadingStarted();
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
if(!mIsCreatedLU && mCurrentMtbColt.isDocumentPresent()) {
|
// if(!mIsCreatedLU && mCurrentMtbColt.isDocumentPresent()) {
|
||||||
this.mColliMagazzinoRESTConsumer.creaRettificaCollo(
|
this.mColliMagazzinoRESTConsumer.creaRettificaCollo(
|
||||||
mtbColrToDelete,
|
mtbColrToDelete,
|
||||||
BigDecimal.ZERO,
|
BigDecimal.ZERO,
|
||||||
@@ -626,37 +631,37 @@ public class RettificaGiacenzeViewModel {
|
|||||||
},
|
},
|
||||||
this::sendError
|
this::sendError
|
||||||
);
|
);
|
||||||
} else {
|
// } else {
|
||||||
MtbColt mtbColt = new MtbColt()
|
// MtbColt mtbColt = new MtbColt()
|
||||||
.setNumCollo(mtbColrToDelete.getNumCollo())
|
// .setNumCollo(mtbColrToDelete.getNumCollo())
|
||||||
.setDataCollo(mtbColrToDelete.getDataColloS())
|
// .setDataCollo(mtbColrToDelete.getDataColloS())
|
||||||
.setSerCollo(mtbColrToDelete.getSerCollo())
|
// .setSerCollo(mtbColrToDelete.getSerCollo())
|
||||||
.setGestione(mtbColrToDelete.getGestione())
|
// .setGestione(mtbColrToDelete.getGestione())
|
||||||
.setMtbColr(new ObservableArrayList<>());
|
// .setMtbColr(new ObservableArrayList<>());
|
||||||
mtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
// mtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
||||||
|
//
|
||||||
MtbColr mtbColr = (MtbColr) mtbColrToDelete.clone();
|
// MtbColr mtbColr = (MtbColr) mtbColrToDelete.clone();
|
||||||
mtbColr
|
// mtbColr
|
||||||
.setNumCnf(mtbColr.getNumCnf().multiply(new BigDecimal(-1)))
|
// .setNumCnf(mtbColr.getNumCnf().multiply(new BigDecimal(-1)))
|
||||||
.setQtaCnf(mtbColr.getQtaCnf())
|
// .setQtaCnf(mtbColr.getQtaCnf())
|
||||||
.setQtaCol(mtbColr.getQtaCol().multiply(new BigDecimal(-1)))
|
// .setQtaCol(mtbColr.getQtaCol().multiply(new BigDecimal(-1)))
|
||||||
.setPartitaMag(mtbColr.getPartitaMag())
|
// .setPartitaMag(mtbColr.getPartitaMag())
|
||||||
.setDataScadPartita(mtbColr.getDataScadPartitaD())
|
// .setDataScadPartita(mtbColr.getDataScadPartitaD())
|
||||||
.setUtente(SettingsManager.i().getUser().getFullname())
|
// .setUtente(SettingsManager.i().getUser().getFullname())
|
||||||
.setCausale(MtbColr.Causale.RETTIFICA)
|
// .setCausale(MtbColr.Causale.RETTIFICA)
|
||||||
.setDatetimeRow(UtilityDate.getDateInstance())
|
// .setDatetimeRow(UtilityDate.getDateInstance())
|
||||||
.setOperation(CommonModelConsts.OPERATION.INSERT);
|
// .setOperation(CommonModelConsts.OPERATION.INSERT);
|
||||||
|
//
|
||||||
mtbColt.getMtbColr().add(mtbColr);
|
// mtbColt.getMtbColr().add(mtbColr);
|
||||||
|
//
|
||||||
this.mColliMagazzinoRESTConsumer.saveCollo(mtbColt, (value) -> {
|
// this.mColliMagazzinoRESTConsumer.saveCollo(mtbColt, (value) -> {
|
||||||
this.mCurrentMtbColt.getMtbColr().remove(mtbColrToDelete);
|
// this.mCurrentMtbColt.getMtbColr().remove(mtbColrToDelete);
|
||||||
|
//
|
||||||
this.sendOnRowSaved();
|
// this.sendOnRowSaved();
|
||||||
this.sendOnLoadingEnded();
|
// this.sendOnLoadingEnded();
|
||||||
|
//
|
||||||
}, this::sendError);
|
// }, this::sendError);
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,19 +1,12 @@
|
|||||||
package it.integry.integrywmsnative.gest.settings;
|
package it.integry.integrywmsnative.gest.settings;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
import androidx.appcompat.app.ActionBar;
|
|
||||||
import androidx.appcompat.widget.AppCompatTextView;
|
|
||||||
import androidx.databinding.DataBindingUtil;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import androidx.fragment.app.Fragment;
|
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.View;
|
|
||||||
import android.view.ViewGroup;
|
|
||||||
|
|
||||||
|
import androidx.appcompat.widget.AppCompatTextView;
|
||||||
import androidx.preference.PreferenceFragmentCompat;
|
import androidx.preference.PreferenceFragmentCompat;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.databinding.FragmentMainSettingsBinding;
|
|
||||||
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
||||||
|
|
||||||
public class MainSettingsFragment extends PreferenceFragmentCompat implements ITitledFragment {
|
public class MainSettingsFragment extends PreferenceFragmentCompat implements ITitledFragment {
|
||||||
@@ -25,6 +18,11 @@ public class MainSettingsFragment extends PreferenceFragmentCompat implements IT
|
|||||||
titleText.setText(context.getText(R.string.settings_category).toString());
|
titleText.setText(context.getText(R.string.settings_category).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||||
setPreferencesFromResource(R.xml.app_preferences, rootKey);
|
setPreferencesFromResource(R.xml.app_preferences, rootKey);
|
||||||
|
|||||||
@@ -1,98 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.gest.settings;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.os.Bundle;
|
|
||||||
|
|
||||||
import androidx.appcompat.widget.AppCompatTextView;
|
|
||||||
import androidx.preference.CheckBoxPreference;
|
|
||||||
import androidx.preference.EditTextPreference;
|
|
||||||
import androidx.preference.ListPreference;
|
|
||||||
import androidx.preference.PreferenceCategory;
|
|
||||||
import androidx.preference.PreferenceFragmentCompat;
|
|
||||||
import androidx.preference.PreferenceScreen;
|
|
||||||
import androidx.appcompat.view.ContextThemeWrapper;
|
|
||||||
import android.util.TypedValue;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ISimpleOperationCallback;
|
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
|
||||||
import it.integry.integrywmsnative.core.settings.SharedPrefKeys;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityArray;
|
|
||||||
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
|
||||||
|
|
||||||
public class SettingsPreferenceFragment extends PreferenceFragmentCompat implements ITitledFragment {
|
|
||||||
@Override
|
|
||||||
public void onCreatePreferences(Bundle bundle, String s) {
|
|
||||||
|
|
||||||
PrinterRESTConsumer.getAvailablePrintersStatic(new ISimpleOperationCallback<List<String>>() {
|
|
||||||
@Override
|
|
||||||
public void onSuccess(final List<String> availablePrinters) {
|
|
||||||
initScreen(availablePrinters);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFailed(Exception ex) {
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCreateActionBar(AppCompatTextView titleText, Context context) {
|
|
||||||
titleText.setText(context.getText(R.string.settings_category).toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void initScreen(List<String> availablePrinters) {
|
|
||||||
// Load the Preferences from the XML file
|
|
||||||
Context activityContext = getActivity();
|
|
||||||
|
|
||||||
PreferenceScreen preferenceScreen = getPreferenceManager().createPreferenceScreen(activityContext);
|
|
||||||
setPreferenceScreen(preferenceScreen);
|
|
||||||
|
|
||||||
TypedValue themeTypedValue = new TypedValue();
|
|
||||||
activityContext.getTheme().resolveAttribute(R.attr.preferenceTheme, themeTypedValue, true);
|
|
||||||
ContextThemeWrapper contextThemeWrapper = new ContextThemeWrapper(activityContext, themeTypedValue.resourceId);
|
|
||||||
|
|
||||||
// We instance each Preference using our ContextThemeWrapper object
|
|
||||||
PreferenceCategory preferenceCategory = new PreferenceCategory(contextThemeWrapper);
|
|
||||||
preferenceCategory.setTitle("Category test");
|
|
||||||
|
|
||||||
EditTextPreference editTextPreference = new EditTextPreference(contextThemeWrapper);
|
|
||||||
editTextPreference.setKey("edittext");
|
|
||||||
editTextPreference.setTitle("EditText test");
|
|
||||||
|
|
||||||
CheckBoxPreference checkBoxPreference = new CheckBoxPreference(contextThemeWrapper);
|
|
||||||
checkBoxPreference.setTitle("Checkbox test");
|
|
||||||
checkBoxPreference.setKey("checkbox");
|
|
||||||
checkBoxPreference.setChecked(true);
|
|
||||||
|
|
||||||
availablePrinters.add(0, "Nessuna");
|
|
||||||
String[] availablePritersArray = UtilityArray.listToArray(availablePrinters, String.class);
|
|
||||||
|
|
||||||
ListPreference listPreferece = new ListPreference(contextThemeWrapper);
|
|
||||||
listPreferece.setTitle("Current printer");
|
|
||||||
listPreferece.setKey(SharedPrefKeys.ACCETTAZIONE_PRINTER);
|
|
||||||
listPreferece.setEntries(availablePritersArray);
|
|
||||||
listPreferece.setEntryValues(availablePritersArray);
|
|
||||||
|
|
||||||
// It's REALLY IMPORTANT to add Preferences with child Preferences to the Preference Hierarchy first
|
|
||||||
// Otherwise, the PreferenceManager will fail to load their keys
|
|
||||||
|
|
||||||
// First we add the category to the root PreferenceScreen
|
|
||||||
getPreferenceScreen().addPreference(preferenceCategory);
|
|
||||||
|
|
||||||
// Then their child to it
|
|
||||||
preferenceCategory.addPreference(editTextPreference);
|
|
||||||
preferenceCategory.addPreference(checkBoxPreference);
|
|
||||||
preferenceCategory.addPreference(listPreferece);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -39,7 +39,10 @@ import it.integry.integrywmsnative.core.expansion.RunnableArgsss;
|
|||||||
import it.integry.integrywmsnative.core.model.MtbAart;
|
import it.integry.integrywmsnative.core.model.MtbAart;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
|
||||||
|
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO;
|
import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO;
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
||||||
@@ -55,10 +58,10 @@ import it.integry.integrywmsnative.gest.spedizione.core.SpedizioneListModel;
|
|||||||
import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException;
|
import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
|
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
|
||||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
|
||||||
import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentView;
|
import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentView;
|
||||||
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.DialogConsts;
|
import it.integry.integrywmsnative.view.dialogs.DialogConsts;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.ask_position_of_lu.DialogAskPositionOfLU;
|
||||||
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.DialogSimpleInputHelper;
|
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleInputHelper;
|
||||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||||
@@ -67,6 +70,7 @@ import it.integry.integrywmsnative.view.dialogs.input_peso_lu.DialogInputPeso;
|
|||||||
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2;
|
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2;
|
||||||
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.scan_art.DialogScanArt;
|
import it.integry.integrywmsnative.view.dialogs.scan_art.DialogScanArt;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.yes_no.DialogYesNo;
|
||||||
|
|
||||||
public class SpedizioneActivity extends BaseActivity implements SpedizioneViewModel.Listener, BottomSheetFragmentLUContentViewModel.Listener, BottomSheetFragmentLUContentView.Listener {
|
public class SpedizioneActivity extends BaseActivity implements SpedizioneViewModel.Listener, BottomSheetFragmentLUContentViewModel.Listener, BottomSheetFragmentLUContentView.Listener {
|
||||||
|
|
||||||
@@ -84,6 +88,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
public BindableBoolean noItemsToPick = new BindableBoolean(false);
|
public BindableBoolean noItemsToPick = new BindableBoolean(false);
|
||||||
public BindableBoolean noLUPresent = new BindableBoolean(true);
|
public BindableBoolean noLUPresent = new BindableBoolean(true);
|
||||||
public BindableBoolean bottomSheetEnabled = new BindableBoolean(false);
|
public BindableBoolean bottomSheetEnabled = new BindableBoolean(false);
|
||||||
|
public BindableBoolean closeOrderButtonEnabled = new BindableBoolean(false);
|
||||||
|
|
||||||
private boolean mEnableGiacenza;
|
private boolean mEnableGiacenza;
|
||||||
private boolean mFlagShowCodForn;
|
private boolean mFlagShowCodForn;
|
||||||
@@ -91,14 +96,16 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
private int barcodeScannerIstanceID = -1;
|
private int barcodeScannerIstanceID = -1;
|
||||||
|
|
||||||
private ArrayList<SitArtOrdDTO> mSitArtOrd;
|
private ArrayList<SitArtOrdDTO> mSitArtOrd;
|
||||||
private ArrayList<OrdineVenditaInevasoDTO> mTestateOrdini;
|
private ArrayList<OrdineUscitaInevasoDTO> mTestateOrdini;
|
||||||
private ArrayList<MtbColt> mColliRegistrati;
|
private ArrayList<MtbColt> mColliRegistrati;
|
||||||
|
private GestioneEnum mGestioneCol;
|
||||||
|
private int mSegnoCol;
|
||||||
|
|
||||||
private boolean mShouldCloseActivity;
|
private boolean mShouldCloseActivity;
|
||||||
|
|
||||||
private final int PICK_UL_REQUEST = 1;
|
private final int PICK_UL_REQUEST = 1;
|
||||||
|
|
||||||
public static void startActivity(Context context, List<SitArtOrdDTO> ordini, List<OrdineVenditaInevasoDTO> selectedOrders, List<MtbColt> mtbColtList) {
|
public static void startActivity(Context context, List<SitArtOrdDTO> ordini, List<OrdineUscitaInevasoDTO> selectedOrders, List<MtbColt> mtbColtList, GestioneEnum gestioneCol, int segnoCol) {
|
||||||
Intent myIntent = new Intent(context, SpedizioneActivity.class);
|
Intent myIntent = new Intent(context, SpedizioneActivity.class);
|
||||||
|
|
||||||
String keyPickingList = DataCache.addItem(ordini);
|
String keyPickingList = DataCache.addItem(ordini);
|
||||||
@@ -110,6 +117,12 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
String keyColliRegistrati = DataCache.addItem(mtbColtList);
|
String keyColliRegistrati = DataCache.addItem(mtbColtList);
|
||||||
myIntent.putExtra("keyColliRegistrati", keyColliRegistrati);
|
myIntent.putExtra("keyColliRegistrati", keyColliRegistrati);
|
||||||
|
|
||||||
|
String keyGestioneCol = DataCache.addItem(gestioneCol);
|
||||||
|
myIntent.putExtra("keyGestioneCol", keyGestioneCol);
|
||||||
|
|
||||||
|
String keySegnoCol = DataCache.addItem(segnoCol);
|
||||||
|
myIntent.putExtra("keySegnoCol", keySegnoCol);
|
||||||
|
|
||||||
context.startActivity(myIntent);
|
context.startActivity(myIntent);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -120,6 +133,8 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
mSitArtOrd = DataCache.retrieveItem(getIntent().getStringExtra("keyPickingList"));
|
mSitArtOrd = DataCache.retrieveItem(getIntent().getStringExtra("keyPickingList"));
|
||||||
mTestateOrdini = DataCache.retrieveItem(getIntent().getStringExtra("keyTestateOrdini"));
|
mTestateOrdini = DataCache.retrieveItem(getIntent().getStringExtra("keyTestateOrdini"));
|
||||||
mColliRegistrati = DataCache.retrieveItem(getIntent().getStringExtra("keyColliRegistrati"));
|
mColliRegistrati = DataCache.retrieveItem(getIntent().getStringExtra("keyColliRegistrati"));
|
||||||
|
mGestioneCol = DataCache.retrieveItem(getIntent().getStringExtra("keyGestioneCol"));
|
||||||
|
mSegnoCol = DataCache.retrieveItem(getIntent().getStringExtra("keySegnoCol"));
|
||||||
|
|
||||||
mBindings = DataBindingUtil.setContentView(this, R.layout.activity_spedizione);
|
mBindings = DataBindingUtil.setContentView(this, R.layout.activity_spedizione);
|
||||||
|
|
||||||
@@ -150,6 +165,10 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
this.initRecyclerView();
|
this.initRecyclerView();
|
||||||
|
|
||||||
|
|
||||||
|
String reportNameSpedizioneChiudiOrdine = SettingsManager.iDB().getReportNameSpedizionChiudiOrdine();
|
||||||
|
closeOrderButtonEnabled.set(!UtilityString.isNullOrEmpty(reportNameSpedizioneChiudiOrdine));
|
||||||
|
|
||||||
|
|
||||||
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
||||||
mEnableGiacenza = !SettingsManager.iDB().isFlagSpedizioneEnableFakeGiacenza();
|
mEnableGiacenza = !SettingsManager.iDB().isFlagSpedizioneEnableFakeGiacenza();
|
||||||
boolean enableCheckPartitaMag = SettingsManager.iDB().isEnableCheckPartitaMagCheckPickingV();
|
boolean enableCheckPartitaMag = SettingsManager.iDB().isEnableCheckPartitaMagCheckPickingV();
|
||||||
@@ -157,7 +176,17 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
boolean shouldAskPesoLU = SettingsManager.iDB().isFlagAskPesoColloSpedizione();
|
boolean shouldAskPesoLU = SettingsManager.iDB().isFlagAskPesoColloSpedizione();
|
||||||
|
|
||||||
if (mEnableGiacenza) this.openProgress();
|
if (mEnableGiacenza) this.openProgress();
|
||||||
mViewmodel.init(codMdep, mEnableGiacenza, enableCheckPartitaMag, shouldAskPesoLU, canOverflowOrderQuantity, mSitArtOrd, mTestateOrdini, mColliRegistrati);
|
mViewmodel.init(
|
||||||
|
codMdep,
|
||||||
|
mEnableGiacenza,
|
||||||
|
enableCheckPartitaMag,
|
||||||
|
shouldAskPesoLU,
|
||||||
|
canOverflowOrderQuantity,
|
||||||
|
mSitArtOrd,
|
||||||
|
mTestateOrdini,
|
||||||
|
mColliRegistrati,
|
||||||
|
reportNameSpedizioneChiudiOrdine,
|
||||||
|
mGestioneCol, mSegnoCol);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -606,6 +635,12 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void closeOrder() {
|
||||||
|
this.mBindings.spedizioneFab.close(true);
|
||||||
|
|
||||||
|
this.mViewmodel.closeOrder();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onLoadingStarted() {
|
public void onLoadingStarted() {
|
||||||
this.openProgress();
|
this.openProgress();
|
||||||
@@ -620,6 +655,8 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
public void onLUOpened(MtbColt mtbColt) {
|
public void onLUOpened(MtbColt mtbColt) {
|
||||||
this.addExtraItemsEnabled.set(SettingsManager.iDB().isFlagCanAddExtraItemSpedizione());
|
this.addExtraItemsEnabled.set(SettingsManager.iDB().isFlagCanAddExtraItemSpedizione());
|
||||||
noLUPresent.set(false);
|
noLUPresent.set(false);
|
||||||
|
closeOrderButtonEnabled.set(false);
|
||||||
|
|
||||||
FBToast.successToast(this, getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT);
|
FBToast.successToast(this, getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT);
|
||||||
|
|
||||||
this.mBottomSheetFragmentLUContentViewModel.setMtbColt(mtbColt);
|
this.mBottomSheetFragmentLUContentViewModel.setMtbColt(mtbColt);
|
||||||
@@ -630,6 +667,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
this.addExtraItemsEnabled.set(false);
|
this.addExtraItemsEnabled.set(false);
|
||||||
noLUPresent.set(true);
|
noLUPresent.set(true);
|
||||||
this.mBottomSheetFragmentLUContentViewModel.setMtbColt(null);
|
this.mBottomSheetFragmentLUContentViewModel.setMtbColt(null);
|
||||||
|
closeOrderButtonEnabled.set(!UtilityString.isNullOrEmpty(SettingsManager.iDB().getReportNameSpedizionChiudiOrdine()));
|
||||||
|
|
||||||
if (this.mShouldCloseActivity) super.onBackPressed();
|
if (this.mShouldCloseActivity) super.onBackPressed();
|
||||||
}
|
}
|
||||||
@@ -756,6 +794,27 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
|
|||||||
.show(getSupportFragmentManager(), "tag");
|
.show(getSupportFragmentManager(), "tag");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onLUPositionChangeRequest(RunnableArgss<Boolean, MtbDepoPosizione> onComplete) {
|
||||||
|
DialogYesNo.make(this, "Posiziona UL", "Vuoi cambiare la posizione della UL corrente?", result -> {
|
||||||
|
switch (result) {
|
||||||
|
case YES:
|
||||||
|
DialogAskPositionOfLU.makeBase(this, false, (status, mtbDepoPosizione) -> {
|
||||||
|
if (status == DialogConsts.Results.ABORT) {
|
||||||
|
onComplete.run(false, null);
|
||||||
|
} else {
|
||||||
|
onComplete.run(true, mtbDepoPosizione);
|
||||||
|
}
|
||||||
|
}, this::onError).show();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case NO:
|
||||||
|
onComplete.run(false, null);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}).show();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onRowSaved() {
|
public void onRowSaved() {
|
||||||
FBToast.successToast(this, getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT);
|
FBToast.successToast(this, getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT);
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
|||||||
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
||||||
import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentViewModel;
|
import it.integry.integrywmsnative.view.bottom_sheet__lu_content.BottomSheetFragmentLUContentViewModel;
|
||||||
|
|
||||||
@@ -19,8 +20,8 @@ public class SpedizioneModule {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
SpedizioneViewModel providesSpedizioneViewModel(ArticoloRESTConsumer articoloRESTConsumer, ColliDataRecoverService colliDataRecoverService, OrdiniRESTConsumer ordiniRESTConsumer, ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, PrinterRESTConsumer printerRESTConsumer, BarcodeRESTConsumer barcodeRESTConsumer) {
|
SpedizioneViewModel providesSpedizioneViewModel(ArticoloRESTConsumer articoloRESTConsumer, ColliDataRecoverService colliDataRecoverService, OrdiniRESTConsumer ordiniRESTConsumer, ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, PrinterRESTConsumer printerRESTConsumer, BarcodeRESTConsumer barcodeRESTConsumer, PosizioniRESTConsumer posizioniRESTConsumer) {
|
||||||
return new SpedizioneViewModel(articoloRESTConsumer, barcodeRESTConsumer, colliDataRecoverService, ordiniRESTConsumer, colliMagazzinoRESTConsumer, printerRESTConsumer);
|
return new SpedizioneViewModel(articoloRESTConsumer, barcodeRESTConsumer, colliDataRecoverService, ordiniRESTConsumer, colliMagazzinoRESTConsumer, printerRESTConsumer, posizioniRESTConsumer);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package it.integry.integrywmsnative.gest.spedizione;
|
|||||||
import androidx.databinding.ObservableArrayList;
|
import androidx.databinding.ObservableArrayList;
|
||||||
import androidx.lifecycle.MutableLiveData;
|
import androidx.lifecycle.MutableLiveData;
|
||||||
|
|
||||||
|
|
||||||
import com.annimon.stream.Optional;
|
import com.annimon.stream.Optional;
|
||||||
import com.annimon.stream.Stream;
|
import com.annimon.stream.Stream;
|
||||||
|
|
||||||
@@ -12,6 +11,7 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
@@ -23,6 +23,12 @@ import it.integry.integrywmsnative.core.CommonConst;
|
|||||||
import it.integry.integrywmsnative.core.class_router.ClassRouter;
|
import it.integry.integrywmsnative.core.class_router.ClassRouter;
|
||||||
import it.integry.integrywmsnative.core.class_router.interfaces.IOrdiniVendita;
|
import it.integry.integrywmsnative.core.class_router.interfaces.IOrdiniVendita;
|
||||||
import it.integry.integrywmsnative.core.data_recover.ColliDataRecoverService;
|
import it.integry.integrywmsnative.core.data_recover.ColliDataRecoverService;
|
||||||
|
import it.integry.integrywmsnative.core.exception.InvalidLUException;
|
||||||
|
import it.integry.integrywmsnative.core.exception.NoArtsFoundException;
|
||||||
|
import it.integry.integrywmsnative.core.exception.NoLUFoundException;
|
||||||
|
import it.integry.integrywmsnative.core.exception.NoPrintersFoundException;
|
||||||
|
import it.integry.integrywmsnative.core.exception.NoResultFromBarcodeException;
|
||||||
|
import it.integry.integrywmsnative.core.exception.ScannedPositionNotExistException;
|
||||||
import it.integry.integrywmsnative.core.expansion.AtomicBigDecimal;
|
import it.integry.integrywmsnative.core.expansion.AtomicBigDecimal;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
||||||
@@ -37,6 +43,7 @@ import it.integry.integrywmsnative.core.model.MtbColr;
|
|||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
|
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
|
||||||
import it.integry.integrywmsnative.core.model.MtbPartitaMag;
|
import it.integry.integrywmsnative.core.model.MtbPartitaMag;
|
||||||
|
import it.integry.integrywmsnative.core.model.dto.PickDataDTO;
|
||||||
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.consumers.ArticoloRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
||||||
@@ -47,6 +54,7 @@ import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
|
|||||||
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
||||||
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.OrdineUscitaInevasoDTO;
|
||||||
import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO;
|
import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
import it.integry.integrywmsnative.core.utility.UtilityBigDecimal;
|
||||||
@@ -54,30 +62,23 @@ import it.integry.integrywmsnative.core.utility.UtilityDate;
|
|||||||
import it.integry.integrywmsnative.core.utility.UtilityPosizione;
|
import it.integry.integrywmsnative.core.utility.UtilityPosizione;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.exceptions.CurrentMonoLUPositionIsNotCorrectException;
|
import it.integry.integrywmsnative.gest.spedizione.exceptions.CurrentMonoLUPositionIsNotCorrectException;
|
||||||
import it.integry.integrywmsnative.core.exception.InvalidLUException;
|
|
||||||
import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException;
|
import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException;
|
||||||
import it.integry.integrywmsnative.core.exception.NoPrintersFoundException;
|
|
||||||
import it.integry.integrywmsnative.gest.spedizione.exceptions.OrdersLoadException;
|
|
||||||
import it.integry.integrywmsnative.core.exception.NoArtsFoundException;
|
|
||||||
import it.integry.integrywmsnative.core.exception.NoLUFoundException;
|
|
||||||
import it.integry.integrywmsnative.gest.spedizione.exceptions.NoOrdersSelectedException;
|
import it.integry.integrywmsnative.gest.spedizione.exceptions.NoOrdersSelectedException;
|
||||||
import it.integry.integrywmsnative.core.exception.NoResultFromBarcodeException;
|
|
||||||
import it.integry.integrywmsnative.gest.spedizione.exceptions.NotCurrentYearLUException;
|
import it.integry.integrywmsnative.gest.spedizione.exceptions.NotCurrentYearLUException;
|
||||||
import it.integry.integrywmsnative.core.exception.ScannedPositionNotExistException;
|
import it.integry.integrywmsnative.gest.spedizione.exceptions.OrdersLoadException;
|
||||||
import it.integry.integrywmsnative.core.model.dto.PickDataDTO;
|
|
||||||
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
|
||||||
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
|
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
|
||||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
|
||||||
|
|
||||||
public class SpedizioneViewModel {
|
public class SpedizioneViewModel {
|
||||||
|
|
||||||
private List<OrdineVenditaInevasoDTO> mTestateOrdini;
|
private List<OrdineUscitaInevasoDTO> mTestateOrdini;
|
||||||
private MutableLiveData<List<PickingObjectDTO>> mPickingList = new MutableLiveData<>();
|
private MutableLiveData<List<PickingObjectDTO>> mPickingList = new MutableLiveData<>();
|
||||||
private List<MtbColt> mColliRegistrati = new ArrayList<>();
|
private List<MtbColt> mColliRegistrati = new ArrayList<>();
|
||||||
|
|
||||||
private Listener mListener;
|
private Listener mListener;
|
||||||
|
|
||||||
private GestioneEnum mDefaultGestioneOfUL = null;
|
private GestioneEnum mDefaultGestioneOfUL = null;
|
||||||
|
private int mDefaultSegnoCol = -1;
|
||||||
private String mDefaultCodMdep = null;
|
private String mDefaultCodMdep = null;
|
||||||
private List<FiltroOrdineDTO> mDefaultFiltroOrdine = new ArrayList<>();
|
private List<FiltroOrdineDTO> mDefaultFiltroOrdine = new ArrayList<>();
|
||||||
private String mDefaultCodAnagOfUL = null;
|
private String mDefaultCodAnagOfUL = null;
|
||||||
@@ -91,6 +92,7 @@ public class SpedizioneViewModel {
|
|||||||
private boolean mEnableCheckPartitaMag;
|
private boolean mEnableCheckPartitaMag;
|
||||||
private boolean mCanOverflowOrderQuantity;
|
private boolean mCanOverflowOrderQuantity;
|
||||||
private boolean mShouldAskPesoLU;
|
private boolean mShouldAskPesoLU;
|
||||||
|
private String mReportNameSpedizioneChiudiOrdine;
|
||||||
|
|
||||||
private MtbColt mCurrentMtbColt = null;
|
private MtbColt mCurrentMtbColt = null;
|
||||||
|
|
||||||
@@ -101,6 +103,7 @@ public class SpedizioneViewModel {
|
|||||||
private final OrdiniRESTConsumer mOrdiniRestConsumerService;
|
private final OrdiniRESTConsumer mOrdiniRestConsumerService;
|
||||||
private final ColliMagazzinoRESTConsumer mColliMagazzinoRESTConsumer;
|
private final ColliMagazzinoRESTConsumer mColliMagazzinoRESTConsumer;
|
||||||
private final PrinterRESTConsumer mPrinterRESTConsumer;
|
private final PrinterRESTConsumer mPrinterRESTConsumer;
|
||||||
|
private final PosizioniRESTConsumer mPosizioneRESTConsumer;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public SpedizioneViewModel(ArticoloRESTConsumer articoloRESTConsumer,
|
public SpedizioneViewModel(ArticoloRESTConsumer articoloRESTConsumer,
|
||||||
@@ -108,13 +111,15 @@ public class SpedizioneViewModel {
|
|||||||
ColliDataRecoverService colliDataRecoverService,
|
ColliDataRecoverService colliDataRecoverService,
|
||||||
OrdiniRESTConsumer ordiniRESTConsumer,
|
OrdiniRESTConsumer ordiniRESTConsumer,
|
||||||
ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
|
ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer,
|
||||||
PrinterRESTConsumer printerRESTConsumer) {
|
PrinterRESTConsumer printerRESTConsumer,
|
||||||
|
PosizioniRESTConsumer posizioniRESTConsumer) {
|
||||||
this.mArticoloRESTConsumer = articoloRESTConsumer;
|
this.mArticoloRESTConsumer = articoloRESTConsumer;
|
||||||
this.mBarcodeRESTConsumer = barcodeRESTConsumer;
|
this.mBarcodeRESTConsumer = barcodeRESTConsumer;
|
||||||
this.mColliDataRecoverService = colliDataRecoverService;
|
this.mColliDataRecoverService = colliDataRecoverService;
|
||||||
this.mOrdiniRestConsumerService = ordiniRESTConsumer;
|
this.mOrdiniRestConsumerService = ordiniRESTConsumer;
|
||||||
this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer;
|
this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer;
|
||||||
this.mPrinterRESTConsumer = printerRESTConsumer;
|
this.mPrinterRESTConsumer = printerRESTConsumer;
|
||||||
|
this.mPosizioneRESTConsumer = posizioniRESTConsumer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -124,8 +129,11 @@ public class SpedizioneViewModel {
|
|||||||
boolean shouldAskPesoLU,
|
boolean shouldAskPesoLU,
|
||||||
boolean canOverflowOrderQuantity,
|
boolean canOverflowOrderQuantity,
|
||||||
List<SitArtOrdDTO> pickingList,
|
List<SitArtOrdDTO> pickingList,
|
||||||
List<OrdineVenditaInevasoDTO> testateOrdini,
|
List<OrdineUscitaInevasoDTO> testateOrdini,
|
||||||
List<MtbColt> colliRegistrati) {
|
List<MtbColt> colliRegistrati,
|
||||||
|
String reportNameSpedizioneChiudiOrdine,
|
||||||
|
GestioneEnum gestioneCol,
|
||||||
|
int segnoCol) {
|
||||||
this.sendOnLoadingStarted();
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
this.mDefaultCodMdep = codMdep;
|
this.mDefaultCodMdep = codMdep;
|
||||||
@@ -135,6 +143,7 @@ public class SpedizioneViewModel {
|
|||||||
this.mEnableCheckPartitaMag = enableCheckPartitaMag;
|
this.mEnableCheckPartitaMag = enableCheckPartitaMag;
|
||||||
this.mCanOverflowOrderQuantity = canOverflowOrderQuantity;
|
this.mCanOverflowOrderQuantity = canOverflowOrderQuantity;
|
||||||
this.mShouldAskPesoLU = shouldAskPesoLU;
|
this.mShouldAskPesoLU = shouldAskPesoLU;
|
||||||
|
this.mReportNameSpedizioneChiudiOrdine = reportNameSpedizioneChiudiOrdine;
|
||||||
|
|
||||||
if (enableGiacenza) {
|
if (enableGiacenza) {
|
||||||
mOrdiniRestConsumerService.getSuggestedPickingList(this.mDefaultCodMdep, pickingList, pickingObjectList -> {
|
mOrdiniRestConsumerService.getSuggestedPickingList(this.mDefaultCodMdep, pickingList, pickingObjectList -> {
|
||||||
@@ -148,6 +157,9 @@ public class SpedizioneViewModel {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.mDefaultGestioneOfUL = gestioneCol;
|
||||||
|
this.mDefaultSegnoCol = segnoCol;
|
||||||
|
|
||||||
this.initDefaultVars();
|
this.initDefaultVars();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -157,7 +169,7 @@ public class SpedizioneViewModel {
|
|||||||
.map(SitArtOrdDTO::getCodMart)
|
.map(SitArtOrdDTO::getCodMart)
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
ArticoloRESTConsumer.getByCodMart(codMarts, listMtbAarts -> {
|
this.mArticoloRESTConsumer.getByCodMart(codMarts, listMtbAarts -> {
|
||||||
List<PickingObjectDTO> pickingList = Stream.of(sitArtOrdList)
|
List<PickingObjectDTO> pickingList = Stream.of(sitArtOrdList)
|
||||||
.map(sitArtOrdDTO -> {
|
.map(sitArtOrdDTO -> {
|
||||||
MtbAart mtbAart = null;
|
MtbAart mtbAart = null;
|
||||||
@@ -185,19 +197,21 @@ public class SpedizioneViewModel {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Definizione della gestione collo di default
|
if (mDefaultGestioneOfUL == null) {
|
||||||
List<GestioneEnum> foundGestioni = Stream.of(mTestateOrdini)
|
//Definizione della gestione collo di default
|
||||||
.map(OrdineVenditaInevasoDTO::getGestioneEnum)
|
List<GestioneEnum> foundGestioni = Stream.of(mTestateOrdini)
|
||||||
.withoutNulls()
|
.map(OrdineUscitaInevasoDTO::getGestioneEnum)
|
||||||
.distinct()
|
.withoutNulls()
|
||||||
.toList();
|
.distinct()
|
||||||
|
.toList();
|
||||||
|
|
||||||
if (foundGestioni != null && foundGestioni.size() > 1) {
|
if (foundGestioni != null && foundGestioni.size() > 1) {
|
||||||
return;
|
return;
|
||||||
} else if (foundGestioni != null && foundGestioni.size() == 1) {
|
} else if (foundGestioni != null && foundGestioni.size() == 1) {
|
||||||
mDefaultGestioneOfUL = foundGestioni.get(0);
|
mDefaultGestioneOfUL = foundGestioni.get(0);
|
||||||
} else {
|
} else {
|
||||||
mDefaultGestioneOfUL = GestioneEnum.VENDITA;
|
mDefaultGestioneOfUL = GestioneEnum.VENDITA;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//Definizione del filtro ordine da applicare a tutti i colli generati
|
//Definizione del filtro ordine da applicare a tutti i colli generati
|
||||||
@@ -214,7 +228,7 @@ public class SpedizioneViewModel {
|
|||||||
|
|
||||||
//Definizione del codAnag
|
//Definizione del codAnag
|
||||||
List<String> foundCodAnag = Stream.of(mTestateOrdini)
|
List<String> foundCodAnag = Stream.of(mTestateOrdini)
|
||||||
.map(OrdineVenditaInevasoDTO::getCodAnagOrd)
|
.map(OrdineUscitaInevasoDTO::getCodAnagOrd)
|
||||||
.distinctBy(x -> x)
|
.distinctBy(x -> x)
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
@@ -225,7 +239,7 @@ public class SpedizioneViewModel {
|
|||||||
|
|
||||||
//Definizione del codAnag
|
//Definizione del codAnag
|
||||||
List<String> foundRagSoc = Stream.of(mTestateOrdini)
|
List<String> foundRagSoc = Stream.of(mTestateOrdini)
|
||||||
.map(OrdineVenditaInevasoDTO::getRagSocOrd)
|
.map(OrdineUscitaInevasoDTO::getRagSocOrd)
|
||||||
.distinctBy(x -> x)
|
.distinctBy(x -> x)
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
@@ -236,7 +250,7 @@ public class SpedizioneViewModel {
|
|||||||
|
|
||||||
//Definizione del rifOrd
|
//Definizione del rifOrd
|
||||||
List<String> foundRifOrd = Stream.of(mTestateOrdini)
|
List<String> foundRifOrd = Stream.of(mTestateOrdini)
|
||||||
.map(OrdineVenditaInevasoDTO::getRifOrd)
|
.map(OrdineUscitaInevasoDTO::getRifOrd)
|
||||||
.distinctBy(x -> x)
|
.distinctBy(x -> x)
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
@@ -247,7 +261,7 @@ public class SpedizioneViewModel {
|
|||||||
|
|
||||||
//Definizione del numOrd
|
//Definizione del numOrd
|
||||||
List<Integer> foundNumOrd = Stream.of(mTestateOrdini)
|
List<Integer> foundNumOrd = Stream.of(mTestateOrdini)
|
||||||
.map(OrdineVenditaInevasoDTO::getNumOrd)
|
.map(OrdineUscitaInevasoDTO::getNumOrd)
|
||||||
.withoutNulls()
|
.withoutNulls()
|
||||||
.distinctBy(x -> x)
|
.distinctBy(x -> x)
|
||||||
.toList();
|
.toList();
|
||||||
@@ -259,7 +273,7 @@ public class SpedizioneViewModel {
|
|||||||
|
|
||||||
//Definizione del dataOrd
|
//Definizione del dataOrd
|
||||||
List<Date> foundDataOrd = Stream.of(mTestateOrdini)
|
List<Date> foundDataOrd = Stream.of(mTestateOrdini)
|
||||||
.map(OrdineVenditaInevasoDTO::getDataOrdD)
|
.map(OrdineUscitaInevasoDTO::getDataOrdD)
|
||||||
.withoutNulls()
|
.withoutNulls()
|
||||||
.distinctBy(x -> x)
|
.distinctBy(x -> x)
|
||||||
.toList();
|
.toList();
|
||||||
@@ -271,7 +285,7 @@ public class SpedizioneViewModel {
|
|||||||
|
|
||||||
//Definizione del codJfas
|
//Definizione del codJfas
|
||||||
List<String> foundCodJfas = Stream.of(mTestateOrdini)
|
List<String> foundCodJfas = Stream.of(mTestateOrdini)
|
||||||
.map(OrdineVenditaInevasoDTO::getCodJfas)
|
.map(OrdineUscitaInevasoDTO::getCodJfas)
|
||||||
.distinctBy(x -> x)
|
.distinctBy(x -> x)
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
@@ -368,6 +382,10 @@ public class SpedizioneViewModel {
|
|||||||
if (this.mListener != null) mListener.onRowSaved();
|
if (this.mListener != null) mListener.onRowSaved();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void sendLUPositionChangeRequest(RunnableArgss<Boolean, MtbDepoPosizione> onComplete) {
|
||||||
|
if (this.mListener != null) mListener.onLUPositionChangeRequest(onComplete);
|
||||||
|
}
|
||||||
|
|
||||||
public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
|
public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
|
||||||
|
|
||||||
//Se non c'è una UL aperta
|
//Se non c'è una UL aperta
|
||||||
@@ -379,6 +397,10 @@ public class SpedizioneViewModel {
|
|||||||
//invece se esiste apro un collo nuovo e cerco gli articoli presenti nell'ul
|
//invece se esiste apro un collo nuovo e cerco gli articoli presenti nell'ul
|
||||||
//dell'etichetta anonima
|
//dell'etichetta anonima
|
||||||
this.executeEtichettaAnonimaNotOpenedLU(barcodeScanDTO, onComplete);
|
this.executeEtichettaAnonimaNotOpenedLU(barcodeScanDTO, onComplete);
|
||||||
|
|
||||||
|
} else if (UtilityBarcode.isEtichettaPosizione(barcodeScanDTO) && mDefaultSegnoCol == 1) {
|
||||||
|
this.processBarcodePosizioneNotOpenedLU(barcodeScanDTO, onComplete);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
this.processBarcodeNotOpenedLU(barcodeScanDTO, onComplete);
|
this.processBarcodeNotOpenedLU(barcodeScanDTO, onComplete);
|
||||||
}
|
}
|
||||||
@@ -394,6 +416,46 @@ public class SpedizioneViewModel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void processBarcodePosizioneNotOpenedLU(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
|
||||||
|
MtbDepoPosizione foundPosizione = UtilityPosizione.getFromCache(barcodeScanDTO.getStringValue());
|
||||||
|
|
||||||
|
if (foundPosizione != null) {
|
||||||
|
if (foundPosizione.isFlagMonoCollo()) {
|
||||||
|
|
||||||
|
this.mPosizioneRESTConsumer.getBancaliInPosizione(foundPosizione, mtbColtList -> {
|
||||||
|
if (mtbColtList == null || mtbColtList.size() != 1) {
|
||||||
|
//Nessuna UL trovata oppure più UL nella stessa posizione
|
||||||
|
this.sendError(new NoLUFoundException());
|
||||||
|
} else {
|
||||||
|
mColliMagazzinoRESTConsumer.getByTestata(mtbColtList.get(0), true, false, mtbColt -> {
|
||||||
|
|
||||||
|
if (mtbColt.getSegno() != mDefaultSegnoCol) {
|
||||||
|
this.sendError(new InvalidLUException());
|
||||||
|
onComplete.run();
|
||||||
|
} else {
|
||||||
|
this.mCurrentMtbColt = mtbColt;
|
||||||
|
mMtbColtSessionID = this.mColliDataRecoverService.startNewSession(mtbColt, mTestateOrdini);
|
||||||
|
|
||||||
|
this.sendLUOpened(mtbColt);
|
||||||
|
|
||||||
|
onComplete.run();
|
||||||
|
}
|
||||||
|
|
||||||
|
}, this::sendError);
|
||||||
|
}
|
||||||
|
}, this::sendError);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
//La posizione non è Mono-UL
|
||||||
|
this.sendError(new CurrentMonoLUPositionIsNotCorrectException());
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
//Nessuna posizione trovata con questo barcode
|
||||||
|
this.sendError(new ScannedPositionNotExistException());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void processBarcodeNotOpenedLU(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
|
private void processBarcodeNotOpenedLU(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
|
||||||
this.createNewLU(
|
this.createNewLU(
|
||||||
null,
|
null,
|
||||||
@@ -455,7 +517,7 @@ public class SpedizioneViewModel {
|
|||||||
if (foundPosizione != null) {
|
if (foundPosizione != null) {
|
||||||
if (foundPosizione.isFlagMonoCollo()) {
|
if (foundPosizione.isFlagMonoCollo()) {
|
||||||
|
|
||||||
PosizioniRESTConsumer.getBancaliInPosizione(foundPosizione, mtbColtList -> {
|
this.mPosizioneRESTConsumer.getBancaliInPosizione(foundPosizione, mtbColtList -> {
|
||||||
|
|
||||||
if (mtbColtList == null || mtbColtList.size() != 1) {
|
if (mtbColtList == null || mtbColtList.size() != 1) {
|
||||||
//Nessuna UL trovata oppure più UL nella stessa posizione
|
//Nessuna UL trovata oppure più UL nella stessa posizione
|
||||||
@@ -648,7 +710,23 @@ public class SpedizioneViewModel {
|
|||||||
if (matchedRows == null || matchedRows.size() == 0) {
|
if (matchedRows == null || matchedRows.size() == 0) {
|
||||||
this.sendError(new NoArtsFoundException());
|
this.sendError(new NoArtsFoundException());
|
||||||
} else if (matchedRows.size() == 1) {
|
} else if (matchedRows.size() == 1) {
|
||||||
this.dispatchOrdineRow(matchedRows.get(0), matchedRows.get(0).getRefMtbColt());
|
PickingObjectDTO matchedItem = matchedRows.get(0);
|
||||||
|
|
||||||
|
|
||||||
|
if (matchedItem.getMtbColts() != null && matchedItem.getMtbColts().size() > 1) {
|
||||||
|
|
||||||
|
List<PickingObjectDTO> pickingList = mPickingList.getValue();
|
||||||
|
|
||||||
|
Stream.of(pickingList)
|
||||||
|
.filter(x -> x != matchedItem)
|
||||||
|
.forEach(x -> x.setHidden(true));
|
||||||
|
|
||||||
|
this.sendFilterApplied(null);
|
||||||
|
this.getPickingList().postValue(pickingList);
|
||||||
|
} else {
|
||||||
|
this.dispatchOrdineRow(matchedItem, matchedItem.getRefMtbColt());
|
||||||
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
List<PickingObjectDTO> pickingList = mPickingList.getValue();
|
List<PickingObjectDTO> pickingList = mPickingList.getValue();
|
||||||
|
|
||||||
@@ -728,15 +806,27 @@ public class SpedizioneViewModel {
|
|||||||
MtbColr mtbColrToUse = refMtbColr != null ? refMtbColr : scannedMtbColr;
|
MtbColr mtbColrToUse = refMtbColr != null ? refMtbColr : scannedMtbColr;
|
||||||
|
|
||||||
if (mtbColrToUse != null) {
|
if (mtbColrToUse != null) {
|
||||||
if (UtilityBigDecimal.equalsOrLowerThan(mtbColrToUse.getQtaCol(), qtaDaEvadere)) {
|
if (pickingObjectDTO.getMtbAart().isFlagQtaCnfFissaBoolean()) {
|
||||||
numCnfDaPrelevare = mtbColrToUse.getNumCnf();
|
if (UtilityBigDecimal.equalsOrLowerThan(mtbColrToUse.getQtaCol(), qtaDaEvadere)) {
|
||||||
qtaColDaPrelevare = mtbColrToUse.getQtaCol();
|
numCnfDaPrelevare = mtbColrToUse.getNumCnf();
|
||||||
} else {
|
qtaColDaPrelevare = mtbColrToUse.getQtaCol();
|
||||||
numCnfDaPrelevare = numCnfDaEvadere;
|
} else {
|
||||||
qtaColDaPrelevare = qtaDaEvadere;
|
numCnfDaPrelevare = numCnfDaEvadere;
|
||||||
}
|
qtaColDaPrelevare = qtaDaEvadere;
|
||||||
|
}
|
||||||
|
|
||||||
qtaCnfDaPrelevare = mtbColrToUse.getQtaCnf();
|
qtaCnfDaPrelevare = mtbColrToUse.getQtaCnf();
|
||||||
|
} else {
|
||||||
|
if (UtilityBigDecimal.equalsOrLowerThan(mtbColrToUse.getNumCnf(), numCnfDaEvadere)) {
|
||||||
|
numCnfDaPrelevare = mtbColrToUse.getNumCnf();
|
||||||
|
qtaCnfDaPrelevare = mtbColrToUse.getQtaCnf();
|
||||||
|
qtaColDaPrelevare = mtbColrToUse.getQtaCol();
|
||||||
|
} else {
|
||||||
|
numCnfDaPrelevare = numCnfDaEvadere;
|
||||||
|
qtaColDaPrelevare = qtaDaEvadere;
|
||||||
|
qtaCnfDaPrelevare = qtaCnfDaEvadere;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
totalQtaAvailable = mtbColrToUse.getQtaCol();
|
totalQtaAvailable = mtbColrToUse.getQtaCol();
|
||||||
@@ -1077,7 +1167,7 @@ public class SpedizioneViewModel {
|
|||||||
MtbColt mtbColt = new MtbColt();
|
MtbColt mtbColt = new MtbColt();
|
||||||
mtbColt.initDefaultFields();
|
mtbColt.initDefaultFields();
|
||||||
mtbColt.setGestione(mDefaultGestioneOfUL)
|
mtbColt.setGestione(mDefaultGestioneOfUL)
|
||||||
.setSegno(-1)
|
.setSegno(mDefaultSegnoCol)
|
||||||
.setRifOrd(mDefaultRifOrdOfUL)
|
.setRifOrd(mDefaultRifOrdOfUL)
|
||||||
.setNumOrd(mDefaultNumOrdOfUL)
|
.setNumOrd(mDefaultNumOrdOfUL)
|
||||||
.setDataOrdD(mDefaultDataOrdOfUL)
|
.setDataOrdD(mDefaultDataOrdOfUL)
|
||||||
@@ -1086,7 +1176,7 @@ public class SpedizioneViewModel {
|
|||||||
.setRagSocCliente(mDefaultRagSocOfUL)
|
.setRagSocCliente(mDefaultRagSocOfUL)
|
||||||
.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
||||||
|
|
||||||
if (mDefaultGestioneOfUL == GestioneEnum.LAVORAZIONE)
|
if (mDefaultGestioneOfUL == GestioneEnum.LAVORAZIONE && mDefaultSegnoCol == -1)
|
||||||
mtbColt.setPosizione(mDefaultCodJFasOfUL);
|
mtbColt.setPosizione(mDefaultCodJFasOfUL);
|
||||||
if (customNumCollo != null) mtbColt.setNumCollo(customNumCollo);
|
if (customNumCollo != null) mtbColt.setNumCollo(customNumCollo);
|
||||||
if (!UtilityString.isNullOrEmpty(customSerCollo)) mtbColt.setSerCollo(customSerCollo);
|
if (!UtilityString.isNullOrEmpty(customSerCollo)) mtbColt.setSerCollo(customSerCollo);
|
||||||
@@ -1201,15 +1291,22 @@ public class SpedizioneViewModel {
|
|||||||
.setMtbAart(pickingObjectDTO.getMtbAart());
|
.setMtbAart(pickingObjectDTO.getMtbAart());
|
||||||
|
|
||||||
|
|
||||||
mtbColr.setRefMtbColr(new MtbColr()
|
if (mEnableGiacenza) {
|
||||||
.setCodMart(mtbColr.getCodMart())
|
MtbColr refMtbColr = new MtbColr()
|
||||||
.setPartitaMag(mtbColr.getPartitaMag())
|
.setCodMart(mtbColr.getCodMart())
|
||||||
.setCodTagl(mtbColr.getCodTagl())
|
.setPartitaMag(mtbColr.getPartitaMag())
|
||||||
.setCodCol(mtbColr.getCodCol())
|
.setCodTagl(mtbColr.getCodTagl())
|
||||||
.setNumCollo(refMtbColt.getNumCollo())
|
.setCodCol(mtbColr.getCodCol());
|
||||||
.setDataCollo(refMtbColt.getDataColloS())
|
|
||||||
.setSerCollo(refMtbColt.getSerCollo())
|
if (refMtbColt != null) {
|
||||||
.setGestione(refMtbColt.getGestione()));
|
refMtbColr
|
||||||
|
.setNumCollo(refMtbColt.getNumCollo())
|
||||||
|
.setDataCollo(refMtbColt.getDataColloS())
|
||||||
|
.setSerCollo(refMtbColt.getSerCollo())
|
||||||
|
.setGestione(refMtbColt.getGestione());
|
||||||
|
}
|
||||||
|
mtbColr.setRefMtbColr(refMtbColr);
|
||||||
|
}
|
||||||
|
|
||||||
pickingObjectDTO.getWithdrawMtbColrs().add(mtbColr);
|
pickingObjectDTO.getWithdrawMtbColrs().add(mtbColr);
|
||||||
mCurrentMtbColt.getMtbColr().add(mtbColr);
|
mCurrentMtbColt.getMtbColr().add(mtbColr);
|
||||||
@@ -1240,6 +1337,8 @@ public class SpedizioneViewModel {
|
|||||||
final MtbColr mtbColr = (MtbColr) mtbColrToUpdate.clone();
|
final MtbColr mtbColr = (MtbColr) mtbColrToUpdate.clone();
|
||||||
mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT);
|
mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT);
|
||||||
mtbColr.setRiga(null)
|
mtbColr.setRiga(null)
|
||||||
|
.setPesoLordoKg(null)
|
||||||
|
.setPesoNettoKg(null)
|
||||||
.setNumCnf(numCnf.subtract(mtbColrToUpdate.getNumCnf()))
|
.setNumCnf(numCnf.subtract(mtbColrToUpdate.getNumCnf()))
|
||||||
.setQtaCnf(qtaCnf)
|
.setQtaCnf(qtaCnf)
|
||||||
.setQtaCol(qtaTot.subtract(mtbColrToUpdate.getQtaCol()))
|
.setQtaCol(qtaTot.subtract(mtbColrToUpdate.getQtaCol()))
|
||||||
@@ -1292,7 +1391,9 @@ public class SpedizioneViewModel {
|
|||||||
mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT);
|
mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT);
|
||||||
mtbColr.setQtaCol(mtbColr.getQtaCol().multiply(new BigDecimal(-1)))
|
mtbColr.setQtaCol(mtbColr.getQtaCol().multiply(new BigDecimal(-1)))
|
||||||
.setNumCnf(mtbColr.getNumCnf().multiply(new BigDecimal(-1)))
|
.setNumCnf(mtbColr.getNumCnf().multiply(new BigDecimal(-1)))
|
||||||
.setRiga(null);
|
.setRiga(null)
|
||||||
|
.setPesoLordoKg(null)
|
||||||
|
.setPesoNettoKg(null);
|
||||||
|
|
||||||
mtbColt.getMtbColr().add(mtbColr);
|
mtbColt.getMtbColr().add(mtbColr);
|
||||||
|
|
||||||
@@ -1323,6 +1424,7 @@ public class SpedizioneViewModel {
|
|||||||
|
|
||||||
this.sendOnLoadingStarted();
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
|
|
||||||
mColliMagazzinoRESTConsumer.canLUBeDeleted(mCurrentMtbColt, canBeDeleted -> {
|
mColliMagazzinoRESTConsumer.canLUBeDeleted(mCurrentMtbColt, canBeDeleted -> {
|
||||||
|
|
||||||
if (canBeDeleted) {
|
if (canBeDeleted) {
|
||||||
@@ -1331,49 +1433,120 @@ public class SpedizioneViewModel {
|
|||||||
this.sendOnLoadingEnded();
|
this.sendOnLoadingEnded();
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
if (mDefaultSegnoCol == -1) {
|
||||||
|
Runnable saveAction = () -> {
|
||||||
|
mColliMagazzinoRESTConsumer.updateDataFine(
|
||||||
|
mCurrentMtbColt, () -> distribuisciLU((generatedMtbColts) -> {
|
||||||
|
if (shouldPrint)
|
||||||
|
printCollo(generatedMtbColts, () -> this.postCloseOperations(generatedMtbColts));
|
||||||
|
else {
|
||||||
|
postCloseOperations(generatedMtbColts);
|
||||||
|
}
|
||||||
|
}), this::sendError);
|
||||||
|
};
|
||||||
|
|
||||||
Runnable saveAction = () -> {
|
if (mShouldAskPesoLU) {
|
||||||
mColliMagazzinoRESTConsumer.updateDataFine(
|
this.sendLUPesoRequired(mCurrentMtbColt.getCodTcol(),
|
||||||
mCurrentMtbColt, () -> distribuisciLU((generatedMtbColts) -> {
|
mCurrentMtbColt.getPesoNettoKg(),
|
||||||
if (shouldPrint)
|
mCurrentMtbColt.getPesoKg(),
|
||||||
printCollo(generatedMtbColts, () -> this.postCloseOperations(generatedMtbColts));
|
(newCodTcol, newNetWeight, newGrossWeight) -> {
|
||||||
else {
|
|
||||||
postCloseOperations(generatedMtbColts);
|
|
||||||
}
|
|
||||||
}), this::sendError);
|
|
||||||
};
|
|
||||||
|
|
||||||
if (mShouldAskPesoLU) {
|
mCurrentMtbColt.setCodTcol(newCodTcol);
|
||||||
this.sendLUPesoRequired(mCurrentMtbColt.getCodTcol(),
|
mCurrentMtbColt.setPesoNettoKg(newNetWeight);
|
||||||
mCurrentMtbColt.getPesoNettoKg(),
|
mCurrentMtbColt.setPesoKg(newGrossWeight);
|
||||||
mCurrentMtbColt.getPesoKg(),
|
|
||||||
(newCodTcol, newNetWeight, newGrossWeight) -> {
|
|
||||||
|
|
||||||
mCurrentMtbColt.setCodTcol(newCodTcol);
|
saveAction.run();
|
||||||
mCurrentMtbColt.setPesoNettoKg(newNetWeight);
|
});
|
||||||
mCurrentMtbColt.setPesoKg(newGrossWeight);
|
} else {
|
||||||
|
saveAction.run();
|
||||||
saveAction.run();
|
}
|
||||||
});
|
|
||||||
} else {
|
} else {
|
||||||
saveAction.run();
|
|
||||||
|
distribuisciLU(mtbColts -> {
|
||||||
|
this.sendLUPositionChangeRequest((shouldChangePosition, mtbDepoPosizione) -> {
|
||||||
|
|
||||||
|
if (shouldChangePosition) {
|
||||||
|
|
||||||
|
if (mtbDepoPosizione != null) {
|
||||||
|
if (mtbDepoPosizione.isFlagMonoCollo()) {
|
||||||
|
this.mPosizioneRESTConsumer.getBancaliInPosizione(mtbDepoPosizione, destMtbColtList -> {
|
||||||
|
if (destMtbColtList == null || destMtbColtList.size() != 1) {
|
||||||
|
//Nessuna UL trovata oppure più UL nella stessa posizione
|
||||||
|
this.sendError(new NoLUFoundException());
|
||||||
|
} else {
|
||||||
|
if (destMtbColtList.get(0).getSegno() != mDefaultSegnoCol) {
|
||||||
|
this.sendError(new InvalidLUException());
|
||||||
|
} else {
|
||||||
|
moveLUtoLU(mtbColts, destMtbColtList.get(0), savedMtbColt -> {
|
||||||
|
ArrayList<MtbColt> savedMtbColtList = new ArrayList<>();
|
||||||
|
savedMtbColtList.add(savedMtbColt);
|
||||||
|
postCloseOperations(savedMtbColtList);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}, this::sendError);
|
||||||
|
} else {
|
||||||
|
//La posizione non è Mono-UL
|
||||||
|
this.sendError(new CurrentMonoLUPositionIsNotCorrectException());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
//Nessuna posizione trovata con questo barcode
|
||||||
|
this.sendError(new ScannedPositionNotExistException());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
postCloseOperations(mtbColts);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}, this::sendError);
|
}, this::sendError);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void distribuisciLU(RunnableArgs<List<MtbColt>> onComplete) {
|
private void distribuisciLU(RunnableArgs<List<MtbColt>> onComplete) {
|
||||||
|
|
||||||
MtbColt cloneMtbColt = (MtbColt) mCurrentMtbColt.clone();
|
MtbColt cloneMtbColt = (MtbColt) mCurrentMtbColt.clone();
|
||||||
|
|
||||||
IOrdiniVendita ordiniVendita = ClassRouter.getInstance(ClassRouter.PATH.ORDINI_VENDITA);
|
IOrdiniVendita ordiniVendita = ClassRouter.getInstance(ClassRouter.PATH.ORDINI_VENDITA);
|
||||||
|
|
||||||
ordiniVendita.distribuisciCollo(cloneMtbColt, mTestateOrdini, mtbColts -> {
|
ordiniVendita.distribuisciCollo(cloneMtbColt, mTestateOrdini, mtbColts -> {
|
||||||
|
mColliMagazzinoRESTConsumer.getMultipleByTestate(mtbColts, false, onComplete, this::sendError);
|
||||||
|
}, this::sendError);
|
||||||
|
}
|
||||||
|
|
||||||
mColliMagazzinoRESTConsumer.getMultipleByTestate(mtbColts, true, onComplete, this::sendError);
|
|
||||||
|
|
||||||
|
private void moveLUtoLU(List<MtbColt> sourceMtbColts, MtbColt destMtbColt, RunnableArgs<MtbColt> onComplete) {
|
||||||
|
destMtbColt.setMtbColr(new ObservableArrayList<>());
|
||||||
|
|
||||||
|
for (MtbColt sourceMtbColt : sourceMtbColts) {
|
||||||
|
for (MtbColr sourceMtbColr : sourceMtbColt.getMtbColr()) {
|
||||||
|
MtbColr cloneMtbColr = (MtbColr) sourceMtbColr.clone();
|
||||||
|
|
||||||
|
cloneMtbColr
|
||||||
|
.setRiga(null)
|
||||||
|
.setNumCollo(null)
|
||||||
|
.setGestione((String) null)
|
||||||
|
.setDataCollo(null)
|
||||||
|
.setSerCollo(null)
|
||||||
|
.setCausale(MtbColr.Causale.VERSAMENTO);
|
||||||
|
|
||||||
|
cloneMtbColr.setOperation(CommonModelConsts.OPERATION.INSERT);
|
||||||
|
destMtbColt.getMtbColr().add(cloneMtbColr);
|
||||||
|
sourceMtbColr.setOperation(CommonModelConsts.OPERATION.DELETE);
|
||||||
|
}
|
||||||
|
|
||||||
|
sourceMtbColt.setOperation(CommonModelConsts.OPERATION.DELETE);
|
||||||
|
}
|
||||||
|
|
||||||
|
destMtbColt.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
||||||
|
sourceMtbColts.add(destMtbColt);
|
||||||
|
|
||||||
|
this.mColliMagazzinoRESTConsumer.saveColli(sourceMtbColts, data -> {
|
||||||
|
onComplete.run(destMtbColt);
|
||||||
}, this::sendError);
|
}, this::sendError);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1419,7 +1592,6 @@ public class SpedizioneViewModel {
|
|||||||
mtbColtToPrint,
|
mtbColtToPrint,
|
||||||
1,
|
1,
|
||||||
reportName, onComplete, onFailed);
|
reportName, onComplete, onFailed);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1427,6 +1599,8 @@ public class SpedizioneViewModel {
|
|||||||
this.mCurrentMtbColt = mtbColt;
|
this.mCurrentMtbColt = mtbColt;
|
||||||
mMtbColtSessionID = this.mColliDataRecoverService.startNewSession(mtbColt, mTestateOrdini);
|
mMtbColtSessionID = this.mColliDataRecoverService.startNewSession(mtbColt, mTestateOrdini);
|
||||||
|
|
||||||
|
this.mCurrentMtbColt.generaFiltroOrdineFromDTO(mDefaultFiltroOrdine);
|
||||||
|
|
||||||
this.resetMatchedRows();
|
this.resetMatchedRows();
|
||||||
this.sendLUOpened(this.mCurrentMtbColt);
|
this.sendLUOpened(this.mCurrentMtbColt);
|
||||||
}
|
}
|
||||||
@@ -1442,7 +1616,8 @@ public class SpedizioneViewModel {
|
|||||||
.forEach(x -> x.setExistColloBoolean(true));
|
.forEach(x -> x.setExistColloBoolean(true));
|
||||||
}
|
}
|
||||||
|
|
||||||
this.mColliDataRecoverService.closeSession(mMtbColtSessionID);
|
if (mMtbColtSessionID != null)
|
||||||
|
this.mColliDataRecoverService.closeSession(mMtbColtSessionID);
|
||||||
this.mCurrentMtbColt = null;
|
this.mCurrentMtbColt = null;
|
||||||
|
|
||||||
|
|
||||||
@@ -1526,6 +1701,56 @@ public class SpedizioneViewModel {
|
|||||||
this.sendFilterRemoved();
|
this.sendFilterRemoved();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void closeOrder() {
|
||||||
|
this.sendOnLoadingStarted();
|
||||||
|
|
||||||
|
Runnable onComplete = () -> this.sendOnLoadingEnded();
|
||||||
|
|
||||||
|
this.mPrinterRESTConsumer.getAvailablePrinters(mDefaultCodMdep, PrinterRESTConsumer.Type.PRIMARIA, printerList -> {
|
||||||
|
|
||||||
|
if (printerList == null || printerList.size() == 0) {
|
||||||
|
this.sendError(new NoPrintersFoundException());
|
||||||
|
onComplete.run();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
cyclicPrintPackingList(
|
||||||
|
this.mTestateOrdini.iterator(),
|
||||||
|
printerList.get(0),
|
||||||
|
onComplete,
|
||||||
|
ex -> this.sendLUPrintError(ex, onComplete));
|
||||||
|
|
||||||
|
}, this::sendError);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void cyclicPrintPackingList(@NotNull Iterator<OrdineUscitaInevasoDTO> sourceTestateOrdineVenditaIterator, String printerName, Runnable onComplete, RunnableArgs<Exception> onAbort) {
|
||||||
|
if (sourceTestateOrdineVenditaIterator.hasNext()) {
|
||||||
|
singlePrintPackingList(sourceTestateOrdineVenditaIterator.next(), printerName, () -> {
|
||||||
|
cyclicPrintPackingList(sourceTestateOrdineVenditaIterator, printerName, onComplete, onAbort);
|
||||||
|
}, onAbort);
|
||||||
|
} else {
|
||||||
|
onComplete.run();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void singlePrintPackingList(OrdineUscitaInevasoDTO ordineUscitaInevasoDTO, String printerName, Runnable onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
HashMap<String, Object> params = new HashMap<>();
|
||||||
|
params.put("gestione", ordineUscitaInevasoDTO.getGestione());
|
||||||
|
params.put("num_ord", ordineUscitaInevasoDTO.getNumOrd());
|
||||||
|
params.put("data_ord", UtilityDate.formatDate(ordineUscitaInevasoDTO.getDataOrdD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_DASH));
|
||||||
|
|
||||||
|
this.mPrinterRESTConsumer.printReport(
|
||||||
|
printerName,
|
||||||
|
this.mReportNameSpedizioneChiudiOrdine,
|
||||||
|
params,
|
||||||
|
1,
|
||||||
|
onComplete,
|
||||||
|
onFailed);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public MutableLiveData<List<PickingObjectDTO>> getPickingList() {
|
public MutableLiveData<List<PickingObjectDTO>> getPickingList() {
|
||||||
return mPickingList;
|
return mPickingList;
|
||||||
}
|
}
|
||||||
@@ -1567,6 +1792,9 @@ public class SpedizioneViewModel {
|
|||||||
Date dataScad,
|
Date dataScad,
|
||||||
boolean canOverflowOrderQuantity,
|
boolean canOverflowOrderQuantity,
|
||||||
RunnableArgss<PickedQuantityDTO, Boolean> onComplete);
|
RunnableArgss<PickedQuantityDTO, Boolean> onComplete);
|
||||||
|
|
||||||
|
|
||||||
|
void onLUPositionChangeRequest(RunnableArgss<Boolean, MtbDepoPosizione> onComplete);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,19 +10,21 @@ import android.view.ViewGroup;
|
|||||||
import androidx.appcompat.widget.AppCompatTextView;
|
import androidx.appcompat.widget.AppCompatTextView;
|
||||||
import androidx.databinding.DataBindingUtil;
|
import androidx.databinding.DataBindingUtil;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.interfaces.IFilterableFragment;
|
import it.integry.integrywmsnative.core.interfaces.IFilterableFragment;
|
||||||
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
|
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
|
||||||
import it.integry.integrywmsnative.core.interfaces.ISearcableFragment;
|
|
||||||
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
||||||
import it.integry.integrywmsnative.databinding.FragmentMainUltimeConsegneClienteBinding;
|
import it.integry.integrywmsnative.databinding.FragmentMainUltimeConsegneClienteBinding;
|
||||||
import it.integry.integrywmsnative.gest.ultime_consegne_cliente.dialog.DialogUltimeConsegneFiltroAvanzato;
|
|
||||||
import it.integry.integrywmsnative.gest.ultime_consegne_cliente.viewmodel.UltimeConsegneClienteViewModel;
|
import it.integry.integrywmsnative.gest.ultime_consegne_cliente.viewmodel.UltimeConsegneClienteViewModel;
|
||||||
import it.integry.integrywmsnative.ui.ElevatedToolbar;
|
import it.integry.integrywmsnative.ui.ElevatedToolbar;
|
||||||
|
|
||||||
public class UltimeConsegneClienteFragment extends Fragment implements ITitledFragment, IScrollableFragment, IFilterableFragment {
|
public class UltimeConsegneClienteFragment extends Fragment implements ITitledFragment, IScrollableFragment, IFilterableFragment {
|
||||||
|
|
||||||
private Runnable mOnPreDestroy;
|
private List<Runnable> mOnPreDestroyList = new ArrayList<>();
|
||||||
private ElevatedToolbar mToolbar;
|
private ElevatedToolbar mToolbar;
|
||||||
|
|
||||||
private UltimeConsegneClienteViewModel mViewModel;
|
private UltimeConsegneClienteViewModel mViewModel;
|
||||||
@@ -58,7 +60,9 @@ public class UltimeConsegneClienteFragment extends Fragment implements ITitledFr
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroy() {
|
public void onDestroy() {
|
||||||
if(mOnPreDestroy != null) mOnPreDestroy.run();
|
for(Runnable onPreDestroy : mOnPreDestroyList) {
|
||||||
|
onPreDestroy.run();
|
||||||
|
}
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -67,14 +71,19 @@ public class UltimeConsegneClienteFragment extends Fragment implements ITitledFr
|
|||||||
titleText.setText(context.getText(R.string.ultime_consegne_cliente_title).toString());
|
titleText.setText(context.getText(R.string.ultime_consegne_cliente_title).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) {
|
||||||
|
this.mOnPreDestroyList.add(onActionBarPreDestroy);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setScrollToolbar(ElevatedToolbar toolbar) {
|
public void setScrollToolbar(ElevatedToolbar toolbar) {
|
||||||
mToolbar = toolbar;
|
mToolbar = toolbar;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setOnPreDestroy(Runnable onPreDestroy) {
|
public void setScrollableOnPreDestroy(Runnable onPreDestroy) {
|
||||||
mOnPreDestroy = onPreDestroy;
|
this.mOnPreDestroyList.add(onPreDestroy);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -189,7 +189,7 @@ public class UltimeConsegneClienteRESTConsumer {
|
|||||||
.distinct()
|
.distinct()
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
ArticoloRESTConsumer.getByCodMart(codMarts, arts -> {
|
ArticoloRESTConsumer.getByCodMartStatic(codMarts, arts -> {
|
||||||
|
|
||||||
if(arts != null && arts.size() > 0) {
|
if(arts != null && arts.size() > 0) {
|
||||||
for (DtbDocr value : values) {
|
for (DtbDocr value : values) {
|
||||||
|
|||||||
@@ -3,14 +3,16 @@ package it.integry.integrywmsnative.gest.ultimi_arrivi_fornitore;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
import androidx.appcompat.widget.AppCompatTextView;
|
import androidx.appcompat.widget.AppCompatTextView;
|
||||||
import androidx.databinding.DataBindingUtil;
|
import androidx.databinding.DataBindingUtil;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
|
|
||||||
import android.view.LayoutInflater;
|
import java.util.ArrayList;
|
||||||
import android.view.View;
|
import java.util.List;
|
||||||
import android.view.ViewGroup;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.interfaces.IFilterableFragment;
|
import it.integry.integrywmsnative.core.interfaces.IFilterableFragment;
|
||||||
@@ -25,7 +27,7 @@ import it.integry.integrywmsnative.ui.ElevatedToolbar;
|
|||||||
*/
|
*/
|
||||||
public class UltimiArriviFornitoreFragment extends Fragment implements ITitledFragment, IScrollableFragment, IFilterableFragment {
|
public class UltimiArriviFornitoreFragment extends Fragment implements ITitledFragment, IScrollableFragment, IFilterableFragment {
|
||||||
|
|
||||||
private Runnable mOnPreDestroy;
|
private List<Runnable> mOnPreDestroyList = new ArrayList<>();
|
||||||
private ElevatedToolbar mToolbar;
|
private ElevatedToolbar mToolbar;
|
||||||
|
|
||||||
private UltimiArriviFornitoreViewModel mViewModel;
|
private UltimiArriviFornitoreViewModel mViewModel;
|
||||||
@@ -61,7 +63,9 @@ public class UltimiArriviFornitoreFragment extends Fragment implements ITitledFr
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroy() {
|
public void onDestroy() {
|
||||||
if(mOnPreDestroy != null) mOnPreDestroy.run();
|
for(Runnable onPreDestroy : mOnPreDestroyList) {
|
||||||
|
onPreDestroy.run();
|
||||||
|
}
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -70,14 +74,19 @@ public class UltimiArriviFornitoreFragment extends Fragment implements ITitledFr
|
|||||||
titleText.setText(context.getText(R.string.ultime_arrivi_fornitore_title).toString());
|
titleText.setText(context.getText(R.string.ultime_arrivi_fornitore_title).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) {
|
||||||
|
this.mOnPreDestroyList.add(onActionBarPreDestroy);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setScrollToolbar(ElevatedToolbar toolbar) {
|
public void setScrollToolbar(ElevatedToolbar toolbar) {
|
||||||
mToolbar = toolbar;
|
mToolbar = toolbar;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setOnPreDestroy(Runnable onPreDestroy) {
|
public void setScrollableOnPreDestroy(Runnable onPreDestroy) {
|
||||||
mOnPreDestroy = onPreDestroy;
|
this.mOnPreDestroyList.add(onPreDestroy);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,350 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.gest.vendita;
|
|
||||||
|
|
||||||
import android.app.Dialog;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import android.text.Html;
|
|
||||||
import android.text.SpannableString;
|
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.Menu;
|
|
||||||
import android.view.MenuInflater;
|
|
||||||
import android.view.View;
|
|
||||||
import android.view.ViewGroup;
|
|
||||||
|
|
||||||
import androidx.appcompat.widget.AppCompatTextView;
|
|
||||||
import androidx.databinding.DataBindingUtil;
|
|
||||||
import androidx.fragment.app.Fragment;
|
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
|
||||||
|
|
||||||
import com.annimon.stream.Stream;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
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.RunnableArgs;
|
|
||||||
import it.integry.integrywmsnative.core.interfaces.IFilterableFragment;
|
|
||||||
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
|
|
||||||
import it.integry.integrywmsnative.core.interfaces.ISelectAllFragment;
|
|
||||||
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
|
||||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
|
||||||
import it.integry.integrywmsnative.core.rest.CommonRESTException;
|
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer;
|
|
||||||
import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO;
|
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityToast;
|
|
||||||
import it.integry.integrywmsnative.databinding.FragmentMainVenditaBinding;
|
|
||||||
import it.integry.integrywmsnative.gest.spedizione.SpedizioneActivity;
|
|
||||||
import it.integry.integrywmsnative.gest.vendita.core.MainListVenditaAdapter;
|
|
||||||
import it.integry.integrywmsnative.gest.vendita.core.VenditaHelper;
|
|
||||||
import it.integry.integrywmsnative.gest.vendita.dialogs.DialogVenditaFiltroAvanzato;
|
|
||||||
import it.integry.integrywmsnative.gest.vendita.dialogs.DialogVenditaFiltroAvanzatoViewModel;
|
|
||||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
|
||||||
import it.integry.integrywmsnative.gest.vendita.viewmodel.VenditaViewModel;
|
|
||||||
import it.integry.integrywmsnative.ui.ElevatedToolbar;
|
|
||||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
|
||||||
|
|
||||||
public class MainVenditaFragment extends Fragment implements ITitledFragment, IScrollableFragment, ISelectAllFragment, IFilterableFragment {
|
|
||||||
|
|
||||||
private Runnable mOnPreDestroy;
|
|
||||||
private ElevatedToolbar mToolbar;
|
|
||||||
|
|
||||||
private VenditaHelper mHelper;
|
|
||||||
private FragmentMainVenditaBinding mBinding = null;
|
|
||||||
private VenditaViewModel mViewModel;
|
|
||||||
|
|
||||||
private MainListVenditaAdapter mAdapter;
|
|
||||||
|
|
||||||
private List<OrdineVenditaInevasoDTO> mOriginalOrderList;
|
|
||||||
private List<OrdineVenditaInevasoDTO> mRenderedOrderList = new ArrayList<>();
|
|
||||||
|
|
||||||
private DialogVenditaFiltroAvanzatoViewModel mAppliedFilterViewModel;
|
|
||||||
|
|
||||||
private int barcodeScannerIstanceID = -1;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public MainVenditaFragment() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static MainVenditaFragment newInstance() {
|
|
||||||
MainVenditaFragment fragment = new MainVenditaFragment();
|
|
||||||
Bundle args = new Bundle();
|
|
||||||
fragment.setArguments(args);
|
|
||||||
return fragment;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCreateActionBar(AppCompatTextView titleText, Context context) {
|
|
||||||
titleText.setText(context.getText(R.string.vendita_title_fragment).toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
setHasOptionsMenu(true);
|
|
||||||
|
|
||||||
init();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDestroy() {
|
|
||||||
if(mOnPreDestroy != null) mOnPreDestroy.run();
|
|
||||||
BarcodeManager.removeCallback(barcodeScannerIstanceID);
|
|
||||||
super.onDestroy();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
|
||||||
Bundle savedInstanceState) {
|
|
||||||
|
|
||||||
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_main_vendita, container, false);
|
|
||||||
|
|
||||||
mBinding.venditaMainList.setLayoutManager(new LinearLayoutManager(getActivity()));
|
|
||||||
mBinding.venditaMainFab.hide();
|
|
||||||
|
|
||||||
mBinding.venditaMainFab.setOnClickListener(v -> onVenditaMainFabClick());
|
|
||||||
|
|
||||||
if(mToolbar != null) mToolbar.setRecyclerView(mBinding.venditaMainList);
|
|
||||||
|
|
||||||
return mBinding.getRoot();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
|
|
||||||
inflater.inflate(R.menu.fragment_vendita, menu);
|
|
||||||
super.onCreateOptionsMenu(menu, inflater);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private void init(){
|
|
||||||
|
|
||||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(getActivity());
|
|
||||||
|
|
||||||
mHelper = new VenditaHelper(getActivity());
|
|
||||||
mViewModel = new VenditaViewModel(getActivity(), this, mBinding, mHelper);
|
|
||||||
|
|
||||||
mHelper.loadOrdini(ordini -> {
|
|
||||||
if(ordini != null) {
|
|
||||||
UtilityToast.showToast("Caricati " + ordini.size() + " ordini");
|
|
||||||
mOriginalOrderList = ordini;
|
|
||||||
mViewModel.setListOrder(ordini);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
mBinding.ordiniVenditaEmptyView.setVisibility(ordini != null && ordini.size() > 0 ? View.GONE : View.VISIBLE);
|
|
||||||
|
|
||||||
refreshOrdini(ordini);
|
|
||||||
initRecyclerView();
|
|
||||||
progress.dismiss();
|
|
||||||
}, ex -> {
|
|
||||||
mOriginalOrderList = new ArrayList<>();
|
|
||||||
progress.dismiss();
|
|
||||||
|
|
||||||
String errorMessage = CommonRESTException.tryRecognizeThenGetMessage(ex);
|
|
||||||
if(errorMessage == null) errorMessage = ex.getMessage();
|
|
||||||
DialogSimpleMessageHelper.makeErrorDialog(getActivity(), new SpannableString(errorMessage), null, null).show();
|
|
||||||
});
|
|
||||||
|
|
||||||
barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
|
|
||||||
.setOnScanSuccessfull(mViewModel.onScanSuccessfull)
|
|
||||||
.setOnScanFailed(ex -> UtilityExceptions.defaultException(getActivity(), ex, false)));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public void refreshOrdini(List<OrdineVenditaInevasoDTO> ordini){
|
|
||||||
mRenderedOrderList.clear();
|
|
||||||
mRenderedOrderList.addAll(ordini != null ? ordini : new ArrayList<>());
|
|
||||||
}
|
|
||||||
|
|
||||||
private void initRecyclerView() {
|
|
||||||
mAdapter = new MainListVenditaAdapter(getActivity(), mRenderedOrderList, onSingleSelectionChanged);
|
|
||||||
mBinding.venditaMainList.setAdapter(mAdapter);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void refreshRecyclerView() {
|
|
||||||
mAdapter.updateItems(mRenderedOrderList);
|
|
||||||
}
|
|
||||||
|
|
||||||
private RunnableArgs<OrdineVenditaInevasoDTO> onSingleSelectionChanged = dto -> {
|
|
||||||
List<OrdineVenditaInevasoDTO> selectedOrders = mHelper.getSelectedOrders(mOriginalOrderList);
|
|
||||||
|
|
||||||
if(!SettingsManager.iDB().isFlagMultiClienteOrdV()){
|
|
||||||
if(dto.isSelected()) {
|
|
||||||
Stream.of(selectedOrders)
|
|
||||||
.filter(x -> !x.getCodAnagOrd().equalsIgnoreCase(dto.getCodAnagOrd()))
|
|
||||||
.forEach(x -> x.setSelected(false));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(selectedOrders != null && selectedOrders.size() > 0) {
|
|
||||||
mBinding.venditaMainFab.show();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
mBinding.venditaMainFab.hide();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
private void onVenditaMainFabClick() {
|
|
||||||
|
|
||||||
List<OrdineVenditaInevasoDTO> selectedOrders = mHelper.getSelectedOrders(mOriginalOrderList);
|
|
||||||
List<String> barcodes = new ArrayList<>();
|
|
||||||
|
|
||||||
String dataCons = null;
|
|
||||||
|
|
||||||
for(OrdineVenditaInevasoDTO ordine : selectedOrders){
|
|
||||||
if(!barcodes.contains(ordine.getBarcode())) barcodes.add(ordine.getBarcode());
|
|
||||||
|
|
||||||
if(dataCons == null) dataCons = ordine.getDataConsS();
|
|
||||||
else if(!dataCons.equalsIgnoreCase(ordine.getDataConsS())) dataCons = "";
|
|
||||||
}
|
|
||||||
|
|
||||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(getActivity());
|
|
||||||
|
|
||||||
|
|
||||||
checkSelectedOrders(selectedOrders, () -> {
|
|
||||||
|
|
||||||
RunnableArgs<List<SitArtOrdDTO>> onPostGetListaArts = sitArtsDTO -> {
|
|
||||||
mHelper.getBancaliVenditaGiaRegistrati(selectedOrders, mtbColtList -> {
|
|
||||||
progress.dismiss();
|
|
||||||
|
|
||||||
List<String> codMarts = Stream.of(sitArtsDTO)
|
|
||||||
.distinctBy(SitArtOrdDTO::getCodMart)
|
|
||||||
.map(SitArtOrdDTO::getCodMart)
|
|
||||||
.toList();
|
|
||||||
|
|
||||||
int alreadyRegisteredUL = mtbColtList.size();
|
|
||||||
|
|
||||||
|
|
||||||
DialogSimpleMessageHelper.makeInfoDialog(getActivity(),
|
|
||||||
getText(R.string.orders).toString(),
|
|
||||||
Html.fromHtml(String.format(getActivity().getResources().getQuantityString(R.plurals.loaded_orders_message, selectedOrders.size()), selectedOrders.size())
|
|
||||||
+ "<br />" +
|
|
||||||
"<b>" + codMarts.size() + "</b> " + getActivity().getResources().getQuantityString(R.plurals.available_articles, codMarts.size())
|
|
||||||
+ "<br />" +
|
|
||||||
"<b>" + alreadyRegisteredUL + "</b> " + getActivity().getResources().getQuantityString(R.plurals.already_registered_lu, alreadyRegisteredUL)),
|
|
||||||
null,
|
|
||||||
() -> SpedizioneActivity.startActivity(getActivity(), sitArtsDTO, selectedOrders, mtbColtList)
|
|
||||||
).show();
|
|
||||||
|
|
||||||
}, ex -> UtilityExceptions.defaultException(getActivity(), ex, progress));
|
|
||||||
};
|
|
||||||
|
|
||||||
OrdiniRESTConsumer.retrieveListaArticoliFromOrdiniUscita(selectedOrders, onPostGetListaArts, ex -> UtilityExceptions.defaultException(getActivity(), ex, progress));
|
|
||||||
|
|
||||||
|
|
||||||
}, progress::dismiss);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setScrollToolbar(ElevatedToolbar toolbar) {
|
|
||||||
mToolbar = toolbar;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setOnPreDestroy(Runnable onPreDestroy) {
|
|
||||||
mOnPreDestroy = onPreDestroy;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isEnabled() {
|
|
||||||
return SettingsManager.iDB().isFlagMultiClienteOrdV();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSelectAll() {
|
|
||||||
if(mRenderedOrderList != null && mRenderedOrderList.size() > 0) {
|
|
||||||
if(mHelper.getSelectedOrders(mRenderedOrderList).size() > 0){
|
|
||||||
mHelper.deselectAll(mRenderedOrderList);
|
|
||||||
} else {
|
|
||||||
//Selezionare solo quelli attualmente a video
|
|
||||||
mHelper.selectAll(mRenderedOrderList);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onResume() {
|
|
||||||
super.onResume();
|
|
||||||
if(mRenderedOrderList != null && mRenderedOrderList.size() > 0) {
|
|
||||||
mHelper.deselectAll(mRenderedOrderList);
|
|
||||||
refreshRecyclerView();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFilterClick() {
|
|
||||||
|
|
||||||
DialogVenditaFiltroAvanzato.make(getActivity(), mOriginalOrderList, mAppliedFilterViewModel, (filteredOrderList, filter) -> {
|
|
||||||
mAppliedFilterViewModel = filter;
|
|
||||||
|
|
||||||
if(filteredOrderList != null){
|
|
||||||
|
|
||||||
refreshOrdini(filteredOrderList);
|
|
||||||
refreshRecyclerView();
|
|
||||||
}
|
|
||||||
|
|
||||||
}).show();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void checkSelectedOrders(List<OrdineVenditaInevasoDTO> selectedOrders, Runnable onComplete, Runnable onFailed) {
|
|
||||||
if(selectedOrders != null && selectedOrders.size() > 0) {
|
|
||||||
|
|
||||||
//Definizione della gestione collo di default
|
|
||||||
List<GestioneEnum> foundGestioni = Stream.of(selectedOrders)
|
|
||||||
.map(OrdineVenditaInevasoDTO::getGestioneEnum)
|
|
||||||
.withoutNulls()
|
|
||||||
.distinctBy(x -> x)
|
|
||||||
.toList();
|
|
||||||
|
|
||||||
if (foundGestioni != null && foundGestioni.size() > 1) {
|
|
||||||
DialogSimpleMessageHelper.makeErrorDialog(getContext(), new SpannableString(getString(R.string.error_multiple_gest)), null, onFailed).show();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Definizione del deposito di default
|
|
||||||
List<String> foundCodMdep = Stream.of(selectedOrders)
|
|
||||||
.map(OrdineVenditaInevasoDTO::getCodMdep)
|
|
||||||
// .withoutNulls()
|
|
||||||
.distinctBy(x -> x)
|
|
||||||
.toList();
|
|
||||||
|
|
||||||
if (foundCodMdep != null && foundCodMdep.size() > 1) {
|
|
||||||
DialogSimpleMessageHelper.makeErrorDialog(getContext(), new SpannableString(getString(R.string.error_multiple_cod_mdep_ordv)), null, onFailed).show();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//NON-BLOCKING CHECKS
|
|
||||||
|
|
||||||
//Definizione del codJfas di default
|
|
||||||
List<String> foundCodJfas = Stream.of(selectedOrders)
|
|
||||||
.map(OrdineVenditaInevasoDTO::getCodJfas)
|
|
||||||
// .withoutNulls()
|
|
||||||
.distinctBy(x -> x)
|
|
||||||
.toList();
|
|
||||||
|
|
||||||
if (foundCodJfas != null && foundCodJfas.size() > 1) {
|
|
||||||
DialogSimpleMessageHelper.makeWarningDialog(getContext(), new SpannableString(getString(R.string.error_multiple_cod_jfas_ordp)), null, () -> {
|
|
||||||
|
|
||||||
|
|
||||||
onComplete.run();
|
|
||||||
|
|
||||||
|
|
||||||
}).show();
|
|
||||||
} else {
|
|
||||||
onComplete.run();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
onComplete.run();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,208 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.gest.vendita.core;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.text.Html;
|
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.View;
|
|
||||||
import android.view.ViewGroup;
|
|
||||||
|
|
||||||
import androidx.core.content.res.ResourcesCompat;
|
|
||||||
import androidx.databinding.DataBindingUtil;
|
|
||||||
import androidx.databinding.Observable;
|
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
|
||||||
|
|
||||||
import com.annimon.stream.Stream;
|
|
||||||
import com.zhukic.sectionedrecyclerview.SectionedRecyclerViewAdapter;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
|
||||||
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
|
||||||
import it.integry.integrywmsnative.databinding.VenditaMainListGroupModelBinding;
|
|
||||||
import it.integry.integrywmsnative.databinding.VenditaMainListModelBinding;
|
|
||||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
|
||||||
import it.integry.integrywmsnative.ui.fastscroll.SectionTitleProvider;
|
|
||||||
|
|
||||||
public class MainListVenditaAdapter extends SectionedRecyclerViewAdapter<MainListVenditaAdapter.SubheaderHolder, MainListVenditaAdapter.SingleItemViewHolder> implements SectionTitleProvider {
|
|
||||||
|
|
||||||
private Context mContext;
|
|
||||||
|
|
||||||
private List<OrdineVenditaInevasoDTO> mDataset;
|
|
||||||
private RunnableArgs<OrdineVenditaInevasoDTO> mOnSingleSelectionChanged;
|
|
||||||
|
|
||||||
|
|
||||||
static class SubheaderHolder extends RecyclerView.ViewHolder {
|
|
||||||
|
|
||||||
VenditaMainListModelBinding binding;
|
|
||||||
|
|
||||||
SubheaderHolder(VenditaMainListModelBinding binding) {
|
|
||||||
super(binding.getRoot());
|
|
||||||
this.binding = binding;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
static class SingleItemViewHolder extends RecyclerView.ViewHolder {
|
|
||||||
|
|
||||||
VenditaMainListGroupModelBinding binding;
|
|
||||||
|
|
||||||
SingleItemViewHolder(VenditaMainListGroupModelBinding binding) {
|
|
||||||
super(binding.getRoot());
|
|
||||||
this.binding = binding;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public MainListVenditaAdapter(Context context, List<OrdineVenditaInevasoDTO> myDataset, RunnableArgs<OrdineVenditaInevasoDTO> onSingleSelectionChanged) {
|
|
||||||
mContext = context;
|
|
||||||
mDataset = orderItems(myDataset);
|
|
||||||
mOnSingleSelectionChanged = onSingleSelectionChanged;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void updateItems(List<OrdineVenditaInevasoDTO> updatedDataset) {
|
|
||||||
mDataset.clear();
|
|
||||||
mDataset.addAll(orderItems(updatedDataset));
|
|
||||||
notifyDataSetChanged();
|
|
||||||
notifyDataChanged();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private List<OrdineVenditaInevasoDTO> orderItems(List<OrdineVenditaInevasoDTO> dataset) {
|
|
||||||
return Stream.of(dataset)
|
|
||||||
.sortBy(x -> x.getRagSocOrd() + " - " + x.getDestinatario())
|
|
||||||
.toList();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public SubheaderHolder onCreateSubheaderViewHolder(ViewGroup parent, int viewType) {
|
|
||||||
VenditaMainListModelBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.vendita_main_list_model, parent, false);
|
|
||||||
return new SubheaderHolder(binding);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public SingleItemViewHolder onCreateItemViewHolder(ViewGroup parent, int viewType) {
|
|
||||||
VenditaMainListGroupModelBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.vendita_main_list_group_model, parent, false);
|
|
||||||
return new SingleItemViewHolder(binding);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBindSubheaderViewHolder(SubheaderHolder subheaderHolder, int nextItemPosition) {
|
|
||||||
subheaderHolder.binding.venditaMainListGroupHeader.setText(mDataset.get(nextItemPosition).getRagSocOrd());
|
|
||||||
|
|
||||||
if (!UtilityString.isNullOrEmpty(mDataset.get(nextItemPosition).getDestinatario()) &&
|
|
||||||
!UtilityString.equalsIgnoreCase(mDataset.get(nextItemPosition).getRagSocOrd(), mDataset.get(nextItemPosition).getDestinatario())) {
|
|
||||||
|
|
||||||
subheaderHolder.binding.venditaMainListGroupSubheader.setVisibility(View.VISIBLE);
|
|
||||||
subheaderHolder.binding.venditaMainListGroupSubheader.setText(mDataset.get(nextItemPosition).getDestinatario());
|
|
||||||
|
|
||||||
} else {
|
|
||||||
subheaderHolder.binding.venditaMainListGroupSubheader.setVisibility(View.GONE);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
subheaderHolder.binding.getRoot().setOnClickListener(v -> {
|
|
||||||
if(SettingsManager.iDB().isFlagSpedizioneCanSelectMultipleOrders()) {
|
|
||||||
|
|
||||||
boolean anySelected = Stream.of(mDataset)
|
|
||||||
.filter(x -> x.getCodAnagOrd().equals(mDataset.get(nextItemPosition).getCodAnagOrd()))
|
|
||||||
.anyMatch(OrdineVenditaInevasoDTO::isSelected);
|
|
||||||
|
|
||||||
Stream.of(mDataset)
|
|
||||||
.filter(x -> x.getCodAnagOrd().equals(mDataset.get(nextItemPosition).getCodAnagOrd()))
|
|
||||||
.forEach(x -> x.setSelected(!anySelected));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onBindItemViewHolder(SingleItemViewHolder h, int itemPosition) {
|
|
||||||
final OrdineVenditaInevasoDTO ordine = mDataset.get(itemPosition);
|
|
||||||
final SingleItemViewHolder holder = h;
|
|
||||||
|
|
||||||
holder.binding.venditaMainListGroupItemContainerCheckBox.setTag(ordine.getNumOrd());
|
|
||||||
|
|
||||||
holder.binding.venditaMainListGroupItemContainerCheckBox.setOnCheckedChangeListener(null);
|
|
||||||
|
|
||||||
ordine.selected.resetOnPropertyChangedCallback();
|
|
||||||
|
|
||||||
|
|
||||||
if (ordine.isFlagEvaso()) {
|
|
||||||
holder.binding.emptyView.setBackgroundColor(ResourcesCompat.getColor(mContext.getResources(), R.color.mainGreen, null));
|
|
||||||
} else if (ordine.isExistColloBoolean()) {
|
|
||||||
holder.binding.emptyView.setBackgroundColor(ResourcesCompat.getColor(mContext.getResources(), R.color.colorPrimary, null));
|
|
||||||
} else {
|
|
||||||
holder.binding.emptyView.setBackgroundColor(ResourcesCompat.getColor(mContext.getResources(), android.R.color.transparent, null));
|
|
||||||
}
|
|
||||||
|
|
||||||
String testataOrdString = String.format(mContext.getString(R.string.ord_ven_testata), String.valueOf(ordine.getNumOrd()), UtilityDate.formatDate(ordine.getDataOrdD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
|
||||||
holder.binding.venditaMainListGroupItemContainerTestataOrd.setText(Html.fromHtml(testataOrdString));
|
|
||||||
|
|
||||||
String testataDataConsString = String.format(mContext.getString(R.string.ord_ven_testata_data_cons), UtilityDate.formatDate(ordine.getDataConsD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
|
||||||
holder.binding.venditaMainListGroupItemContainerTestataDataCons.setText(Html.fromHtml(testataDataConsString));
|
|
||||||
|
|
||||||
if (!UtilityString.isNullOrEmpty(ordine.getRifOrd()))
|
|
||||||
holder.binding.venditaMainListGroupItemContainerDetailOrd.setText(ordine.getRifOrd());
|
|
||||||
else holder.binding.venditaMainListGroupItemContainerDetailOrd.setText(ordine.getCodJcom());
|
|
||||||
|
|
||||||
|
|
||||||
if (!UtilityString.isNullOrEmpty(mDataset.get(itemPosition).getDescrizioneVettore())) {
|
|
||||||
holder.binding.venditaMainListGroupItemContainerVettoreLayout.setVisibility(View.VISIBLE);
|
|
||||||
holder.binding.venditaMainListGroupItemContainerVettore.setText(mDataset.get(itemPosition).getDescrizioneVettore());
|
|
||||||
} else {
|
|
||||||
holder.binding.venditaMainListGroupItemContainerVettoreLayout.setVisibility(View.GONE);
|
|
||||||
holder.binding.venditaMainListGroupItemContainerVettore.setText(null);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
holder.binding.setCheckboxValue(ordine.selected);
|
|
||||||
|
|
||||||
holder.binding.getRoot().setOnClickListener(v -> {
|
|
||||||
ordine.setSelected(!ordine.isSelected());
|
|
||||||
});
|
|
||||||
|
|
||||||
holder.binding.venditaMainListGroupItemContainerCheckBox.setChecked(ordine.isSelected());
|
|
||||||
|
|
||||||
//Bindable to View
|
|
||||||
ordine.selected.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
|
|
||||||
@Override
|
|
||||||
public void onPropertyChanged(Observable sender, int propertyId) {
|
|
||||||
if (holder.binding.venditaMainListGroupItemContainerCheckBox.getTag().equals(ordine.getNumOrd())) {
|
|
||||||
holder.binding.venditaMainListGroupItemContainerCheckBox.setChecked(((BindableBoolean) sender).get());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
//View to Bindable
|
|
||||||
holder.binding.venditaMainListGroupItemContainerCheckBox.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
|
||||||
ordine.setSelected(isChecked);
|
|
||||||
mOnSingleSelectionChanged.run(ordine);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onPlaceSubheaderBetweenItems(int position) {
|
|
||||||
return !this.mDataset.get(position).getRagSocOrd().equalsIgnoreCase(this.mDataset.get(position + 1).getRagSocOrd()) &&
|
|
||||||
!(this.mDataset.get(position).getDestinatario() != null && this.mDataset.get(position).getDestinatario().equalsIgnoreCase(this.mDataset.get(position + 1).getDestinatario()));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getItemSize() {
|
|
||||||
return mDataset.size();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getSectionTitle(int position) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,198 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.gest.vendita.core;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
import com.annimon.stream.Stream;
|
|
||||||
import com.google.firebase.perf.metrics.Trace;
|
|
||||||
import com.google.gson.reflect.TypeToken;
|
|
||||||
|
|
||||||
import java.lang.reflect.Type;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
|
||||||
import it.integry.integrywmsnative.core.model.DtbOrdt;
|
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
|
||||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
|
||||||
import it.integry.integrywmsnative.core.rest.RESTBuilder;
|
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ISimpleOperationCallback;
|
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
|
||||||
import it.integry.integrywmsnative.core.rest.model.EsitoType;
|
|
||||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDB;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityFirebase;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityLogger;
|
|
||||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
|
||||||
import it.integry.integrywmsnative.gest.vendita.rest.OrdiniVenditaRESTConsumerService;
|
|
||||||
import retrofit2.Call;
|
|
||||||
import retrofit2.Callback;
|
|
||||||
import retrofit2.Response;
|
|
||||||
|
|
||||||
public class VenditaHelper {
|
|
||||||
|
|
||||||
private Context mContext;
|
|
||||||
|
|
||||||
public VenditaHelper(Context context){
|
|
||||||
mContext = context;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void loadOrdini(RunnableArgs<List<OrdineVenditaInevasoDTO>> onComplete, RunnableArgs<Exception> onFailed){
|
|
||||||
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
|
|
||||||
|
|
||||||
Trace perfTrace = UtilityFirebase.getNewPerformanceTrace("db_load_ords_v");
|
|
||||||
perfTrace.start();
|
|
||||||
|
|
||||||
OrdiniVenditaRESTConsumerService service = RESTBuilder.getService(OrdiniVenditaRESTConsumerService.class);
|
|
||||||
service.listOrdiniInevasi(codMdep).enqueue(new Callback<ServiceRESTResponse<List<OrdineVenditaInevasoDTO>>>() {
|
|
||||||
@Override
|
|
||||||
public void onResponse(Call<ServiceRESTResponse<List<OrdineVenditaInevasoDTO>>> call, Response<ServiceRESTResponse<List<OrdineVenditaInevasoDTO>>> response) {
|
|
||||||
|
|
||||||
if(response.isSuccessful()) {
|
|
||||||
|
|
||||||
if(response.body() != null) {
|
|
||||||
if(response.body().getEsito() == EsitoType.OK) {
|
|
||||||
UtilityFirebase.stopPerformanceTrace(perfTrace, false);
|
|
||||||
onComplete.run(response.body().getDto());
|
|
||||||
} else {
|
|
||||||
UtilityFirebase.stopPerformanceTrace(perfTrace, true);
|
|
||||||
onFailed.run(new Exception(response.body().getErrorMessage()));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
UtilityFirebase.stopPerformanceTrace(perfTrace, true);
|
|
||||||
onFailed.run(new Exception(response.message()));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
UtilityFirebase.stopPerformanceTrace(perfTrace, true);
|
|
||||||
onFailed.run(new Exception("Status " + response.code() + ": " + response.message()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFailure(Call<ServiceRESTResponse<List<OrdineVenditaInevasoDTO>>> call, Throwable t) {
|
|
||||||
UtilityFirebase.stopPerformanceTrace(perfTrace, true);
|
|
||||||
Log.e("Vendita", t.toString());
|
|
||||||
UtilityLogger.errorMe(new Exception(t));
|
|
||||||
onFailed.run(new Exception(t));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void getBancaliVenditaGiaRegistrati(List<OrdineVenditaInevasoDTO> orders, RunnableArgs<List<MtbColt>> onComplete, RunnableArgs<Exception> onFailed) {
|
|
||||||
|
|
||||||
String baseSql = "SELECT DISTINCT mtb_colt.* " +
|
|
||||||
"FROM mtb_colt, " +
|
|
||||||
" mtb_colr " +
|
|
||||||
"WHERE mtb_colt.gestione = mtb_colr.gestione " +
|
|
||||||
" AND mtb_colt.ser_collo = mtb_colr.ser_collo " +
|
|
||||||
" AND mtb_colt.data_collo = mtb_colr.data_collo " +
|
|
||||||
" AND mtb_colt.num_collo = mtb_colr.num_collo " +
|
|
||||||
" AND (mtb_colt.gestione = 'V' OR mtb_colt.gestione = 'L') " +
|
|
||||||
" AND mtb_colt.ser_collo = '/' " +
|
|
||||||
" AND mtb_colt.data_doc IS NULL AND ";
|
|
||||||
|
|
||||||
StringBuilder whereCond = new StringBuilder();
|
|
||||||
|
|
||||||
for(int i = 0; i < orders.size(); i++){
|
|
||||||
|
|
||||||
|
|
||||||
whereCond
|
|
||||||
.append("(mtb_colr.data_ord = '").append(UtilityDate.formatDate(orders.get(i).getDataOrdD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH)).append("' ")
|
|
||||||
.append("AND mtb_colr.num_ord = ").append(orders.get(i).getNumOrd()).append(" ")
|
|
||||||
.append("AND mtb_colr.gestione = ").append(UtilityDB.valueToString(orders.get(i).getGestione()))
|
|
||||||
.append(") ");
|
|
||||||
|
|
||||||
if(i != (orders.size() - 1)){
|
|
||||||
whereCond.append("OR ");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
baseSql += "( " + whereCond + ")";
|
|
||||||
|
|
||||||
Type typeOfObjectsList = new TypeToken<ArrayList<MtbColt>>() {}.getType();
|
|
||||||
SystemRESTConsumer.processSqlStatic(baseSql, typeOfObjectsList, new ISimpleOperationCallback<List<MtbColt>>() {
|
|
||||||
@Override
|
|
||||||
public void onSuccess(List<MtbColt> value) {
|
|
||||||
if(onComplete != null) onComplete.run(value);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFailed(Exception ex) {
|
|
||||||
if(onFailed != null) onFailed.run(ex);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public void getOrdiniInCommessaCollo(MtbColt testataCollo, RunnableArgs<List<DtbOrdt>> onComplete, RunnableArgs<Exception> onFailed) {
|
|
||||||
OrdiniVenditaRESTConsumerService service = RESTBuilder.getService(OrdiniVenditaRESTConsumerService.class);
|
|
||||||
service.getOrdiniInCommessaCollo(
|
|
||||||
testataCollo.getDataColloS(),
|
|
||||||
testataCollo.getNumCollo(),
|
|
||||||
testataCollo.getSerCollo(),
|
|
||||||
testataCollo.getGestione(),
|
|
||||||
GestioneEnum.VENDITA.getText(),
|
|
||||||
SettingsManager.i().getUserSession().getDepo().getCodMdep())
|
|
||||||
.enqueue(new Callback<ServiceRESTResponse<List<DtbOrdt>>>() {
|
|
||||||
@Override
|
|
||||||
public void onResponse(Call<ServiceRESTResponse<List<DtbOrdt>>> call, Response<ServiceRESTResponse<List<DtbOrdt>>> response) {
|
|
||||||
|
|
||||||
if(response.isSuccessful()) {
|
|
||||||
|
|
||||||
if(response.body() != null) {
|
|
||||||
if(response.body().getEsito() == EsitoType.OK) {
|
|
||||||
onComplete.run(response.body().getDto());
|
|
||||||
} else {
|
|
||||||
onFailed.run(new Exception(response.body().getErrorMessage()));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
onFailed.run(new Exception(response.message()));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
onFailed.run(new Exception("Status " + response.code() + ": " + response.message()));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFailure(Call<ServiceRESTResponse<List<DtbOrdt>>> call, Throwable t) {
|
|
||||||
onFailed.run(new Exception(t));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public List<OrdineVenditaInevasoDTO> getSelectedOrders(List<OrdineVenditaInevasoDTO> ordiniList){
|
|
||||||
return Stream.of(ordiniList)
|
|
||||||
.filter(OrdineVenditaInevasoDTO::isSelected)
|
|
||||||
.toList();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void selectAll(List<OrdineVenditaInevasoDTO> groupedOrdiniInevasi) {
|
|
||||||
toggleSelection(groupedOrdiniInevasi, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void deselectAll(List<OrdineVenditaInevasoDTO> groupedOrdiniInevasi) {
|
|
||||||
toggleSelection(groupedOrdiniInevasi, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void toggleSelection(List<OrdineVenditaInevasoDTO> groupedOrdiniInevasi, boolean value) {
|
|
||||||
for(int i = 0; i < groupedOrdiniInevasi.size(); i++){
|
|
||||||
groupedOrdiniInevasi.get(i).setSelected(value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.gest.vendita.rest;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.model.DtbOrdt;
|
|
||||||
import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse;
|
|
||||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
|
||||||
import retrofit2.Call;
|
|
||||||
import retrofit2.http.GET;
|
|
||||||
import retrofit2.http.Query;
|
|
||||||
|
|
||||||
public interface OrdiniVenditaRESTConsumerService {
|
|
||||||
|
|
||||||
@GET("SM2GetOrdiniVenditaInevasi")
|
|
||||||
Call<ServiceRESTResponse<List<OrdineVenditaInevasoDTO>>> listOrdiniInevasi(@Query("codMdep") String codMdep);
|
|
||||||
|
|
||||||
@GET("SM2GetOrdiniVenditaInevasi")
|
|
||||||
Call<ServiceRESTResponse<List<OrdineVenditaInevasoDTO>>> listOrdiniInevasi(@Query("codMdep") String codMdep, @Query("gestione") String gestione);
|
|
||||||
|
|
||||||
@GET("getOrdiniInCommCollo")
|
|
||||||
Call<ServiceRESTResponse<List<DtbOrdt>>> getOrdiniInCommessaCollo(@Query("dataCollo") String dataCollo, @Query("numCollo") Integer numCollo, @Query("serCollo") String serCollo, @Query("gestioneCollo") String gestioneCollo, @Query("gestioneOrdine") String gestioneOrdine, @Query("codMdep") String codMdep);
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,217 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.gest.vendita.viewmodel;
|
|
||||||
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.app.Dialog;
|
|
||||||
import android.text.Html;
|
|
||||||
import android.text.SpannableString;
|
|
||||||
|
|
||||||
import com.annimon.stream.Stream;
|
|
||||||
|
|
||||||
import java.text.ParseException;
|
|
||||||
import java.text.SimpleDateFormat;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
|
||||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
|
||||||
import it.integry.integrywmsnative.core.model.DtbOrdt;
|
|
||||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityToast;
|
|
||||||
import it.integry.integrywmsnative.databinding.FragmentMainVenditaBinding;
|
|
||||||
import it.integry.integrywmsnative.gest.vendita.MainVenditaFragment;
|
|
||||||
import it.integry.integrywmsnative.gest.vendita.core.VenditaHelper;
|
|
||||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
|
||||||
import it.integry.integrywmsnative.view.dialogs.DialogCommon;
|
|
||||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
|
||||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
|
||||||
|
|
||||||
public class VenditaViewModel {
|
|
||||||
|
|
||||||
private Activity mContext;
|
|
||||||
private MainVenditaFragment mFragment;
|
|
||||||
private FragmentMainVenditaBinding mBinding;
|
|
||||||
private VenditaHelper mHelper;
|
|
||||||
|
|
||||||
private List<OrdineVenditaInevasoDTO> mOrdini = new ArrayList<>();
|
|
||||||
|
|
||||||
public VenditaViewModel(Activity context, MainVenditaFragment fragment, FragmentMainVenditaBinding binding, VenditaHelper helper) {
|
|
||||||
mContext = context;
|
|
||||||
mFragment = fragment;
|
|
||||||
mBinding = binding;
|
|
||||||
mHelper = helper;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setListOrder(List<OrdineVenditaInevasoDTO> ordini) {
|
|
||||||
mOrdini = ordini;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public RunnableArgs<BarcodeScanDTO> onScanSuccessfull = data -> {
|
|
||||||
|
|
||||||
BarcodeManager.disable();
|
|
||||||
final Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
|
|
||||||
|
|
||||||
if(UtilityBarcode.isBarcodeOrdineV(data)) {
|
|
||||||
this.executeEtichettaOrdineV(data.getStringValue(), progressDialog);
|
|
||||||
} else if(UtilityBarcode.isEtichettaAnonima(data)) {
|
|
||||||
this.executeEtichettaLU(data.getStringValue(), progressDialog);
|
|
||||||
} else if(UtilityBarcode.isEtichetta128(data)){
|
|
||||||
this.executeEtichettaEan128(data, progressDialog);
|
|
||||||
} else {
|
|
||||||
progressDialog.dismiss();
|
|
||||||
BarcodeManager.enable();
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
private void executeEtichettaEan128(BarcodeScanDTO barcodeScanDTO, Dialog progressDialog) {
|
|
||||||
BarcodeRESTConsumer.decodeEan128Static(barcodeScanDTO, ean128Model -> {
|
|
||||||
|
|
||||||
String barcodeProd = null;
|
|
||||||
|
|
||||||
if(!UtilityString.isNullOrEmpty(ean128Model.Sscc)) barcodeProd = ean128Model.Sscc;
|
|
||||||
if(!UtilityString.isNullOrEmpty(ean128Model.Gtin)) barcodeProd = ean128Model.Gtin;
|
|
||||||
if(!UtilityString.isNullOrEmpty(ean128Model.Content)) barcodeProd = ean128Model.Content;
|
|
||||||
|
|
||||||
|
|
||||||
if(!UtilityString.isNullOrEmpty(barcodeProd)) {
|
|
||||||
|
|
||||||
if(!UtilityString.isNullOrEmpty(ean128Model.Sscc)){
|
|
||||||
this.executeEtichettaLU(ean128Model.Sscc, progressDialog);
|
|
||||||
} else {
|
|
||||||
DialogCommon.showNoULFound(mContext, null);
|
|
||||||
progressDialog.dismiss();
|
|
||||||
BarcodeManager.enable();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
} else {
|
|
||||||
//EAN 128 non completo o comunque mancano i riferimenti al prodotto
|
|
||||||
DialogCommon.showNoULFound(mContext, null);
|
|
||||||
progressDialog.dismiss();
|
|
||||||
BarcodeManager.enable();
|
|
||||||
}
|
|
||||||
}, ex-> {
|
|
||||||
UtilityExceptions.defaultException(mContext, ex, progressDialog);
|
|
||||||
BarcodeManager.enable();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void executeEtichettaOrdineV(String barcode, Dialog progressDialog) {
|
|
||||||
String gestione = "";
|
|
||||||
|
|
||||||
char c = barcode.charAt(0);
|
|
||||||
if (c == '1')
|
|
||||||
gestione = "A";
|
|
||||||
else if (c == '2')
|
|
||||||
gestione = "L";
|
|
||||||
else if (c == '3')
|
|
||||||
gestione = "V";
|
|
||||||
|
|
||||||
int numOrd = Integer.parseInt(UtilityString.mid(barcode, 10));
|
|
||||||
|
|
||||||
Date date = null;
|
|
||||||
try {
|
|
||||||
date = new SimpleDateFormat("ddMMyyyy")
|
|
||||||
.parse(UtilityString.mid(barcode, 2, 8));
|
|
||||||
} catch (ParseException ex) {
|
|
||||||
UtilityExceptions.defaultException(mContext, ex, progressDialog);
|
|
||||||
BarcodeManager.enable();
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
final String finalGestione = gestione;
|
|
||||||
final Date finalDate = date;
|
|
||||||
|
|
||||||
List<OrdineVenditaInevasoDTO> filteredOrders = Stream.of(mOrdini)
|
|
||||||
.filter(x -> x.getNumOrd() == numOrd && x.getGestione().equalsIgnoreCase(finalGestione) && x.getDataOrdD().equals(finalDate)).toList();
|
|
||||||
|
|
||||||
mFragment.refreshOrdini(filteredOrders);
|
|
||||||
mFragment.refreshRecyclerView();
|
|
||||||
|
|
||||||
|
|
||||||
progressDialog.dismiss();
|
|
||||||
BarcodeManager.enable();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void executeEtichettaLU(String SSCC, Dialog progressDialog) {
|
|
||||||
ColliMagazzinoRESTConsumer.getBySSCCStatic(SSCC, true, false, mtbColt -> {
|
|
||||||
|
|
||||||
if(mtbColt != null && mtbColt.getMtbColr() != null && mtbColt.getMtbColr().size() > 0) {
|
|
||||||
|
|
||||||
if(mtbColt.getGestioneEnum() == GestioneEnum.ACQUISTO || mtbColt.getGestioneEnum() == GestioneEnum.LAVORAZIONE) {
|
|
||||||
//GET BY COMMESSA COLLO
|
|
||||||
mHelper.getOrdiniInCommessaCollo(mtbColt, orderList -> {
|
|
||||||
|
|
||||||
if(orderList != null && orderList.size() > 0) {
|
|
||||||
UtilityToast.showToast("Caricati " + orderList.size() + " ordini");
|
|
||||||
|
|
||||||
List<Integer> numOrds = Stream.of(orderList)
|
|
||||||
.map(DtbOrdt::getNumOrd)
|
|
||||||
.toList();
|
|
||||||
|
|
||||||
List<OrdineVenditaInevasoDTO> filteredOrders = Stream.of(mOrdini)
|
|
||||||
.filter(x -> numOrds.contains(x.getNumOrd())).toList();
|
|
||||||
|
|
||||||
mFragment.refreshOrdini(filteredOrders);
|
|
||||||
mFragment.refreshRecyclerView();
|
|
||||||
} else {
|
|
||||||
DialogCommon.showNoOrderFound(mContext, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
progressDialog.dismiss();
|
|
||||||
BarcodeManager.enable();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}, ex -> {
|
|
||||||
UtilityExceptions.defaultException(mContext, ex, progressDialog);
|
|
||||||
BarcodeManager.enable();
|
|
||||||
});
|
|
||||||
|
|
||||||
progressDialog.dismiss();
|
|
||||||
BarcodeManager.enable();
|
|
||||||
|
|
||||||
} else {
|
|
||||||
progressDialog.dismiss();
|
|
||||||
BarcodeManager.enable();
|
|
||||||
showWrongGestioneUL();
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
|
||||||
progressDialog.dismiss();
|
|
||||||
BarcodeManager.enable();
|
|
||||||
DialogCommon.showNoULFound(mContext, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}, ex -> {
|
|
||||||
UtilityExceptions.defaultException(mContext, ex, progressDialog);
|
|
||||||
BarcodeManager.enable();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void showWrongGestioneUL() {
|
|
||||||
DialogSimpleMessageHelper.makeWarningDialog(mContext,
|
|
||||||
new SpannableString(Html.fromHtml(mContext.getResources().getText(R.string.gestione_A_L_only_accepted_message).toString())),
|
|
||||||
null, null).show();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,17 +1,18 @@
|
|||||||
package it.integry.integrywmsnative.gest.versamento_merce;
|
package it.integry.integrywmsnative.gest.versamento_merce;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
import androidx.appcompat.app.ActionBar;
|
|
||||||
import androidx.appcompat.widget.AppCompatTextView;
|
|
||||||
import androidx.databinding.DataBindingUtil;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import androidx.fragment.app.Fragment;
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.MainActivity;
|
import androidx.appcompat.widget.AppCompatTextView;
|
||||||
|
import androidx.databinding.DataBindingUtil;
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
|
||||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||||
@@ -28,6 +29,7 @@ public class VersamentoMerceFragment extends Fragment implements ITitledFragment
|
|||||||
private VersamentoMerceViewModel mVersamentoMerceViewModel;
|
private VersamentoMerceViewModel mVersamentoMerceViewModel;
|
||||||
private VersamentoMerceHelper mHelper;
|
private VersamentoMerceHelper mHelper;
|
||||||
|
|
||||||
|
private List<Runnable> mOnPreDestroyList = new ArrayList<>();
|
||||||
|
|
||||||
private int barcodeScannerIstanceID = -1;
|
private int barcodeScannerIstanceID = -1;
|
||||||
|
|
||||||
@@ -38,19 +40,12 @@ public class VersamentoMerceFragment extends Fragment implements ITitledFragment
|
|||||||
|
|
||||||
public static VersamentoMerceFragment newInstance() {
|
public static VersamentoMerceFragment newInstance() {
|
||||||
VersamentoMerceFragment fragment = new VersamentoMerceFragment();
|
VersamentoMerceFragment fragment = new VersamentoMerceFragment();
|
||||||
Bundle args = new Bundle();
|
|
||||||
|
|
||||||
fragment.setArguments(args);
|
|
||||||
return fragment;
|
return fragment;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
if (getArguments() != null) {
|
|
||||||
//mParam1 = getArguments().getString(ARG_PARAM1);
|
|
||||||
//mParam2 = getArguments().getString(ARG_PARAM2);
|
|
||||||
}
|
|
||||||
|
|
||||||
mVersamentoMerceViewModel = new VersamentoMerceViewModel();
|
mVersamentoMerceViewModel = new VersamentoMerceViewModel();
|
||||||
barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
|
barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
|
||||||
@@ -83,6 +78,11 @@ public class VersamentoMerceFragment extends Fragment implements ITitledFragment
|
|||||||
@Override
|
@Override
|
||||||
public void onDestroy() {
|
public void onDestroy() {
|
||||||
BarcodeManager.removeCallback(barcodeScannerIstanceID);
|
BarcodeManager.removeCallback(barcodeScannerIstanceID);
|
||||||
|
|
||||||
|
for(Runnable onPreDestroy : mOnPreDestroyList) {
|
||||||
|
onPreDestroy.run();
|
||||||
|
}
|
||||||
|
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -90,4 +90,9 @@ public class VersamentoMerceFragment extends Fragment implements ITitledFragment
|
|||||||
public void onCreateActionBar(AppCompatTextView titleText, Context context) {
|
public void onCreateActionBar(AppCompatTextView titleText, Context context) {
|
||||||
titleText.setText(context.getText(R.string.versamento_merce_fragment_title).toString());
|
titleText.setText(context.getText(R.string.versamento_merce_fragment_title).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) {
|
||||||
|
this.mOnPreDestroyList.add(onActionBarPreDestroy);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -93,9 +93,7 @@ public class VersamentoMerceViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public RunnableArgs<BarcodeScanDTO> onScanSuccessfull = data -> {
|
public RunnableArgs<BarcodeScanDTO> onScanSuccessfull = data -> {
|
||||||
|
|
||||||
BarcodeManager.disable();
|
BarcodeManager.disable();
|
||||||
|
|
||||||
Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
|
Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
|
||||||
|
|
||||||
if (UtilityBarcode.isEtichettaPosizione(data)) {
|
if (UtilityBarcode.isEtichettaPosizione(data)) {
|
||||||
@@ -121,7 +119,7 @@ public class VersamentoMerceViewModel {
|
|||||||
|
|
||||||
if (foundPosizione.isFlagMonoCollo()) {
|
if (foundPosizione.isFlagMonoCollo()) {
|
||||||
|
|
||||||
PosizioniRESTConsumer.getBancaliInPosizione(foundPosizione, mtbColtList -> {
|
PosizioniRESTConsumer.getBancaliInPosizioneStatic(foundPosizione, mtbColtList -> {
|
||||||
|
|
||||||
if (mtbColtList == null || mtbColtList.size() == 0) {
|
if (mtbColtList == null || mtbColtList.size() == 0) {
|
||||||
progressDialog.dismiss();
|
progressDialog.dismiss();
|
||||||
@@ -137,6 +135,10 @@ public class VersamentoMerceViewModel {
|
|||||||
UtilityExceptions.defaultException(mContext, ex, progressDialog);
|
UtilityExceptions.defaultException(mContext, ex, progressDialog);
|
||||||
BarcodeManager.enable();
|
BarcodeManager.enable();
|
||||||
});
|
});
|
||||||
|
} else {
|
||||||
|
progressDialog.dismiss();
|
||||||
|
BarcodeManager.enable();
|
||||||
|
showTooMuchULFound();
|
||||||
}
|
}
|
||||||
|
|
||||||
}, ex -> {
|
}, ex -> {
|
||||||
@@ -148,6 +150,12 @@ public class VersamentoMerceViewModel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void showTooMuchULFound() {
|
||||||
|
DialogSimpleMessageHelper.makeWarningDialog(mContext,
|
||||||
|
new SpannableString(mContext.getResources().getText(R.string.too_much_lu_found_message_in_mono_lu)),
|
||||||
|
null, null).show();
|
||||||
|
}
|
||||||
|
|
||||||
private void executeEtichettaEan128(BarcodeScanDTO barcodeScanDTO, Dialog progressDialog) {
|
private void executeEtichettaEan128(BarcodeScanDTO barcodeScanDTO, Dialog progressDialog) {
|
||||||
BarcodeRESTConsumer.decodeEan128Static(barcodeScanDTO, ean128Model -> {
|
BarcodeRESTConsumer.decodeEan128Static(barcodeScanDTO, ean128Model -> {
|
||||||
|
|
||||||
@@ -292,7 +300,8 @@ public class VersamentoMerceViewModel {
|
|||||||
.setCausale(MtbColr.Causale.VERSAMENTO)
|
.setCausale(MtbColr.Causale.VERSAMENTO)
|
||||||
.setUtente(SettingsManager.i().getUser().getFullname())
|
.setUtente(SettingsManager.i().getUser().getFullname())
|
||||||
|
|
||||||
.setQtaCol(stornoSourceMtbColr.getQtaCol().multiply(new BigDecimal(-1)));
|
.setQtaCol(stornoSourceMtbColr.getQtaCol().multiply(new BigDecimal(-1)))
|
||||||
|
.setNumCnf(stornoSourceMtbColr.getNumCnf().multiply(new BigDecimal(-1)));
|
||||||
|
|
||||||
mtbColrSourceObservableField.add(stornoSourceMtbColr);
|
mtbColrSourceObservableField.add(stornoSourceMtbColr);
|
||||||
}
|
}
|
||||||
@@ -452,7 +461,7 @@ public class VersamentoMerceViewModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
ColliMagazzinoRESTConsumer.saveColli(mtbColts, value -> {
|
ColliMagazzinoRESTConsumer.saveColliStatic(mtbColts, value -> {
|
||||||
DialogCommon.showDataSaved(mContext, () -> {
|
DialogCommon.showDataSaved(mContext, () -> {
|
||||||
mOnVersamentoCompleted.run();
|
mOnVersamentoCompleted.run();
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,124 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.view.bottomsheet;
|
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import com.google.android.material.appbar.AppBarLayout;
|
|
||||||
import com.google.android.material.bottomsheet.BottomSheetBehavior;
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
|
||||||
import androidx.appcompat.widget.Toolbar;
|
|
||||||
|
|
||||||
import android.view.View;
|
|
||||||
import android.widget.RelativeLayout;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
|
||||||
import it.integry.integrywmsnative.databinding.FragmentArticoliInColloBottomSheetBinding;
|
|
||||||
|
|
||||||
|
|
||||||
public class ArticoliInColloBottomSheetHelper extends BottomSheetBehavior.BottomSheetCallback {
|
|
||||||
|
|
||||||
private AppCompatActivity mActivity;
|
|
||||||
private FragmentArticoliInColloBottomSheetBinding mBinding;
|
|
||||||
|
|
||||||
private BottomSheetBehavior mBottomSheetBehavior;
|
|
||||||
|
|
||||||
|
|
||||||
public ArticoliInColloBottomSheetHelper(AppCompatActivity context, FragmentArticoliInColloBottomSheetBinding binding){
|
|
||||||
mActivity = context;
|
|
||||||
mBinding = binding;
|
|
||||||
|
|
||||||
mBottomSheetBehavior = BottomSheetBehavior.from(mBinding.getRoot());
|
|
||||||
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
|
|
||||||
mBottomSheetBehavior.setBottomSheetCallback(this);
|
|
||||||
|
|
||||||
mBinding.appbarBottomSheet.setVisibility(View.INVISIBLE);
|
|
||||||
|
|
||||||
mBinding.toolbarBottomSheet.setNavigationIcon(R.drawable.ic_close_24dp);
|
|
||||||
mBinding.toolbarBottomSheet.setNavigationOnClickListener(view -> {
|
|
||||||
if(mBottomSheetBehavior.getState()==BottomSheetBehavior.STATE_EXPANDED) {
|
|
||||||
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
mBinding.tapActionLayout.setOnClickListener(v -> {
|
|
||||||
if(mBottomSheetBehavior.getState()==BottomSheetBehavior.STATE_COLLAPSED) {
|
|
||||||
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
mBinding.articoliInColloCloseCollo.setText(mActivity.getText(R.string.action_close_ul));
|
|
||||||
updateRigheNumber(0);
|
|
||||||
|
|
||||||
mBinding.articoliInColloSheetButton.setOnClickListener(view -> {
|
|
||||||
if (mBottomSheetBehavior.getState() != BottomSheetBehavior.STATE_EXPANDED) {
|
|
||||||
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
|
|
||||||
} else {
|
|
||||||
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public void initCollo(MtbColt mtbColt){
|
|
||||||
|
|
||||||
mBinding.articoliInColloTitle.setText(String.format(mActivity.getText(R.string.articoli_in_collo_sheet_title).toString(), mtbColt.getNumCollo()));
|
|
||||||
mBinding.articoliInColloDetailsDate.setText(mtbColt.getDataColloHumanLong());
|
|
||||||
|
|
||||||
|
|
||||||
mBinding.articoliInColloDetailsPosizione.setText(mtbColt.getPosizione() != null ? mtbColt.getPosizione() : "N/A");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void updateRigheNumber(int newRigheNumber){
|
|
||||||
mBinding.articoliInColloSheetButton.setText(newRigheNumber + " " + mActivity.getResources().getQuantityString(R.plurals.articles, newRigheNumber));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onStateChanged(@NonNull View bottomSheet, int newState) {
|
|
||||||
switch (newState) {
|
|
||||||
case BottomSheetBehavior.STATE_HIDDEN:
|
|
||||||
// mRootView.scrollTo(0, 0);
|
|
||||||
break;
|
|
||||||
case BottomSheetBehavior.STATE_EXPANDED:
|
|
||||||
mBinding.appbarBottomSheet.setClickable(true);
|
|
||||||
mBinding.appbarBottomSheet.setFocusable(true);
|
|
||||||
mBinding.tapActionLayout.setClickable(false);
|
|
||||||
mBinding.tapActionLayout.setFocusable(false);
|
|
||||||
break;
|
|
||||||
case BottomSheetBehavior.STATE_COLLAPSED:
|
|
||||||
mBinding.appbarBottomSheet.setVisibility(View.INVISIBLE);
|
|
||||||
mBinding.appbarBottomSheet.setClickable(false);
|
|
||||||
mBinding.appbarBottomSheet.setFocusable(false);
|
|
||||||
mBinding.tapActionLayout.setClickable(true);
|
|
||||||
mBinding.tapActionLayout.setFocusable(true);
|
|
||||||
break;
|
|
||||||
case BottomSheetBehavior.STATE_DRAGGING:
|
|
||||||
mBinding.appbarBottomSheet.setVisibility(View.VISIBLE);
|
|
||||||
// mRootView.scrollTo(0, 0);
|
|
||||||
break;
|
|
||||||
case BottomSheetBehavior.STATE_SETTLING:
|
|
||||||
mBinding.appbarBottomSheet.setVisibility(View.VISIBLE);
|
|
||||||
// mRootView.scrollTo(0, 0);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isExpanded() {
|
|
||||||
return mBottomSheetBehavior.getState() == BottomSheetBehavior.STATE_EXPANDED;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void expand() {
|
|
||||||
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void collapse() {
|
|
||||||
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSlide(@NonNull View bottomSheet, float slideOffset) {
|
|
||||||
mBinding.appbarBottomSheet.setAlpha(slideOffset);
|
|
||||||
mBinding.tapActionLayout.setAlpha(1-slideOffset);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.view.bottomsheet.interfaces;
|
|
||||||
|
|
||||||
public interface IOnColloClosedCallback {
|
|
||||||
|
|
||||||
void onColloClosed(Runnable onComplete, boolean shouldPrint);
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.view.bottomsheet.interfaces;
|
|
||||||
|
|
||||||
public interface IOnSimpleListChangedCallback {
|
|
||||||
|
|
||||||
void onChange();
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,94 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.view.bottomsheet.view;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.View;
|
|
||||||
import android.view.ViewGroup;
|
|
||||||
import android.widget.BaseAdapter;
|
|
||||||
|
|
||||||
import androidx.databinding.DataBindingUtil;
|
|
||||||
import androidx.databinding.ObservableField;
|
|
||||||
import androidx.databinding.ObservableList;
|
|
||||||
|
|
||||||
import java.lang.ref.WeakReference;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
|
||||||
import it.integry.integrywmsnative.core.expansion.WeakReferenceOnListChangedCallback;
|
|
||||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityNumber;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityResources;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
|
||||||
import it.integry.integrywmsnative.databinding.FragmentArticoliInColloBottomSheetMtbcolrItemBinding;
|
|
||||||
|
|
||||||
public class ArticoliInColloBottomSheetMtbColrAdapter extends BaseAdapter {
|
|
||||||
|
|
||||||
|
|
||||||
private final WeakReferenceOnListChangedCallback onListChangedCallback;
|
|
||||||
private Context mContext;
|
|
||||||
private ObservableField<MtbColt> mtbColt;
|
|
||||||
|
|
||||||
|
|
||||||
public ArticoliInColloBottomSheetMtbColrAdapter(Context context, ObservableField<MtbColt> mtbColt) {
|
|
||||||
super();
|
|
||||||
this.mContext = context;
|
|
||||||
this.mtbColt = mtbColt;
|
|
||||||
this.onListChangedCallback = new WeakReferenceOnListChangedCallback(this);
|
|
||||||
|
|
||||||
this.mtbColt.get().getMtbColr().addOnListChangedCallback(onListChangedCallback);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public View getView(int position, View convertView, ViewGroup parent) {
|
|
||||||
|
|
||||||
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
|
|
||||||
|
|
||||||
FragmentArticoliInColloBottomSheetMtbcolrItemBinding binding = DataBindingUtil.inflate(inflater, R.layout.fragment_articoli_in_collo_bottom_sheet__mtbcolr_item, parent, false);
|
|
||||||
|
|
||||||
final MtbColr mtbColr = mtbColt.get().getMtbColr().get(position);
|
|
||||||
binding.setMtbColr(mtbColr);
|
|
||||||
|
|
||||||
//Setting qty with unt_mis
|
|
||||||
if(!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().isFlagQtaCnfFissaBoolean())){
|
|
||||||
String text = UtilityNumber.decimalToString(mtbColr.getQtaCol());
|
|
||||||
|
|
||||||
|
|
||||||
if(mtbColr.getMtbAart() != null) {
|
|
||||||
text += !UtilityString.isNullOrEmpty(mtbColr.getMtbAart().getUntMis()) ? "\n" + mtbColr.getMtbAart().getUntMis() : "";
|
|
||||||
}
|
|
||||||
|
|
||||||
binding.qtaTextview.setText(text);
|
|
||||||
} else {
|
|
||||||
binding.qtaTextview.setText(UtilityNumber.decimalToString(mtbColr.getNumCnf()) + "\n" + UtilityResources.getString(R.string.unt_mis_col));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
binding.executePendingBindings();
|
|
||||||
|
|
||||||
if(position % 2 == 1) binding.getRoot().setBackgroundColor(mContext.getResources().getColor(R.color.letturaFacilitataBG));
|
|
||||||
|
|
||||||
return binding.getRoot();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public long getItemId(int position) {
|
|
||||||
return position;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Object getItem(int position) {
|
|
||||||
return position;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getCount() {
|
|
||||||
if(mtbColt.get() != null && mtbColt.get().getMtbColr() != null) {
|
|
||||||
|
|
||||||
return mtbColt.get().getMtbColr().size();
|
|
||||||
} else return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,247 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.view.bottomsheet.viewmodel;
|
|
||||||
|
|
||||||
import android.app.Dialog;
|
|
||||||
import android.content.Context;
|
|
||||||
|
|
||||||
import androidx.databinding.Observable;
|
|
||||||
import androidx.databinding.ObservableArrayList;
|
|
||||||
import androidx.databinding.ObservableField;
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import com.google.android.material.bottomsheet.BottomSheetBehavior;
|
|
||||||
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
|
||||||
import android.text.SpannableString;
|
|
||||||
import android.view.View;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
|
||||||
import it.integry.integrywmsnative.core.model.CommonModelConsts;
|
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer;
|
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
|
||||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
|
||||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityNumber;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
|
||||||
import it.integry.integrywmsnative.databinding.FragmentArticoliInColloBottomSheetBinding;
|
|
||||||
import it.integry.integrywmsnative.view.bottomsheet.ArticoliInColloBottomSheetHelper;
|
|
||||||
import it.integry.integrywmsnative.view.bottomsheet.interfaces.IOnColloClosedCallback;
|
|
||||||
import it.integry.integrywmsnative.view.bottomsheet.view.ArticoliInColloBottomSheetMtbColrAdapter;
|
|
||||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
|
||||||
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
|
|
||||||
|
|
||||||
public class ArticoliInColloBottomSheetViewModel {
|
|
||||||
|
|
||||||
public ObservableField<MtbColt> mtbColt = new ObservableField<>();
|
|
||||||
|
|
||||||
private Context mContext;
|
|
||||||
private ArticoliInColloBottomSheetHelper mArticoliInColloBottomSheetHelper;
|
|
||||||
|
|
||||||
private IOnColloClosedCallback onCloseColloCallback;
|
|
||||||
|
|
||||||
|
|
||||||
private FragmentArticoliInColloBottomSheetBinding mBindings;
|
|
||||||
|
|
||||||
private BottomSheetBehavior mBottomSheetBehavior;
|
|
||||||
|
|
||||||
private RunnableArgs<MtbColr> mOnItemDeletedCallback;
|
|
||||||
private RunnableArgss<MtbColr, MtbColr> mOnItemEditedCallback;
|
|
||||||
|
|
||||||
|
|
||||||
public ArticoliInColloBottomSheetViewModel(AppCompatActivity context, final FragmentArticoliInColloBottomSheetBinding bindings){
|
|
||||||
mContext = context;
|
|
||||||
mBindings = bindings;
|
|
||||||
mArticoliInColloBottomSheetHelper = new ArticoliInColloBottomSheetHelper(context, mBindings);
|
|
||||||
|
|
||||||
mBindings.setViewModel(this);
|
|
||||||
|
|
||||||
mtbColt.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
|
|
||||||
@Override
|
|
||||||
public void onPropertyChanged(Observable sender, int propertyId) {
|
|
||||||
|
|
||||||
if(mtbColt.get() != null) {
|
|
||||||
|
|
||||||
mBindings.linearListview.setAdapter(new ArticoliInColloBottomSheetMtbColrAdapter(mContext, mtbColt));
|
|
||||||
|
|
||||||
mBindings.linearListview.setOnItemClickListener((parent, view, position, id) -> {
|
|
||||||
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
|
|
||||||
|
|
||||||
onItemClicked.run(position);
|
|
||||||
});
|
|
||||||
|
|
||||||
mArticoliInColloBottomSheetHelper.updateRigheNumber(mtbColt.get().getMtbColr().size());
|
|
||||||
mArticoliInColloBottomSheetHelper.initCollo(mtbColt.get());
|
|
||||||
|
|
||||||
mtbColt.get().getMtbColr().addOnListChangedCallback(new SimpleListChangedCallback(() -> {
|
|
||||||
mArticoliInColloBottomSheetHelper.updateRigheNumber(mtbColt.get().getMtbColr().size());
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
initBottomSheetActions();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOnItemEditedCallback(RunnableArgss<MtbColr, MtbColr> onItemEditedCallback) {
|
|
||||||
this.mOnItemEditedCallback = onItemEditedCallback;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOnItemDeletedCallback(RunnableArgs<MtbColr> onItemDeletedCallback) {
|
|
||||||
this.mOnItemDeletedCallback = onItemDeletedCallback;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void initBottomSheetActions() {
|
|
||||||
mBindings.bg.setOnClickListener(v -> mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED));
|
|
||||||
|
|
||||||
mBottomSheetBehavior = BottomSheetBehavior.from(mBindings.bottomSheetActions);
|
|
||||||
|
|
||||||
mBottomSheetBehavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
|
|
||||||
@Override
|
|
||||||
public void onStateChanged(@NonNull View bottomSheet, int newState) {
|
|
||||||
if (newState == BottomSheetBehavior.STATE_COLLAPSED)
|
|
||||||
mBindings.bg.setVisibility(View.GONE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSlide(@NonNull View bottomSheet, float slideOffset) {
|
|
||||||
mBindings.bg.setVisibility(View.VISIBLE);
|
|
||||||
mBindings.bg.setAlpha(slideOffset);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setOnCloseColloCallbackListener(final IOnColloClosedCallback onCloseColloCallback){
|
|
||||||
this.onCloseColloCallback = onCloseColloCallback;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public void closeCurrentUL(){
|
|
||||||
closeCurrentUL(null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void closeCurrentUL(Runnable onComplete){
|
|
||||||
if(onCloseColloCallback != null) onCloseColloCallback.onColloClosed(onComplete, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isExpanded() {
|
|
||||||
return mArticoliInColloBottomSheetHelper.isExpanded();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void expand() {
|
|
||||||
mArticoliInColloBottomSheetHelper.expand();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void collapse() {
|
|
||||||
mArticoliInColloBottomSheetHelper.collapse();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private RunnableArgs<Integer> onItemClicked = (position) -> {
|
|
||||||
|
|
||||||
MtbColr clickedItem = mtbColt.get().getMtbColr().get(position);
|
|
||||||
|
|
||||||
mBindings.bottomSheetActionsTitle.setText(clickedItem.getDescrizione());
|
|
||||||
mBindings.bottomSheetActionsSubtitle.setText(clickedItem.getCodMart());
|
|
||||||
|
|
||||||
|
|
||||||
//Setting qty with unt_mis
|
|
||||||
if(clickedItem.getMtbAart() != null) {
|
|
||||||
if (clickedItem.getMtbAart().isFlagQtaCnfFissaBoolean()) {
|
|
||||||
mBindings.bottomSheetActionsQuantity.setText(UtilityNumber.decimalToString(clickedItem.getQtaCol()) + (!UtilityString.isNullOrEmpty(clickedItem.getMtbAart().getUntMis()) ? ("" + clickedItem.getMtbAart().getUntMis()) : ""));
|
|
||||||
} else {
|
|
||||||
mBindings.bottomSheetActionsQuantity.setText(UtilityNumber.decimalToString(clickedItem.getNumCnf()) + " " + mContext.getString(R.string.unt_mis_col));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
mBindings.bottomSheetActionsQuantity.setText(UtilityNumber.decimalToString(clickedItem.getQtaCol()));
|
|
||||||
}
|
|
||||||
|
|
||||||
mBindings.bottomSheetActionsEditBtn.setOnClickListener(v -> onItemEdit(position));
|
|
||||||
|
|
||||||
mBindings.bottomSheetActionsDeleteBtn.setOnClickListener(v -> onItemDelete(position));
|
|
||||||
};
|
|
||||||
|
|
||||||
private void onItemEdit(int position) {
|
|
||||||
|
|
||||||
MtbColr itemToEdit = mtbColt.get().getMtbColr().get(position);
|
|
||||||
MtbColr cloneItemToEdit = (MtbColr) itemToEdit.clone();
|
|
||||||
|
|
||||||
MtbColr originalItem = (MtbColr) itemToEdit.clone();
|
|
||||||
|
|
||||||
|
|
||||||
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
|
|
||||||
|
|
||||||
DialogInputQuantity.DTO dto = new DialogInputQuantity.DTO()
|
|
||||||
.setBatchLot(itemToEdit.getPartitaMag())
|
|
||||||
.setQtaDaEvadere(null)
|
|
||||||
.setQtaOrd(null)
|
|
||||||
.setMtbAart(itemToEdit.getMtbAart())
|
|
||||||
.setCanPartitaMagBeChanged(false)
|
|
||||||
.setQtaTot(itemToEdit.getQtaCol())
|
|
||||||
.setMaxQta(itemToEdit.getQtaCol());
|
|
||||||
|
|
||||||
DialogInputQuantity.makeBase(mContext, dto, false, quantityDTO -> {
|
|
||||||
|
|
||||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(mContext);
|
|
||||||
|
|
||||||
|
|
||||||
cloneItemToEdit.setQtaCol(quantityDTO.qtaTot.getBigDecimal());
|
|
||||||
cloneItemToEdit.setNumCnf(quantityDTO.numCnf.getBigDecimal());
|
|
||||||
|
|
||||||
ColliMagazzinoRESTConsumer.updateRigaStatic(cloneItemToEdit, () ->{
|
|
||||||
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
|
|
||||||
|
|
||||||
itemToEdit.setQtaCol(quantityDTO.qtaTot.getBigDecimal());
|
|
||||||
itemToEdit.setNumCnf(quantityDTO.numCnf.getBigDecimal());
|
|
||||||
|
|
||||||
progress.dismiss();
|
|
||||||
mtbColt.get().getMtbColr().set(position, itemToEdit);
|
|
||||||
|
|
||||||
if(mOnItemEditedCallback != null) mOnItemEditedCallback.run(originalItem, itemToEdit);
|
|
||||||
},
|
|
||||||
ex -> UtilityExceptions.defaultException(mContext, ex, progress));
|
|
||||||
|
|
||||||
}, null).show();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void onItemDelete(int position) {
|
|
||||||
|
|
||||||
|
|
||||||
String text = mContext.getResources().getString(R.string.alert_delete_mtb_colr);
|
|
||||||
DialogSimpleMessageHelper.makeWarningDialog(mContext, new SpannableString(text), null, () -> {
|
|
||||||
final Dialog progress = UtilityProgress.createDefaultProgressDialog(mContext);
|
|
||||||
|
|
||||||
MtbColt mtbColtClone = (MtbColt) mtbColt.get().clone();
|
|
||||||
mtbColtClone.setMtbColr(new ObservableArrayList<>());
|
|
||||||
mtbColtClone.setOperation(CommonModelConsts.OPERATION.NO_OP);
|
|
||||||
|
|
||||||
MtbColr itemToDelete = (MtbColr) mtbColt.get().getMtbColr().get(position).clone();
|
|
||||||
itemToDelete.setQtaCol(itemToDelete.getQtaCol().multiply(new BigDecimal(-1)));
|
|
||||||
itemToDelete.setNumCnf(itemToDelete.getNumCnf().multiply(new BigDecimal(-1)));
|
|
||||||
itemToDelete.setRiga(null);
|
|
||||||
itemToDelete.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
|
||||||
|
|
||||||
mtbColtClone.getMtbColr().add(itemToDelete);
|
|
||||||
|
|
||||||
ColliMagazzinoRESTConsumer.saveColloStatic(mtbColtClone, (newMtbColt) -> {
|
|
||||||
mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
|
|
||||||
|
|
||||||
MtbColr deletedItem = mtbColt.get().getMtbColr().get(position);
|
|
||||||
mtbColt.get().getMtbColr().remove(deletedItem);
|
|
||||||
|
|
||||||
progress.dismiss();
|
|
||||||
|
|
||||||
if(this.mOnItemDeletedCallback != null) this.mOnItemDeletedCallback.run(deletedItem);
|
|
||||||
}, ex -> UtilityExceptions.defaultException(mContext, ex, progress));
|
|
||||||
}, null).show();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.view.bottomsheet.viewmodel;
|
|
||||||
|
|
||||||
import androidx.databinding.ObservableList;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.view.bottomsheet.interfaces.IOnSimpleListChangedCallback;
|
|
||||||
|
|
||||||
public class SimpleListChangedCallback extends ObservableList.OnListChangedCallback {
|
|
||||||
|
|
||||||
private IOnSimpleListChangedCallback mOnSimpleListChangedCallback;
|
|
||||||
|
|
||||||
public SimpleListChangedCallback(IOnSimpleListChangedCallback onSimpleListChangedCallback) {
|
|
||||||
mOnSimpleListChangedCallback = onSimpleListChangedCallback;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onChanged(ObservableList sender) {
|
|
||||||
mOnSimpleListChangedCallback.onChange();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onItemRangeChanged(ObservableList sender, int positionStart, int itemCount) {
|
|
||||||
mOnSimpleListChangedCallback.onChange();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onItemRangeInserted(ObservableList sender, int positionStart, int itemCount) {
|
|
||||||
mOnSimpleListChangedCallback.onChange();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onItemRangeMoved(ObservableList sender, int fromPosition, int toPosition, int itemCount) {
|
|
||||||
mOnSimpleListChangedCallback.onChange();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onItemRangeRemoved(ObservableList sender, int positionStart, int itemCount) {
|
|
||||||
mOnSimpleListChangedCallback.onChange();
|
|
||||||
mOnSimpleListChangedCallback.onChange();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -16,6 +16,7 @@ import com.google.android.material.textfield.TextInputLayout;
|
|||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
|
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityDialog;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityFocus;
|
import it.integry.integrywmsnative.core.utility.UtilityFocus;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityPosizione;
|
import it.integry.integrywmsnative.core.utility.UtilityPosizione;
|
||||||
|
|
||||||
@@ -55,6 +56,8 @@ public class DialogAskLivelloPosizione {
|
|||||||
mDialog.setCancelable(false);
|
mDialog.setCancelable(false);
|
||||||
mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
|
mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
|
||||||
|
|
||||||
|
UtilityDialog.setTo90PercentWidth(mContext, mDialog);
|
||||||
|
|
||||||
mDialog.setOnDismissListener(dialog -> {
|
mDialog.setOnDismissListener(dialog -> {
|
||||||
if(!completedFLow) onComplete.run(null);
|
if(!completedFLow) onComplete.run(null);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -2,17 +2,13 @@ package it.integry.integrywmsnative.view.dialogs;
|
|||||||
|
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.graphics.drawable.ColorDrawable;
|
import android.graphics.drawable.ColorDrawable;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
|
||||||
import android.widget.ProgressBar;
|
|
||||||
|
|
||||||
import androidx.databinding.DataBindingUtil;
|
import androidx.databinding.DataBindingUtil;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
|
||||||
import it.integry.integrywmsnative.databinding.DialogProgressBinding;
|
import it.integry.integrywmsnative.databinding.DialogProgressBinding;
|
||||||
|
|
||||||
public class DialogProgress {
|
public class DialogProgress {
|
||||||
@@ -40,7 +36,7 @@ public class DialogProgress {
|
|||||||
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
|
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
|
||||||
mBinding = DataBindingUtil.inflate(inflater, R.layout.dialog_progress, null, false);
|
mBinding = DataBindingUtil.inflate(inflater, R.layout.dialog_progress, null, false);
|
||||||
|
|
||||||
final Thread[] progressBarThread = new Thread[1];
|
// final Thread[] progressBarThread = new Thread[1];
|
||||||
|
|
||||||
mDialog = new Dialog(mContext);
|
mDialog = new Dialog(mContext);
|
||||||
mDialog.setContentView(mBinding.getRoot());
|
mDialog.setContentView(mBinding.getRoot());
|
||||||
@@ -50,11 +46,11 @@ public class DialogProgress {
|
|||||||
|
|
||||||
mDialog.setOnShowListener(dialog -> {
|
mDialog.setOnShowListener(dialog -> {
|
||||||
// ((ProgressBar) currentView.findViewById(R.id.progressBar)).setIndeterminate(true);
|
// ((ProgressBar) currentView.findViewById(R.id.progressBar)).setIndeterminate(true);
|
||||||
progressBarThread[0] = UtilityProgress.makeProgressBarIndeterminate(mBinding.progressBar);
|
// progressBarThread[0] = UtilityProgress.makeProgressBarIndeterminate(mBinding.progressBar);
|
||||||
});
|
});
|
||||||
|
|
||||||
mDialog.setOnDismissListener(dialog -> {
|
mDialog.setOnDismissListener(dialog -> {
|
||||||
progressBarThread[0].interrupt();
|
// progressBarThread[0].interrupt();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,11 +15,13 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgsss;
|
||||||
import it.integry.integrywmsnative.core.model.VtbDest;
|
import it.integry.integrywmsnative.core.model.VtbDest;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDialog;
|
import it.integry.integrywmsnative.core.utility.UtilityDialog;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
import it.integry.integrywmsnative.databinding.DialogAskClienteBinding;
|
import it.integry.integrywmsnative.databinding.DialogAskClienteBinding;
|
||||||
import it.integry.integrywmsnative.view.dialogs.DialogConsts;
|
import it.integry.integrywmsnative.view.dialogs.DialogConsts;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.ask_cliente.dto.DialogAskClienteDestinatarioDTO;
|
||||||
import it.integry.integrywmsnative.view.dialogs.ask_cliente.viewmodel.DialogAskCliente_Page1ViewModel;
|
import it.integry.integrywmsnative.view.dialogs.ask_cliente.viewmodel.DialogAskCliente_Page1ViewModel;
|
||||||
import it.integry.integrywmsnative.view.dialogs.ask_cliente.viewmodel.DialogAskCliente_Page2ViewModel;
|
import it.integry.integrywmsnative.view.dialogs.ask_cliente.viewmodel.DialogAskCliente_Page2ViewModel;
|
||||||
|
|
||||||
@@ -32,11 +34,11 @@ public class DialogAskCliente {
|
|||||||
private DialogAskClienteBinding mBinding;
|
private DialogAskClienteBinding mBinding;
|
||||||
|
|
||||||
|
|
||||||
public static Dialog makeBase(final Context context, RunnableArgss<DialogConsts.Results, VtbDest> onComplete) {
|
public static Dialog makeBase(final Context context, RunnableArgsss<DialogConsts.Results, VtbDest, String> onComplete) {
|
||||||
return new DialogAskCliente(context, onComplete).mDialog;
|
return new DialogAskCliente(context, onComplete).mDialog;
|
||||||
}
|
}
|
||||||
|
|
||||||
public DialogAskCliente(Context context, RunnableArgss<DialogConsts.Results, VtbDest> onComplete) {
|
public DialogAskCliente(Context context, RunnableArgsss<DialogConsts.Results, VtbDest, String> onComplete) {
|
||||||
mContext = context;
|
mContext = context;
|
||||||
|
|
||||||
|
|
||||||
@@ -72,25 +74,33 @@ public class DialogAskCliente {
|
|||||||
|
|
||||||
viewModel1
|
viewModel1
|
||||||
.setOnConfirmClickListener(() -> {
|
.setOnConfirmClickListener(() -> {
|
||||||
|
String codAnag = viewModel1.getCurrentCliente();
|
||||||
|
|
||||||
viewModel2.setCodAnag(viewModel1.getCurrentCliente().getCodAnag());
|
if(UtilityString.isNullOrEmpty(codAnag)) {
|
||||||
|
mDialog.dismiss();
|
||||||
|
onComplete.run(DialogConsts.Results.YES, null, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
viewModel2.setCodAnag(codAnag);
|
||||||
|
|
||||||
mBinding.viewpager.setCurrentItem(mBinding.viewpager.getCurrentItem() + 1, true);
|
mBinding.viewpager.setCurrentItem(mBinding.viewpager.getCurrentItem() + 1, true);
|
||||||
});
|
});
|
||||||
|
|
||||||
viewModel1.setOnAbortClickListener(() -> {
|
viewModel1.setOnAbortClickListener(() -> {
|
||||||
mDialog.dismiss();
|
mDialog.dismiss();
|
||||||
onComplete.run(DialogConsts.Results.ABORT, null);
|
onComplete.run(DialogConsts.Results.ABORT, null, null);
|
||||||
});
|
});
|
||||||
|
|
||||||
viewModel2.setOnConfirmClickListener(() -> {
|
viewModel2.setOnConfirmClickListener(() -> {
|
||||||
onComplete.run(DialogConsts.Results.YES, viewModel2.getCurrentDestinatario().toVtbDestModel());
|
DialogAskClienteDestinatarioDTO cliente = viewModel2.getCurrentDestinatario();
|
||||||
|
|
||||||
|
onComplete.run(DialogConsts.Results.YES, cliente != null ? cliente.toVtbDestModel() : null, viewModel1.getCurrentCommessa());
|
||||||
mDialog.dismiss();
|
mDialog.dismiss();
|
||||||
});
|
});
|
||||||
|
|
||||||
viewModel2.setOnAbortClickListener(() -> {
|
viewModel2.setOnAbortClickListener(() -> {
|
||||||
mDialog.dismiss();
|
mDialog.dismiss();
|
||||||
onComplete.run(DialogConsts.Results.ABORT, null);
|
onComplete.run(DialogConsts.Results.ABORT, null, null);
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,10 +1,12 @@
|
|||||||
package it.integry.integrywmsnative.view.dialogs.ask_cliente.dto;
|
package it.integry.integrywmsnative.view.dialogs.ask_cliente.dto;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
public class DialogAskClienteClienteDTO {
|
public class DialogAskClienteClienteDTO {
|
||||||
|
|
||||||
private String codAnag;
|
private String codAnag;
|
||||||
|
|
||||||
private String ragSoc;
|
private String ragSoc;
|
||||||
|
private ArrayList<String> codJcoms = new ArrayList<>();
|
||||||
|
|
||||||
public String getCodAnag() {
|
public String getCodAnag() {
|
||||||
return codAnag;
|
return codAnag;
|
||||||
@@ -24,6 +26,14 @@ public class DialogAskClienteClienteDTO {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ArrayList<String> getCodJcoms() {
|
||||||
|
return codJcoms;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DialogAskClienteClienteDTO setCodJcoms(ArrayList<String> codJcoms) {
|
||||||
|
this.codJcoms = codJcoms;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
|
|||||||
@@ -2,18 +2,33 @@ package it.integry.integrywmsnative.view.dialogs.ask_cliente.viewmodel;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.widget.AutoCompleteTextView;
|
import android.widget.AutoCompleteTextView;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import androidx.databinding.ObservableArrayList;
|
||||||
|
import androidx.databinding.ObservableList;
|
||||||
import androidx.databinding.ViewDataBinding;
|
import androidx.databinding.ViewDataBinding;
|
||||||
|
|
||||||
|
import com.annimon.stream.Optional;
|
||||||
|
import com.annimon.stream.Stream;
|
||||||
import com.google.gson.reflect.TypeToken;
|
import com.google.gson.reflect.TypeToken;
|
||||||
|
import com.tfb.fbtoast.FBToast;
|
||||||
|
|
||||||
import java.lang.reflect.Type;
|
import java.lang.reflect.Type;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||||
import it.integry.integrywmsnative.R;
|
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.OnListGeneralChangedCallback;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.ISimpleOperationCallback;
|
import it.integry.integrywmsnative.core.rest.consumers.ISimpleOperationCallback;
|
||||||
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityHashMap;
|
||||||
import it.integry.integrywmsnative.databinding.DialogAskClientePage1Binding;
|
import it.integry.integrywmsnative.databinding.DialogAskClientePage1Binding;
|
||||||
import it.integry.integrywmsnative.view.dialogs.ask_cliente.dto.DialogAskClienteClienteDTO;
|
import it.integry.integrywmsnative.view.dialogs.ask_cliente.dto.DialogAskClienteClienteDTO;
|
||||||
|
|
||||||
@@ -22,7 +37,10 @@ public class DialogAskCliente_Page1ViewModel implements IDialogAskClienteViewMod
|
|||||||
private Context mContext;
|
private Context mContext;
|
||||||
private DialogAskClientePage1Binding mBinding;
|
private DialogAskClientePage1Binding mBinding;
|
||||||
|
|
||||||
private List<DialogAskClienteClienteDTO> availableClienti;
|
private int mBarcodeScannerInstanceID;
|
||||||
|
|
||||||
|
private ArrayList<DialogAskClienteClienteDTO> availableClienti;
|
||||||
|
private ObservableArrayList<String> codJcoms = new ObservableArrayList<>();
|
||||||
|
|
||||||
public DialogAskCliente_Page1ViewModel() {
|
public DialogAskCliente_Page1ViewModel() {
|
||||||
|
|
||||||
@@ -41,18 +59,43 @@ public class DialogAskCliente_Page1ViewModel implements IDialogAskClienteViewMod
|
|||||||
@Override
|
@Override
|
||||||
public void onShow() {
|
public void onShow() {
|
||||||
|
|
||||||
String sql = "SELECT gtb_anag.cod_anag, rag_soc " +
|
String sql = "SELECT gtb_anag.cod_anag, rag_soc, jtb_comt.cod_jcom " +
|
||||||
"FROM gtb_anag " +
|
"FROM gtb_anag " +
|
||||||
|
"LEFT OUTER JOIN jtb_comt ON gtb_anag.cod_anag = jtb_comt.cod_anag " +
|
||||||
"INNER JOIN vtb_clie ON gtb_anag.cod_anag = vtb_clie.cod_anag " +
|
"INNER JOIN vtb_clie ON gtb_anag.cod_anag = vtb_clie.cod_anag " +
|
||||||
"WHERE vtb_clie.flag_stato = 'A' " +
|
"WHERE vtb_clie.flag_stato = 'A' " +
|
||||||
"ORDER BY rag_soc";
|
"ORDER BY rag_soc";
|
||||||
|
|
||||||
Type typeOfObjectsList = new TypeToken<ArrayList<DialogAskClienteClienteDTO>>() {}.getType();
|
Type typeOfObjectsList = new TypeToken<ArrayList<HashMap<String, Object>>>() {
|
||||||
SystemRESTConsumer.processSqlStatic(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<DialogAskClienteClienteDTO>>() {
|
}.getType();
|
||||||
|
SystemRESTConsumer.processSqlStatic(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<HashMap<String, Object>>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(ArrayList<DialogAskClienteClienteDTO> value) {
|
public void onSuccess(ArrayList<HashMap<String, Object>> value) {
|
||||||
availableClienti = value;
|
|
||||||
initializeAdapter(value);
|
availableClienti = new ArrayList<>();
|
||||||
|
|
||||||
|
Stream.of(value)
|
||||||
|
.groupBy(x -> x.get("codAnag").toString() + " " + x.get("ragSoc").toString())
|
||||||
|
.forEach(x -> {
|
||||||
|
DialogAskClienteClienteDTO dialogAskClienteClienteDTO = new DialogAskClienteClienteDTO();
|
||||||
|
dialogAskClienteClienteDTO.setCodAnag(UtilityHashMap.getValueIfExists(x.getValue().get(0), "codAnag"));
|
||||||
|
dialogAskClienteClienteDTO.setRagSoc(UtilityHashMap.getValueIfExists(x.getValue().get(0), "ragSoc"));
|
||||||
|
|
||||||
|
for (HashMap<String, Object> group : x.getValue()) {
|
||||||
|
if (group.containsKey("codJcom")) {
|
||||||
|
dialogAskClienteClienteDTO.getCodJcoms().add(UtilityHashMap.getValueIfExists(group, "codJcom"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
availableClienti.add(dialogAskClienteClienteDTO);
|
||||||
|
});
|
||||||
|
|
||||||
|
initializeAdapter(availableClienti);
|
||||||
|
|
||||||
|
mBarcodeScannerInstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
|
||||||
|
.setOnScanSuccessfull(onScanSuccessful)
|
||||||
|
.setOnScanFailed(ex -> UtilityExceptions.defaultException(mContext, ex, false)));
|
||||||
|
BarcodeManager.enable();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -66,9 +109,10 @@ public class DialogAskCliente_Page1ViewModel implements IDialogAskClienteViewMod
|
|||||||
@Override
|
@Override
|
||||||
public void setOnConfirmClickListener(Runnable onConfirm) {
|
public void setOnConfirmClickListener(Runnable onConfirm) {
|
||||||
this.mBinding.buttonYes.setOnClickListener(v -> {
|
this.mBinding.buttonYes.setOnClickListener(v -> {
|
||||||
if(validateCliente()) {
|
if (validateCliente()) {
|
||||||
this.resetClienteError();
|
this.resetClienteError();
|
||||||
if(onConfirm != null) onConfirm.run();
|
BarcodeManager.removeCallback(mBarcodeScannerInstanceID);
|
||||||
|
if (onConfirm != null) onConfirm.run();
|
||||||
} else {
|
} else {
|
||||||
this.setClienteError(mContext.getResources().getText(R.string.not_valid_customer_error).toString());
|
this.setClienteError(mContext.getResources().getText(R.string.not_valid_customer_error).toString());
|
||||||
}
|
}
|
||||||
@@ -76,45 +120,127 @@ public class DialogAskCliente_Page1ViewModel implements IDialogAskClienteViewMod
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private final RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
|
||||||
|
BarcodeManager.disable();
|
||||||
|
|
||||||
|
String barcode = data.getStringValue();
|
||||||
|
|
||||||
|
DialogAskClienteClienteDTO resultCodAnag = searchBarcodeInCodAnag(barcode);
|
||||||
|
|
||||||
|
if (resultCodAnag != null) {
|
||||||
|
mBinding.dropdownCliente.setText(resultCodAnag.toString());
|
||||||
|
refreshCodJcoms(resultCodAnag);
|
||||||
|
} else {
|
||||||
|
DialogAskClienteClienteDTO resultCodJcom = searchBarcodeInCodJcom(barcode);
|
||||||
|
|
||||||
|
if(resultCodJcom != null) {
|
||||||
|
mBinding.dropdownCliente.setText(resultCodJcom.toString());
|
||||||
|
refreshCodJcoms(resultCodJcom);
|
||||||
|
mBinding.dropdownCommessa.setText(barcode);
|
||||||
|
} else {
|
||||||
|
FBToast.errorToast(mContext, "Nessun risultato trovato", Toast.LENGTH_LONG);
|
||||||
|
mBinding.dropdownCliente.setText("");
|
||||||
|
mBinding.dropdownCommessa.setText("");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
BarcodeManager.enable();
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
private DialogAskClienteClienteDTO searchBarcodeInCodAnag(String barcode) {
|
||||||
|
List<DialogAskClienteClienteDTO> resultCodAnag = Stream.of(availableClienti)
|
||||||
|
.filter(x -> barcode.equalsIgnoreCase(x.getCodAnag()))
|
||||||
|
.toList();
|
||||||
|
if (resultCodAnag.size() > 0) {
|
||||||
|
return resultCodAnag.get(0);
|
||||||
|
} else return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private DialogAskClienteClienteDTO searchBarcodeInCodJcom(String barcode) {
|
||||||
|
List<DialogAskClienteClienteDTO> resultCodJcom = Stream.of(availableClienti)
|
||||||
|
.filter(x -> x.getCodJcoms().contains(barcode))
|
||||||
|
.toList();
|
||||||
|
if (resultCodJcom.size() > 0) {
|
||||||
|
return resultCodJcom.get(0);
|
||||||
|
} else return null;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setOnAbortClickListener(Runnable onAbort) {
|
public void setOnAbortClickListener(Runnable onAbort) {
|
||||||
this.mBinding.buttonNo.setOnClickListener(v -> {
|
this.mBinding.buttonNo.setOnClickListener(v -> {
|
||||||
if(onAbort != null) onAbort.run();
|
if (onAbort != null) onAbort.run();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void initializeAdapter(ArrayList<DialogAskClienteClienteDTO> items) {
|
private void initializeAdapter(ArrayList<DialogAskClienteClienteDTO> items) {
|
||||||
|
DialogAskCliente_Page1_Cliente_ArrayAdapter adapter = new DialogAskCliente_Page1_Cliente_ArrayAdapter(mContext, items);
|
||||||
|
|
||||||
DialogAskCliente_Page1_ArrayAdapter adapter = new DialogAskCliente_Page1_ArrayAdapter(mContext, items);
|
AutoCompleteTextView editTextDropdownCliente = mBinding.dropdownCliente;
|
||||||
|
editTextDropdownCliente.setThreshold(0);
|
||||||
|
editTextDropdownCliente.setAdapter(adapter);
|
||||||
|
editTextDropdownCliente.setOnItemClickListener((parent, view, position, id) -> {
|
||||||
|
refreshCodJcoms(items.get(position));
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
AutoCompleteTextView editTextFilledExposedDropdown = mBinding.filledExposedDropdown;
|
DialogAskCliente_Page1_Commessa_ArrayAdapter commessaAdapter = new DialogAskCliente_Page1_Commessa_ArrayAdapter(mContext);
|
||||||
editTextFilledExposedDropdown.setThreshold(0);
|
|
||||||
editTextFilledExposedDropdown.setAdapter(adapter);
|
AutoCompleteTextView editTextDropdownCommessa = mBinding.dropdownCommessa;
|
||||||
|
editTextDropdownCommessa.setThreshold(0);
|
||||||
|
editTextDropdownCommessa.setAdapter(commessaAdapter);
|
||||||
|
|
||||||
|
codJcoms.addOnListChangedCallback(new OnListGeneralChangedCallback() {
|
||||||
|
@Override
|
||||||
|
public void onChanged(ObservableList sender) {
|
||||||
|
commessaAdapter.clear();
|
||||||
|
commessaAdapter.addAll(codJcoms);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void refreshCodJcoms(DialogAskClienteClienteDTO item) {
|
||||||
|
codJcoms.clear();
|
||||||
|
codJcoms.addAll(item.getCodJcoms());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private boolean validateCliente() {
|
private boolean validateCliente() {
|
||||||
return getCurrentCliente() != null;
|
if(SettingsManager.iDB().isFlagAllowEmptyClienteInPickingLibero() && mBinding.inputCliente.getEditText().getText().toString().trim().length() == 0) {
|
||||||
|
return true;
|
||||||
|
} else return getCurrentCliente() != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public DialogAskClienteClienteDTO getCurrentCliente() {
|
public String getCurrentCliente() {
|
||||||
for (DialogAskClienteClienteDTO cliente : availableClienti) {
|
Optional<DialogAskClienteClienteDTO> result = Stream.of(availableClienti)
|
||||||
if(cliente.getRagSoc().equalsIgnoreCase(mBinding.inputCliente.getEditText().getText().toString())) {
|
.filter(x -> x.getRagSoc().equalsIgnoreCase(mBinding.inputCliente.getEditText().getText().toString()))
|
||||||
return cliente;
|
.findFirst();
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
if(result.isPresent()) return result.get().getCodAnag();
|
||||||
|
else return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCurrentCommessa() {
|
||||||
|
String codAnag = getCurrentCliente();
|
||||||
|
Optional<ArrayList<String>> result = Stream.of(availableClienti)
|
||||||
|
.filter(x -> x.getCodAnag().equalsIgnoreCase(codAnag))
|
||||||
|
.map(DialogAskClienteClienteDTO::getCodJcoms)
|
||||||
|
.findFirst();
|
||||||
|
|
||||||
|
if(result.isPresent() && Stream.of(result.get()).anyMatch(x -> x.equalsIgnoreCase(mBinding.inputCommessa.getEditText().getText().toString()))) {
|
||||||
|
return mBinding.inputCommessa.getEditText().getText().toString();
|
||||||
|
} else return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void setClienteError(String message){
|
private void setClienteError(String message) {
|
||||||
mBinding.inputCliente.setErrorEnabled(true);
|
mBinding.inputCliente.setErrorEnabled(true);
|
||||||
mBinding.inputCliente.setError(message);
|
mBinding.inputCliente.setError(message);
|
||||||
mBinding.inputCliente.setErrorIconDrawable(null);
|
mBinding.inputCliente.setErrorIconDrawable(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void resetClienteError() {
|
private void resetClienteError() {
|
||||||
mBinding.inputCliente.setError(null);
|
mBinding.inputCliente.setError(null);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package it.integry.integrywmsnative.view.dialogs.ask_cliente.viewmodel;
|
package it.integry.integrywmsnative.view.dialogs.ask_cliente.viewmodel;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.Movie;
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
@@ -9,7 +8,6 @@ import android.widget.ArrayAdapter;
|
|||||||
import android.widget.Filter;
|
import android.widget.Filter;
|
||||||
import android.widget.Filterable;
|
import android.widget.Filterable;
|
||||||
|
|
||||||
import androidx.annotation.LayoutRes;
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.appcompat.widget.AppCompatTextView;
|
import androidx.appcompat.widget.AppCompatTextView;
|
||||||
@@ -20,7 +18,7 @@ import java.util.List;
|
|||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.view.dialogs.ask_cliente.dto.DialogAskClienteClienteDTO;
|
import it.integry.integrywmsnative.view.dialogs.ask_cliente.dto.DialogAskClienteClienteDTO;
|
||||||
|
|
||||||
public class DialogAskCliente_Page1_ArrayAdapter extends ArrayAdapter<DialogAskClienteClienteDTO> implements Filterable {
|
public class DialogAskCliente_Page1_Cliente_ArrayAdapter extends ArrayAdapter<DialogAskClienteClienteDTO> implements Filterable {
|
||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
private List<DialogAskClienteClienteDTO> mDataset;
|
private List<DialogAskClienteClienteDTO> mDataset;
|
||||||
@@ -28,7 +26,7 @@ public class DialogAskCliente_Page1_ArrayAdapter extends ArrayAdapter<DialogAskC
|
|||||||
|
|
||||||
private ListFilter listFilter = new ListFilter();
|
private ListFilter listFilter = new ListFilter();
|
||||||
|
|
||||||
public DialogAskCliente_Page1_ArrayAdapter(@NonNull Context context, @NonNull ArrayList<DialogAskClienteClienteDTO> list) {
|
public DialogAskCliente_Page1_Cliente_ArrayAdapter(@NonNull Context context, @NonNull ArrayList<DialogAskClienteClienteDTO> list) {
|
||||||
super(context, 0 , list);
|
super(context, 0 , list);
|
||||||
mContext = context;
|
mContext = context;
|
||||||
mDataset = list;
|
mDataset = list;
|
||||||
@@ -43,13 +41,13 @@ public class DialogAskCliente_Page1_ArrayAdapter extends ArrayAdapter<DialogAskC
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(position < mDataset.size()) {
|
if(position < mDataset.size()) {
|
||||||
|
|
||||||
AppCompatTextView textView = listItem.findViewById(R.id.text);
|
AppCompatTextView textView = listItem.findViewById(R.id.text);
|
||||||
|
|
||||||
textView.setText(mDataset.get(position).getRagSoc());
|
textView.setText(mDataset.get(position).getRagSoc());
|
||||||
|
|
||||||
return listItem;
|
return listItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,110 @@
|
|||||||
|
package it.integry.integrywmsnative.view.dialogs.ask_cliente.viewmodel;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.ArrayAdapter;
|
||||||
|
import android.widget.Filter;
|
||||||
|
import android.widget.Filterable;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.appcompat.widget.AppCompatTextView;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
|
|
||||||
|
public class DialogAskCliente_Page1_Commessa_ArrayAdapter extends ArrayAdapter<String> implements Filterable {
|
||||||
|
|
||||||
|
private Context mContext;
|
||||||
|
private List<String> mDataset = new ArrayList<>();
|
||||||
|
private List<String> mDatasetAllItems;
|
||||||
|
|
||||||
|
private DialogAskCliente_Page1_Commessa_ArrayAdapter.ListFilter listFilter = new DialogAskCliente_Page1_Commessa_ArrayAdapter.ListFilter();
|
||||||
|
|
||||||
|
public DialogAskCliente_Page1_Commessa_ArrayAdapter(@NonNull Context context) {
|
||||||
|
super(context, 0);
|
||||||
|
mContext = context;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
|
||||||
|
View listItem = convertView;
|
||||||
|
if(listItem == null) {
|
||||||
|
listItem = LayoutInflater.from(mContext).inflate(R.layout.dialog_ask_cliente__dropdown_item, parent, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(position < getCount()) {
|
||||||
|
AppCompatTextView textView = listItem.findViewById(R.id.text);
|
||||||
|
textView.setText(getItem(position));
|
||||||
|
return listItem;
|
||||||
|
}
|
||||||
|
return convertView;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public Filter getFilter() {
|
||||||
|
return listFilter;
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ListFilter extends Filter {
|
||||||
|
private Object lock = new Object();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected FilterResults performFiltering(CharSequence prefix) {
|
||||||
|
FilterResults results = new FilterResults();
|
||||||
|
if (mDatasetAllItems == null) {
|
||||||
|
synchronized (lock) {
|
||||||
|
mDatasetAllItems = new ArrayList<>(mDataset);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (prefix == null || prefix.length() == 0) {
|
||||||
|
synchronized (lock) {
|
||||||
|
results.values = mDatasetAllItems;
|
||||||
|
results.count = mDatasetAllItems.size();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
final String searchStrLowerCase = prefix.toString().toLowerCase();
|
||||||
|
|
||||||
|
ArrayList<String> matchValues = new ArrayList<>();
|
||||||
|
|
||||||
|
for (String dataItem : mDatasetAllItems) {
|
||||||
|
if (dataItem.toLowerCase().startsWith(searchStrLowerCase)) {
|
||||||
|
matchValues.add(dataItem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
results.values = matchValues;
|
||||||
|
results.count = matchValues.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void publishResults(CharSequence constraint, FilterResults results) {
|
||||||
|
if (results.values != null) {
|
||||||
|
mDataset.clear();
|
||||||
|
mDataset.addAll((ArrayList<String>) results.values);
|
||||||
|
} else {
|
||||||
|
mDataset.clear();
|
||||||
|
}
|
||||||
|
if (results.count > 0) {
|
||||||
|
notifyDataSetChanged();
|
||||||
|
} else {
|
||||||
|
notifyDataSetInvalidated();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user