Finish v1_6_8(69)
This commit is contained in:
commit
0f8f6f1040
BIN
.idea/caches/build_file_checksums.ser
generated
BIN
.idea/caches/build_file_checksums.ser
generated
Binary file not shown.
@ -17,8 +17,8 @@ apply plugin: 'com.google.gms.google-services'
|
|||||||
|
|
||||||
android {
|
android {
|
||||||
|
|
||||||
def appVersionCode = 68
|
def appVersionCode = 69
|
||||||
def appVersionName = '1.6.7'
|
def appVersionName = '1.6.8'
|
||||||
|
|
||||||
signingConfigs {
|
signingConfigs {
|
||||||
release {
|
release {
|
||||||
@ -101,7 +101,7 @@ dependencies {
|
|||||||
implementation 'com.google.firebase:firebase-crash:16.2.1'
|
implementation 'com.google.firebase:firebase-crash:16.2.1'
|
||||||
implementation 'com.google.firebase:firebase-perf:18.0.1'
|
implementation 'com.google.firebase:firebase-perf:18.0.1'
|
||||||
implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
|
implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
|
||||||
implementation 'androidx.appcompat:appcompat:1.1.0-beta01'
|
implementation 'androidx.appcompat:appcompat:1.1.0-rc01'
|
||||||
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.1.0-alpha07'
|
implementation 'com.google.android.material:material:1.1.0-alpha07'
|
||||||
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta2'
|
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta2'
|
||||||
|
|||||||
@ -1,15 +1,10 @@
|
|||||||
package it.integry.integrywmsnative;
|
package it.integry.integrywmsnative;
|
||||||
|
|
||||||
import android.content.BroadcastReceiver;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
|
||||||
import androidx.annotation.IdRes;
|
import androidx.annotation.IdRes;
|
||||||
import androidx.core.content.ContextCompat;
|
|
||||||
import androidx.core.content.res.ResourcesCompat;
|
|
||||||
import androidx.databinding.DataBindingUtil;
|
import androidx.databinding.DataBindingUtil;
|
||||||
|
|
||||||
import android.content.IntentFilter;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
import androidx.fragment.app.FragmentManager;
|
import androidx.fragment.app.FragmentManager;
|
||||||
@ -20,7 +15,6 @@ import androidx.appcompat.app.ActionBarDrawerToggle;
|
|||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import androidx.appcompat.widget.SearchView;
|
import androidx.appcompat.widget.SearchView;
|
||||||
|
|
||||||
import android.provider.Settings;
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
@ -28,14 +22,7 @@ import android.view.View;
|
|||||||
|
|
||||||
import androidx.fragment.app.FragmentTransaction;
|
import androidx.fragment.app.FragmentTransaction;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import it.integry.honeywellscannerlibrary.HoneyWellBarcodeReader;
|
|
||||||
import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker;
|
import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker;
|
||||||
import it.integry.integrywmsnative.core.class_router.BaseCustomConfiguration;
|
|
||||||
import it.integry.integrywmsnative.core.class_router.ClassRouter;
|
|
||||||
import it.integry.integrywmsnative.core.class_router.configs.MenuConfiguration;
|
|
||||||
import it.integry.integrywmsnative.core.class_router.interfaces.ICustomConfiguration;
|
|
||||||
import it.integry.integrywmsnative.core.interfaces.IFilterableFragment;
|
import it.integry.integrywmsnative.core.interfaces.IFilterableFragment;
|
||||||
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
|
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
|
||||||
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
|
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
|
||||||
@ -50,6 +37,8 @@ import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
|||||||
import it.integry.integrywmsnative.gest.login.LoginActivity;
|
import it.integry.integrywmsnative.gest.login.LoginActivity;
|
||||||
import it.integry.integrywmsnative.gest.main.MainFragment;
|
import it.integry.integrywmsnative.gest.main.MainFragment;
|
||||||
import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoFragment;
|
import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoFragment;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_ord_lavorazione.ProdOrdineLavorazioneElencoFragment;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_ord_produzione.ProdOrdineProduzioneElencoFragment;
|
||||||
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;
|
||||||
@ -57,7 +46,6 @@ import it.integry.integrywmsnative.gest.settings.MainSettingsFragment;
|
|||||||
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.vendita.MainVenditaFragment;
|
||||||
import it.integry.integrywmsnative.gest.versamento_merce.VersamentoMerceFragment;
|
import it.integry.integrywmsnative.gest.versamento_merce.VersamentoMerceFragment;
|
||||||
import it.integry.plugins.barcode_base_library.exception.BarcodeAdapterNotFoundException;
|
|
||||||
|
|
||||||
public class MainActivity extends AppCompatActivity
|
public class MainActivity extends AppCompatActivity
|
||||||
implements NavigationView.OnNavigationItemSelectedListener, IPoppableActivity {
|
implements NavigationView.OnNavigationItemSelectedListener, IPoppableActivity {
|
||||||
@ -134,8 +122,6 @@ public class MainActivity extends AppCompatActivity
|
|||||||
public void setItem(@IdRes int menuId) {
|
public void setItem(@IdRes int menuId) {
|
||||||
mBinding.navView.setCheckedItem(menuId);
|
mBinding.navView.setCheckedItem(menuId);
|
||||||
onNavigationItemSelected(mBinding.navView.getMenu().findItem(menuId));
|
onNavigationItemSelected(mBinding.navView.getMenu().findItem(menuId));
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("StatementWithEmptyBody")
|
@SuppressWarnings("StatementWithEmptyBody")
|
||||||
@ -148,48 +134,86 @@ public class MainActivity extends AppCompatActivity
|
|||||||
Fragment fragment = null;
|
Fragment fragment = null;
|
||||||
int id = item.getItemId();
|
int id = item.getItemId();
|
||||||
|
|
||||||
if (id == R.id.nav_home) {
|
|
||||||
|
switch(id) {
|
||||||
|
case R.id.nav_home:
|
||||||
this.pop();
|
this.pop();
|
||||||
} else if (id == R.id.nav_accettazione) {
|
break;
|
||||||
|
|
||||||
|
case R.id.nav_accettazione:
|
||||||
fragment = MainAccettazioneFragment.newInstance();
|
fragment = MainAccettazioneFragment.newInstance();
|
||||||
this.adaptViewToFragment(fragment);
|
this.adaptViewToFragment(fragment);
|
||||||
} else if (id == R.id.nav_spedizione) {
|
break;
|
||||||
fragment = MainVenditaFragment.newInstance();
|
|
||||||
this.adaptViewToFragment(fragment);
|
case R.id.nav_rettifica_giacenze:
|
||||||
} else if (id == R.id.nav_rettifica_giacenze) {
|
|
||||||
fragment = RettificaGiacenzeFragment.newInstance();
|
fragment = RettificaGiacenzeFragment.newInstance();
|
||||||
this.adaptViewToFragment(fragment);
|
this.adaptViewToFragment(fragment);
|
||||||
} else if (id == R.id.nav_versamento_merce) {
|
break;
|
||||||
|
|
||||||
|
case R.id.nav_spedizione:
|
||||||
|
fragment = MainVenditaFragment.newInstance();
|
||||||
|
this.adaptViewToFragment(fragment);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case R.id.nav_versamento_merce:
|
||||||
fragment = VersamentoMerceFragment.newInstance();
|
fragment = VersamentoMerceFragment.newInstance();
|
||||||
this.adaptViewToFragment(fragment);
|
this.adaptViewToFragment(fragment);
|
||||||
} else if (id == R.id.nav_free_picking) {
|
break;
|
||||||
|
|
||||||
|
case R.id.nav_free_picking:
|
||||||
fragment = PickingLiberoFragment.newInstance();
|
fragment = PickingLiberoFragment.newInstance();
|
||||||
this.adaptViewToFragment(fragment);
|
this.adaptViewToFragment(fragment);
|
||||||
}
|
break;
|
||||||
else if (id == R.id.nav_resi_cliente) {
|
|
||||||
|
case R.id.nav_resi_cliente:
|
||||||
fragment = UltimeConsegneClienteFragment.newInstance();
|
fragment = UltimeConsegneClienteFragment.newInstance();
|
||||||
this.adaptViewToFragment(fragment);
|
this.adaptViewToFragment(fragment);
|
||||||
}
|
break;
|
||||||
else if (id == R.id.nav_prod_versamento_materiale) {
|
|
||||||
|
|
||||||
|
|
||||||
|
case R.id.nav_prod_ordine_produzione:
|
||||||
|
fragment = ProdOrdineProduzioneElencoFragment.newInstance();
|
||||||
|
this.adaptViewToFragment(fragment);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case R.id.nav_prod_ordine_lavorazione:
|
||||||
|
fragment = ProdOrdineLavorazioneElencoFragment.newInstance();
|
||||||
|
this.adaptViewToFragment(fragment);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case R.id.nav_prod_versamento_materiale:
|
||||||
fragment = ProdVersamentoMaterialeFragment.newInstance();
|
fragment = ProdVersamentoMaterialeFragment.newInstance();
|
||||||
this.adaptViewToFragment(fragment);
|
this.adaptViewToFragment(fragment);
|
||||||
} else if (id == R.id.nav_prod_recupero_materiale) {
|
break;
|
||||||
|
|
||||||
|
case R.id.nav_prod_recupero_materiale:
|
||||||
fragment = ProdRecuperoMaterialeFragment.newInstance();
|
fragment = ProdRecuperoMaterialeFragment.newInstance();
|
||||||
this.adaptViewToFragment(fragment);
|
this.adaptViewToFragment(fragment);
|
||||||
}
|
break;
|
||||||
|
|
||||||
else if(id == R.id.nav_settings){
|
|
||||||
|
|
||||||
|
|
||||||
|
case R.id.nav_settings:
|
||||||
fragment = new MainSettingsFragment();
|
fragment = new MainSettingsFragment();
|
||||||
this.adaptViewToFragment(fragment);
|
this.adaptViewToFragment(fragment);
|
||||||
}
|
break;
|
||||||
|
|
||||||
else if(id == R.id.nav_logout){
|
|
||||||
|
|
||||||
|
|
||||||
|
case R.id.nav_logout:
|
||||||
UtilitySettings.logout();
|
UtilitySettings.logout();
|
||||||
ServerStatusChecker.dispose();
|
ServerStatusChecker.dispose();
|
||||||
|
|
||||||
startLoginActivity();
|
startLoginActivity();
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
changeContentFragment(fragment, true);
|
changeContentFragment(fragment, true);
|
||||||
|
|
||||||
DrawerLayout drawer = findViewById(R.id.drawer_layout);
|
DrawerLayout drawer = findViewById(R.id.drawer_layout);
|
||||||
|
|||||||
@ -47,6 +47,16 @@ public class MenuConfiguration extends BaseMenuConfiguration {
|
|||||||
new MenuGroup()
|
new MenuGroup()
|
||||||
.setGroupText(R.string.production)
|
.setGroupText(R.string.production)
|
||||||
|
|
||||||
|
.addItem(new MenuItem()
|
||||||
|
.setID(R.id.nav_prod_ordine_produzione)
|
||||||
|
.setTitleText(R.string.prod_ordine_produzione_title_fragment)
|
||||||
|
.setTitleIcon(R.drawable.ic_dashboard_accettazione))
|
||||||
|
|
||||||
|
.addItem(new MenuItem()
|
||||||
|
.setID(R.id.nav_prod_ordine_lavorazione)
|
||||||
|
.setTitleText(R.string.prod_ordine_lavorazione_title_fragment)
|
||||||
|
.setTitleIcon(R.drawable.ic_dashboard_spedizione))
|
||||||
|
|
||||||
.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)
|
||||||
|
|||||||
@ -4,4 +4,8 @@ public interface IFiltroOrdiniVendita {
|
|||||||
|
|
||||||
boolean shoudShowCodMdepFilter();
|
boolean shoudShowCodMdepFilter();
|
||||||
|
|
||||||
|
boolean shoudShowIdViaggioFilter();
|
||||||
|
|
||||||
|
boolean shoudShowAgenteFilter();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -26,4 +26,18 @@ public class UtilityString {
|
|||||||
|
|
||||||
return capMatcher.appendTail(capBuffer).toString();
|
return capMatcher.appendTail(capBuffer).toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String toCamelCase(String input) {
|
||||||
|
if(UtilityString.isNullOrEmpty(input)) return input;
|
||||||
|
|
||||||
|
String tmp = "";
|
||||||
|
|
||||||
|
tmp += String.valueOf(input.charAt(0)).toUpperCase();
|
||||||
|
|
||||||
|
if(input.length() > 1) {
|
||||||
|
tmp += input.substring(1).toLowerCase();
|
||||||
|
}
|
||||||
|
|
||||||
|
return tmp;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -21,26 +21,21 @@ import android.widget.Toast;
|
|||||||
import com.annimon.stream.Stream;
|
import com.annimon.stream.Stream;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.CommonConst;
|
|
||||||
import it.integry.integrywmsnative.core.REST.CommonRESTException;
|
import it.integry.integrywmsnative.core.REST.CommonRESTException;
|
||||||
import it.integry.integrywmsnative.core.data_cache.DataCache;
|
import it.integry.integrywmsnative.core.data_cache.DataCache;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.interfaces.ISearcableFragment;
|
import it.integry.integrywmsnative.core.interfaces.ISearcableFragment;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
|
||||||
import it.integry.integrywmsnative.databinding.FragmentMainAccettazioneBinding;
|
import it.integry.integrywmsnative.databinding.FragmentMainAccettazioneBinding;
|
||||||
import it.integry.integrywmsnative.gest.accettazione.core.AccettazioneHelper;
|
import it.integry.integrywmsnative.gest.accettazione.core.AccettazioneHelper;
|
||||||
import it.integry.integrywmsnative.gest.accettazione.core.MainListAccettazioneAdapter;
|
import it.integry.integrywmsnative.gest.accettazione.core.MainListAccettazioneAdapter;
|
||||||
import it.integry.integrywmsnative.gest.accettazione.core.interfaces.ILoadOrdiniCallback;
|
import it.integry.integrywmsnative.gest.accettazione.core.interfaces.ILoadOrdiniCallback;
|
||||||
import it.integry.integrywmsnative.gest.accettazione.core.interfaces.ILoadPickingListCallback;
|
|
||||||
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
|
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
|
||||||
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
||||||
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO;
|
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO;
|
||||||
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneGroupedInevasoDTO;
|
|
||||||
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
|
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
|
||||||
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.AccettazioneOrdineInevasoActivity;
|
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.AccettazioneOrdineInevasoActivity;
|
||||||
import it.integry.integrywmsnative.ui.ElevatedToolbar;
|
import it.integry.integrywmsnative.ui.ElevatedToolbar;
|
||||||
@ -53,11 +48,12 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
|
|||||||
|
|
||||||
private FragmentMainAccettazioneBinding mBinding;
|
private FragmentMainAccettazioneBinding mBinding;
|
||||||
|
|
||||||
private AccettazioneHelper helper;
|
private AccettazioneHelper mHelper;
|
||||||
|
|
||||||
private List<OrdineAccettazioneGroupedInevasoDTO> groupedOrdiniInevasi;
|
|
||||||
private MainListAccettazioneAdapter mAdapter;
|
private MainListAccettazioneAdapter mAdapter;
|
||||||
|
|
||||||
|
private List<OrdineAccettazioneInevasoDTO> mOriginalOrderList;
|
||||||
|
private List<OrdineAccettazioneInevasoDTO> mRenderedOrderList = new ArrayList<>();
|
||||||
|
|
||||||
private AppCompatTextView mAppBarTitle;
|
private AppCompatTextView mAppBarTitle;
|
||||||
|
|
||||||
|
|
||||||
@ -126,18 +122,19 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
|
|||||||
|
|
||||||
final ProgressDialog progress = ProgressDialog.show(getActivity(), getText(R.string.waiting), getText(R.string.loading) + " ...", true);
|
final ProgressDialog progress = ProgressDialog.show(getActivity(), getText(R.string.waiting), getText(R.string.loading) + " ...", true);
|
||||||
|
|
||||||
helper = new AccettazioneHelper(getActivity());
|
mHelper = new AccettazioneHelper(getActivity());
|
||||||
|
|
||||||
helper.loadOrdini(new ILoadOrdiniCallback() {
|
mHelper.loadOrdini(new ILoadOrdiniCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void onLoadSuccess(List<OrdineAccettazioneInevasoDTO> ordini) {
|
public void onLoadSuccess(List<OrdineAccettazioneInevasoDTO> ordini) {
|
||||||
if(ordini != null) {
|
if(ordini != null) {
|
||||||
Toast.makeText(getActivity(), "Caricati " + ordini.size() + " ordini", Toast.LENGTH_LONG).show();
|
Toast.makeText(getActivity(), "Caricati " + ordini.size() + " ordini", Toast.LENGTH_LONG).show();
|
||||||
groupOrdiniAndMakeRecycler(ordini);
|
mOriginalOrderList = ordini;
|
||||||
}
|
}
|
||||||
|
|
||||||
mBinding.ordiniAccettazioneEmptyView.setVisibility(ordini != null && ordini.size() > 0 ? View.GONE : View.VISIBLE);
|
mBinding.ordiniAccettazioneEmptyView.setVisibility(ordini != null && ordini.size() > 0 ? View.GONE : View.VISIBLE);
|
||||||
|
refreshRenderedOrdini(ordini);
|
||||||
|
initRecyclerView();
|
||||||
progress.dismiss();
|
progress.dismiss();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -154,127 +151,156 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void initRecyclerView() {
|
||||||
private void groupOrdiniAndMakeRecycler(List<OrdineAccettazioneInevasoDTO> ordini){
|
mAdapter = new MainListAccettazioneAdapter(getActivity(), mRenderedOrderList, onSingleSelectionChanged);
|
||||||
|
|
||||||
for(OrdineAccettazioneInevasoDTO ordine : ordini){
|
|
||||||
if(UtilityString.isNullOrEmpty(ordine.getCodJcom()) || ordine.getCodJcom().equalsIgnoreCase(CommonConst.Config.COMMESSA_MAG)){
|
|
||||||
ordine.setCodJcom(CommonConst.Config.COMMESSA_MAG);
|
|
||||||
ordine.setDescrizioneCom("MAGAZZINO");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
groupedOrdiniInevasi = new ArrayList<>();
|
|
||||||
|
|
||||||
//Splitto gli ordini per codAnagClie
|
|
||||||
List<OrdineAccettazioneGroupedInevasoDTO> groupedOrdini = Stream.of(ordini)
|
|
||||||
.map(x -> {
|
|
||||||
OrdineAccettazioneGroupedInevasoDTO groupedOrdine = new OrdineAccettazioneGroupedInevasoDTO();
|
|
||||||
|
|
||||||
groupedOrdine.codAnagForn = x.getCodAnagOrd();
|
|
||||||
groupedOrdine.nomeFornitore = x.getRagSocOrd();
|
|
||||||
groupedOrdine.ordini = new ArrayList<>();
|
|
||||||
|
|
||||||
return groupedOrdine;
|
|
||||||
})
|
|
||||||
.distinctBy(x -> x.codAnagForn + "_" + x.nomeFornitore)
|
|
||||||
.sortBy(x -> x.nomeFornitore)
|
|
||||||
.toList();
|
|
||||||
|
|
||||||
|
|
||||||
Stream.of(groupedOrdini).forEach(groupedOrdine -> {
|
|
||||||
|
|
||||||
|
|
||||||
//Splitto gli ordini di ogni fornitore per data e numero
|
|
||||||
List<OrdineAccettazioneGroupedInevasoDTO.Ordine> tmpOrd = Stream.of(ordini)
|
|
||||||
.filter(x -> x.getCodAnagOrd().equals(groupedOrdine.codAnagForn))
|
|
||||||
|
|
||||||
.sortBy(x -> x.getDataConsD() != null ? x.getDataConsD() : new Date(2000, 01, 01))
|
|
||||||
.map(x -> {
|
|
||||||
|
|
||||||
OrdineAccettazioneGroupedInevasoDTO.Ordine rigaOrdine = new OrdineAccettazioneGroupedInevasoDTO.Ordine();
|
|
||||||
|
|
||||||
rigaOrdine.data = x.getData();
|
|
||||||
rigaOrdine.numero = x.getNumero();
|
|
||||||
rigaOrdine.gestione = x.getGestione();
|
|
||||||
rigaOrdine.codAnagOrd = x.getCodAnagOrd();
|
|
||||||
rigaOrdine.ragSocOrd = x.getRagSocOrd();
|
|
||||||
rigaOrdine.pesoTotale = x.getPesoTotale();
|
|
||||||
rigaOrdine.barcode = x.getBarcode();
|
|
||||||
rigaOrdine.termCons = x.getTermCons();
|
|
||||||
rigaOrdine.dataCons = x.getDataConsS();
|
|
||||||
rigaOrdine.rifOrd = x.getRifOrd();
|
|
||||||
rigaOrdine.clienti = new ArrayList<>();
|
|
||||||
|
|
||||||
return rigaOrdine;
|
|
||||||
})
|
|
||||||
.distinctBy(x -> x.barcode)
|
|
||||||
.toList();
|
|
||||||
|
|
||||||
|
|
||||||
Stream.of(tmpOrd)
|
|
||||||
.forEach(rigaOrdine -> {
|
|
||||||
|
|
||||||
Stream.of(ordini)
|
|
||||||
.filter(x ->
|
|
||||||
x.getCodAnagOrd().equals(rigaOrdine.codAnagOrd) &&
|
|
||||||
x.getNumero() == rigaOrdine.numero &&
|
|
||||||
x.getData().equals(rigaOrdine.data))
|
|
||||||
.forEach(x -> {
|
|
||||||
OrdineAccettazioneGroupedInevasoDTO.Cliente cliente = new OrdineAccettazioneGroupedInevasoDTO.Cliente();
|
|
||||||
|
|
||||||
cliente.codJcom = x.getCodJcom();
|
|
||||||
cliente.ragSocCom = x.getRagSocCom();
|
|
||||||
cliente.descrCom = x.getDescrizioneCom();
|
|
||||||
cliente.dataCons = x.getDataConsS();
|
|
||||||
cliente.numCnf = x.getNumCnf();
|
|
||||||
cliente.rifOrd = x.getRifOrd();
|
|
||||||
|
|
||||||
rigaOrdine.clienti.add(cliente);
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
groupedOrdine.ordini.add(rigaOrdine);
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
groupedOrdiniInevasi.add(groupedOrdine);
|
|
||||||
});
|
|
||||||
|
|
||||||
mAdapter = new MainListAccettazioneAdapter(getActivity(), groupedOrdiniInevasi, onGroupSelectionChanged);
|
|
||||||
mBinding.accettazioneMainList.setAdapter(mAdapter);
|
mBinding.accettazioneMainList.setAdapter(mAdapter);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onAccettazioneMainFabClick() {
|
private void refreshRenderedOrdini(List<OrdineAccettazioneInevasoDTO> ordini) {
|
||||||
|
|
||||||
List<OrdineAccettazioneGroupedInevasoDTO> selectedOrders = helper.getSelectedOrders(groupedOrdiniInevasi);
|
mRenderedOrderList.clear();
|
||||||
|
if(ordini != null) mRenderedOrderList.addAll(ordini);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void refreshRecyclerView() {
|
||||||
|
mAdapter.updateItems(mRenderedOrderList);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private RunnableArgs<OrdineAccettazioneInevasoDTO> onSingleSelectionChanged = dto -> {
|
||||||
|
List<OrdineAccettazioneInevasoDTO> selectedOrders = mHelper.getSelectedOrders(mOriginalOrderList);
|
||||||
|
|
||||||
|
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.accettazioneMainFab.show();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
mBinding.accettazioneMainFab.hide();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// private void groupOrdiniAndMakeRecycler(List<OrdineAccettazioneInevasoDTO> ordini){
|
||||||
|
//
|
||||||
|
// for(OrdineAccettazioneInevasoDTO ordine : ordini){
|
||||||
|
// if(UtilityString.isNullOrEmpty(ordine.getCodJcom()) || ordine.getCodJcom().equalsIgnoreCase(CommonConst.Config.COMMESSA_MAG)){
|
||||||
|
// ordine.setCodJcom(CommonConst.Config.COMMESSA_MAG);
|
||||||
|
// ordine.setDescrizioneCom("MAGAZZINO");
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// groupedOrdiniInevasi = new ArrayList<>();
|
||||||
|
//
|
||||||
|
// //Splitto gli ordini per codAnagClie
|
||||||
|
// List<OrdineAccettazioneGroupedInevasoDTO> groupedOrdini = Stream.of(ordini)
|
||||||
|
// .map(x -> {
|
||||||
|
// OrdineAccettazioneGroupedInevasoDTO groupedOrdine = new OrdineAccettazioneGroupedInevasoDTO();
|
||||||
|
//
|
||||||
|
// groupedOrdine.codAnagForn = x.getCodAnagOrd();
|
||||||
|
// groupedOrdine.nomeFornitore = x.getRagSocOrd();
|
||||||
|
// groupedOrdine.ordini = new ArrayList<>();
|
||||||
|
//
|
||||||
|
// return groupedOrdine;
|
||||||
|
// })
|
||||||
|
// .distinctBy(x -> x.codAnagForn + "_" + x.nomeFornitore)
|
||||||
|
// .sortBy(x -> x.nomeFornitore)
|
||||||
|
// .toList();
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Stream.of(groupedOrdini).forEach(groupedOrdine -> {
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// //Splitto gli ordini di ogni fornitore per data e numero
|
||||||
|
// List<OrdineAccettazioneGroupedInevasoDTO.Ordine> tmpOrd = Stream.of(ordini)
|
||||||
|
// .filter(x -> x.getCodAnagOrd().equals(groupedOrdine.codAnagForn))
|
||||||
|
//
|
||||||
|
// .sortBy(x -> x.getDataConsD() != null ? x.getDataConsD() : new Date(2000, 01, 01))
|
||||||
|
// .map(x -> {
|
||||||
|
//
|
||||||
|
// OrdineAccettazioneGroupedInevasoDTO.Ordine rigaOrdine = new OrdineAccettazioneGroupedInevasoDTO.Ordine();
|
||||||
|
//
|
||||||
|
// rigaOrdine.data = x.getData();
|
||||||
|
// rigaOrdine.numero = x.getNumero();
|
||||||
|
// rigaOrdine.gestione = x.getGestione();
|
||||||
|
// rigaOrdine.codAnagOrd = x.getCodAnagOrd();
|
||||||
|
// rigaOrdine.ragSocOrd = x.getRagSocOrd();
|
||||||
|
// rigaOrdine.pesoTotale = x.getPesoTotale();
|
||||||
|
// rigaOrdine.barcode = x.getBarcode();
|
||||||
|
// rigaOrdine.termCons = x.getTermCons();
|
||||||
|
// rigaOrdine.dataCons = x.getDataConsS();
|
||||||
|
// rigaOrdine.rifOrd = x.getRifOrd();
|
||||||
|
// rigaOrdine.clienti = new ArrayList<>();
|
||||||
|
//
|
||||||
|
// return rigaOrdine;
|
||||||
|
// })
|
||||||
|
// .distinctBy(x -> x.barcode)
|
||||||
|
// .toList();
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Stream.of(tmpOrd)
|
||||||
|
// .forEach(rigaOrdine -> {
|
||||||
|
//
|
||||||
|
// Stream.of(ordini)
|
||||||
|
// .filter(x ->
|
||||||
|
// x.getCodAnagOrd().equals(rigaOrdine.codAnagOrd) &&
|
||||||
|
// x.getNumero() == rigaOrdine.numero &&
|
||||||
|
// x.getData().equals(rigaOrdine.data))
|
||||||
|
// .forEach(x -> {
|
||||||
|
// OrdineAccettazioneGroupedInevasoDTO.Cliente cliente = new OrdineAccettazioneGroupedInevasoDTO.Cliente();
|
||||||
|
//
|
||||||
|
// cliente.codJcom = x.getCodJcom();
|
||||||
|
// cliente.ragSocCom = x.getRagSocCom();
|
||||||
|
// cliente.descrCom = x.getDescrizioneCom();
|
||||||
|
// cliente.dataCons = x.getDataConsS();
|
||||||
|
// cliente.numCnf = x.getNumCnf();
|
||||||
|
// cliente.rifOrd = x.getRifOrd();
|
||||||
|
//
|
||||||
|
// rigaOrdine.clienti.add(cliente);
|
||||||
|
// });
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// groupedOrdine.ordini.add(rigaOrdine);
|
||||||
|
//
|
||||||
|
// });
|
||||||
|
//
|
||||||
|
// groupedOrdiniInevasi.add(groupedOrdine);
|
||||||
|
// });
|
||||||
|
//
|
||||||
|
// mAdapter = new MainListAccettazioneAdapter(getActivity(), groupedOrdiniInevasi, onGroupSelectionChanged);
|
||||||
|
// mBinding.accettazioneMainList.setAdapter(mAdapter);
|
||||||
|
// }
|
||||||
|
|
||||||
|
private void onAccettazioneMainFabClick() {
|
||||||
|
|
||||||
|
List<OrdineAccettazioneInevasoDTO> selectedOrders = mHelper.getSelectedOrders(mOriginalOrderList);
|
||||||
List<String> barcodes = new ArrayList<>();
|
List<String> barcodes = new ArrayList<>();
|
||||||
|
|
||||||
for(OrdineAccettazioneGroupedInevasoDTO ordine : selectedOrders){
|
for(OrdineAccettazioneInevasoDTO ordine : selectedOrders){
|
||||||
for(OrdineAccettazioneGroupedInevasoDTO.Ordine righeOrd : ordine.ordini){
|
if(!barcodes.contains(ordine.getBarcode())) barcodes.add(ordine.getBarcode());
|
||||||
barcodes.add(righeOrd.barcode);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
final ProgressDialog progress = ProgressDialog.show(getActivity(), getText(R.string.waiting),
|
final ProgressDialog progress = ProgressDialog.show(getActivity(), getText(R.string.waiting),
|
||||||
getText(R.string.loading) + " ...", true);
|
getText(R.string.loading) + " ...", true);
|
||||||
|
|
||||||
helper.retrievePickingList(barcodes, new ILoadPickingListCallback() {
|
mHelper.retrievePickingList(barcodes, ordini -> {
|
||||||
@Override
|
|
||||||
public void onLoadSuccess(final List<OrdineAccettazioneDTO> ordini) {
|
|
||||||
progress.dismiss();
|
progress.dismiss();
|
||||||
|
|
||||||
AtomicInteger artsCounter = new AtomicInteger();
|
AtomicInteger artsCounter = new AtomicInteger();
|
||||||
|
|
||||||
Stream.of(ordini).forEach(x -> {
|
Stream.of(ordini).forEach(x -> {
|
||||||
artsCounter.addAndGet((int) Stream.of(x.ordini).filter(y -> y.getQtaDaEvadere().floatValue() > 0).count());
|
artsCounter.addAndGet((int) Stream.of(x.getOrdini()).filter(y -> y.getQtaDaEvadere().floatValue() > 0).count());
|
||||||
});
|
});
|
||||||
|
|
||||||
List<String> ordersKeys = new ArrayList<>();
|
List<String> ordersKeys = new ArrayList<>();
|
||||||
|
|
||||||
for(OrdineAccettazioneDTO ordine : ordini){
|
for(OrdineAccettazioneDTO ordine : ordini){
|
||||||
if(!ordersKeys.contains(ordine.data + " " + ordine.numero + " " + ordine.gestione)){
|
if(!ordersKeys.contains(ordine.getData() + " " + ordine.getNumero() + " " + ordine.getGestione())){
|
||||||
ordersKeys.add(ordine.data + " " + ordine.numero + " " + ordine.gestione);
|
ordersKeys.add(ordine.getData() + " " + ordine.getNumero() + " " + ordine.getGestione());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -294,36 +320,32 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
|
|||||||
|
|
||||||
}).show();
|
}).show();
|
||||||
|
|
||||||
}
|
}, ex -> {
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onLoadFail(Exception ex) {
|
|
||||||
// Toast.makeText(getActivity(), errorMessage, Toast.LENGTH_LONG).show();
|
// Toast.makeText(getActivity(), errorMessage, Toast.LENGTH_LONG).show();
|
||||||
progress.dismiss();
|
progress.dismiss();
|
||||||
|
|
||||||
String errorMessage = CommonRESTException.tryRecognizeThenGetMessage(ex);
|
String errorMessage = CommonRESTException.tryRecognizeThenGetMessage(ex);
|
||||||
if(errorMessage == null) errorMessage = ex.getMessage() + "\n" + ex.getCause().getCause().getMessage();
|
if(errorMessage == null) errorMessage = ex.getMessage() + "\n" + ex.getCause().getCause().getMessage();
|
||||||
DialogSimpleMessageHelper.makeErrorDialog(getActivity(), new SpannableString(errorMessage), null, null).show();
|
DialogSimpleMessageHelper.makeErrorDialog(getActivity(), new SpannableString(errorMessage), null, null).show();
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private RunnableArgs<OrdineAccettazioneGroupedInevasoDTO> onGroupSelectionChanged = dto -> {
|
// private RunnableArgs<OrdineAccettazioneGroupedInevasoDTO> onGroupSelectionChanged = dto -> {
|
||||||
List<OrdineAccettazioneGroupedInevasoDTO> selectedOrders = helper.getSelectedOrders(groupedOrdiniInevasi);
|
// List<OrdineAccettazioneGroupedInevasoDTO> selectedOrders = mHelper.getSelectedOrders(mOriginalOrderList);
|
||||||
|
//
|
||||||
if(selectedOrders != null && selectedOrders.size() > 1){
|
// if(selectedOrders != null && selectedOrders.size() > 1){
|
||||||
for (OrdineAccettazioneGroupedInevasoDTO selectedOrder : selectedOrders) {
|
// for (OrdineAccettazioneGroupedInevasoDTO selectedOrder : selectedOrders) {
|
||||||
if(!dto.codAnagForn.equalsIgnoreCase(selectedOrder.codAnagForn)) {
|
// if(!dto.codAnagForn.equalsIgnoreCase(selectedOrder.codAnagForn)) {
|
||||||
Stream.of(selectedOrder.ordini).forEach(x -> x.setCheckbox(false));
|
// Stream.of(selectedOrder.ordini).forEach(x -> x.setCheckbox(false));
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
if(selectedOrders.size() > 0) mBinding.accettazioneMainFab.show();
|
// if(selectedOrders.size() > 0) mBinding.accettazioneMainFab.show();
|
||||||
else mBinding.accettazioneMainFab.hide();
|
// else mBinding.accettazioneMainFab.hide();
|
||||||
};
|
// };
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -345,8 +367,8 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onQueryTextChange(String newText) {
|
public boolean onQueryTextChange(String newText) {
|
||||||
final List<OrdineAccettazioneGroupedInevasoDTO> filtermodelist = helper.getFilteredOrdersByFornitore(groupedOrdiniInevasi, newText);
|
final List<OrdineAccettazioneInevasoDTO> filtermodelist = mHelper.getFilteredOrdersByFornitore(mOriginalOrderList, newText);
|
||||||
mAdapter.setFilter(filtermodelist);
|
mAdapter.updateItems(filtermodelist);
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,19 +4,19 @@ import android.content.Context;
|
|||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
import com.annimon.stream.Stream;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
|
||||||
import it.integry.integrywmsnative.core.REST.RESTBuilder;
|
import it.integry.integrywmsnative.core.REST.RESTBuilder;
|
||||||
import it.integry.integrywmsnative.core.REST.model.EsitoType;
|
import it.integry.integrywmsnative.core.REST.model.EsitoType;
|
||||||
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.settings.SettingsManager;
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityLogger;
|
import it.integry.integrywmsnative.core.utility.UtilityLogger;
|
||||||
import it.integry.integrywmsnative.gest.accettazione.core.interfaces.ILoadOrdiniCallback;
|
import it.integry.integrywmsnative.gest.accettazione.core.interfaces.ILoadOrdiniCallback;
|
||||||
import it.integry.integrywmsnative.gest.accettazione.core.interfaces.ILoadPickingListCallback;
|
|
||||||
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO;
|
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO;
|
||||||
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneGroupedInevasoDTO;
|
|
||||||
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
|
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
|
||||||
import it.integry.integrywmsnative.gest.accettazione.rest.OrdiniAccettazioneRESTConsumerService;
|
import it.integry.integrywmsnative.gest.accettazione.rest.OrdiniAccettazioneRESTConsumerService;
|
||||||
import retrofit2.Call;
|
import retrofit2.Call;
|
||||||
@ -39,7 +39,7 @@ public class AccettazioneHelper {
|
|||||||
String codMdep = SettingsManager.i().userSession.depo.getCodMdep();
|
String codMdep = SettingsManager.i().userSession.depo.getCodMdep();
|
||||||
|
|
||||||
OrdiniAccettazioneRESTConsumerService service = RESTBuilder.getService(OrdiniAccettazioneRESTConsumerService.class);
|
OrdiniAccettazioneRESTConsumerService service = RESTBuilder.getService(OrdiniAccettazioneRESTConsumerService.class);
|
||||||
service.listOrdiniInevasi(codMdep).enqueue(new Callback<ServiceRESTResponse<List<OrdineAccettazioneInevasoDTO>>>() {
|
service.listOrdiniInevasi(codMdep, "A").enqueue(new Callback<ServiceRESTResponse<List<OrdineAccettazioneInevasoDTO>>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onResponse(Call<ServiceRESTResponse<List<OrdineAccettazioneInevasoDTO>>> call, Response<ServiceRESTResponse<List<OrdineAccettazioneInevasoDTO>>> response) {
|
public void onResponse(Call<ServiceRESTResponse<List<OrdineAccettazioneInevasoDTO>>> call, Response<ServiceRESTResponse<List<OrdineAccettazioneInevasoDTO>>> response) {
|
||||||
|
|
||||||
@ -70,7 +70,7 @@ public class AccettazioneHelper {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void retrievePickingList(List<String> barcodeOrdini, final ILoadPickingListCallback callback){
|
public void retrievePickingList(List<String> barcodeOrdini, RunnableArgs<List<OrdineAccettazioneDTO>> onComplete, RunnableArgs<Exception> onFailed){
|
||||||
|
|
||||||
String joinedBarcodes = TextUtils.join(",", barcodeOrdini);
|
String joinedBarcodes = TextUtils.join(",", barcodeOrdini);
|
||||||
|
|
||||||
@ -86,26 +86,26 @@ public class AccettazioneHelper {
|
|||||||
List<OrdineAccettazioneDTO> dto = response.body().getDto();
|
List<OrdineAccettazioneDTO> dto = response.body().getDto();
|
||||||
|
|
||||||
for (OrdineAccettazioneDTO ordine : dto) {
|
for (OrdineAccettazioneDTO ordine : dto) {
|
||||||
for(OrdineAccettazioneDTO.Riga riga : ordine.ordini){
|
for(OrdineAccettazioneDTO.Riga riga : ordine.getOrdini()){
|
||||||
riga.numOrd = ordine.numero;
|
riga.numOrd = ordine.getNumero();
|
||||||
riga.dataOrd = ordine.data;
|
riga.dataOrd = ordine.getData();
|
||||||
riga.gestioneOrd = ordine.gestione;
|
riga.gestioneOrd = ordine.getGestione();
|
||||||
riga.codAlis = ordine.codAlis;
|
riga.codAlis = ordine.getCodAlis();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
callback.onLoadSuccess(dto);
|
onComplete.run(dto);
|
||||||
} else {
|
} else {
|
||||||
Log.e("Accettazione", response.body().getErrorMessage());
|
Log.e("Accettazione", response.body().getErrorMessage());
|
||||||
callback.onLoadFail(new Exception(response.message()));
|
onFailed.run(new Exception(response.message()));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Log.e("Accettazione", response.message());
|
Log.e("Accettazione", response.message());
|
||||||
callback.onLoadFail(new Exception(response.message()));
|
onFailed.run(new Exception(response.message()));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Log.e("Accettazione", "Status " + response.code() + ": " + response.message());
|
Log.e("Accettazione", "Status " + response.code() + ": " + response.message());
|
||||||
callback.onLoadFail(new Exception("Status " + response.code() + ": " + response.message()));
|
onFailed.run(new Exception("Status " + response.code() + ": " + response.message()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -113,50 +113,32 @@ public class AccettazioneHelper {
|
|||||||
public void onFailure(Call<ServiceRESTResponse<List<OrdineAccettazioneDTO>>> call, Throwable t) {
|
public void onFailure(Call<ServiceRESTResponse<List<OrdineAccettazioneDTO>>> call, Throwable t) {
|
||||||
Log.e("Accettazione", t.toString());
|
Log.e("Accettazione", t.toString());
|
||||||
UtilityLogger.errorMe(new Exception(t));
|
UtilityLogger.errorMe(new Exception(t));
|
||||||
callback.onLoadFail(new Exception(t));
|
onFailed.run(new Exception(t));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public List<OrdineAccettazioneGroupedInevasoDTO> getSelectedOrders(List<OrdineAccettazioneGroupedInevasoDTO> groupedOrdiniInevasi){
|
|
||||||
List<OrdineAccettazioneGroupedInevasoDTO> selectedOrdini = new ArrayList<>();
|
|
||||||
|
|
||||||
for(int i = 0; i < groupedOrdiniInevasi.size(); i++){
|
|
||||||
List<OrdineAccettazioneGroupedInevasoDTO.Ordine> selectedOrdiniGroup = new ArrayList<>();
|
|
||||||
|
|
||||||
for(int j = 0; j < groupedOrdiniInevasi.get(i).ordini.size(); j++){
|
public List<OrdineAccettazioneInevasoDTO> getSelectedOrders(List<OrdineAccettazioneInevasoDTO> ordiniList){
|
||||||
if(groupedOrdiniInevasi.get(i).ordini.get(j).checkBox) {
|
return Stream.of(ordiniList)
|
||||||
selectedOrdiniGroup.add(groupedOrdiniInevasi.get(i).ordini.get(j));
|
.filter(OrdineAccettazioneInevasoDTO::isSelected)
|
||||||
}
|
.toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(selectedOrdiniGroup.size() > 0) {
|
|
||||||
try {
|
|
||||||
OrdineAccettazioneGroupedInevasoDTO cloneOrdine = groupedOrdiniInevasi.get(i).clone();
|
|
||||||
cloneOrdine.ordini = selectedOrdiniGroup;
|
|
||||||
selectedOrdini.add(cloneOrdine);
|
|
||||||
} catch (CloneNotSupportedException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return selectedOrdini;
|
public List<OrdineAccettazioneInevasoDTO> getFilteredOrdersByFornitore(List<OrdineAccettazioneInevasoDTO> groupedOrdiniInevasi, String textFilter){
|
||||||
}
|
List<OrdineAccettazioneInevasoDTO> filteredOrders = new ArrayList<>();
|
||||||
|
|
||||||
public List<OrdineAccettazioneGroupedInevasoDTO> getFilteredOrdersByFornitore(List<OrdineAccettazioneGroupedInevasoDTO> groupedOrdiniInevasi, String textFilter){
|
|
||||||
List<OrdineAccettazioneGroupedInevasoDTO> selectedOrdini = new ArrayList<>();
|
|
||||||
|
|
||||||
for(int i = 0; i < groupedOrdiniInevasi.size(); i++){
|
for(int i = 0; i < groupedOrdiniInevasi.size(); i++){
|
||||||
|
|
||||||
if(groupedOrdiniInevasi.get(i).nomeFornitore.toLowerCase().contains(textFilter.toLowerCase())){
|
if(groupedOrdiniInevasi.get(i).getRagSocOrd().toLowerCase().contains(textFilter.toLowerCase())){
|
||||||
selectedOrdini.add(groupedOrdiniInevasi.get(i));
|
filteredOrders.add(groupedOrdiniInevasi.get(i));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return filteredOrders;
|
||||||
return selectedOrdini;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,213 +1,192 @@
|
|||||||
package it.integry.integrywmsnative.gest.accettazione.core;
|
package it.integry.integrywmsnative.gest.accettazione.core;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import androidx.core.util.Pools;
|
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
|
||||||
import android.text.Html;
|
import android.text.Html;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.CheckBox;
|
|
||||||
import android.widget.LinearLayout;
|
|
||||||
import android.widget.TextView;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
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 java.util.List;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneGroupedInevasoDTO;
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
|
import it.integry.integrywmsnative.databinding.AccettazioneMainListGroupClientiBinding;
|
||||||
|
import it.integry.integrywmsnative.databinding.AccettazioneMainListGroupModelBinding;
|
||||||
|
import it.integry.integrywmsnative.databinding.AccettazioneMainListModelBinding;
|
||||||
|
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
|
||||||
|
import it.integry.integrywmsnative.ui.fastscroll.SectionTitleProvider;
|
||||||
|
|
||||||
/**
|
public class MainListAccettazioneAdapter extends SectionedRecyclerViewAdapter<MainListAccettazioneAdapter.SubheaderHolder, MainListAccettazioneAdapter.SingleItemViewHolder> implements SectionTitleProvider {
|
||||||
* Created by GiuseppeS on 06/03/2018.
|
|
||||||
*/
|
|
||||||
|
|
||||||
public class MainListAccettazioneAdapter extends RecyclerView.Adapter<MainListAccettazioneAdapter.ViewHolder> {
|
|
||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
private List<OrdineAccettazioneGroupedInevasoDTO> mDataset;
|
|
||||||
private RunnableArgs<OrdineAccettazioneGroupedInevasoDTO> mOnGroupSelected;
|
|
||||||
|
|
||||||
private Pools.SynchronizedPool sPool = new Pools.SynchronizedPool(2000);
|
private List<OrdineAccettazioneInevasoDTO> mOriginalDataset;
|
||||||
private Pools.SynchronizedPool sPoolClienti = new Pools.SynchronizedPool(3000);
|
private List<OrdineAccettazioneInevasoDTO> mDataset;
|
||||||
|
private RunnableArgs<OrdineAccettazioneInevasoDTO> mOnSingleSelectionChanged;
|
||||||
|
|
||||||
public static class ViewHolder extends RecyclerView.ViewHolder {
|
static class SubheaderHolder extends RecyclerView.ViewHolder {
|
||||||
// each data item is just a string in this case
|
|
||||||
private TextView mTextViewGroupHeader;
|
|
||||||
private LinearLayout mLinearLayoutGroupItemContainer;
|
|
||||||
|
|
||||||
private List<View> views = new ArrayList<>();
|
AccettazioneMainListModelBinding binding;
|
||||||
|
|
||||||
public ViewHolder(View v) {
|
SubheaderHolder(AccettazioneMainListModelBinding binding) {
|
||||||
super(v);
|
super(binding.getRoot());
|
||||||
|
this.binding = binding;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
static class SingleItemViewHolder extends RecyclerView.ViewHolder {
|
||||||
|
|
||||||
|
AccettazioneMainListGroupModelBinding binding;
|
||||||
|
|
||||||
|
SingleItemViewHolder(AccettazioneMainListGroupModelBinding binding) {
|
||||||
|
super(binding.getRoot());
|
||||||
|
this.binding = binding;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Provide a suitable constructor (depends on the kind of dataset)
|
public MainListAccettazioneAdapter(Context context, List<OrdineAccettazioneInevasoDTO> myDataset, RunnableArgs<OrdineAccettazioneInevasoDTO> onSingleSelectionChanged) {
|
||||||
public MainListAccettazioneAdapter(Context context, List<OrdineAccettazioneGroupedInevasoDTO> myDataset, RunnableArgs<OrdineAccettazioneGroupedInevasoDTO> onGroupSelected) {
|
|
||||||
mContext = context;
|
mContext = context;
|
||||||
mDataset = myDataset;
|
mOriginalDataset = myDataset;
|
||||||
mOnGroupSelected = onGroupSelected;
|
mDataset = orderItems(myDataset);
|
||||||
|
mOnSingleSelectionChanged = onSingleSelectionChanged;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create new views (invoked by the layout manager)
|
public void updateItems(List<OrdineAccettazioneInevasoDTO> updatedDataset) {
|
||||||
|
mDataset.clear();
|
||||||
|
mDataset.addAll(orderItems(updatedDataset));
|
||||||
|
notifyDataSetChanged();
|
||||||
|
notifyDataChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private List<OrdineAccettazioneInevasoDTO> orderItems(List<OrdineAccettazioneInevasoDTO> dataset) {
|
||||||
|
return Stream.of(dataset)
|
||||||
|
.distinctBy(OrdineAccettazioneInevasoDTO::getBarcode)
|
||||||
|
.sortBy(x -> x.getRagSocOrd() + "" + UtilityDate.formatDate(x.getDataConsD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH))
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public MainListAccettazioneAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,
|
public SubheaderHolder onCreateSubheaderViewHolder(ViewGroup parent, int viewType) {
|
||||||
int viewType) {
|
AccettazioneMainListModelBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.accettazione_main_list_model, parent, false);
|
||||||
// create a new view
|
return new SubheaderHolder(binding);
|
||||||
View v = LayoutInflater.from(parent.getContext())
|
|
||||||
.inflate(R.layout.accettazione_main_list_model, parent, false);
|
|
||||||
|
|
||||||
ViewHolder vh = new ViewHolder(v);
|
|
||||||
|
|
||||||
TextView groupHeader = v.findViewById(R.id.accettazione_main_list_group_header);
|
|
||||||
vh.mTextViewGroupHeader = groupHeader;
|
|
||||||
|
|
||||||
LinearLayout groupItemContainer = v.findViewById(R.id.accettazione_main_list_group_item_container);
|
|
||||||
vh.mLinearLayoutGroupItemContainer = groupItemContainer;
|
|
||||||
|
|
||||||
return vh;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Replace the contents of a view (invoked by the layout manager)
|
|
||||||
@Override
|
@Override
|
||||||
public void onBindViewHolder(ViewHolder holder, int position) {
|
public SingleItemViewHolder onCreateItemViewHolder(ViewGroup parent, int viewType) {
|
||||||
// - get element from your dataset at this position
|
AccettazioneMainListGroupModelBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.accettazione_main_list_group_model, parent, false);
|
||||||
// - replace the contents of the view with that element
|
return new SingleItemViewHolder(binding);
|
||||||
|
|
||||||
final List<OrdineAccettazioneGroupedInevasoDTO.Ordine> subGroup = mDataset.get(position).ordini;
|
|
||||||
final int finalPosition = position;
|
|
||||||
|
|
||||||
holder.mTextViewGroupHeader.setText(mDataset.get(position).nomeFornitore);
|
|
||||||
holder.itemView.setOnClickListener(view -> {
|
|
||||||
boolean newValue = true;
|
|
||||||
|
|
||||||
for(int i = 0; i < subGroup.size(); i++){
|
|
||||||
if(subGroup.get(i).checkBox) newValue = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for(int i = 0; i < subGroup.size(); i++){
|
|
||||||
subGroup.get(i).setCheckbox(newValue);
|
@Override
|
||||||
|
public void onBindSubheaderViewHolder(SubheaderHolder subheaderHolder, int nextItemPosition) {
|
||||||
|
subheaderHolder.binding.accettazioneMainListGroupHeader.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(OrdineAccettazioneInevasoDTO::isSelected);
|
||||||
|
|
||||||
|
Stream.of(mDataset)
|
||||||
|
.filter(x -> x.getCodAnagOrd().equals(mDataset.get(nextItemPosition).getCodAnagOrd()))
|
||||||
|
.forEach(x -> x.setSelected(!anySelected));
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
mOnGroupSelected.run(mDataset.get(finalPosition));
|
@Override
|
||||||
|
public void onBindItemViewHolder(SingleItemViewHolder h, int itemPosition) {
|
||||||
|
final OrdineAccettazioneInevasoDTO ordine = mDataset.get(itemPosition);
|
||||||
|
final SingleItemViewHolder holder = h;
|
||||||
|
|
||||||
|
holder.binding.accettazioneMainListGroupItemContainerCheckBox.setTag(ordine.getNumero());
|
||||||
|
|
||||||
|
holder.binding.accettazioneMainListGroupItemContainerCheckBox.setOnCheckedChangeListener(null);
|
||||||
|
|
||||||
|
ordine.selected.resetOnPropertyChangedCallback();
|
||||||
|
|
||||||
|
|
||||||
|
String testataOrdString = String.format(mContext.getString(R.string.ord_acq_testata), String.valueOf(ordine.getNumero()), UtilityDate.formatDate(ordine.getDataD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
||||||
|
holder.binding.accettazioneMainListGroupItemContainerTestataOrd.setText(Html.fromHtml(testataOrdString));
|
||||||
|
|
||||||
|
holder.binding.accettazioneMainListGroupItemContainerClientiOrd.removeAllViews();
|
||||||
|
|
||||||
|
List<OrdineAccettazioneInevasoDTO> clienti = Stream.of(mOriginalDataset)
|
||||||
|
.filter(x -> x.getBarcode().equals(ordine.getBarcode()))
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
for (OrdineAccettazioneInevasoDTO cliente : clienti) {
|
||||||
|
AccettazioneMainListGroupClientiBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.accettazione_main_list_group_clienti, holder.binding.accettazioneMainListGroupItemContainerClientiOrd, false);
|
||||||
|
|
||||||
|
binding.accettazioneMainListGroupClientiComm.setText(cliente.getRifOrd());
|
||||||
|
|
||||||
|
if (!UtilityString.isNullOrEmpty(cliente.getDataConsS())) {
|
||||||
|
binding.accettazioneMainListGroupClientiDatacons.setText(UtilityDate.formatDate(cliente.getDataConsD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_SLASH));
|
||||||
|
} else {
|
||||||
|
binding.accettazioneMainListGroupClientiDatacons.setText("");
|
||||||
|
}
|
||||||
|
|
||||||
|
holder.binding.accettazioneMainListGroupItemContainerClientiOrd.addView(binding.getRoot());
|
||||||
|
}
|
||||||
|
|
||||||
|
holder.binding.setCheckboxValue(ordine.selected);
|
||||||
|
|
||||||
|
holder.binding.getRoot().setOnClickListener(v -> {
|
||||||
|
ordine.setSelected(!ordine.isSelected());
|
||||||
});
|
});
|
||||||
|
|
||||||
for (int i = 0; i < subGroup.size(); i++) {
|
holder.binding.accettazioneMainListGroupItemContainerCheckBox.setChecked(ordine.isSelected());
|
||||||
final OrdineAccettazioneGroupedInevasoDTO.Ordine ordine = subGroup.get(i);
|
|
||||||
|
|
||||||
ordine.checkBoxCallback = new ArrayList<>();
|
//Bindable to View
|
||||||
|
ordine.selected.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
|
||||||
View groupModelViewPool = (View) sPool.acquire();
|
@Override
|
||||||
if(groupModelViewPool == null){
|
public void onPropertyChanged(Observable sender, int propertyId) {
|
||||||
groupModelViewPool = LayoutInflater.from(mContext)
|
if(holder.binding.accettazioneMainListGroupItemContainerCheckBox.getTag().equals(ordine.getNumero())) {
|
||||||
.inflate(R.layout.accettazione_main_list_group_model, holder.mLinearLayoutGroupItemContainer, false);
|
holder.binding.accettazioneMainListGroupItemContainerCheckBox.setChecked(((BindableBoolean) sender).get());
|
||||||
}
|
}
|
||||||
|
|
||||||
View groupModelView = groupModelViewPool;
|
|
||||||
holder.views.add(groupModelView);
|
|
||||||
|
|
||||||
|
|
||||||
groupModelView.setVisibility(View.VISIBLE);
|
|
||||||
|
|
||||||
if (i % 2 == 1) {
|
|
||||||
groupModelView.setBackgroundColor(mContext.getResources().getColor(R.color.letturaFacilitataBG));
|
|
||||||
} else {
|
|
||||||
groupModelView.setBackgroundColor(mContext.getResources().getColor(R.color.white));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
final CheckBox checkBox = groupModelView.findViewById(R.id.accettazione_main_list_group_item_container_checkBox);
|
|
||||||
checkBox.setChecked(ordine.checkBox);
|
|
||||||
|
|
||||||
ordine.checkBoxCallback.add(checkBox::setChecked);
|
|
||||||
|
|
||||||
groupModelView.setOnClickListener(view -> {
|
|
||||||
checkBox.toggle();
|
|
||||||
ordine.checkBox = checkBox.isChecked();
|
|
||||||
mOnGroupSelected.run(mDataset.get(finalPosition));
|
|
||||||
// mCheckBoxCallback.onToggle(checkBox.isChecked());
|
|
||||||
});
|
});
|
||||||
|
|
||||||
TextView testataOrdTextView = groupModelView.findViewById(R.id.accettazione_main_list_group_item_container_testata_ord);
|
|
||||||
String testataOrdString = String.format(mContext.getString(R.string.ord_acq_testata), String.valueOf(ordine.numero), UtilityDate.formatDate(ordine.getData(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
|
||||||
testataOrdTextView.setText(Html.fromHtml(testataOrdString));
|
|
||||||
|
|
||||||
LinearLayout clientLinearLayout = groupModelView.findViewById(R.id.accettazione_main_list_group_item_container_clienti_ord);
|
//View to Bindable
|
||||||
List<OrdineAccettazioneGroupedInevasoDTO.Cliente> subGroupClienti = ordine.clienti;
|
holder.binding.accettazioneMainListGroupItemContainerCheckBox.setOnCheckedChangeListener((buttonView, isChecked) -> {
|
||||||
|
ordine.setSelected(isChecked);
|
||||||
clientLinearLayout.removeAllViews();
|
mOnSingleSelectionChanged.run(ordine);
|
||||||
|
});
|
||||||
for (int k = 0; k < subGroupClienti.size(); k++) {
|
|
||||||
|
|
||||||
|
|
||||||
View groupClienteModelViewPool = (View) sPoolClienti.acquire();
|
|
||||||
if(groupClienteModelViewPool == null){
|
|
||||||
groupClienteModelViewPool = LayoutInflater.from(mContext)
|
|
||||||
.inflate(R.layout.accettazione_main_list_group_clienti, clientLinearLayout, false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
View groupClienteModelView = groupClienteModelViewPool;
|
|
||||||
|
|
||||||
|
|
||||||
TextView clienteComm = groupClienteModelView.findViewById(R.id.accettazione_main_list_group_clienti_comm);
|
|
||||||
String clienteText;
|
|
||||||
// clienteText = subGroupClienti.get(k).codJcom + " - " + subGroupClienti.get(k).descrCom;
|
|
||||||
clienteText = subGroupClienti.get(k).rifOrd;
|
|
||||||
clienteComm.setText(clienteText);
|
|
||||||
|
|
||||||
TextView dataCons = groupClienteModelView.findViewById(R.id.accettazione_main_list_group_clienti_datacons);
|
|
||||||
if (subGroupClienti.get(k).getDataCons() != null) {
|
|
||||||
dataCons.setText(UtilityDate.formatDate(subGroupClienti.get(k).getDataCons(), UtilityDate.COMMONS_DATE_FORMATS.DMY_SLASH));
|
|
||||||
} else {
|
|
||||||
dataCons.setText("");
|
|
||||||
}
|
|
||||||
|
|
||||||
clientLinearLayout.addView(groupClienteModelView);
|
|
||||||
}
|
|
||||||
|
|
||||||
holder.mLinearLayoutGroupItemContainer.addView(groupModelView);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onPlaceSubheaderBetweenItems(int position) {
|
||||||
|
return !this.mDataset.get(position).getRagSocOrd().equalsIgnoreCase(this.mDataset.get(position + 1).getRagSocOrd());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onViewRecycled(ViewHolder holder){
|
public int getItemSize() {
|
||||||
if(holder != null){
|
|
||||||
for(int i = 0; i < holder.views.size(); i++){
|
|
||||||
View groupModelView = holder.views.get(i);
|
|
||||||
|
|
||||||
LinearLayout clientLinearLayout = groupModelView.findViewById(R.id.accettazione_main_list_group_item_container_clienti_ord);
|
|
||||||
|
|
||||||
for(int k = 0; k < clientLinearLayout.getChildCount(); k++){
|
|
||||||
View cliente = clientLinearLayout.getChildAt(k);
|
|
||||||
((ViewGroup) cliente.getParent()).removeView(cliente);
|
|
||||||
|
|
||||||
sPoolClienti.release(cliente);
|
|
||||||
}
|
|
||||||
|
|
||||||
((ViewGroup) groupModelView.getParent()).removeView(groupModelView);
|
|
||||||
sPool.release(groupModelView);
|
|
||||||
}
|
|
||||||
|
|
||||||
holder.views.clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
super.onViewRecycled(holder);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Return the size of your dataset (invoked by the layout manager)
|
|
||||||
@Override
|
|
||||||
public int getItemCount() {
|
|
||||||
return mDataset.size();
|
return mDataset.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void setFilter(List<OrdineAccettazioneGroupedInevasoDTO> newDataset) {
|
public String getSectionTitle(int position) {
|
||||||
mDataset = new ArrayList<>();
|
return null;
|
||||||
mDataset.addAll(newDataset);
|
|
||||||
notifyDataSetChanged();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -20,17 +20,17 @@ import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
|||||||
|
|
||||||
public class OrdineAccettazioneDTO implements Parcelable {
|
public class OrdineAccettazioneDTO implements Parcelable {
|
||||||
|
|
||||||
public String ragSoc;
|
private String ragSoc;
|
||||||
public int numero;
|
private int numero;
|
||||||
public String data;
|
private String data;
|
||||||
public String gestione;
|
private String gestione;
|
||||||
public String codMdep;
|
private String codMdep;
|
||||||
public String codAnag;
|
private String codAnag;
|
||||||
private String codVdes;
|
private String codVdes;
|
||||||
private String termCons;
|
private String termCons;
|
||||||
public ArrayList<Riga> ordini;
|
private ArrayList<Riga> ordini;
|
||||||
public String codAlis;
|
private String codAlis;
|
||||||
public String rifOrd;
|
private String rifOrd;
|
||||||
|
|
||||||
|
|
||||||
public static class Riga implements Parcelable {
|
public static class Riga implements Parcelable {
|
||||||
@ -242,6 +242,8 @@ public class OrdineAccettazioneDTO implements Parcelable {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public Riga(){}
|
public Riga(){}
|
||||||
|
|
||||||
protected Riga(Parcel in) {
|
protected Riga(Parcel in) {
|
||||||
@ -382,5 +384,102 @@ public class OrdineAccettazioneDTO implements Parcelable {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
public String getRagSoc() {
|
||||||
|
return ragSoc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineAccettazioneDTO setRagSoc(String ragSoc) {
|
||||||
|
this.ragSoc = ragSoc;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getNumero() {
|
||||||
|
return numero;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineAccettazioneDTO setNumero(int numero) {
|
||||||
|
this.numero = numero;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getData() {
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineAccettazioneDTO setData(String data) {
|
||||||
|
this.data = data;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getGestione() {
|
||||||
|
return gestione;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineAccettazioneDTO setGestione(String gestione) {
|
||||||
|
this.gestione = gestione;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodMdep() {
|
||||||
|
return codMdep;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineAccettazioneDTO setCodMdep(String codMdep) {
|
||||||
|
this.codMdep = codMdep;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodAnag() {
|
||||||
|
return codAnag;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineAccettazioneDTO setCodAnag(String codAnag) {
|
||||||
|
this.codAnag = codAnag;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodVdes() {
|
||||||
|
return codVdes;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineAccettazioneDTO setCodVdes(String codVdes) {
|
||||||
|
this.codVdes = codVdes;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTermCons() {
|
||||||
|
return termCons;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineAccettazioneDTO setTermCons(String termCons) {
|
||||||
|
this.termCons = termCons;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArrayList<Riga> getOrdini() {
|
||||||
|
return ordini;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineAccettazioneDTO setOrdini(ArrayList<Riga> ordini) {
|
||||||
|
this.ordini = ordini;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodAlis() {
|
||||||
|
return codAlis;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineAccettazioneDTO setCodAlis(String codAlis) {
|
||||||
|
this.codAlis = codAlis;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRifOrd() {
|
||||||
|
return rifOrd;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineAccettazioneDTO setRifOrd(String rifOrd) {
|
||||||
|
this.rifOrd = rifOrd;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,233 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.gest.accettazione.dto;
|
|
||||||
|
|
||||||
import android.os.Parcel;
|
|
||||||
import android.os.Parcelable;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.core.interfaces.ICheckBoxCallback;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by GiuseppeS on 06/03/2018.
|
|
||||||
*/
|
|
||||||
|
|
||||||
public class OrdineAccettazioneGroupedInevasoDTO implements Cloneable, Serializable, Parcelable {
|
|
||||||
|
|
||||||
public String codAnagForn;
|
|
||||||
public String nomeFornitore;
|
|
||||||
public List<Ordine> ordini;
|
|
||||||
|
|
||||||
public OrdineAccettazioneGroupedInevasoDTO clone() throws CloneNotSupportedException {
|
|
||||||
return (OrdineAccettazioneGroupedInevasoDTO) super.clone();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static class Ordine implements Parcelable{
|
|
||||||
public String data;
|
|
||||||
public int numero;
|
|
||||||
public String codAnagOrd = "";
|
|
||||||
public String ragSocOrd = "";
|
|
||||||
public Float pesoTotale;
|
|
||||||
public String barcode;
|
|
||||||
public String termCons;
|
|
||||||
public String dataCons;
|
|
||||||
public String rifOrd;
|
|
||||||
public String gestione;
|
|
||||||
|
|
||||||
public boolean checkBox;
|
|
||||||
public List<ICheckBoxCallback> checkBoxCallback = new ArrayList<>();
|
|
||||||
public void setCheckbox(boolean newValue){
|
|
||||||
checkBox = newValue;
|
|
||||||
if(checkBoxCallback != null && checkBoxCallback.size() > 0) {
|
|
||||||
for(ICheckBoxCallback callback : checkBoxCallback) callback.onToggle(newValue);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Cliente> clienti;
|
|
||||||
|
|
||||||
|
|
||||||
public Date getData(){
|
|
||||||
try {
|
|
||||||
return UtilityDate.recognizeDate(data);
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
public Ordine(){}
|
|
||||||
|
|
||||||
protected Ordine(Parcel in) {
|
|
||||||
data = in.readString();
|
|
||||||
numero = in.readInt();
|
|
||||||
codAnagOrd = in.readString();
|
|
||||||
ragSocOrd = in.readString();
|
|
||||||
pesoTotale = in.readByte() == 0x00 ? null : in.readFloat();
|
|
||||||
barcode = in.readString();
|
|
||||||
termCons = in.readString();
|
|
||||||
dataCons = in.readString();
|
|
||||||
rifOrd = in.readString();
|
|
||||||
if (in.readByte() == 0x01) {
|
|
||||||
clienti = new ArrayList<Cliente>();
|
|
||||||
in.readList(clienti, Cliente.class.getClassLoader());
|
|
||||||
} else {
|
|
||||||
clienti = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int describeContents() {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void writeToParcel(Parcel dest, int flags) {
|
|
||||||
dest.writeString(data);
|
|
||||||
dest.writeInt(numero);
|
|
||||||
dest.writeString(codAnagOrd);
|
|
||||||
dest.writeString(ragSocOrd);
|
|
||||||
if (pesoTotale == null) {
|
|
||||||
dest.writeByte((byte) (0x00));
|
|
||||||
} else {
|
|
||||||
dest.writeByte((byte) (0x01));
|
|
||||||
dest.writeFloat(pesoTotale);
|
|
||||||
}
|
|
||||||
dest.writeString(barcode);
|
|
||||||
dest.writeString(termCons);
|
|
||||||
dest.writeString(dataCons);
|
|
||||||
dest.writeString(rifOrd);
|
|
||||||
if (clienti == null) {
|
|
||||||
dest.writeByte((byte) (0x00));
|
|
||||||
} else {
|
|
||||||
dest.writeByte((byte) (0x01));
|
|
||||||
dest.writeList(clienti);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
|
||||||
public static final Parcelable.Creator<Ordine> CREATOR = new Parcelable.Creator<Ordine>() {
|
|
||||||
@Override
|
|
||||||
public Ordine createFromParcel(Parcel in) {
|
|
||||||
return new Ordine(in);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Ordine[] newArray(int size) {
|
|
||||||
return new Ordine[size];
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class Cliente implements Parcelable{
|
|
||||||
public String codJcom;
|
|
||||||
public String ragSocCom;
|
|
||||||
public int idRiga;
|
|
||||||
public String dataCons;
|
|
||||||
public Integer numCnf;
|
|
||||||
public String descrCom;
|
|
||||||
public String rifOrd;
|
|
||||||
|
|
||||||
public Date getDataCons(){
|
|
||||||
try {
|
|
||||||
return UtilityDate.recognizeDate(dataCons);
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Cliente(){}
|
|
||||||
|
|
||||||
protected Cliente(Parcel in) {
|
|
||||||
codJcom = in.readString();
|
|
||||||
ragSocCom = in.readString();
|
|
||||||
idRiga = in.readInt();
|
|
||||||
dataCons = in.readString();
|
|
||||||
numCnf = in.readByte() == 0x00 ? null : in.readInt();
|
|
||||||
descrCom = in.readString();
|
|
||||||
rifOrd = in.readString();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int describeContents() {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void writeToParcel(Parcel dest, int flags) {
|
|
||||||
dest.writeString(codJcom);
|
|
||||||
dest.writeString(ragSocCom);
|
|
||||||
dest.writeInt(idRiga);
|
|
||||||
dest.writeString(dataCons);
|
|
||||||
if (numCnf == null) {
|
|
||||||
dest.writeByte((byte) (0x00));
|
|
||||||
} else {
|
|
||||||
dest.writeByte((byte) (0x01));
|
|
||||||
dest.writeInt(numCnf);
|
|
||||||
}
|
|
||||||
dest.writeString(descrCom);
|
|
||||||
dest.writeString(rifOrd);
|
|
||||||
}
|
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
|
||||||
public static final Parcelable.Creator<Cliente> CREATOR = new Parcelable.Creator<Cliente>() {
|
|
||||||
@Override
|
|
||||||
public Cliente createFromParcel(Parcel in) {
|
|
||||||
return new Cliente(in);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Cliente[] newArray(int size) {
|
|
||||||
return new Cliente[size];
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineAccettazioneGroupedInevasoDTO(){}
|
|
||||||
|
|
||||||
protected OrdineAccettazioneGroupedInevasoDTO(Parcel in) {
|
|
||||||
codAnagForn = in.readString();
|
|
||||||
nomeFornitore = in.readString();
|
|
||||||
if (in.readByte() == 0x01) {
|
|
||||||
ordini = new ArrayList<Ordine>();
|
|
||||||
in.readList(ordini, Ordine.class.getClassLoader());
|
|
||||||
} else {
|
|
||||||
ordini = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int describeContents() {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void writeToParcel(Parcel dest, int flags) {
|
|
||||||
dest.writeString(codAnagForn);
|
|
||||||
dest.writeString(nomeFornitore);
|
|
||||||
if (ordini == null) {
|
|
||||||
dest.writeByte((byte) (0x00));
|
|
||||||
} else {
|
|
||||||
dest.writeByte((byte) (0x01));
|
|
||||||
dest.writeList(ordini);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
|
||||||
public static final Parcelable.Creator<OrdineAccettazioneGroupedInevasoDTO> CREATOR = new Parcelable.Creator<OrdineAccettazioneGroupedInevasoDTO>() {
|
|
||||||
@Override
|
|
||||||
public OrdineAccettazioneGroupedInevasoDTO createFromParcel(Parcel in) {
|
|
||||||
return new OrdineAccettazioneGroupedInevasoDTO(in);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public OrdineAccettazioneGroupedInevasoDTO[] newArray(int size) {
|
|
||||||
return new OrdineAccettazioneGroupedInevasoDTO[size];
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -2,7 +2,9 @@ package it.integry.integrywmsnative.gest.accettazione.dto;
|
|||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.di.BindableBoolean;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
|
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by GiuseppeS on 06/03/2018.
|
* Created by GiuseppeS on 06/03/2018.
|
||||||
@ -30,11 +32,26 @@ public class OrdineAccettazioneInevasoDTO {
|
|||||||
private String barcode;
|
private String barcode;
|
||||||
private String gestione;
|
private String gestione;
|
||||||
|
|
||||||
|
public BindableBoolean selected;
|
||||||
|
|
||||||
|
public OrdineAccettazioneInevasoDTO() {
|
||||||
|
this.selected = new BindableBoolean(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public String getData() {
|
public String getData() {
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Date getDataD(){
|
||||||
|
try {
|
||||||
|
return UtilityDate.recognizeDate(data);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
public OrdineAccettazioneInevasoDTO setData(String data) {
|
public OrdineAccettazioneInevasoDTO setData(String data) {
|
||||||
this.data = data;
|
this.data = data;
|
||||||
return this;
|
return this;
|
||||||
@ -210,4 +227,15 @@ public class OrdineAccettazioneInevasoDTO {
|
|||||||
this.gestione = gestione;
|
this.gestione = gestione;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public boolean isSelected() {
|
||||||
|
return selected.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineAccettazioneInevasoDTO setSelected(boolean selected) {
|
||||||
|
this.selected.set(selected);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -19,6 +19,9 @@ public interface OrdiniAccettazioneRESTConsumerService {
|
|||||||
@GET("SM2GetOrdiniAccettazioneInevasi")
|
@GET("SM2GetOrdiniAccettazioneInevasi")
|
||||||
Call<ServiceRESTResponse<List<OrdineAccettazioneInevasoDTO>>> listOrdiniInevasi(@Query("codMdep") String codMdep);
|
Call<ServiceRESTResponse<List<OrdineAccettazioneInevasoDTO>>> listOrdiniInevasi(@Query("codMdep") String codMdep);
|
||||||
|
|
||||||
|
@GET("SM2GetOrdiniAccettazioneInevasi")
|
||||||
|
Call<ServiceRESTResponse<List<OrdineAccettazioneInevasoDTO>>> listOrdiniInevasi(@Query("codMdep") String codMdep, @Query("gestione") String gestione);
|
||||||
|
|
||||||
@GET("WMSGetPickingListAccettazione")
|
@GET("WMSGetPickingListAccettazione")
|
||||||
Call<ServiceRESTResponse<List<OrdineAccettazioneDTO>>> pickingListAccettazione(@Query("codBarreBancale") String codBarreBacale);
|
Call<ServiceRESTResponse<List<OrdineAccettazioneDTO>>> pickingListAccettazione(@Query("codBarreBancale") String codBarreBacale);
|
||||||
|
|
||||||
|
|||||||
@ -98,7 +98,7 @@ public class AccettazioneOrdineInevasoActivity extends AppCompatActivity {
|
|||||||
private void setTitle(List<OrdineAccettazioneDTO> ordini){
|
private void setTitle(List<OrdineAccettazioneDTO> ordini){
|
||||||
if(ordini.size() > 0){
|
if(ordini.size() > 0){
|
||||||
if(ordini.size() == 1){
|
if(ordini.size() == 1){
|
||||||
setTitle(ordini.get(0).ragSoc);
|
setTitle(ordini.get(0).getRagSoc());
|
||||||
} else {
|
} else {
|
||||||
setTitle(R.string.accettazione_ordine_inevaso_title_multiple_order);
|
setTitle(R.string.accettazione_ordine_inevaso_title_multiple_order);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -27,12 +27,12 @@ public class OrdineAccettazioneInevasoRESTConsumerService {
|
|||||||
|
|
||||||
Stream.of(ordiniToShow).forEach(x -> {
|
Stream.of(ordiniToShow).forEach(x -> {
|
||||||
try {
|
try {
|
||||||
Date date = UtilityDate.recognizeDate(x.data);
|
Date date = UtilityDate.recognizeDate(x.getData());
|
||||||
String dateString = UtilityDate.formatDate(date, "yyyy/MM/dd");
|
String dateString = UtilityDate.formatDate(date, "yyyy/MM/dd");
|
||||||
|
|
||||||
if (!colliWhereCond.contains(x.gestione + " " + dateString + " " + x.numero)) {
|
if (!colliWhereCond.contains(x.getGestione() + " " + dateString + " " + x.getNumero())) {
|
||||||
String gestione = x.gestione.equalsIgnoreCase("P") ? "L" : x.gestione;
|
String gestione = x.getGestione().equalsIgnoreCase("P") ? "L" : x.getGestione();
|
||||||
colliWhereCond.add(gestione + " " + dateString + " " + x.numero);
|
colliWhereCond.add(gestione + " " + dateString + " " + x.getNumero());
|
||||||
}
|
}
|
||||||
} catch (Exception ex){
|
} catch (Exception ex){
|
||||||
UtilityLogger.errorMe(ex);
|
UtilityLogger.errorMe(ex);
|
||||||
|
|||||||
@ -97,7 +97,7 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
|
|||||||
|
|
||||||
groupedOrdini = new ArrayList<>();
|
groupedOrdini = new ArrayList<>();
|
||||||
for (OrdineAccettazioneDTO ordine : mOrders){
|
for (OrdineAccettazioneDTO ordine : mOrders){
|
||||||
groupedOrdini.addAll(ordine.ordini);
|
groupedOrdini.addAll(ordine.getOrdini());
|
||||||
}
|
}
|
||||||
|
|
||||||
helper = new AccettazioneOrdineInevasoHelper(mActivity);
|
helper = new AccettazioneOrdineInevasoHelper(mActivity);
|
||||||
@ -475,7 +475,7 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
|
|||||||
|
|
||||||
List<String> codAnags =
|
List<String> codAnags =
|
||||||
stream(mOrders)
|
stream(mOrders)
|
||||||
.select(c -> c.codAnag)
|
.select(c -> c.getCodAnag())
|
||||||
.distinct()
|
.distinct()
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
@ -485,7 +485,7 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
|
|||||||
|
|
||||||
List<String> rifOrds =
|
List<String> rifOrds =
|
||||||
stream(mOrders)
|
stream(mOrders)
|
||||||
.select(c -> c.rifOrd)
|
.select(c -> c.getRifOrd())
|
||||||
.distinct()
|
.distinct()
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
@ -495,13 +495,13 @@ public class AccettazioneOrdineAccettazioneInevasoViewModel implements IOnColloC
|
|||||||
|
|
||||||
List<String> numDataOrds =
|
List<String> numDataOrds =
|
||||||
stream(mOrders)
|
stream(mOrders)
|
||||||
.select(value -> ("" + value.numero) + value.data)
|
.select(value -> ("" + value.getNumero()) + value.getData())
|
||||||
.distinct()
|
.distinct()
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
if(numDataOrds != null && numDataOrds.size() == 1){
|
if(numDataOrds != null && numDataOrds.size() == 1){
|
||||||
mtbColtToAddRefs.setNumOrd(mOrders.get(0).numero);
|
mtbColtToAddRefs.setNumOrd(mOrders.get(0).getNumero());
|
||||||
mtbColtToAddRefs.setDataOrd(mOrders.get(0).data);
|
mtbColtToAddRefs.setDataOrd(mOrders.get(0).getData());
|
||||||
|
|
||||||
try {
|
try {
|
||||||
mtbColtToAddRefs.generaFiltroOrdine();
|
mtbColtToAddRefs.generaFiltroOrdine();
|
||||||
|
|||||||
@ -0,0 +1,297 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.prod_ord_lavorazione;
|
||||||
|
|
||||||
|
|
||||||
|
import android.app.ProgressDialog;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.os.Bundle;
|
||||||
|
|
||||||
|
import androidx.appcompat.widget.AppCompatTextView;
|
||||||
|
import androidx.databinding.DataBindingUtil;
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
|
||||||
|
import android.text.Html;
|
||||||
|
import android.text.SpannableString;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import com.annimon.stream.Stream;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.REST.CommonRESTException;
|
||||||
|
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.settings.SettingsManager;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityToast;
|
||||||
|
import it.integry.integrywmsnative.databinding.FragmentProdOrdineLavorazioneElencoBinding;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_ord_lavorazione.core.ProdOrdineLavorazioneHelper;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_ord_lavorazione.core.ProdOrdineLavorazioneListAdapter;
|
||||||
|
import it.integry.integrywmsnative.gest.vendita.core.MainListVenditaAdapter;
|
||||||
|
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.VenditaOrdineInevasoActivity;
|
||||||
|
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 ProgressDialog progress = ProgressDialog.show(getActivity(), getText(R.string.waiting),
|
||||||
|
getText(R.string.loading) + " ...", true);
|
||||||
|
|
||||||
|
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();
|
||||||
|
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 ProgressDialog progress = ProgressDialog.show(getActivity(), getText(R.string.waiting),
|
||||||
|
getText(R.string.loading) + " ...", true);
|
||||||
|
|
||||||
|
|
||||||
|
final String finalDataCons = dataCons;
|
||||||
|
checkSelectedOrders(selectedOrders, () -> {
|
||||||
|
|
||||||
|
mHelper.retrievePickingList(barcodes, finalDataCons, ordini -> {
|
||||||
|
|
||||||
|
mHelper.getBancaliLavorazioneGiaRegistrati(selectedOrders, mtbColtList -> {
|
||||||
|
|
||||||
|
progress.dismiss();
|
||||||
|
|
||||||
|
List<String> codMarts = Stream.of(ordini)
|
||||||
|
.distinctBy(PickingObjectDTO::getCodMart)
|
||||||
|
.map(PickingObjectDTO::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, barcodes.size()), barcodes.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(ordini, selectedOrders, mtbColtList)
|
||||||
|
).show();
|
||||||
|
|
||||||
|
}, ex -> UtilityExceptions.defaultException(getActivity(), ex, progress));
|
||||||
|
|
||||||
|
}, 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<PickingObjectDTO> ordini, List<OrdineVenditaInevasoDTO> selectedOrders, List<MtbColt> mtbColtList) {
|
||||||
|
Intent myIntent = new Intent(getActivity(), VenditaOrdineInevasoActivity.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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,200 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.prod_ord_lavorazione.core;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.text.TextUtils;
|
||||||
|
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.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.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
|
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.core.VenditaHelper;
|
||||||
|
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO;
|
||||||
|
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().userSession.depo.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<String> barcodeOrdini, String dateCons, RunnableArgs<List<PickingObjectDTO>> onComplete, RunnableArgs<Exception> onFailed){
|
||||||
|
String codMdep = SettingsManager.i().userSession.depo.getCodMdep();
|
||||||
|
|
||||||
|
String joinedBarcodes = TextUtils.join(",", barcodeOrdini);
|
||||||
|
|
||||||
|
OrdiniVenditaRESTConsumerService service = RESTBuilder.getService(OrdiniVenditaRESTConsumerService.class, 90);
|
||||||
|
|
||||||
|
Trace perfTrace = UtilityFirebase.getNewPerformanceTrace("db_load_pick_lavorazione");
|
||||||
|
perfTrace.start();
|
||||||
|
|
||||||
|
service.getPickingList(codMdep, dateCons, joinedBarcodes).enqueue(new Callback<ServiceRESTResponse<List<PickingObjectDTO>>>() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(Call<ServiceRESTResponse<List<PickingObjectDTO>>> call, Response<ServiceRESTResponse<List<PickingObjectDTO>>> response) {
|
||||||
|
if(response.isSuccessful()) {
|
||||||
|
|
||||||
|
if(response.body() != null) {
|
||||||
|
if(response.body().getEsito() == EsitoType.OK) {
|
||||||
|
UtilityFirebase.stopPerformanceTrace(perfTrace, false);
|
||||||
|
onComplete.run(response.body().getDto());
|
||||||
|
|
||||||
|
} else {
|
||||||
|
Log.e("Ord Lavorazione", response.body().getErrorMessage());
|
||||||
|
UtilityFirebase.stopPerformanceTrace(perfTrace, true);
|
||||||
|
onFailed.run(new Exception(response.message()));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Log.e("Ord Lavorazione", response.message());
|
||||||
|
UtilityFirebase.stopPerformanceTrace(perfTrace, true);
|
||||||
|
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<PickingObjectDTO>>> 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.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);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,174 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.prod_ord_lavorazione.core;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.text.Html;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
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.utility.UtilityDate;
|
||||||
|
import it.integry.integrywmsnative.databinding.FragmentProdOrdineLavorazioneListGroupModelBinding;
|
||||||
|
import it.integry.integrywmsnative.databinding.FragmentProdOrdineLavorazioneListModelBinding;
|
||||||
|
import it.integry.integrywmsnative.databinding.FragmentProdOrdineProduzioneListModelBinding;
|
||||||
|
import it.integry.integrywmsnative.databinding.VenditaMainListGroupModelBinding;
|
||||||
|
import it.integry.integrywmsnative.databinding.VenditaMainListModelBinding;
|
||||||
|
import it.integry.integrywmsnative.gest.vendita.core.MainListVenditaAdapter;
|
||||||
|
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());
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,240 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.prod_ord_produzione;
|
||||||
|
|
||||||
|
|
||||||
|
import android.app.ProgressDialog;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.os.Bundle;
|
||||||
|
|
||||||
|
import androidx.appcompat.widget.AppCompatTextView;
|
||||||
|
import androidx.databinding.DataBindingUtil;
|
||||||
|
import androidx.fragment.app.Fragment;
|
||||||
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
|
||||||
|
import android.text.Html;
|
||||||
|
import android.text.SpannableString;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import com.annimon.stream.Stream;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.R;
|
||||||
|
import it.integry.integrywmsnative.core.REST.CommonRESTException;
|
||||||
|
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.settings.SettingsManager;
|
||||||
|
import it.integry.integrywmsnative.databinding.FragmentProdOrdineProduzioneElencoBinding;
|
||||||
|
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.accettazione_ordine_inevaso.AccettazioneOrdineInevasoActivity;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_ord_produzione.core.OrdineProduzioneHelper;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_ord_produzione.core.OrdineProduzioneListAdapter;
|
||||||
|
import it.integry.integrywmsnative.ui.ElevatedToolbar;
|
||||||
|
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A simple {@link Fragment} subclass.
|
||||||
|
*/
|
||||||
|
public class ProdOrdineProduzioneElencoFragment extends Fragment implements ITitledFragment, IScrollableFragment {
|
||||||
|
|
||||||
|
private Runnable mOnPreDestroy;
|
||||||
|
private ElevatedToolbar mToolbar;
|
||||||
|
|
||||||
|
private FragmentProdOrdineProduzioneElencoBinding mBinding;
|
||||||
|
|
||||||
|
private OrdineProduzioneHelper mHelper;
|
||||||
|
private OrdineProduzioneListAdapter mAdapter;
|
||||||
|
|
||||||
|
private List<OrdineAccettazioneInevasoDTO> mOriginalOrderList;
|
||||||
|
private List<OrdineAccettazioneInevasoDTO> mRenderedOrderList = new ArrayList<>();
|
||||||
|
|
||||||
|
private AppCompatTextView mAppBarTitle;
|
||||||
|
|
||||||
|
public ProdOrdineProduzioneElencoFragment() {
|
||||||
|
// Required empty public constructor
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static ProdOrdineProduzioneElencoFragment newInstance() {
|
||||||
|
ProdOrdineProduzioneElencoFragment fragment = new ProdOrdineProduzioneElencoFragment();
|
||||||
|
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_produzione_elenco, container, false);
|
||||||
|
|
||||||
|
|
||||||
|
mBinding.setView(this);
|
||||||
|
mBinding.ordineProduzioneMainList.setLayoutManager(new LinearLayoutManager(getActivity()));
|
||||||
|
mBinding.ordineProduzioneMainFab.hide();
|
||||||
|
|
||||||
|
mBinding.ordineProduzioneMainFab.setOnClickListener(v -> {
|
||||||
|
this.onAccettazioneMainFabClick();
|
||||||
|
});
|
||||||
|
|
||||||
|
mToolbar.setRecyclerView(mBinding.ordineProduzioneMainList);
|
||||||
|
|
||||||
|
init();
|
||||||
|
return mBinding.getRoot();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreateActionBar(AppCompatTextView titleText, Context context) {
|
||||||
|
mAppBarTitle = titleText;
|
||||||
|
mAppBarTitle.setText(context.getText(R.string.prod_ordine_produzione_title_fragment).toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private void init() {
|
||||||
|
|
||||||
|
final ProgressDialog progress = ProgressDialog.show(getActivity(), getText(R.string.waiting), getText(R.string.loading) + " ...", true);
|
||||||
|
|
||||||
|
mHelper = new OrdineProduzioneHelper(getActivity());
|
||||||
|
|
||||||
|
mHelper.loadOrdini(ordini -> {
|
||||||
|
if(ordini != null) {
|
||||||
|
Toast.makeText(getActivity(), "Caricati " + ordini.size() + " ordini", Toast.LENGTH_LONG).show();
|
||||||
|
mOriginalOrderList = ordini;
|
||||||
|
}
|
||||||
|
|
||||||
|
mBinding.ordiniProduzioneEmptyView.setVisibility(ordini != null && ordini.size() > 0 ? View.GONE : View.VISIBLE);
|
||||||
|
refreshRenderedOrdini(ordini);
|
||||||
|
initRecyclerView();
|
||||||
|
progress.dismiss();
|
||||||
|
}, ex -> {
|
||||||
|
progress.dismiss();
|
||||||
|
|
||||||
|
String errorMessage = CommonRESTException.tryRecognizeThenGetMessage(ex);
|
||||||
|
if(errorMessage == null) errorMessage = ex.getMessage();
|
||||||
|
DialogSimpleMessageHelper.makeErrorDialog(getActivity(), new SpannableString(errorMessage), null, null).show();
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setScrollToolbar(ElevatedToolbar toolbar) {
|
||||||
|
mToolbar = toolbar;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setOnPreDestroy(Runnable onPreDestroy) {
|
||||||
|
mOnPreDestroy = onPreDestroy;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private void initRecyclerView() {
|
||||||
|
mAdapter = new OrdineProduzioneListAdapter(getActivity(), mRenderedOrderList, onSingleSelectionChanged);
|
||||||
|
mBinding.ordineProduzioneMainList.setAdapter(mAdapter);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void refreshRenderedOrdini(List<OrdineAccettazioneInevasoDTO> ordini) {
|
||||||
|
|
||||||
|
mRenderedOrderList.clear();
|
||||||
|
if(ordini != null) mRenderedOrderList.addAll(ordini);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void refreshRecyclerView() {
|
||||||
|
mAdapter.updateItems(mRenderedOrderList);
|
||||||
|
}
|
||||||
|
|
||||||
|
private RunnableArgs<OrdineAccettazioneInevasoDTO> onSingleSelectionChanged = dto -> {
|
||||||
|
List<OrdineAccettazioneInevasoDTO> selectedOrders = mHelper.getSelectedOrders(mOriginalOrderList);
|
||||||
|
|
||||||
|
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.ordineProduzioneMainFab.show();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
mBinding.ordineProduzioneMainFab.hide();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private void onAccettazioneMainFabClick() {
|
||||||
|
|
||||||
|
List<OrdineAccettazioneInevasoDTO> selectedOrders = mHelper.getSelectedOrders(mOriginalOrderList);
|
||||||
|
List<String> barcodes = new ArrayList<>();
|
||||||
|
|
||||||
|
for(OrdineAccettazioneInevasoDTO ordine : selectedOrders){
|
||||||
|
if(!barcodes.contains(ordine.getBarcode())) barcodes.add(ordine.getBarcode());
|
||||||
|
}
|
||||||
|
|
||||||
|
final ProgressDialog progress = ProgressDialog.show(getActivity(), getText(R.string.waiting),
|
||||||
|
getText(R.string.loading) + " ...", true);
|
||||||
|
|
||||||
|
mHelper.retrievePickingList(barcodes, ordini -> {
|
||||||
|
progress.dismiss();
|
||||||
|
|
||||||
|
AtomicInteger artsCounter = new AtomicInteger();
|
||||||
|
|
||||||
|
Stream.of(ordini).forEach(x -> {
|
||||||
|
artsCounter.addAndGet((int) Stream.of(x.getOrdini()).filter(y -> y.getQtaDaEvadere().floatValue() > 0).count());
|
||||||
|
});
|
||||||
|
|
||||||
|
List<String> ordersKeys = new ArrayList<>();
|
||||||
|
|
||||||
|
for(OrdineAccettazioneDTO ordine : ordini){
|
||||||
|
if(!ordersKeys.contains(ordine.getData() + " " + ordine.getNumero() + " " + ordine.getGestione())){
|
||||||
|
ordersKeys.add(ordine.getData() + " " + ordine.getNumero() + " " + ordine.getGestione());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
DialogSimpleMessageHelper.makeInfoDialog(getActivity(),
|
||||||
|
getText(R.string.orders).toString(),
|
||||||
|
Html.fromHtml(String.format(getActivity().getResources().getQuantityString(R.plurals.loaded_orders_message, ordersKeys.size()), ordersKeys.size())
|
||||||
|
+ "<br /><br />" +
|
||||||
|
"<b>" + artsCounter + "</b> " + getActivity().getResources().getQuantityString(R.plurals.available_articles, artsCounter.get())),
|
||||||
|
null,
|
||||||
|
() -> {
|
||||||
|
|
||||||
|
String cacheItemID = DataCache.addItem(ordini);
|
||||||
|
|
||||||
|
Intent myIntent = new Intent(getActivity(), AccettazioneOrdineInevasoActivity.class);
|
||||||
|
myIntent.putExtra("key", cacheItemID);
|
||||||
|
getActivity().startActivity(myIntent);
|
||||||
|
|
||||||
|
}).show();
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
ex -> {
|
||||||
|
// Toast.makeText(getActivity(), errorMessage, Toast.LENGTH_LONG).show();
|
||||||
|
progress.dismiss();
|
||||||
|
|
||||||
|
String errorMessage = CommonRESTException.tryRecognizeThenGetMessage(ex);
|
||||||
|
if(errorMessage == null) errorMessage = ex.getMessage() + "\n" + ex.getCause().getCause().getMessage();
|
||||||
|
DialogSimpleMessageHelper.makeErrorDialog(getActivity(), new SpannableString(errorMessage), null, null).show();
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,125 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.prod_ord_produzione.core;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.text.TextUtils;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
|
import com.annimon.stream.Stream;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.REST.RESTBuilder;
|
||||||
|
import it.integry.integrywmsnative.core.REST.model.EsitoType;
|
||||||
|
import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityLogger;
|
||||||
|
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.accettazione.rest.OrdiniAccettazioneRESTConsumerService;
|
||||||
|
import retrofit2.Call;
|
||||||
|
import retrofit2.Callback;
|
||||||
|
import retrofit2.Response;
|
||||||
|
|
||||||
|
public class OrdineProduzioneHelper {
|
||||||
|
|
||||||
|
private Context mContext;
|
||||||
|
|
||||||
|
public OrdineProduzioneHelper(Context context){
|
||||||
|
mContext = context;
|
||||||
|
}
|
||||||
|
public void loadOrdini(RunnableArgs<List<OrdineAccettazioneInevasoDTO>> onComplete, RunnableArgs<Exception> onFailed){
|
||||||
|
String codMdep = SettingsManager.i().userSession.depo.getCodMdep();
|
||||||
|
|
||||||
|
OrdiniAccettazioneRESTConsumerService service = RESTBuilder.getService(OrdiniAccettazioneRESTConsumerService.class);
|
||||||
|
service.listOrdiniInevasi(codMdep, "P").enqueue(new Callback<ServiceRESTResponse<List<OrdineAccettazioneInevasoDTO>>>() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(Call<ServiceRESTResponse<List<OrdineAccettazioneInevasoDTO>>> call, Response<ServiceRESTResponse<List<OrdineAccettazioneInevasoDTO>>> response) {
|
||||||
|
|
||||||
|
if(response.isSuccessful()) {
|
||||||
|
|
||||||
|
if(response.body() != null) {
|
||||||
|
if(response.body().getEsito() == EsitoType.OK) {
|
||||||
|
onComplete.run(response.body().getDto());
|
||||||
|
} else {
|
||||||
|
Log.e("Accettazione", response.body().getErrorMessage());
|
||||||
|
onFailed.run(new Exception(response.message()));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Log.e("Accettazione", response.message());
|
||||||
|
onFailed.run(new Exception(response.message()));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Log.e("Accettazione", "Status " + response.code() + ": " + response.message());
|
||||||
|
onFailed.run(new Exception("Status " + response.code() + ": " + response.message()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Call<ServiceRESTResponse<List<OrdineAccettazioneInevasoDTO>>> call, Throwable t) {
|
||||||
|
Log.e("Produzione", t.toString());
|
||||||
|
onFailed.run(new Exception(t));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void retrievePickingList(List<String> barcodeOrdini, RunnableArgs<List<OrdineAccettazioneDTO>> onComplete, RunnableArgs<Exception> onFailed){
|
||||||
|
|
||||||
|
String joinedBarcodes = TextUtils.join(",", barcodeOrdini);
|
||||||
|
|
||||||
|
OrdiniAccettazioneRESTConsumerService service = RESTBuilder.getService(OrdiniAccettazioneRESTConsumerService.class);
|
||||||
|
|
||||||
|
service.pickingListAccettazione(joinedBarcodes).enqueue(new Callback<ServiceRESTResponse<List<OrdineAccettazioneDTO>>>() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(Call<ServiceRESTResponse<List<OrdineAccettazioneDTO>>> call, Response<ServiceRESTResponse<List<OrdineAccettazioneDTO>>> response) {
|
||||||
|
if(response.isSuccessful()) {
|
||||||
|
|
||||||
|
if(response.body() != null) {
|
||||||
|
if(response.body().getEsito() == EsitoType.OK) {
|
||||||
|
List<OrdineAccettazioneDTO> dto = response.body().getDto();
|
||||||
|
|
||||||
|
for (OrdineAccettazioneDTO ordine : dto) {
|
||||||
|
for(OrdineAccettazioneDTO.Riga riga : ordine.getOrdini()){
|
||||||
|
riga.numOrd = ordine.getNumero();
|
||||||
|
riga.dataOrd = ordine.getData();
|
||||||
|
riga.gestioneOrd = ordine.getGestione();
|
||||||
|
riga.codAlis = ordine.getCodAlis();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
onComplete.run(dto);
|
||||||
|
} else {
|
||||||
|
Log.e("Produzione", response.body().getErrorMessage());
|
||||||
|
onFailed.run(new Exception(response.message()));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Log.e("Produzione", response.message());
|
||||||
|
onFailed.run(new Exception(response.message()));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Log.e("Produzione", "Status " + response.code() + ": " + response.message());
|
||||||
|
onFailed.run(new Exception("Status " + response.code() + ": " + response.message()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Call<ServiceRESTResponse<List<OrdineAccettazioneDTO>>> call, Throwable t) {
|
||||||
|
Log.e("Produzione", t.toString());
|
||||||
|
UtilityLogger.errorMe(new Exception(t));
|
||||||
|
onFailed.run(new Exception(t));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public List<OrdineAccettazioneInevasoDTO> getSelectedOrders(List<OrdineAccettazioneInevasoDTO> ordiniList){
|
||||||
|
return Stream.of(ordiniList)
|
||||||
|
.filter(OrdineAccettazioneInevasoDTO::isSelected)
|
||||||
|
.toList();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,198 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.prod_ord_produzione.core;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.text.Html;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
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.CommonConst;
|
||||||
|
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.FragmentProdOrdineProduzioneListGroupClientiBinding;
|
||||||
|
import it.integry.integrywmsnative.databinding.FragmentProdOrdineProduzioneListGroupModelBinding;
|
||||||
|
import it.integry.integrywmsnative.databinding.FragmentProdOrdineProduzioneListModelBinding;
|
||||||
|
import it.integry.integrywmsnative.databinding.VenditaMainListGroupModelBinding;
|
||||||
|
import it.integry.integrywmsnative.databinding.VenditaMainListModelBinding;
|
||||||
|
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
|
||||||
|
import it.integry.integrywmsnative.gest.vendita.core.MainListVenditaAdapter;
|
||||||
|
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
||||||
|
import it.integry.integrywmsnative.ui.fastscroll.SectionTitleProvider;
|
||||||
|
|
||||||
|
public class OrdineProduzioneListAdapter extends SectionedRecyclerViewAdapter<OrdineProduzioneListAdapter.SubheaderHolder, OrdineProduzioneListAdapter.SingleItemViewHolder> implements SectionTitleProvider {
|
||||||
|
|
||||||
|
|
||||||
|
private Context mContext;
|
||||||
|
|
||||||
|
private List<OrdineAccettazioneInevasoDTO> mOriginalDataset;
|
||||||
|
private List<OrdineAccettazioneInevasoDTO> mDataset;
|
||||||
|
private RunnableArgs<OrdineAccettazioneInevasoDTO> mOnSingleSelectionChanged;
|
||||||
|
|
||||||
|
|
||||||
|
static class SubheaderHolder extends RecyclerView.ViewHolder {
|
||||||
|
|
||||||
|
FragmentProdOrdineProduzioneListModelBinding binding;
|
||||||
|
|
||||||
|
SubheaderHolder(FragmentProdOrdineProduzioneListModelBinding binding) {
|
||||||
|
super(binding.getRoot());
|
||||||
|
this.binding = binding;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
static class SingleItemViewHolder extends RecyclerView.ViewHolder {
|
||||||
|
|
||||||
|
FragmentProdOrdineProduzioneListGroupModelBinding binding;
|
||||||
|
|
||||||
|
SingleItemViewHolder(FragmentProdOrdineProduzioneListGroupModelBinding binding) {
|
||||||
|
super(binding.getRoot());
|
||||||
|
this.binding = binding;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public OrdineProduzioneListAdapter(Context context, List<OrdineAccettazioneInevasoDTO> myDataset, RunnableArgs<OrdineAccettazioneInevasoDTO> onSingleSelectionChanged) {
|
||||||
|
mContext = context;
|
||||||
|
mOriginalDataset = myDataset;
|
||||||
|
mDataset = orderItems(myDataset);
|
||||||
|
mOnSingleSelectionChanged = onSingleSelectionChanged;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void updateItems(List<OrdineAccettazioneInevasoDTO> updatedDataset) {
|
||||||
|
mDataset.clear();
|
||||||
|
mDataset.addAll(orderItems(updatedDataset));
|
||||||
|
notifyDataSetChanged();
|
||||||
|
notifyDataChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private List<OrdineAccettazioneInevasoDTO> orderItems(List<OrdineAccettazioneInevasoDTO> dataset) {
|
||||||
|
return Stream.of(dataset)
|
||||||
|
.distinctBy(OrdineAccettazioneInevasoDTO::getBarcode)
|
||||||
|
.sortBy(x -> x.getRagSocOrd() + "" + UtilityDate.formatDate(x.getDataConsD(), UtilityDate.COMMONS_DATE_FORMATS.YMD_SLASH))
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SubheaderHolder onCreateSubheaderViewHolder(ViewGroup parent, int viewType) {
|
||||||
|
FragmentProdOrdineProduzioneListModelBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.fragment_prod_ordine_produzione__list_model, parent, false);
|
||||||
|
return new SubheaderHolder(binding);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SingleItemViewHolder onCreateItemViewHolder(ViewGroup parent, int viewType) {
|
||||||
|
FragmentProdOrdineProduzioneListGroupModelBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.fragment_prod_ordine_produzione__list_group_model, parent, false);
|
||||||
|
return new SingleItemViewHolder(binding);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBindSubheaderViewHolder(OrdineProduzioneListAdapter.SubheaderHolder subheaderHolder, int nextItemPosition) {
|
||||||
|
subheaderHolder.binding.ordineProduzioneMainListGroupHeader.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(OrdineAccettazioneInevasoDTO::isSelected);
|
||||||
|
|
||||||
|
Stream.of(mDataset)
|
||||||
|
.filter(x -> x.getCodAnagOrd().equals(mDataset.get(nextItemPosition).getCodAnagOrd()))
|
||||||
|
.forEach(x -> x.setSelected(!anySelected));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBindItemViewHolder(OrdineProduzioneListAdapter.SingleItemViewHolder h, int itemPosition) {
|
||||||
|
final OrdineAccettazioneInevasoDTO ordine = mDataset.get(itemPosition);
|
||||||
|
final OrdineProduzioneListAdapter.SingleItemViewHolder holder = h;
|
||||||
|
|
||||||
|
holder.binding.ordineProduzioneMainListGroupItemContainerCheckBox.setTag(ordine.getNumero());
|
||||||
|
|
||||||
|
holder.binding.ordineProduzioneMainListGroupItemContainerCheckBox.setOnCheckedChangeListener(null);
|
||||||
|
|
||||||
|
ordine.selected.resetOnPropertyChangedCallback();
|
||||||
|
|
||||||
|
|
||||||
|
String testataOrdString = String.format(mContext.getString(R.string.ord_acq_testata), String.valueOf(ordine.getNumero()), UtilityDate.formatDate(ordine.getDataD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
|
||||||
|
holder.binding.ordineProduzioneMainListGroupItemContainerTestataOrd.setText(Html.fromHtml(testataOrdString));
|
||||||
|
|
||||||
|
holder.binding.ordineProduzioneMainListGroupItemContainerClientiOrd.removeAllViews();
|
||||||
|
|
||||||
|
List<OrdineAccettazioneInevasoDTO> clienti = Stream.of(mOriginalDataset)
|
||||||
|
.filter(x -> x.getBarcode().equals(ordine.getBarcode()))
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
for (OrdineAccettazioneInevasoDTO cliente : clienti) {
|
||||||
|
FragmentProdOrdineProduzioneListGroupClientiBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.fragment_prod_ordine_produzione__list_group_clienti, holder.binding.ordineProduzioneMainListGroupItemContainerClientiOrd, false);
|
||||||
|
|
||||||
|
binding.ordineProduzioneMainListGroupClientiComm.setText(cliente.getRifOrd());
|
||||||
|
|
||||||
|
if (!UtilityString.isNullOrEmpty(cliente.getDataConsS())) {
|
||||||
|
binding.ordineProduzioneMainListGroupClientiDatacons.setText(UtilityDate.formatDate(cliente.getDataConsD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_SLASH));
|
||||||
|
} else {
|
||||||
|
binding.ordineProduzioneMainListGroupClientiDatacons.setText("");
|
||||||
|
}
|
||||||
|
|
||||||
|
holder.binding.ordineProduzioneMainListGroupItemContainerClientiOrd.addView(binding.getRoot());
|
||||||
|
}
|
||||||
|
|
||||||
|
holder.binding.setCheckboxValue(ordine.selected);
|
||||||
|
|
||||||
|
holder.binding.getRoot().setOnClickListener(v -> {
|
||||||
|
ordine.setSelected(!ordine.isSelected());
|
||||||
|
});
|
||||||
|
|
||||||
|
holder.binding.ordineProduzioneMainListGroupItemContainerCheckBox.setChecked(ordine.isSelected());
|
||||||
|
|
||||||
|
//Bindable to View
|
||||||
|
ordine.selected.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
|
||||||
|
@Override
|
||||||
|
public void onPropertyChanged(Observable sender, int propertyId) {
|
||||||
|
if(holder.binding.ordineProduzioneMainListGroupItemContainerCheckBox.getTag().equals(ordine.getNumero())) {
|
||||||
|
holder.binding.ordineProduzioneMainListGroupItemContainerCheckBox.setChecked(((BindableBoolean) sender).get());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
//View to Bindable
|
||||||
|
holder.binding.ordineProduzioneMainListGroupItemContainerCheckBox.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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -60,25 +60,13 @@ public class ProdRecuperoMaterialeFragment extends Fragment implements ITitledFr
|
|||||||
return mBinding.getRoot();
|
return mBinding.getRoot();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onAttach(Context context) {
|
|
||||||
super.onAttach(context);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onDetach() {
|
|
||||||
super.onDetach();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private void init() {
|
private void init() {
|
||||||
mHelper = new ProdRecuperoMaterialeHelper(getActivity());
|
mHelper = new ProdRecuperoMaterialeHelper(getActivity());
|
||||||
mViewmodel.init(getActivity(), mBinding, mHelper, () -> {
|
mViewmodel.init(getActivity(), mBinding, mHelper, () -> {
|
||||||
((IPoppableActivity) getActivity()).pop();
|
((IPoppableActivity) getActivity()).pop();
|
||||||
});
|
});
|
||||||
|
|
||||||
mViewmodel.openLU();
|
// mViewmodel.openLU();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,140 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.prod_recupero_materiale.core;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
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.utility.UtilityString;
|
||||||
|
import it.integry.integrywmsnative.databinding.ProdRecuperoMaterialeListHeaderBinding;
|
||||||
|
import it.integry.integrywmsnative.databinding.ProdRecuperoMaterialeListItemBinding;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_recupero_materiale.dto.HistoryVersamentoProdUL;
|
||||||
|
import it.integry.integrywmsnative.ui.fastscroll.SectionTitleProvider;
|
||||||
|
|
||||||
|
public class HistoryULsListAdapter extends SectionedRecyclerViewAdapter<HistoryULsListAdapter.SubheaderHolder, HistoryULsListAdapter.SingleItemViewHolder> implements SectionTitleProvider {
|
||||||
|
|
||||||
|
|
||||||
|
private Context mContext;
|
||||||
|
|
||||||
|
private List<HistoryVersamentoProdUL> mOriginalDataset;
|
||||||
|
private List<HistoryVersamentoProdUL> mDataset;
|
||||||
|
|
||||||
|
|
||||||
|
static class SubheaderHolder extends RecyclerView.ViewHolder {
|
||||||
|
|
||||||
|
ProdRecuperoMaterialeListHeaderBinding binding;
|
||||||
|
|
||||||
|
SubheaderHolder(ProdRecuperoMaterialeListHeaderBinding binding) {
|
||||||
|
super(binding.getRoot());
|
||||||
|
this.binding = binding;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
static class SingleItemViewHolder extends RecyclerView.ViewHolder {
|
||||||
|
|
||||||
|
ProdRecuperoMaterialeListItemBinding binding;
|
||||||
|
|
||||||
|
SingleItemViewHolder(ProdRecuperoMaterialeListItemBinding binding) {
|
||||||
|
super(binding.getRoot());
|
||||||
|
this.binding = binding;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public HistoryULsListAdapter(Context context, List<HistoryVersamentoProdUL> myDataset) {
|
||||||
|
mContext = context;
|
||||||
|
mOriginalDataset = myDataset;
|
||||||
|
mDataset = orderItems(myDataset);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void updateItems(List<HistoryVersamentoProdUL> updatedDataset) {
|
||||||
|
mDataset.clear();
|
||||||
|
mDataset.addAll(orderItems(updatedDataset));
|
||||||
|
notifyDataSetChanged();
|
||||||
|
notifyDataChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private List<HistoryVersamentoProdUL> orderItems(List<HistoryVersamentoProdUL> dataset) {
|
||||||
|
return Stream.of(dataset)
|
||||||
|
.sortBy(HistoryVersamentoProdUL::getCodJfas)
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SubheaderHolder onCreateSubheaderViewHolder(ViewGroup parent, int viewType) {
|
||||||
|
ProdRecuperoMaterialeListHeaderBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.prod_recupero_materiale_list_header, parent, false);
|
||||||
|
return new SubheaderHolder(binding);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SingleItemViewHolder onCreateItemViewHolder(ViewGroup parent, int viewType) {
|
||||||
|
ProdRecuperoMaterialeListItemBinding binding = DataBindingUtil.inflate(LayoutInflater.from(mContext), R.layout.prod_recupero_materiale_list_item, parent, false);
|
||||||
|
return new SingleItemViewHolder(binding);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBindSubheaderViewHolder(SubheaderHolder subheaderHolder, int nextItemPosition) {
|
||||||
|
String fase = UtilityString.isNullOrEmpty(mDataset.get(nextItemPosition).getDescrizioneFase()) ? mDataset.get(nextItemPosition).getCodJfas() : mDataset.get(nextItemPosition).getDescrizioneFase();
|
||||||
|
|
||||||
|
subheaderHolder.binding.codJfas.setText(UtilityString.toCamelCase(fase));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBindItemViewHolder(SingleItemViewHolder h, int itemPosition) {
|
||||||
|
final HistoryVersamentoProdUL ul = mDataset.get(itemPosition);
|
||||||
|
final SingleItemViewHolder holder = h;
|
||||||
|
|
||||||
|
|
||||||
|
holder.binding.codMart.setText(ul.getCodMart());
|
||||||
|
holder.binding.descrizione.setText(ul.getDescrizioneArt());
|
||||||
|
holder.binding.numCollo.setText(String.valueOf(ul.getNumCollo()));
|
||||||
|
holder.binding.partitaMag.setText(ul.getPartitaMag());
|
||||||
|
|
||||||
|
holder.binding.qtaVersata.setText(String.valueOf(ul.getQtaCol()));
|
||||||
|
holder.binding.untMisQtaVersata.setText(ul.getUntMis());
|
||||||
|
|
||||||
|
|
||||||
|
holder.binding.getRoot().setOnClickListener(v -> {
|
||||||
|
// ordine.setSelected(!ordine.isSelected());
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onPlaceSubheaderBetweenItems(int position) {
|
||||||
|
return !this.mDataset.get(position).getCodJfas().equalsIgnoreCase(this.mDataset.get(position + 1).getCodJfas());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getItemSize() {
|
||||||
|
return mDataset.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getSectionTitle(int position) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -2,6 +2,18 @@ package it.integry.integrywmsnative.gest.prod_recupero_materiale.core;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
|
import com.google.gson.reflect.TypeToken;
|
||||||
|
|
||||||
|
import java.lang.reflect.Type;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback;
|
||||||
|
import it.integry.integrywmsnative.core.REST.consumers.SystemRESTConsumer;
|
||||||
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
|
import it.integry.integrywmsnative.gest.prod_recupero_materiale.dto.HistoryVersamentoProdUL;
|
||||||
|
|
||||||
public class ProdRecuperoMaterialeHelper {
|
public class ProdRecuperoMaterialeHelper {
|
||||||
|
|
||||||
|
|
||||||
@ -10,4 +22,67 @@ public class ProdRecuperoMaterialeHelper {
|
|||||||
public ProdRecuperoMaterialeHelper(Context context) {
|
public ProdRecuperoMaterialeHelper(Context context) {
|
||||||
this.mContext = context;
|
this.mContext = context;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void loadLastULVersate(RunnableArgs<List<HistoryVersamentoProdUL>> onComplete, RunnableArgs<Exception> onFailed) {
|
||||||
|
|
||||||
|
String sql = "SELECT jtb_fasi.cod_jfas, " +
|
||||||
|
"jtb_fasi.descrizione AS descrizione_fase, " +
|
||||||
|
"mtb_colr.gestione, " +
|
||||||
|
"mtb_colr.data_collo, " +
|
||||||
|
"mtb_colr.num_collo, " +
|
||||||
|
"mtb_colr.cod_mart, " +
|
||||||
|
"mtb_colr.cod_col, " +
|
||||||
|
"mtb_colr.cod_tagl, " +
|
||||||
|
"SUM(mtb_colr.qta_col) AS qta_col, " +
|
||||||
|
"SUM(mtb_colr.num_cnf) AS num_cnf, " +
|
||||||
|
"mtb_colr.ser_collo, " +
|
||||||
|
"mtb_colr.partita_mag, " +
|
||||||
|
"mtb_colr.cod_jcom, " +
|
||||||
|
"mtb_colt.segno, " +
|
||||||
|
"ISNULL(mtb_aart.descrizione_estesa, mtb_aart.descrizione) AS descrizione_art, " +
|
||||||
|
"mtb_aart.unt_mis, " +
|
||||||
|
"MAX(datetime_row) AS datetime_row " +
|
||||||
|
"FROM mtb_colr " +
|
||||||
|
"INNER JOIN mtb_colt " +
|
||||||
|
"ON mtb_colr.num_collo = mtb_colt.num_collo " +
|
||||||
|
"AND mtb_colr.data_collo = mtb_colt.data_collo " +
|
||||||
|
"AND mtb_colr.ser_collo = mtb_colt.ser_collo " +
|
||||||
|
"AND mtb_colr.gestione = mtb_colt.gestione " +
|
||||||
|
"INNER JOIN mtb_aart " +
|
||||||
|
"ON mtb_colr.cod_mart = mtb_aart.cod_mart " +
|
||||||
|
"LEFT OUTER JOIN jtb_fasi ON mtb_colt.cod_jfas = jtb_fasi.cod_jfas " +
|
||||||
|
"WHERE jtb_fasi.cod_jfas IS NOT NULL " +
|
||||||
|
"AND segno = -1 " +
|
||||||
|
"GROUP BY jtb_fasi.cod_jfas, " +
|
||||||
|
"jtb_fasi.descrizione, " +
|
||||||
|
"mtb_colr.gestione, " +
|
||||||
|
"mtb_colr.data_collo, " +
|
||||||
|
"mtb_colr.num_collo, " +
|
||||||
|
"mtb_colr.cod_mart, " +
|
||||||
|
"mtb_colr.cod_col, " +
|
||||||
|
"mtb_colr.cod_tagl, " +
|
||||||
|
"mtb_colr.ser_collo, " +
|
||||||
|
"mtb_colr.partita_mag, " +
|
||||||
|
"mtb_colr.cod_jcom, " +
|
||||||
|
"mtb_aart.descrizione_estesa, " +
|
||||||
|
"mtb_aart.descrizione, " +
|
||||||
|
"mtb_aart.unt_mis, " +
|
||||||
|
"mtb_colt.segno " +
|
||||||
|
"ORDER BY data_collo DESC";
|
||||||
|
|
||||||
|
Type typeOfObjectsList = new TypeToken<ArrayList<HistoryVersamentoProdUL>>() {}.getType();
|
||||||
|
SystemRESTConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<List<HistoryVersamentoProdUL>>() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(List<HistoryVersamentoProdUL> value) {
|
||||||
|
onComplete.run(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailed(Exception ex) {
|
||||||
|
onFailed.run(ex);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,168 @@
|
|||||||
|
package it.integry.integrywmsnative.gest.prod_recupero_materiale.dto;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
public class HistoryVersamentoProdUL {
|
||||||
|
|
||||||
|
|
||||||
|
private String gestione;
|
||||||
|
private String dataCollo;
|
||||||
|
private Integer numCollo;
|
||||||
|
private String segno;
|
||||||
|
private String codMart;
|
||||||
|
private String codCol;
|
||||||
|
private String codTagl;
|
||||||
|
private String codJfas;
|
||||||
|
private String descrizioneFase;
|
||||||
|
private BigDecimal qtaCol;
|
||||||
|
private BigDecimal numCnf;
|
||||||
|
private String partitaMag;
|
||||||
|
private String codJcom;
|
||||||
|
private String datetimeRow;
|
||||||
|
private String descrizioneArt;
|
||||||
|
private String untMis;
|
||||||
|
|
||||||
|
public String getGestione() {
|
||||||
|
return gestione;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HistoryVersamentoProdUL setGestione(String gestione) {
|
||||||
|
this.gestione = gestione;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDataCollo() {
|
||||||
|
return dataCollo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HistoryVersamentoProdUL setDataCollo(String dataCollo) {
|
||||||
|
this.dataCollo = dataCollo;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getNumCollo() {
|
||||||
|
return numCollo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HistoryVersamentoProdUL setNumCollo(Integer numCollo) {
|
||||||
|
this.numCollo = numCollo;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSegno() {
|
||||||
|
return segno;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HistoryVersamentoProdUL setSegno(String segno) {
|
||||||
|
this.segno = segno;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodMart() {
|
||||||
|
return codMart;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HistoryVersamentoProdUL setCodMart(String codMart) {
|
||||||
|
this.codMart = codMart;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodCol() {
|
||||||
|
return codCol;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HistoryVersamentoProdUL setCodCol(String codCol) {
|
||||||
|
this.codCol = codCol;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodTagl() {
|
||||||
|
return codTagl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HistoryVersamentoProdUL setCodTagl(String codTagl) {
|
||||||
|
this.codTagl = codTagl;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodJfas() {
|
||||||
|
return codJfas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HistoryVersamentoProdUL setCodJfas(String codJfas) {
|
||||||
|
this.codJfas = codJfas;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescrizioneFase() {
|
||||||
|
return descrizioneFase;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HistoryVersamentoProdUL setDescrizioneFase(String descrizioneFase) {
|
||||||
|
this.descrizioneFase = descrizioneFase;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getQtaCol() {
|
||||||
|
return qtaCol;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HistoryVersamentoProdUL setQtaCol(BigDecimal qtaCol) {
|
||||||
|
this.qtaCol = qtaCol;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getNumCnf() {
|
||||||
|
return numCnf;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HistoryVersamentoProdUL setNumCnf(BigDecimal numCnf) {
|
||||||
|
this.numCnf = numCnf;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPartitaMag() {
|
||||||
|
return partitaMag;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HistoryVersamentoProdUL setPartitaMag(String partitaMag) {
|
||||||
|
this.partitaMag = partitaMag;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodJcom() {
|
||||||
|
return codJcom;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HistoryVersamentoProdUL setCodJcom(String codJcom) {
|
||||||
|
this.codJcom = codJcom;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDatetimeRow() {
|
||||||
|
return datetimeRow;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HistoryVersamentoProdUL setDatetimeRow(String datetimeRow) {
|
||||||
|
this.datetimeRow = datetimeRow;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescrizioneArt() {
|
||||||
|
return descrizioneArt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HistoryVersamentoProdUL setDescrizioneArt(String descrizioneArt) {
|
||||||
|
this.descrizioneArt = descrizioneArt;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUntMis() {
|
||||||
|
return untMis;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HistoryVersamentoProdUL setUntMis(String untMis) {
|
||||||
|
this.untMis = untMis;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,23 +1,30 @@
|
|||||||
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.Activity;
|
||||||
|
import android.app.ProgressDialog;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.text.Html;
|
import android.text.Html;
|
||||||
import android.text.SpannableString;
|
import android.text.SpannableString;
|
||||||
|
|
||||||
import androidx.databinding.ObservableField;
|
import androidx.databinding.ObservableField;
|
||||||
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
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.model.MtbColt;
|
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityPosizione;
|
import it.integry.integrywmsnative.core.utility.UtilityPosizione;
|
||||||
|
import it.integry.integrywmsnative.core.utility.UtilityProgress;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
import it.integry.integrywmsnative.databinding.FragmentProdRecuperoMaterialeBinding;
|
import it.integry.integrywmsnative.databinding.FragmentProdRecuperoMaterialeBinding;
|
||||||
|
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.HistoryVersamentoProdUL;
|
||||||
import it.integry.integrywmsnative.gest.prod_recupero_materiale.views.InputQuantityToReturnDialog;
|
import it.integry.integrywmsnative.gest.prod_recupero_materiale.views.InputQuantityToReturnDialog;
|
||||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||||
import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLU;
|
import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLU;
|
||||||
@ -30,6 +37,9 @@ public class ProdRecuperoMaterialeViewModel {
|
|||||||
private ProdRecuperoMaterialeHelper mHelper;
|
private ProdRecuperoMaterialeHelper mHelper;
|
||||||
private Runnable mOnRecuperoCompleted;
|
private Runnable mOnRecuperoCompleted;
|
||||||
|
|
||||||
|
|
||||||
|
private HistoryULsListAdapter mAdapter;
|
||||||
|
|
||||||
public ObservableField<MtbColt> mtbColt = new ObservableField<>();
|
public ObservableField<MtbColt> mtbColt = new ObservableField<>();
|
||||||
|
|
||||||
|
|
||||||
@ -39,7 +49,15 @@ public class ProdRecuperoMaterialeViewModel {
|
|||||||
mHelper = helper;
|
mHelper = helper;
|
||||||
mOnRecuperoCompleted = onRecuperoCompleted;
|
mOnRecuperoCompleted = onRecuperoCompleted;
|
||||||
|
|
||||||
|
ProgressDialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
|
||||||
|
|
||||||
|
mHelper.loadLastULVersate(historyULs -> {
|
||||||
|
progressDialog.dismiss();
|
||||||
|
initRecyclerView(historyULs);
|
||||||
|
}, ex -> {
|
||||||
|
UtilityExceptions.defaultException(mContext, ex, progressDialog);
|
||||||
BarcodeManager.enable();
|
BarcodeManager.enable();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void openLU() {
|
public void openLU() {
|
||||||
@ -103,4 +121,13 @@ public class ProdRecuperoMaterialeViewModel {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private void initRecyclerView(List<HistoryVersamentoProdUL> historyULs) {
|
||||||
|
mAdapter = new HistoryULsListAdapter(mContext, historyULs);
|
||||||
|
|
||||||
|
mBinding.prodRecuperoMaterialeMainList.setLayoutManager(new LinearLayoutManager(mContext));
|
||||||
|
mBinding.prodRecuperoMaterialeMainList.setAdapter(mAdapter);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -77,7 +77,7 @@ public class ProdVersamentoMaterialViewModel {
|
|||||||
((IPoppableActivity)mContext).pop();
|
((IPoppableActivity)mContext).pop();
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
if (mtbDepoPosizione != null && mtbColt.get() != null) {
|
if (mtbDepoPosizione != null && mtbDepoPosizione.isFlagLineaProduzione() && mtbColt.get() != null) {
|
||||||
createColloScarico(mtbDepoPosizione);
|
createColloScarico(mtbDepoPosizione);
|
||||||
} else {
|
} else {
|
||||||
DialogSimpleMessageHelper.makeWarningDialog(mContext,
|
DialogSimpleMessageHelper.makeWarningDialog(mContext,
|
||||||
@ -98,6 +98,7 @@ public class ProdVersamentoMaterialViewModel {
|
|||||||
|
|
||||||
MtbColt cloneUL = ((MtbColt) mtbColt.get().clone());
|
MtbColt cloneUL = ((MtbColt) mtbColt.get().clone());
|
||||||
cloneUL.setCodJfas(mtbDepoPosizione.getPosizione());
|
cloneUL.setCodJfas(mtbDepoPosizione.getPosizione());
|
||||||
|
cloneUL.setSerCollo(null);
|
||||||
|
|
||||||
ColliMagazzinoRESTConsumer.createColloScaricoDaCarico(cloneUL, mtbDepoPosizione, generatedMtbColt -> {
|
ColliMagazzinoRESTConsumer.createColloScaricoDaCarico(cloneUL, mtbDepoPosizione, generatedMtbColt -> {
|
||||||
showDataSavedDialog(() -> {
|
showDataSavedDialog(() -> {
|
||||||
|
|||||||
@ -111,7 +111,6 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IS
|
|||||||
|
|
||||||
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_main_vendita, container, false);
|
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_main_vendita, container, false);
|
||||||
|
|
||||||
mBinding.setView(this);
|
|
||||||
mBinding.venditaMainList.setLayoutManager(new LinearLayoutManager(getActivity()));
|
mBinding.venditaMainList.setLayoutManager(new LinearLayoutManager(getActivity()));
|
||||||
mBinding.venditaMainFab.hide();
|
mBinding.venditaMainFab.hide();
|
||||||
|
|
||||||
@ -128,18 +127,6 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IS
|
|||||||
super.onCreateOptionsMenu(menu, inflater);
|
super.onCreateOptionsMenu(menu, inflater);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onOptionsItemSelected(MenuItem item) {
|
|
||||||
|
|
||||||
// if(item.getItemId() == R.id.action_free_picking) {
|
|
||||||
// Intent myIntent = new Intent(getActivity(), PickingLiberoActivity.class);
|
|
||||||
// startActivity(myIntent);
|
|
||||||
// }
|
|
||||||
|
|
||||||
return true;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private void init(){
|
private void init(){
|
||||||
|
|
||||||
@ -184,93 +171,11 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IS
|
|||||||
|
|
||||||
|
|
||||||
public void refreshOrdini(List<OrdineVenditaInevasoDTO> ordini){
|
public void refreshOrdini(List<OrdineVenditaInevasoDTO> ordini){
|
||||||
|
|
||||||
mRenderedOrderList.clear();
|
mRenderedOrderList.clear();
|
||||||
mRenderedOrderList.addAll(ordini);
|
mRenderedOrderList.addAll(ordini);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// //Splitto gli ordini per codAnagOrd (Cliente)
|
|
||||||
// Stream.of(ordini)
|
|
||||||
// .distinctBy(OrdineVenditaInevasoDTO::getCodAnagOrd)
|
|
||||||
// .sortBy(OrdineVenditaInevasoDTO::getRagSocOrd)
|
|
||||||
// .map(x -> x.getCodAnagOrd() + "#_#" + x.getRagSocOrd())
|
|
||||||
// .forEach(anagOrd -> {
|
|
||||||
//
|
|
||||||
// String codAnagOrd = anagOrd.substring(0, anagOrd.indexOf("#_#"));
|
|
||||||
// String ragSocOrd = anagOrd.substring(anagOrd.indexOf("#_#") + 3);
|
|
||||||
//
|
|
||||||
// OrdineVenditaGroupedInevasoDTO groupedOrdine = new OrdineVenditaGroupedInevasoDTO();
|
|
||||||
//
|
|
||||||
// groupedOrdine.codAnagClie = codAnagOrd;
|
|
||||||
// groupedOrdine.nomeCliente = ragSocOrd;
|
|
||||||
// groupedOrdine.ordini = new ArrayList<>();
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// //Raggruppo gli ordini del singolo fornitore suddivisi per data, dataCons e numero
|
|
||||||
// Stream.of(ordini)
|
|
||||||
// .filter(x -> x.getCodAnagOrd().equalsIgnoreCase(codAnagOrd))
|
|
||||||
// .distinctBy(x -> x.getDataOrdS() + " - " + x.getDataConsS() + " - " + x.getNumOrd())
|
|
||||||
// .sortBy(x -> x.getDataConsD() != null ? x.getDataConsD() : new Date(2000, 01, 01))
|
|
||||||
// .forEach(ord -> {
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// OrdineVenditaGroupedInevasoDTO.Ordine rigaOrdine = new OrdineVenditaGroupedInevasoDTO.Ordine();
|
|
||||||
//
|
|
||||||
// rigaOrdine
|
|
||||||
// .setData(ord.getDataOrdS())
|
|
||||||
// .setNumero(ord.getNumOrd())
|
|
||||||
// .setCodMdep(ord.getCodMdep())
|
|
||||||
// .setCodAnagOrd(ord.getCodAnagOrd())
|
|
||||||
// .setCodAnagClie(groupedOrdine.codAnagClie)
|
|
||||||
// .setRagSocOrd(ord.getRagSocOrd())
|
|
||||||
// .setPesoTotale(ord.getPesoTotale() != null ? ord.getPesoTotale().floatValue() : null)
|
|
||||||
// .setBarcode(ord.getBarcode())
|
|
||||||
// .setTermCons(ord.getTermCons())
|
|
||||||
// .setDataCons(ord.getDataConsS())
|
|
||||||
// .setRifOrd(ord.getRifOrd())
|
|
||||||
// .setGestione(ord.getGestione())
|
|
||||||
// .setExistCollo(ord.flagExistCollo());
|
|
||||||
//
|
|
||||||
// rigaOrdine.clienti = new ArrayList<>();
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// //Leggo tutti i clienti dell'ordine corrente
|
|
||||||
// Stream.of(ordini)
|
|
||||||
// .filter(x -> x.getCodAnagOrd().equalsIgnoreCase(codAnagOrd) &&
|
|
||||||
// x.getNumOrd().equals(ord.getNumOrd()) &&
|
|
||||||
// x.getDataOrdS().equalsIgnoreCase(ord.getDataOrdS()) &&
|
|
||||||
// x.getDataConsS().equalsIgnoreCase(ord.getDataConsS()))
|
|
||||||
// .distinctBy(OrdineVenditaInevasoDTO::getCodJcom)
|
|
||||||
// .forEach(ordCliente -> {
|
|
||||||
//
|
|
||||||
// OrdineVenditaGroupedInevasoDTO.Cliente cliente = new OrdineVenditaGroupedInevasoDTO.Cliente();
|
|
||||||
//
|
|
||||||
// cliente.codJcom = ordCliente.getCodJcom();
|
|
||||||
// cliente.ragSocCom = ordCliente.getRagSocCom();
|
|
||||||
// cliente.descrCom = ordCliente.getDescrizioneCom();
|
|
||||||
// cliente.dataCons = ordCliente.getDataConsS();
|
|
||||||
// cliente.numCnf = ordCliente.getNumCnfdaEvadere() != null ? ordCliente.getNumCnfdaEvadere().floatValue() : 0;
|
|
||||||
// cliente.rifOrd = ordCliente.getRifOrd();
|
|
||||||
//
|
|
||||||
// rigaOrdine.clienti.add(cliente);
|
|
||||||
//
|
|
||||||
// });
|
|
||||||
//
|
|
||||||
// groupedOrdine.ordini.add(rigaOrdine);
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// });
|
|
||||||
//
|
|
||||||
// mRenderedOrderList.add(groupedOrdine);
|
|
||||||
//
|
|
||||||
// });
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initRecyclerView() {
|
private void initRecyclerView() {
|
||||||
// mAdapter = new MainListVenditaAdapter(getActivity(), mRenderedOrderList, onGroupSelectionChanged, onSingleSelectionChanged);
|
|
||||||
mAdapter = new MainListVenditaAdapter(getActivity(), mRenderedOrderList, onSingleSelectionChanged);
|
mAdapter = new MainListVenditaAdapter(getActivity(), mRenderedOrderList, onSingleSelectionChanged);
|
||||||
mBinding.venditaMainList.setAdapter(mAdapter);
|
mBinding.venditaMainList.setAdapter(mAdapter);
|
||||||
}
|
}
|
||||||
@ -283,24 +188,13 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IS
|
|||||||
List<OrdineVenditaInevasoDTO> selectedOrders = mHelper.getSelectedOrders(mOriginalOrderList);
|
List<OrdineVenditaInevasoDTO> selectedOrders = mHelper.getSelectedOrders(mOriginalOrderList);
|
||||||
|
|
||||||
if(!SettingsManager.iDB().isFlagMultiClienteOrdV()){
|
if(!SettingsManager.iDB().isFlagMultiClienteOrdV()){
|
||||||
boolean allMatch = Stream.of(selectedOrders).allMatch(x -> dto.getCodAnagOrd().equalsIgnoreCase(x.getCodAnagOrd()));
|
if(dto.isSelected()) {
|
||||||
|
|
||||||
if(!allMatch) {
|
|
||||||
Stream.of(selectedOrders)
|
Stream.of(selectedOrders)
|
||||||
.filter(x -> !x.getCodAnagOrd().equalsIgnoreCase(x.getCodAnagOrd()))
|
.filter(x -> !x.getCodAnagOrd().equalsIgnoreCase(dto.getCodAnagOrd()))
|
||||||
.forEach(x -> x.setSelected(false));
|
.forEach(x -> x.setSelected(false));
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// if(selectedOrders != null && selectedOrders.size() > 1){
|
|
||||||
// for (OrdineVenditaInevasoDTO selectedOrder : selectedOrders) {
|
|
||||||
// if(!dto.getCodAnagOrd().equalsIgnoreCase(selectedOrder.getCodAnagOrd())) {
|
|
||||||
// Stream.of(selectedOrder.ordini).forEach(x -> x.setCheckbox(false));
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
//
|
|
||||||
if(selectedOrders != null && selectedOrders.size() > 0) {
|
if(selectedOrders != null && selectedOrders.size() > 0) {
|
||||||
mBinding.venditaMainFab.show();
|
mBinding.venditaMainFab.show();
|
||||||
}
|
}
|
||||||
@ -310,7 +204,7 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IS
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
public void onVenditaMainFabClick() {
|
private void onVenditaMainFabClick() {
|
||||||
|
|
||||||
List<OrdineVenditaInevasoDTO> selectedOrders = mHelper.getSelectedOrders(mOriginalOrderList);
|
List<OrdineVenditaInevasoDTO> selectedOrders = mHelper.getSelectedOrders(mOriginalOrderList);
|
||||||
List<String> barcodes = new ArrayList<>();
|
List<String> barcodes = new ArrayList<>();
|
||||||
@ -430,28 +324,46 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IS
|
|||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
if (foundGestioni != null && foundGestioni.size() > 1) {
|
if (foundGestioni != null && foundGestioni.size() > 1) {
|
||||||
DialogSimpleMessageHelper.makeErrorDialog(getContext(), new SpannableString(getString(R.string.error_multiple_gest)), null, () -> {
|
DialogSimpleMessageHelper.makeErrorDialog(getContext(), new SpannableString(getString(R.string.error_multiple_gest)), null, onFailed::run).show();
|
||||||
onFailed.run();
|
|
||||||
}).show();
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Definizione del deposito di default
|
//Definizione del deposito di default
|
||||||
List<String> foundCodMdep = Stream.of(selectedOrders)
|
List<String> foundCodMdep = Stream.of(selectedOrders)
|
||||||
.map(OrdineVenditaInevasoDTO::getCodMdep)
|
.map(OrdineVenditaInevasoDTO::getCodMdep)
|
||||||
.withoutNulls()
|
// .withoutNulls()
|
||||||
.distinctBy(x -> x)
|
.distinctBy(x -> x)
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
if (foundCodMdep != null && foundCodMdep.size() > 1) {
|
if (foundCodMdep != null && foundCodMdep.size() > 1) {
|
||||||
DialogSimpleMessageHelper.makeErrorDialog(getContext(), new SpannableString(getString(R.string.error_multiple_cod_mdep_ordv)), null, () -> {
|
DialogSimpleMessageHelper.makeErrorDialog(getContext(), new SpannableString(getString(R.string.error_multiple_cod_mdep_ordv)), null, onFailed::run).show();
|
||||||
onFailed.run();
|
|
||||||
}).show();
|
|
||||||
return;
|
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();
|
onComplete.run();
|
||||||
|
|
||||||
|
|
||||||
|
}).show();
|
||||||
|
} else {
|
||||||
|
onComplete.run();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
onComplete.run();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void startVenditaActivity(List<PickingObjectDTO> ordini, List<OrdineVenditaInevasoDTO> selectedOrders, List<MtbColt> mtbColtList) {
|
private void startVenditaActivity(List<PickingObjectDTO> ordini, List<OrdineVenditaInevasoDTO> selectedOrders, List<MtbColt> mtbColtList) {
|
||||||
|
|||||||
@ -101,10 +101,6 @@ public class MainListVenditaAdapter extends SectionedRecyclerViewAdapter<MainLis
|
|||||||
.filter(x -> x.getCodAnagOrd().equals(mDataset.get(nextItemPosition).getCodAnagOrd()))
|
.filter(x -> x.getCodAnagOrd().equals(mDataset.get(nextItemPosition).getCodAnagOrd()))
|
||||||
.anyMatch(OrdineVenditaInevasoDTO::isSelected);
|
.anyMatch(OrdineVenditaInevasoDTO::isSelected);
|
||||||
|
|
||||||
List<OrdineVenditaInevasoDTO> ordersToSelect =
|
|
||||||
Stream.of(mDataset)
|
|
||||||
.filter(x -> x.getCodAnagOrd().equals(mDataset.get(nextItemPosition).getCodAnagOrd())).toList();
|
|
||||||
|
|
||||||
Stream.of(mDataset)
|
Stream.of(mDataset)
|
||||||
.filter(x -> x.getCodAnagOrd().equals(mDataset.get(nextItemPosition).getCodAnagOrd()))
|
.filter(x -> x.getCodAnagOrd().equals(mDataset.get(nextItemPosition).getCodAnagOrd()))
|
||||||
.forEach(x -> x.setSelected(!anySelected));
|
.forEach(x -> x.setSelected(!anySelected));
|
||||||
@ -178,77 +174,4 @@ public class MainListVenditaAdapter extends SectionedRecyclerViewAdapter<MainLis
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static class OrdineListModel {
|
|
||||||
private String data;
|
|
||||||
private Integer numero;
|
|
||||||
private String gestione;
|
|
||||||
private String dataCons;
|
|
||||||
|
|
||||||
public static OrdineListModel fromOrdine(OrdineVenditaInevasoDTO ordine) {
|
|
||||||
return new OrdineListModel()
|
|
||||||
.setData(ordine.getDataOrdS())
|
|
||||||
.setDataCons(ordine.getDataConsS())
|
|
||||||
.setGestione(ordine.getGestione())
|
|
||||||
.setNumero(ordine.getNumOrd());
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getData() {
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineListModel setData(String data) {
|
|
||||||
this.data = data;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getNumero() {
|
|
||||||
return numero;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineListModel setNumero(Integer numero) {
|
|
||||||
this.numero = numero;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getGestione() {
|
|
||||||
return gestione;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineListModel setGestione(String gestione) {
|
|
||||||
this.gestione = gestione;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDataCons() {
|
|
||||||
return dataCons;
|
|
||||||
}
|
|
||||||
|
|
||||||
public OrdineListModel setDataCons(String dataCons) {
|
|
||||||
this.dataCons = dataCons;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object o) {
|
|
||||||
if (this == o) return true;
|
|
||||||
if (o == null || getClass() != o.getClass()) return false;
|
|
||||||
|
|
||||||
OrdineListModel that = (OrdineListModel) o;
|
|
||||||
|
|
||||||
if (!getData().equals(that.getData())) return false;
|
|
||||||
if (!getNumero().equals(that.getNumero())) return false;
|
|
||||||
if (!getGestione().equals(that.getGestione())) return false;
|
|
||||||
return getDataCons() != null ? getDataCons().equals(that.getDataCons()) : that.getDataCons() == null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
int result = getData().hashCode();
|
|
||||||
result = 31 * result + getNumero().hashCode();
|
|
||||||
result = 31 * result + getGestione().hashCode();
|
|
||||||
result = 31 * result + (getDataCons() != null ? getDataCons().hashCode() : 0);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,8 +6,11 @@ import android.content.Context;
|
|||||||
|
|
||||||
import androidx.databinding.DataBindingUtil;
|
import androidx.databinding.DataBindingUtil;
|
||||||
|
|
||||||
|
import android.graphics.Color;
|
||||||
|
import android.graphics.drawable.ColorDrawable;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
import android.view.WindowManager;
|
||||||
import android.widget.ArrayAdapter;
|
import android.widget.ArrayAdapter;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
import android.widget.MultiAutoCompleteTextView;
|
import android.widget.MultiAutoCompleteTextView;
|
||||||
@ -42,18 +45,22 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
private List<OrdineVenditaInevasoDTO> currentFilteredOrderList;
|
private List<OrdineVenditaInevasoDTO> currentFilteredOrderList;
|
||||||
|
|
||||||
private ArrayAdapter<String> arrayAdapterCodMdep;
|
private ArrayAdapter<String> arrayAdapterCodMdep;
|
||||||
|
private ArrayAdapter<String> arrayAdapterIdViaggio;
|
||||||
private ArrayAdapter<String> arrayAdapterNumOrds;
|
private ArrayAdapter<String> arrayAdapterNumOrds;
|
||||||
private ArrayAdapter<String> arrayAdapterCliente;
|
private ArrayAdapter<String> arrayAdapterCliente;
|
||||||
private ArrayAdapter<String> arrayAdapterTermCons;
|
private ArrayAdapter<String> arrayAdapterTermCons;
|
||||||
private ArrayAdapter<String> arrayAdapterVettore;
|
private ArrayAdapter<String> arrayAdapterVettore;
|
||||||
|
private ArrayAdapter<String> arrayAdapterAgente;
|
||||||
private ArrayAdapter<String> arrayAdapterAutomezzo;
|
private ArrayAdapter<String> arrayAdapterAutomezzo;
|
||||||
|
|
||||||
private Predicate<OrdineVenditaInevasoDTO> currentDepositoPredicate = null;
|
private Predicate<OrdineVenditaInevasoDTO> currentDepositoPredicate = null;
|
||||||
|
private Predicate<OrdineVenditaInevasoDTO> currentIdViaggioPredicate = null;
|
||||||
private Predicate<OrdineVenditaInevasoDTO> currentNumOrdsPredicate = null;
|
private Predicate<OrdineVenditaInevasoDTO> currentNumOrdsPredicate = null;
|
||||||
private Predicate<OrdineVenditaInevasoDTO> currentClientePredicate = null;
|
private Predicate<OrdineVenditaInevasoDTO> currentClientePredicate = null;
|
||||||
private Predicate<OrdineVenditaInevasoDTO> currentDataConsPredicate = null;
|
private Predicate<OrdineVenditaInevasoDTO> currentDataConsPredicate = null;
|
||||||
private Predicate<OrdineVenditaInevasoDTO> currentTermConsPredicate = null;
|
private Predicate<OrdineVenditaInevasoDTO> currentTermConsPredicate = null;
|
||||||
private Predicate<OrdineVenditaInevasoDTO> currentVettorePredicate = null;
|
private Predicate<OrdineVenditaInevasoDTO> currentVettorePredicate = null;
|
||||||
|
private Predicate<OrdineVenditaInevasoDTO> currentAgentePredicate = null;
|
||||||
private Predicate<OrdineVenditaInevasoDTO> currentAutomezzoPredicate = null;
|
private Predicate<OrdineVenditaInevasoDTO> currentAutomezzoPredicate = null;
|
||||||
|
|
||||||
private boolean firstInit = true;
|
private boolean firstInit = true;
|
||||||
@ -78,30 +85,29 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
|
|
||||||
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
|
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
|
||||||
|
|
||||||
DialogVenditaFiltroAvanzatoBinding contentView = DataBindingUtil.inflate(inflater, R.layout.dialog_vendita_filtro_avanzato, null, false);
|
DialogVenditaFiltroAvanzatoBinding binding = DataBindingUtil.inflate(inflater, R.layout.dialog_vendita_filtro_avanzato, null, false);
|
||||||
|
|
||||||
final AlertDialog.Builder alertDialog = new AlertDialog.Builder(context)
|
final AlertDialog.Builder alertDialog = new AlertDialog.Builder(context)
|
||||||
.setView(contentView.getRoot())
|
.setView(binding.getRoot());
|
||||||
.setPositiveButton(context.getText(R.string.confirm), null)
|
|
||||||
.setNegativeButton(context.getText(R.string.abort), null)
|
|
||||||
.setNeutralButton(context.getText(R.string.reset), null);
|
|
||||||
|
|
||||||
contentView.setViewmodel(viewModel);
|
binding.setViewmodel(viewModel);
|
||||||
// initViewModel(viewModel, contentView);
|
initViewModelNew(viewModel, binding);
|
||||||
initViewModelNew(viewModel, contentView);
|
initView(binding, viewModel);
|
||||||
initView(contentView, viewModel);
|
|
||||||
|
|
||||||
currentAlert = alertDialog.create();
|
currentAlert = alertDialog.create();
|
||||||
currentAlert.setCanceledOnTouchOutside(false);
|
currentAlert.setCanceledOnTouchOutside(false);
|
||||||
|
|
||||||
|
currentAlert.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
|
||||||
|
currentAlert.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
|
||||||
|
|
||||||
|
|
||||||
currentAlert.setOnShowListener(dialogInterface -> {
|
|
||||||
|
|
||||||
Button button = ((AlertDialog) dialogInterface).getButton(AlertDialog.BUTTON_NEUTRAL);
|
binding.positiveBtn.setOnClickListener(view -> {
|
||||||
button.setOnClickListener(view -> {
|
currentAlert.dismiss();
|
||||||
resetAll(viewModel);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
binding.neutralBtn.setOnClickListener(view -> {
|
||||||
|
resetAll(viewModel);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
@ -114,12 +120,14 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
|
|
||||||
private void resetAll(DialogVenditaFiltroAvanzatoViewModel viewModel) {
|
private void resetAll(DialogVenditaFiltroAvanzatoViewModel viewModel) {
|
||||||
viewModel.deposito.set(null);
|
viewModel.deposito.set(null);
|
||||||
|
viewModel.idViaggio.set(null);
|
||||||
viewModel.numOrds.set(null);
|
viewModel.numOrds.set(null);
|
||||||
viewModel.cliente.set(null);
|
viewModel.cliente.set(null);
|
||||||
viewModel.dataConsegna.set(null);
|
viewModel.dataConsegna.set(null);
|
||||||
viewModel.terminiConsegna.set(null);
|
viewModel.terminiConsegna.set(null);
|
||||||
viewModel.vettore.set(null);
|
viewModel.vettore.set(null);
|
||||||
viewModel.automezzo.set(null);
|
viewModel.automezzo.set(null);
|
||||||
|
viewModel.agente.set(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initView(DialogVenditaFiltroAvanzatoBinding bindings, DialogVenditaFiltroAvanzatoViewModel viewModel) {
|
private void initView(DialogVenditaFiltroAvanzatoBinding bindings, DialogVenditaFiltroAvanzatoViewModel viewModel) {
|
||||||
@ -152,6 +160,16 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
bindings.inputCodMdepNew.setVisibility(filtroOrdiniVendita.shoudShowCodMdepFilter() ? View.VISIBLE : View.GONE);
|
bindings.inputCodMdepNew.setVisibility(filtroOrdiniVendita.shoudShowCodMdepFilter() ? View.VISIBLE : View.GONE);
|
||||||
bindings.filledExposedDropdownCodMdep.setAdapter(arrayAdapterCodMdep);
|
bindings.filledExposedDropdownCodMdep.setAdapter(arrayAdapterCodMdep);
|
||||||
|
|
||||||
|
arrayAdapterIdViaggio = new ArrayAdapter(currentContext, R.layout.dialog_vendita_filtro_avanzato__single_item);
|
||||||
|
arrayAdapterIdViaggio.addAll(getAvailableIdViaggio(false));
|
||||||
|
bindings.inputIdViaggio.setVisibility(filtroOrdiniVendita.shoudShowIdViaggioFilter() ? View.VISIBLE : View.GONE);
|
||||||
|
bindings.filledExposedDropdownIdViaggio.setAdapter(arrayAdapterIdViaggio);
|
||||||
|
|
||||||
|
arrayAdapterAgente = new ArrayAdapter(currentContext, R.layout.dialog_vendita_filtro_avanzato__single_item);
|
||||||
|
arrayAdapterAgente.addAll(getAvailableAgente(false));
|
||||||
|
bindings.inputAgente.setVisibility(filtroOrdiniVendita.shoudShowAgenteFilter() ? View.VISIBLE : View.GONE);
|
||||||
|
bindings.filledExposedDropdownAgente.setAdapter(arrayAdapterAgente);
|
||||||
|
|
||||||
arrayAdapterNumOrds = new ArrayAdapter(currentContext, R.layout.dialog_vendita_filtro_avanzato__single_item);
|
arrayAdapterNumOrds = new ArrayAdapter(currentContext, R.layout.dialog_vendita_filtro_avanzato__single_item);
|
||||||
arrayAdapterNumOrds.addAll(getAvailableNumOrds(false));
|
arrayAdapterNumOrds.addAll(getAvailableNumOrds(false));
|
||||||
bindings.filledExposedDropdownNumOrds.setAdapter(arrayAdapterNumOrds);
|
bindings.filledExposedDropdownNumOrds.setAdapter(arrayAdapterNumOrds);
|
||||||
@ -175,24 +193,38 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
|
|
||||||
|
|
||||||
viewModel.deposito.refresh();
|
viewModel.deposito.refresh();
|
||||||
|
viewModel.idViaggio.refresh();
|
||||||
viewModel.numOrds.refresh();
|
viewModel.numOrds.refresh();
|
||||||
viewModel.cliente.refresh();
|
viewModel.cliente.refresh();
|
||||||
viewModel.terminiConsegna.refresh();
|
viewModel.terminiConsegna.refresh();
|
||||||
viewModel.vettore.refresh();
|
viewModel.vettore.refresh();
|
||||||
viewModel.automezzo.refresh();
|
viewModel.automezzo.refresh();
|
||||||
viewModel.dataConsegna.refresh();
|
viewModel.dataConsegna.refresh();
|
||||||
|
viewModel.agente.refresh();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
private void initViewModelNew(DialogVenditaFiltroAvanzatoViewModel viewModel, DialogVenditaFiltroAvanzatoBinding bindings) {
|
private void initViewModelNew(DialogVenditaFiltroAvanzatoViewModel viewModel, DialogVenditaFiltroAvanzatoBinding bindings) {
|
||||||
BindableString.registerListener(viewModel.deposito, value -> {
|
BindableString.registerListener(viewModel.idViaggio, value -> {
|
||||||
if(UtilityString.isNullOrEmpty(value)) currentDepositoPredicate = null;
|
if(UtilityString.isNullOrEmpty(value)) currentIdViaggioPredicate = null;
|
||||||
else {
|
else {
|
||||||
currentDepositoPredicate = o -> o.getCodMdep().toLowerCase().equalsIgnoreCase(value);
|
String[] idViaggiSplitted = value.split("[,\\ ]");
|
||||||
|
|
||||||
|
try{
|
||||||
|
List<Integer> idViaggiInteger = Stream.of(idViaggiSplitted)
|
||||||
|
.filter(x -> !UtilityString.isNullOrEmpty(x))
|
||||||
|
.map(Integer::parseInt).toList();
|
||||||
|
|
||||||
|
currentIdViaggioPredicate = o -> idViaggiInteger.contains(o.getIdViaggio());
|
||||||
|
} catch (NumberFormatException ex) {
|
||||||
|
currentNumOrdsPredicate = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
refreshList();
|
refreshList();
|
||||||
|
|
||||||
|
arrayAdapterCodMdep.clear();
|
||||||
|
arrayAdapterCodMdep.addAll(getAvailableCodMdeps(true));
|
||||||
arrayAdapterNumOrds.clear();
|
arrayAdapterNumOrds.clear();
|
||||||
arrayAdapterNumOrds.addAll(getAvailableNumOrds(true));
|
arrayAdapterNumOrds.addAll(getAvailableNumOrds(true));
|
||||||
arrayAdapterCliente.clear();
|
arrayAdapterCliente.clear();
|
||||||
@ -203,6 +235,32 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
arrayAdapterVettore.addAll(getAvailableVettori(true));
|
arrayAdapterVettore.addAll(getAvailableVettori(true));
|
||||||
arrayAdapterAutomezzo.clear();
|
arrayAdapterAutomezzo.clear();
|
||||||
arrayAdapterAutomezzo.addAll(getAvailableAutomezzi(true));
|
arrayAdapterAutomezzo.addAll(getAvailableAutomezzi(true));
|
||||||
|
arrayAdapterAgente.clear();
|
||||||
|
arrayAdapterAgente.addAll(getAvailableAgente(true));
|
||||||
|
});
|
||||||
|
|
||||||
|
BindableString.registerListener(viewModel.deposito, value -> {
|
||||||
|
if(UtilityString.isNullOrEmpty(value)) currentDepositoPredicate = null;
|
||||||
|
else {
|
||||||
|
currentDepositoPredicate = o -> o.getCodMdep().toLowerCase().equalsIgnoreCase(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
refreshList();
|
||||||
|
|
||||||
|
arrayAdapterNumOrds.clear();
|
||||||
|
arrayAdapterNumOrds.addAll(getAvailableNumOrds(true));
|
||||||
|
arrayAdapterIdViaggio.clear();
|
||||||
|
arrayAdapterIdViaggio.addAll(getAvailableIdViaggio(true));
|
||||||
|
arrayAdapterCliente.clear();
|
||||||
|
arrayAdapterCliente.addAll(getAvailableCliente(true));
|
||||||
|
arrayAdapterTermCons.clear();
|
||||||
|
arrayAdapterTermCons.addAll(getAvailableTermCons(true));
|
||||||
|
arrayAdapterVettore.clear();
|
||||||
|
arrayAdapterVettore.addAll(getAvailableVettori(true));
|
||||||
|
arrayAdapterAutomezzo.clear();
|
||||||
|
arrayAdapterAutomezzo.addAll(getAvailableAutomezzi(true));
|
||||||
|
arrayAdapterAgente.clear();
|
||||||
|
arrayAdapterAgente.addAll(getAvailableAgente(true));
|
||||||
});
|
});
|
||||||
|
|
||||||
BindableString.registerListener(viewModel.numOrds, value -> {
|
BindableString.registerListener(viewModel.numOrds, value -> {
|
||||||
@ -225,6 +283,8 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
|
|
||||||
arrayAdapterCodMdep.clear();
|
arrayAdapterCodMdep.clear();
|
||||||
arrayAdapterCodMdep.addAll(getAvailableCodMdeps(true));
|
arrayAdapterCodMdep.addAll(getAvailableCodMdeps(true));
|
||||||
|
arrayAdapterIdViaggio.clear();
|
||||||
|
arrayAdapterIdViaggio.addAll(getAvailableIdViaggio(true));
|
||||||
arrayAdapterCliente.clear();
|
arrayAdapterCliente.clear();
|
||||||
arrayAdapterCliente.addAll(getAvailableCliente(true));
|
arrayAdapterCliente.addAll(getAvailableCliente(true));
|
||||||
arrayAdapterTermCons.clear();
|
arrayAdapterTermCons.clear();
|
||||||
@ -233,6 +293,8 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
arrayAdapterVettore.addAll(getAvailableVettori(true));
|
arrayAdapterVettore.addAll(getAvailableVettori(true));
|
||||||
arrayAdapterAutomezzo.clear();
|
arrayAdapterAutomezzo.clear();
|
||||||
arrayAdapterAutomezzo.addAll(getAvailableAutomezzi(true));
|
arrayAdapterAutomezzo.addAll(getAvailableAutomezzi(true));
|
||||||
|
arrayAdapterAgente.clear();
|
||||||
|
arrayAdapterAgente.addAll(getAvailableAgente(true));
|
||||||
});
|
});
|
||||||
|
|
||||||
BindableString.registerListener(viewModel.cliente, value -> {
|
BindableString.registerListener(viewModel.cliente, value -> {
|
||||||
@ -245,6 +307,8 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
|
|
||||||
arrayAdapterCodMdep.clear();
|
arrayAdapterCodMdep.clear();
|
||||||
arrayAdapterCodMdep.addAll(getAvailableCodMdeps(true));
|
arrayAdapterCodMdep.addAll(getAvailableCodMdeps(true));
|
||||||
|
arrayAdapterIdViaggio.clear();
|
||||||
|
arrayAdapterIdViaggio.addAll(getAvailableIdViaggio(true));
|
||||||
arrayAdapterNumOrds.clear();
|
arrayAdapterNumOrds.clear();
|
||||||
arrayAdapterNumOrds.addAll(getAvailableNumOrds(true));
|
arrayAdapterNumOrds.addAll(getAvailableNumOrds(true));
|
||||||
arrayAdapterTermCons.clear();
|
arrayAdapterTermCons.clear();
|
||||||
@ -253,6 +317,8 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
arrayAdapterVettore.addAll(getAvailableVettori(true));
|
arrayAdapterVettore.addAll(getAvailableVettori(true));
|
||||||
arrayAdapterAutomezzo.clear();
|
arrayAdapterAutomezzo.clear();
|
||||||
arrayAdapterAutomezzo.addAll(getAvailableAutomezzi(true));
|
arrayAdapterAutomezzo.addAll(getAvailableAutomezzi(true));
|
||||||
|
arrayAdapterAgente.clear();
|
||||||
|
arrayAdapterAgente.addAll(getAvailableAgente(true));
|
||||||
});
|
});
|
||||||
|
|
||||||
BindableString.registerListener(viewModel.terminiConsegna, value -> {
|
BindableString.registerListener(viewModel.terminiConsegna, value -> {
|
||||||
@ -265,6 +331,8 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
|
|
||||||
arrayAdapterCodMdep.clear();
|
arrayAdapterCodMdep.clear();
|
||||||
arrayAdapterCodMdep.addAll(getAvailableCodMdeps(true));
|
arrayAdapterCodMdep.addAll(getAvailableCodMdeps(true));
|
||||||
|
arrayAdapterIdViaggio.clear();
|
||||||
|
arrayAdapterIdViaggio.addAll(getAvailableIdViaggio(true));
|
||||||
arrayAdapterNumOrds.clear();
|
arrayAdapterNumOrds.clear();
|
||||||
arrayAdapterNumOrds.addAll(getAvailableNumOrds(true));
|
arrayAdapterNumOrds.addAll(getAvailableNumOrds(true));
|
||||||
arrayAdapterCliente.clear();
|
arrayAdapterCliente.clear();
|
||||||
@ -273,6 +341,8 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
arrayAdapterVettore.addAll(getAvailableVettori(true));
|
arrayAdapterVettore.addAll(getAvailableVettori(true));
|
||||||
arrayAdapterAutomezzo.clear();
|
arrayAdapterAutomezzo.clear();
|
||||||
arrayAdapterAutomezzo.addAll(getAvailableAutomezzi(true));
|
arrayAdapterAutomezzo.addAll(getAvailableAutomezzi(true));
|
||||||
|
arrayAdapterAgente.clear();
|
||||||
|
arrayAdapterAgente.addAll(getAvailableAgente(true));
|
||||||
});
|
});
|
||||||
|
|
||||||
BindableString.registerListener(viewModel.vettore, value -> {
|
BindableString.registerListener(viewModel.vettore, value -> {
|
||||||
@ -285,6 +355,8 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
|
|
||||||
arrayAdapterCodMdep.clear();
|
arrayAdapterCodMdep.clear();
|
||||||
arrayAdapterCodMdep.addAll(getAvailableCodMdeps(true));
|
arrayAdapterCodMdep.addAll(getAvailableCodMdeps(true));
|
||||||
|
arrayAdapterIdViaggio.clear();
|
||||||
|
arrayAdapterIdViaggio.addAll(getAvailableIdViaggio(true));
|
||||||
arrayAdapterNumOrds.clear();
|
arrayAdapterNumOrds.clear();
|
||||||
arrayAdapterNumOrds.addAll(getAvailableNumOrds(true));
|
arrayAdapterNumOrds.addAll(getAvailableNumOrds(true));
|
||||||
arrayAdapterCliente.clear();
|
arrayAdapterCliente.clear();
|
||||||
@ -293,18 +365,22 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
arrayAdapterTermCons.addAll(getAvailableTermCons(true));
|
arrayAdapterTermCons.addAll(getAvailableTermCons(true));
|
||||||
arrayAdapterAutomezzo.clear();
|
arrayAdapterAutomezzo.clear();
|
||||||
arrayAdapterAutomezzo.addAll(getAvailableAutomezzi(true));
|
arrayAdapterAutomezzo.addAll(getAvailableAutomezzi(true));
|
||||||
|
arrayAdapterAgente.clear();
|
||||||
|
arrayAdapterAgente.addAll(getAvailableAgente(true));
|
||||||
});
|
});
|
||||||
|
|
||||||
BindableString.registerListener(viewModel.automezzo, value -> {
|
BindableString.registerListener(viewModel.automezzo, value -> {
|
||||||
if(UtilityString.isNullOrEmpty(value)) currentAutomezzoPredicate = null;
|
if(UtilityString.isNullOrEmpty(value)) currentAutomezzoPredicate = null;
|
||||||
else {
|
else {
|
||||||
currentAutomezzoPredicate = o -> !UtilityString.isNullOrEmpty(o.getDescrizioneAuto()) && o.getDescrizioneAuto().toLowerCase().contains(value);
|
currentAutomezzoPredicate = o -> !UtilityString.isNullOrEmpty(o.getDescrizioneAuto()) && (o.getDescrizioneAuto().toLowerCase().contains(value) || o.getDescrizioneAuto().equalsIgnoreCase(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
refreshList();
|
refreshList();
|
||||||
|
|
||||||
arrayAdapterCodMdep.clear();
|
arrayAdapterCodMdep.clear();
|
||||||
arrayAdapterCodMdep.addAll(getAvailableCodMdeps(true));
|
arrayAdapterCodMdep.addAll(getAvailableCodMdeps(true));
|
||||||
|
arrayAdapterIdViaggio.clear();
|
||||||
|
arrayAdapterIdViaggio.addAll(getAvailableIdViaggio(true));
|
||||||
arrayAdapterNumOrds.clear();
|
arrayAdapterNumOrds.clear();
|
||||||
arrayAdapterNumOrds.addAll(getAvailableNumOrds(true));
|
arrayAdapterNumOrds.addAll(getAvailableNumOrds(true));
|
||||||
arrayAdapterCliente.clear();
|
arrayAdapterCliente.clear();
|
||||||
@ -313,6 +389,8 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
arrayAdapterTermCons.addAll(getAvailableTermCons(true));
|
arrayAdapterTermCons.addAll(getAvailableTermCons(true));
|
||||||
arrayAdapterVettore.clear();
|
arrayAdapterVettore.clear();
|
||||||
arrayAdapterVettore.addAll(getAvailableVettori(true));
|
arrayAdapterVettore.addAll(getAvailableVettori(true));
|
||||||
|
arrayAdapterAgente.clear();
|
||||||
|
arrayAdapterAgente.addAll(getAvailableAgente(true));
|
||||||
});
|
});
|
||||||
|
|
||||||
BindableString.resetListeners(viewModel.dataConsegna);
|
BindableString.resetListeners(viewModel.dataConsegna);
|
||||||
@ -326,6 +404,8 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
|
|
||||||
arrayAdapterCodMdep.clear();
|
arrayAdapterCodMdep.clear();
|
||||||
arrayAdapterCodMdep.addAll(getAvailableCodMdeps(true));
|
arrayAdapterCodMdep.addAll(getAvailableCodMdeps(true));
|
||||||
|
arrayAdapterIdViaggio.clear();
|
||||||
|
arrayAdapterIdViaggio.addAll(getAvailableIdViaggio(true));
|
||||||
arrayAdapterNumOrds.clear();
|
arrayAdapterNumOrds.clear();
|
||||||
arrayAdapterNumOrds.addAll(getAvailableNumOrds(true));
|
arrayAdapterNumOrds.addAll(getAvailableNumOrds(true));
|
||||||
arrayAdapterCliente.clear();
|
arrayAdapterCliente.clear();
|
||||||
@ -334,138 +414,106 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
arrayAdapterTermCons.addAll(getAvailableTermCons(true));
|
arrayAdapterTermCons.addAll(getAvailableTermCons(true));
|
||||||
arrayAdapterVettore.clear();
|
arrayAdapterVettore.clear();
|
||||||
arrayAdapterVettore.addAll(getAvailableVettori(true));
|
arrayAdapterVettore.addAll(getAvailableVettori(true));
|
||||||
|
arrayAdapterAutomezzo.clear();
|
||||||
|
arrayAdapterAutomezzo.addAll(getAvailableAutomezzi(true));
|
||||||
|
arrayAdapterAgente.clear();
|
||||||
|
arrayAdapterAgente.addAll(getAvailableAgente(true));
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
BindableString.resetListeners(viewModel.agente);
|
||||||
|
BindableString.registerListener(viewModel.agente, value -> {
|
||||||
|
if(UtilityString.isNullOrEmpty(value)) currentAgentePredicate = null;
|
||||||
private void initViewModel(DialogVenditaFiltroAvanzatoViewModel viewModel, DialogVenditaFiltroAvanzatoBinding bindings) {
|
|
||||||
|
|
||||||
firstInit = true;
|
|
||||||
|
|
||||||
BindableString.resetListeners(viewModel.numOrds);
|
|
||||||
BindableString.registerListener(viewModel.numOrds, value -> {
|
|
||||||
if(UtilityString.isNullOrEmpty(value)) currentNumOrdsPredicate = null;
|
|
||||||
else {
|
else {
|
||||||
String[] numOrdsSplitted = value.split("[,\\ ]");
|
currentAgentePredicate = o -> !UtilityString.isNullOrEmpty(o.getNomeAgente()) && (o.getNomeAgente().toLowerCase().contains(value) || o.getNomeAgente().equalsIgnoreCase(value));
|
||||||
|
|
||||||
try{
|
|
||||||
List<Integer> numOrdsInteger = Stream.of(numOrdsSplitted)
|
|
||||||
.filter(x -> !UtilityString.isNullOrEmpty(x))
|
|
||||||
.map(Integer::parseInt).toList();
|
|
||||||
|
|
||||||
currentNumOrdsPredicate = o -> numOrdsInteger.contains(o.getNumOrd());
|
|
||||||
|
|
||||||
// mBindings.inputNumOrds.setErrorEnabled(false);
|
|
||||||
// mBindings.inputNumOrds.setError("");
|
|
||||||
} catch (NumberFormatException ex) {
|
|
||||||
currentNumOrdsPredicate = null;
|
|
||||||
|
|
||||||
// mBindings.inputNumOrds.setErrorEnabled(true);
|
|
||||||
// mBindings.inputNumOrds.setError(currentContext.getResources().getString(R.string.error));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
refreshList();
|
||||||
|
|
||||||
if(!firstInit) refreshList();
|
arrayAdapterCodMdep.clear();
|
||||||
|
arrayAdapterCodMdep.addAll(getAvailableCodMdeps(true));
|
||||||
|
arrayAdapterIdViaggio.clear();
|
||||||
|
arrayAdapterIdViaggio.addAll(getAvailableIdViaggio(true));
|
||||||
|
arrayAdapterNumOrds.clear();
|
||||||
|
arrayAdapterNumOrds.addAll(getAvailableNumOrds(true));
|
||||||
|
arrayAdapterCliente.clear();
|
||||||
|
arrayAdapterCliente.addAll(getAvailableCliente(true));
|
||||||
|
arrayAdapterTermCons.clear();
|
||||||
|
arrayAdapterTermCons.addAll(getAvailableTermCons(true));
|
||||||
|
arrayAdapterVettore.clear();
|
||||||
|
arrayAdapterVettore.addAll(getAvailableVettori(true));
|
||||||
|
arrayAdapterAutomezzo.clear();
|
||||||
|
arrayAdapterAutomezzo.addAll(getAvailableAutomezzi(true));
|
||||||
});
|
});
|
||||||
viewModel.numOrds.refresh();
|
|
||||||
|
|
||||||
|
|
||||||
BindableString.resetListeners(viewModel.cliente);
|
|
||||||
BindableString.registerListener(viewModel.cliente, value -> {
|
|
||||||
if(UtilityString.isNullOrEmpty(value)) currentClientePredicate = null;
|
|
||||||
else {
|
|
||||||
currentClientePredicate = o -> o.getRagSocOrd().toLowerCase().contains(value);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!firstInit) refreshList();
|
|
||||||
});
|
|
||||||
viewModel.cliente.refresh();
|
|
||||||
|
|
||||||
|
|
||||||
BindableString.resetListeners(viewModel.deposito);
|
|
||||||
BindableString.registerListener(viewModel.deposito, value -> {
|
|
||||||
if(UtilityString.isNullOrEmpty(value)) currentDepositoPredicate = null;
|
|
||||||
else {
|
|
||||||
currentDepositoPredicate = o -> o.getCodMdep().toLowerCase().contains(value);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!firstInit) refreshList();
|
|
||||||
});
|
|
||||||
viewModel.deposito.refresh();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
BindableString.resetListeners(viewModel.dataConsegna);
|
|
||||||
BindableString.registerListener(viewModel.dataConsegna, value -> {
|
|
||||||
if(UtilityString.isNullOrEmpty(value)) currentDataConsPredicate = null;
|
|
||||||
else {
|
|
||||||
currentDataConsPredicate = o -> o.getDataConsD().equals(viewModel.dataConsegnaDate);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!firstInit) refreshList();
|
|
||||||
});
|
|
||||||
viewModel.dataConsegna.refresh();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
BindableString.resetListeners(viewModel.terminiConsegna);
|
|
||||||
BindableString.registerListener(viewModel.terminiConsegna, value -> {
|
|
||||||
if(UtilityString.isNullOrEmpty(value)) currentTermConsPredicate = null;
|
|
||||||
else {
|
|
||||||
currentTermConsPredicate = o -> o.getTermCons() != null && o.getTermCons().equalsIgnoreCase(value);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!firstInit) refreshList();
|
|
||||||
});
|
|
||||||
viewModel.terminiConsegna.refresh();
|
|
||||||
|
|
||||||
|
|
||||||
BindableString.resetListeners(viewModel.vettore);
|
|
||||||
BindableString.registerListener(viewModel.vettore, value -> {
|
|
||||||
if(UtilityString.isNullOrEmpty(value)) currentVettorePredicate = null;
|
|
||||||
else {
|
|
||||||
currentVettorePredicate = o -> (o.getCodVvet() + " - " + o.getDescrizioneVettore()).equalsIgnoreCase(value);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!firstInit) refreshList();
|
|
||||||
});
|
|
||||||
viewModel.vettore.refresh();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
BindableString.resetListeners(viewModel.automezzo);
|
|
||||||
BindableString.registerListener(viewModel.automezzo, value -> {
|
|
||||||
if(UtilityString.isNullOrEmpty(value)) currentAutomezzoPredicate = null;
|
|
||||||
else {
|
|
||||||
currentAutomezzoPredicate = o -> o.getDescrizioneAuto().toLowerCase().contains(value);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!firstInit) refreshList();
|
|
||||||
});
|
|
||||||
viewModel.automezzo.refresh();
|
|
||||||
|
|
||||||
if(firstInit) refreshList();
|
|
||||||
firstInit = false;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<String> getAvailableCodMdeps(boolean skipRecalc) {
|
|
||||||
if(currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentAutomezzoPredicate == null && currentVettorePredicate == null && currentTermConsPredicate == null){
|
|
||||||
|
private List<String> getAvailableIdViaggio(boolean skipRecalc) {
|
||||||
|
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<OrdineVenditaInevasoDTO> tmpStream = Stream.of(currentOrderList)
|
||||||
.filter(x ->
|
.filter(x ->
|
||||||
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate != null && currentNumOrdsPredicate.test(x))) &&
|
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
||||||
(currentClientePredicate == null || (currentClientePredicate != null && currentClientePredicate.test(x))) &&
|
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
||||||
(currentDataConsPredicate == null || (currentDataConsPredicate != null && currentDataConsPredicate.test(x))) &&
|
(currentDataConsPredicate == null || (currentDataConsPredicate.test(x))) &&
|
||||||
(currentVettorePredicate == null || (currentVettorePredicate != null && currentVettorePredicate.test(x))) &&
|
(currentVettorePredicate == null || (currentVettorePredicate.test(x))) &&
|
||||||
(currentAutomezzoPredicate == null || (currentAutomezzoPredicate != null && currentAutomezzoPredicate.test(x))) &&
|
(currentAutomezzoPredicate == null || (currentAutomezzoPredicate.test(x))) &&
|
||||||
(currentTermConsPredicate == null || (currentTermConsPredicate != null && currentTermConsPredicate.test(x)))
|
(currentTermConsPredicate == null || (currentTermConsPredicate.test(x))) &&
|
||||||
|
(currentDepositoPredicate == null || (currentDepositoPredicate.test(x))) &&
|
||||||
|
(currentAgentePredicate == null || (currentAgentePredicate.test(x)))
|
||||||
|
);
|
||||||
|
|
||||||
|
currentFilteredOrderList = tmpStream.toList();
|
||||||
|
}
|
||||||
|
|
||||||
|
return Stream
|
||||||
|
.of(currentFilteredOrderList)
|
||||||
|
.map(x -> x.getIdViaggio() != null ? x.getIdViaggio().toString() : null)
|
||||||
|
.withoutNulls()
|
||||||
|
.distinct()
|
||||||
|
.sortBy(x -> x)
|
||||||
|
.toList();
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<String> getAvailableAgente(boolean skipRecalc) {
|
||||||
|
if(currentDepositoPredicate == null && currentIdViaggioPredicate == null && currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentAutomezzoPredicate == null && currentVettorePredicate == null && currentTermConsPredicate == null){
|
||||||
|
currentFilteredOrderList = currentOrderList;
|
||||||
|
} else if(!skipRecalc){
|
||||||
|
Stream<OrdineVenditaInevasoDTO> tmpStream = Stream.of(currentOrderList)
|
||||||
|
.filter(x ->
|
||||||
|
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
||||||
|
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
||||||
|
(currentDataConsPredicate == null || (currentDataConsPredicate.test(x))) &&
|
||||||
|
(currentVettorePredicate == null || (currentVettorePredicate.test(x))) &&
|
||||||
|
(currentAutomezzoPredicate == null || (currentAutomezzoPredicate.test(x))) &&
|
||||||
|
(currentTermConsPredicate == null || (currentTermConsPredicate.test(x))) &&
|
||||||
|
(currentIdViaggioPredicate == null || (currentIdViaggioPredicate.test(x))) &&
|
||||||
|
(currentDepositoPredicate == null || (currentDepositoPredicate.test(x))) &&
|
||||||
|
(currentAgentePredicate == null || (currentAgentePredicate.test(x)))
|
||||||
|
);
|
||||||
|
|
||||||
|
currentFilteredOrderList = tmpStream.toList();
|
||||||
|
}
|
||||||
|
|
||||||
|
return Stream.of(currentFilteredOrderList).map(OrdineVenditaInevasoDTO::getNomeAgente).distinct().withoutNulls().toList();
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<String> getAvailableCodMdeps(boolean skipRecalc) {
|
||||||
|
if(currentAgentePredicate == null && currentIdViaggioPredicate == null && currentNumOrdsPredicate == null && currentClientePredicate == null && currentDataConsPredicate == null && currentAutomezzoPredicate == null && currentVettorePredicate == null && currentTermConsPredicate == null){
|
||||||
|
currentFilteredOrderList = currentOrderList;
|
||||||
|
} else if(!skipRecalc){
|
||||||
|
Stream<OrdineVenditaInevasoDTO> tmpStream = Stream.of(currentOrderList)
|
||||||
|
.filter(x ->
|
||||||
|
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
||||||
|
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
||||||
|
(currentDataConsPredicate == null || (currentDataConsPredicate.test(x))) &&
|
||||||
|
(currentVettorePredicate == null || (currentVettorePredicate.test(x))) &&
|
||||||
|
(currentAutomezzoPredicate == null || (currentAutomezzoPredicate.test(x))) &&
|
||||||
|
(currentTermConsPredicate == null || (currentTermConsPredicate.test(x))) &&
|
||||||
|
(currentIdViaggioPredicate == null || (currentIdViaggioPredicate.test(x))) &&
|
||||||
|
(currentAgentePredicate == null || (currentAgentePredicate.test(x)))
|
||||||
);
|
);
|
||||||
|
|
||||||
currentFilteredOrderList = tmpStream.toList();
|
currentFilteredOrderList = tmpStream.toList();
|
||||||
@ -475,17 +523,19 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private List<String> getAvailableCliente(boolean skipRecalc) {
|
private List<String> getAvailableCliente(boolean skipRecalc) {
|
||||||
if(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<OrdineVenditaInevasoDTO> tmpStream = Stream.of(currentOrderList)
|
||||||
.filter(x ->
|
.filter(x ->
|
||||||
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate != null && currentNumOrdsPredicate.test(x))) &&
|
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
||||||
(currentDepositoPredicate == null || (currentDepositoPredicate != null && currentDepositoPredicate.test(x))) &&
|
(currentDepositoPredicate == null || (currentDepositoPredicate.test(x))) &&
|
||||||
(currentDataConsPredicate == null || (currentDataConsPredicate != null && currentDataConsPredicate.test(x))) &&
|
(currentDataConsPredicate == null || (currentDataConsPredicate.test(x))) &&
|
||||||
(currentVettorePredicate == null || (currentVettorePredicate != null && currentVettorePredicate.test(x))) &&
|
(currentVettorePredicate == null || (currentVettorePredicate.test(x))) &&
|
||||||
(currentAutomezzoPredicate == null || (currentAutomezzoPredicate != null && currentAutomezzoPredicate.test(x))) &&
|
(currentAutomezzoPredicate == null || (currentAutomezzoPredicate.test(x))) &&
|
||||||
(currentTermConsPredicate == null || (currentTermConsPredicate != null && currentTermConsPredicate.test(x)))
|
(currentTermConsPredicate == null || (currentTermConsPredicate.test(x))) &&
|
||||||
|
(currentIdViaggioPredicate == null || (currentIdViaggioPredicate.test(x))) &&
|
||||||
|
(currentAgentePredicate == null || (currentAgentePredicate.test(x)))
|
||||||
);
|
);
|
||||||
|
|
||||||
currentFilteredOrderList = tmpStream.toList();
|
currentFilteredOrderList = tmpStream.toList();
|
||||||
@ -495,17 +545,19 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private List<String> getAvailableNumOrds(boolean skipRecalc) {
|
private List<String> getAvailableNumOrds(boolean skipRecalc) {
|
||||||
if(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<OrdineVenditaInevasoDTO> tmpStream = Stream.of(currentOrderList)
|
||||||
.filter(x ->
|
.filter(x ->
|
||||||
(currentDepositoPredicate == null || (currentDepositoPredicate != null && currentDepositoPredicate.test(x))) &&
|
(currentDepositoPredicate == null || (currentDepositoPredicate.test(x))) &&
|
||||||
(currentClientePredicate == null || (currentClientePredicate != null && currentClientePredicate.test(x))) &&
|
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
||||||
(currentDataConsPredicate == null || (currentDataConsPredicate != null && currentDataConsPredicate.test(x))) &&
|
(currentDataConsPredicate == null || (currentDataConsPredicate.test(x))) &&
|
||||||
(currentVettorePredicate == null || (currentVettorePredicate != null && currentVettorePredicate.test(x))) &&
|
(currentVettorePredicate == null || (currentVettorePredicate.test(x))) &&
|
||||||
(currentAutomezzoPredicate == null || (currentAutomezzoPredicate != null && currentAutomezzoPredicate.test(x))) &&
|
(currentAutomezzoPredicate == null || (currentAutomezzoPredicate.test(x))) &&
|
||||||
(currentTermConsPredicate == null || (currentTermConsPredicate != null && currentTermConsPredicate.test(x)))
|
(currentTermConsPredicate == null || (currentTermConsPredicate.test(x))) &&
|
||||||
|
(currentIdViaggioPredicate == null || (currentIdViaggioPredicate.test(x))) &&
|
||||||
|
(currentAgentePredicate == null || (currentAgentePredicate.test(x)))
|
||||||
);
|
);
|
||||||
|
|
||||||
currentFilteredOrderList = tmpStream.toList();
|
currentFilteredOrderList = tmpStream.toList();
|
||||||
@ -515,17 +567,19 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private List<String> getAvailableTermCons(boolean skipRecalc) {
|
private List<String> getAvailableTermCons(boolean skipRecalc) {
|
||||||
if(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<OrdineVenditaInevasoDTO> tmpStream = Stream.of(currentOrderList)
|
||||||
.filter(x ->
|
.filter(x ->
|
||||||
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate != null && currentNumOrdsPredicate.test(x))) &&
|
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
||||||
(currentClientePredicate == null || (currentClientePredicate != null && currentClientePredicate.test(x))) &&
|
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
||||||
(currentDataConsPredicate == null || (currentDataConsPredicate != null && currentDataConsPredicate.test(x))) &&
|
(currentDataConsPredicate == null || (currentDataConsPredicate.test(x))) &&
|
||||||
(currentVettorePredicate == null || (currentVettorePredicate != null && currentVettorePredicate.test(x))) &&
|
(currentVettorePredicate == null || (currentVettorePredicate.test(x))) &&
|
||||||
(currentAutomezzoPredicate == null || (currentAutomezzoPredicate != null && currentAutomezzoPredicate.test(x))) &&
|
(currentAutomezzoPredicate == null || (currentAutomezzoPredicate.test(x))) &&
|
||||||
(currentDepositoPredicate == null || (currentDepositoPredicate != null && currentDepositoPredicate.test(x)))
|
(currentDepositoPredicate == null || (currentDepositoPredicate.test(x))) &&
|
||||||
|
(currentIdViaggioPredicate == null || (currentIdViaggioPredicate.test(x))) &&
|
||||||
|
(currentAgentePredicate == null || (currentAgentePredicate.test(x)))
|
||||||
);
|
);
|
||||||
|
|
||||||
currentFilteredOrderList = tmpStream.toList();
|
currentFilteredOrderList = tmpStream.toList();
|
||||||
@ -535,17 +589,19 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private List<String> getAvailableVettori(boolean skipRecalc) {
|
private List<String> getAvailableVettori(boolean skipRecalc) {
|
||||||
if(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<OrdineVenditaInevasoDTO> tmpStream = Stream.of(currentOrderList)
|
||||||
.filter(x ->
|
.filter(x ->
|
||||||
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate != null && currentNumOrdsPredicate.test(x))) &&
|
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
||||||
(currentClientePredicate == null || (currentClientePredicate != null && currentClientePredicate.test(x))) &&
|
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
||||||
(currentDataConsPredicate == null || (currentDataConsPredicate != null && currentDataConsPredicate.test(x))) &&
|
(currentDataConsPredicate == null || (currentDataConsPredicate.test(x))) &&
|
||||||
(currentTermConsPredicate == null || (currentTermConsPredicate != null && currentTermConsPredicate.test(x))) &&
|
(currentTermConsPredicate == null || (currentTermConsPredicate.test(x))) &&
|
||||||
(currentAutomezzoPredicate == null || (currentAutomezzoPredicate != null && currentAutomezzoPredicate .test(x))) &&
|
(currentAutomezzoPredicate == null || (currentAutomezzoPredicate .test(x))) &&
|
||||||
(currentDepositoPredicate == null || (currentDepositoPredicate != null && currentDepositoPredicate.test(x)))
|
(currentDepositoPredicate == null || (currentDepositoPredicate.test(x))) &&
|
||||||
|
(currentIdViaggioPredicate == null || (currentIdViaggioPredicate.test(x))) &&
|
||||||
|
(currentAgentePredicate == null || (currentAgentePredicate.test(x)))
|
||||||
);
|
);
|
||||||
|
|
||||||
currentFilteredOrderList = tmpStream.toList();
|
currentFilteredOrderList = tmpStream.toList();
|
||||||
@ -555,17 +611,19 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private List<String> getAvailableAutomezzi(boolean skipRecalc) {
|
private List<String> getAvailableAutomezzi(boolean skipRecalc) {
|
||||||
if(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<OrdineVenditaInevasoDTO> tmpStream = Stream.of(currentOrderList)
|
||||||
.filter(x ->
|
.filter(x ->
|
||||||
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate != null && currentNumOrdsPredicate.test(x))) &&
|
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
||||||
(currentClientePredicate == null || (currentClientePredicate != null && currentClientePredicate.test(x))) &&
|
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
||||||
(currentDataConsPredicate == null || (currentDataConsPredicate != null && currentDataConsPredicate.test(x))) &&
|
(currentDataConsPredicate == null || (currentDataConsPredicate.test(x))) &&
|
||||||
(currentTermConsPredicate == null || (currentTermConsPredicate != null && currentTermConsPredicate.test(x))) &&
|
(currentTermConsPredicate == null || (currentTermConsPredicate.test(x))) &&
|
||||||
(currentVettorePredicate == null || (currentVettorePredicate != null && currentVettorePredicate.test(x))) &&
|
(currentVettorePredicate == null || (currentVettorePredicate.test(x))) &&
|
||||||
(currentDepositoPredicate == null || (currentDepositoPredicate != null && currentDepositoPredicate.test(x)))
|
(currentDepositoPredicate == null || (currentDepositoPredicate.test(x))) &&
|
||||||
|
(currentIdViaggioPredicate == null || (currentIdViaggioPredicate.test(x))) &&
|
||||||
|
(currentAgentePredicate == null || (currentAgentePredicate.test(x)))
|
||||||
);
|
);
|
||||||
|
|
||||||
currentFilteredOrderList = tmpStream.toList();
|
currentFilteredOrderList = tmpStream.toList();
|
||||||
@ -576,18 +634,20 @@ public class DialogVenditaFiltroAvanzato {
|
|||||||
|
|
||||||
private void refreshList() {
|
private void refreshList() {
|
||||||
|
|
||||||
if(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<OrdineVenditaInevasoDTO> tmpStream = Stream.of(currentOrderList)
|
||||||
.filter(x ->
|
.filter(x ->
|
||||||
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate != null && currentNumOrdsPredicate.test(x))) &&
|
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
|
||||||
(currentClientePredicate == null || (currentClientePredicate != null && currentClientePredicate.test(x))) &&
|
(currentClientePredicate == null || (currentClientePredicate.test(x))) &&
|
||||||
(currentDataConsPredicate == null || (currentDataConsPredicate != null && currentDataConsPredicate.test(x))) &&
|
(currentDataConsPredicate == null || (currentDataConsPredicate.test(x))) &&
|
||||||
(currentTermConsPredicate == null || (currentTermConsPredicate != null && currentTermConsPredicate.test(x))) &&
|
(currentTermConsPredicate == null || (currentTermConsPredicate.test(x))) &&
|
||||||
(currentVettorePredicate == null || (currentVettorePredicate != null && currentVettorePredicate.test(x))) &&
|
(currentVettorePredicate == null || (currentVettorePredicate.test(x))) &&
|
||||||
(currentAutomezzoPredicate == null || (currentAutomezzoPredicate != null && currentAutomezzoPredicate.test(x))) &&
|
(currentAutomezzoPredicate == null || (currentAutomezzoPredicate.test(x))) &&
|
||||||
(currentDepositoPredicate == null || (currentDepositoPredicate != null && currentDepositoPredicate.test(x)))
|
(currentDepositoPredicate == null || (currentDepositoPredicate.test(x))) &&
|
||||||
|
(currentIdViaggioPredicate == null || (currentIdViaggioPredicate.test(x))) &&
|
||||||
|
(currentAgentePredicate == null || (currentAgentePredicate.test(x)))
|
||||||
);
|
);
|
||||||
|
|
||||||
currentFilteredOrderList = tmpStream.toList();
|
currentFilteredOrderList = tmpStream.toList();
|
||||||
|
|||||||
@ -7,10 +7,12 @@ import it.integry.integrywmsnative.core.di.BindableString;
|
|||||||
public class DialogVenditaFiltroAvanzatoViewModel {
|
public class DialogVenditaFiltroAvanzatoViewModel {
|
||||||
|
|
||||||
public BindableString deposito = new BindableString();
|
public BindableString deposito = new BindableString();
|
||||||
|
public BindableString idViaggio = new BindableString();
|
||||||
public BindableString numOrds = new BindableString();
|
public BindableString numOrds = new BindableString();
|
||||||
public BindableString cliente = new BindableString();
|
public BindableString cliente = new BindableString();
|
||||||
public BindableString dataConsegna = new BindableString();
|
public BindableString dataConsegna = new BindableString();
|
||||||
public BindableString terminiConsegna = new BindableString();
|
public BindableString terminiConsegna = new BindableString();
|
||||||
|
public BindableString agente = new BindableString();
|
||||||
public BindableString vettore = new BindableString();
|
public BindableString vettore = new BindableString();
|
||||||
public BindableString automezzo = new BindableString();
|
public BindableString automezzo = new BindableString();
|
||||||
|
|
||||||
|
|||||||
@ -16,6 +16,7 @@ public class OrdineVenditaInevasoDTO implements Parcelable {
|
|||||||
|
|
||||||
private String data;
|
private String data;
|
||||||
private Integer numero;
|
private Integer numero;
|
||||||
|
private Integer idViaggio;
|
||||||
private String gestione;
|
private String gestione;
|
||||||
private String listino;
|
private String listino;
|
||||||
private String termCons;
|
private String termCons;
|
||||||
@ -48,6 +49,8 @@ public class OrdineVenditaInevasoDTO implements Parcelable {
|
|||||||
private String ragSocOrdV;
|
private String ragSocOrdV;
|
||||||
private int colliRiservati;
|
private int colliRiservati;
|
||||||
private String existCollo;
|
private String existCollo;
|
||||||
|
private String nomeAgente;
|
||||||
|
private String codJfas;
|
||||||
|
|
||||||
public BindableBoolean selected;
|
public BindableBoolean selected;
|
||||||
|
|
||||||
@ -63,6 +66,11 @@ public class OrdineVenditaInevasoDTO implements Parcelable {
|
|||||||
} else {
|
} else {
|
||||||
numero = in.readInt();
|
numero = in.readInt();
|
||||||
}
|
}
|
||||||
|
if (in.readByte() == 0) {
|
||||||
|
idViaggio = null;
|
||||||
|
} else {
|
||||||
|
idViaggio = in.readInt();
|
||||||
|
}
|
||||||
gestione = in.readString();
|
gestione = in.readString();
|
||||||
listino = in.readString();
|
listino = in.readString();
|
||||||
termCons = in.readString();
|
termCons = in.readString();
|
||||||
@ -99,6 +107,8 @@ public class OrdineVenditaInevasoDTO implements Parcelable {
|
|||||||
ragSocOrdV = in.readString();
|
ragSocOrdV = in.readString();
|
||||||
colliRiservati = in.readInt();
|
colliRiservati = in.readInt();
|
||||||
existCollo = in.readString();
|
existCollo = in.readString();
|
||||||
|
nomeAgente = in.readString();
|
||||||
|
codJfas = in.readString();
|
||||||
|
|
||||||
selected = new BindableBoolean(in.readByte() == 0x01);
|
selected = new BindableBoolean(in.readByte() == 0x01);
|
||||||
}
|
}
|
||||||
@ -112,6 +122,12 @@ public class OrdineVenditaInevasoDTO implements Parcelable {
|
|||||||
dest.writeByte((byte) 1);
|
dest.writeByte((byte) 1);
|
||||||
dest.writeInt(numero);
|
dest.writeInt(numero);
|
||||||
}
|
}
|
||||||
|
if (idViaggio == null) {
|
||||||
|
dest.writeByte((byte) 0);
|
||||||
|
} else {
|
||||||
|
dest.writeByte((byte) 1);
|
||||||
|
dest.writeInt(idViaggio);
|
||||||
|
}
|
||||||
dest.writeString(gestione);
|
dest.writeString(gestione);
|
||||||
dest.writeString(listino);
|
dest.writeString(listino);
|
||||||
dest.writeString(termCons);
|
dest.writeString(termCons);
|
||||||
@ -150,6 +166,8 @@ public class OrdineVenditaInevasoDTO implements Parcelable {
|
|||||||
dest.writeString(ragSocOrdV);
|
dest.writeString(ragSocOrdV);
|
||||||
dest.writeInt(colliRiservati);
|
dest.writeInt(colliRiservati);
|
||||||
dest.writeString(existCollo);
|
dest.writeString(existCollo);
|
||||||
|
dest.writeString(nomeAgente);
|
||||||
|
dest.writeString(codJfas);
|
||||||
|
|
||||||
dest.writeByte(selected.get() ? (byte) 1 : (byte) 0);
|
dest.writeByte(selected.get() ? (byte) 1 : (byte) 0);
|
||||||
}
|
}
|
||||||
@ -199,6 +217,15 @@ public class OrdineVenditaInevasoDTO implements Parcelable {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Integer getIdViaggio() {
|
||||||
|
return idViaggio;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineVenditaInevasoDTO setIdViaggio(Integer idViaggio) {
|
||||||
|
this.idViaggio = idViaggio;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public String getGestione() {
|
public String getGestione() {
|
||||||
return gestione;
|
return gestione;
|
||||||
}
|
}
|
||||||
@ -511,6 +538,24 @@ public class OrdineVenditaInevasoDTO implements Parcelable {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getNomeAgente() {
|
||||||
|
return nomeAgente;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineVenditaInevasoDTO setNomeAgente(String nomeAgente) {
|
||||||
|
this.nomeAgente = nomeAgente;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCodJfas() {
|
||||||
|
return codJfas;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrdineVenditaInevasoDTO setCodJfas(String codJfas) {
|
||||||
|
this.codJfas = codJfas;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isSelected() {
|
public boolean isSelected() {
|
||||||
return selected.get();
|
return selected.get();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -40,6 +40,8 @@ public class PickingObjectDTO implements Parcelable {
|
|||||||
private BigDecimal numCnf;
|
private BigDecimal numCnf;
|
||||||
private String codAlis;
|
private String codAlis;
|
||||||
private BigDecimal colliPedana;
|
private BigDecimal colliPedana;
|
||||||
|
private BigDecimal qtaColloDisponibile;
|
||||||
|
private BigDecimal numCnfColloDisponibile;
|
||||||
|
|
||||||
private MtbAart mtbAart;
|
private MtbAart mtbAart;
|
||||||
|
|
||||||
@ -97,6 +99,16 @@ public class PickingObjectDTO implements Parcelable {
|
|||||||
} else {
|
} else {
|
||||||
numCnfCollo = new BigDecimal(in.readFloat());
|
numCnfCollo = new BigDecimal(in.readFloat());
|
||||||
}
|
}
|
||||||
|
if (in.readByte() == 0) {
|
||||||
|
qtaColloDisponibile = null;
|
||||||
|
} else {
|
||||||
|
qtaColloDisponibile = new BigDecimal(in.readFloat());
|
||||||
|
}
|
||||||
|
if (in.readByte() == 0) {
|
||||||
|
numCnfColloDisponibile = null;
|
||||||
|
} else {
|
||||||
|
numCnfColloDisponibile = new BigDecimal(in.readFloat());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
mtbAart = (MtbAart) in.readValue(MtbAart.class.getClassLoader());
|
mtbAart = (MtbAart) in.readValue(MtbAart.class.getClassLoader());
|
||||||
@ -166,6 +178,18 @@ public class PickingObjectDTO implements Parcelable {
|
|||||||
dest.writeByte((byte) (0x01));
|
dest.writeByte((byte) (0x01));
|
||||||
dest.writeFloat(numCnfCollo.floatValue());
|
dest.writeFloat(numCnfCollo.floatValue());
|
||||||
}
|
}
|
||||||
|
if (qtaColloDisponibile == null) {
|
||||||
|
dest.writeByte((byte) (0x00));
|
||||||
|
} else {
|
||||||
|
dest.writeByte((byte) (0x01));
|
||||||
|
dest.writeFloat(qtaColloDisponibile.floatValue());
|
||||||
|
}
|
||||||
|
if (numCnfColloDisponibile == null) {
|
||||||
|
dest.writeByte((byte) (0x00));
|
||||||
|
} else {
|
||||||
|
dest.writeByte((byte) (0x01));
|
||||||
|
dest.writeFloat(numCnfColloDisponibile.floatValue());
|
||||||
|
}
|
||||||
|
|
||||||
dest.writeValue(mtbAart);
|
dest.writeValue(mtbAart);
|
||||||
}
|
}
|
||||||
@ -251,7 +275,7 @@ public class PickingObjectDTO implements Parcelable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getQtaCollo() {
|
public BigDecimal getQtaCollo() {
|
||||||
return qtaCollo;
|
return qtaCollo != null ? qtaCollo : BigDecimal.ZERO;
|
||||||
}
|
}
|
||||||
|
|
||||||
public PickingObjectDTO setQtaCollo(BigDecimal qtaCollo) {
|
public PickingObjectDTO setQtaCollo(BigDecimal qtaCollo) {
|
||||||
@ -351,7 +375,7 @@ public class PickingObjectDTO implements Parcelable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public BigDecimal getQtaOrd() {
|
public BigDecimal getQtaOrd() {
|
||||||
return qtaOrd;
|
return qtaOrd != null ? qtaOrd : BigDecimal.ZERO;
|
||||||
}
|
}
|
||||||
|
|
||||||
public PickingObjectDTO setQtaOrd(BigDecimal qtaOrd) {
|
public PickingObjectDTO setQtaOrd(BigDecimal qtaOrd) {
|
||||||
@ -395,6 +419,24 @@ public class PickingObjectDTO implements Parcelable {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public BigDecimal getQtaColloDisponibile() {
|
||||||
|
return qtaColloDisponibile;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PickingObjectDTO setQtaColloDisponibile(BigDecimal qtaColloDisponibile) {
|
||||||
|
this.qtaColloDisponibile = qtaColloDisponibile;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal getNumCnfColloDisponibile() {
|
||||||
|
return numCnfColloDisponibile;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PickingObjectDTO setNumCnfColloDisponibile(BigDecimal numCnfColloDisponibile) {
|
||||||
|
this.numCnfColloDisponibile = numCnfColloDisponibile;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public MtbAart getMtbAart() {
|
public MtbAart getMtbAart() {
|
||||||
return mtbAart;
|
return mtbAart;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,6 +15,9 @@ public interface OrdiniVenditaRESTConsumerService {
|
|||||||
@GET("SM2GetOrdiniVenditaInevasi")
|
@GET("SM2GetOrdiniVenditaInevasi")
|
||||||
Call<ServiceRESTResponse<List<OrdineVenditaInevasoDTO>>> listOrdiniInevasi(@Query("codMdep") String codMdep);
|
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("getPickingListFromOrdini")
|
@GET("getPickingListFromOrdini")
|
||||||
Call<ServiceRESTResponse<List<PickingObjectDTO>>> getPickingList(@Query("codMdep") String codMdep, @Query("dataCons") String dataCons, @Query("chiaviOrdini") String codBarreBacale);
|
Call<ServiceRESTResponse<List<PickingObjectDTO>>> getPickingList(@Query("codMdep") String codMdep, @Query("dataCons") String dataCons, @Query("chiaviOrdini") String codBarreBacale);
|
||||||
|
|
||||||
|
|||||||
@ -94,6 +94,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
|||||||
private String defaultRifOrdOfUL = null;
|
private String defaultRifOrdOfUL = null;
|
||||||
private Integer defaultNumOrdOfUL = null;
|
private Integer defaultNumOrdOfUL = null;
|
||||||
private Date defaultDataOrdOfUL = null;
|
private Date defaultDataOrdOfUL = null;
|
||||||
|
private String defaultCodJFasOfUL = null;
|
||||||
|
|
||||||
|
|
||||||
private Integer mtbColtSessionID = null;
|
private Integer mtbColtSessionID = null;
|
||||||
@ -179,7 +180,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
|||||||
//Definizione del deposito di default
|
//Definizione del deposito di default
|
||||||
List<String> foundCodMdep = Stream.of(mTestateOrdini)
|
List<String> foundCodMdep = Stream.of(mTestateOrdini)
|
||||||
.map(OrdineVenditaInevasoDTO::getCodMdep)
|
.map(OrdineVenditaInevasoDTO::getCodMdep)
|
||||||
.withoutNulls()
|
// .withoutNulls()
|
||||||
.distinctBy(x -> x)
|
.distinctBy(x -> x)
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
@ -211,7 +212,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
|||||||
//Definizione del codAnag
|
//Definizione del codAnag
|
||||||
List<String> foundCodAnag = Stream.of(mTestateOrdini)
|
List<String> foundCodAnag = Stream.of(mTestateOrdini)
|
||||||
.map(OrdineVenditaInevasoDTO::getCodAnagOrd)
|
.map(OrdineVenditaInevasoDTO::getCodAnagOrd)
|
||||||
.withoutNulls()
|
// .withoutNulls()
|
||||||
.distinctBy(x -> x)
|
.distinctBy(x -> x)
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
@ -223,7 +224,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
|||||||
//Definizione del rifOrd
|
//Definizione del rifOrd
|
||||||
List<String> foundRifOrd = Stream.of(mTestateOrdini)
|
List<String> foundRifOrd = Stream.of(mTestateOrdini)
|
||||||
.map(OrdineVenditaInevasoDTO::getRifOrd)
|
.map(OrdineVenditaInevasoDTO::getRifOrd)
|
||||||
.withoutNulls()
|
// .withoutNulls()
|
||||||
.distinctBy(x -> x)
|
.distinctBy(x -> x)
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
@ -255,6 +256,18 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
|||||||
defaultDataOrdOfUL = foundDataOrd.get(0);
|
defaultDataOrdOfUL = foundDataOrd.get(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//Definizione del codJfas
|
||||||
|
List<String> foundCodJfas = Stream.of(mTestateOrdini)
|
||||||
|
.map(OrdineVenditaInevasoDTO::getCodJfas)
|
||||||
|
//.withoutNulls()
|
||||||
|
.distinctBy(x -> x)
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
if(foundCodJfas != null && foundCodJfas.size() == 1){
|
||||||
|
defaultCodJFasOfUL = foundCodJfas.get(0);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -808,6 +821,10 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
|
|||||||
.setCodMdep(defaultCodMdepOfUL)
|
.setCodMdep(defaultCodMdepOfUL)
|
||||||
.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
||||||
|
|
||||||
|
if(defaultGestioneOfUL == GestioneEnum.LAVORAZIONE) {
|
||||||
|
mtbColt.setPosizione(defaultCodJFasOfUL);
|
||||||
|
}
|
||||||
|
|
||||||
if(customNumCollo != null) {
|
if(customNumCollo != null) {
|
||||||
mtbColt.setNumCollo(customNumCollo);
|
mtbColt.setNumCollo(customNumCollo);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<layout>
|
||||||
|
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
@ -20,4 +21,5 @@
|
|||||||
android:layout_alignParentRight="true"
|
android:layout_alignParentRight="true"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:text="TextView" />
|
android:text="TextView" />
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
</layout>
|
||||||
@ -1,5 +1,16 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<layout>
|
||||||
|
<data>
|
||||||
|
<import type="it.integry.integrywmsnative.R" />
|
||||||
|
<variable
|
||||||
|
name="checkboxValue"
|
||||||
|
type="it.integry.integrywmsnative.core.di.BindableBoolean" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</data>
|
||||||
|
|
||||||
|
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
@ -16,13 +27,13 @@
|
|||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_toRightOf="@id/accettazione_main_list_group_item_container_checkBox">
|
android:layout_toEndOf="@id/accettazione_main_list_group_item_container_checkBox">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/accettazione_main_list_group_item_container_testata_ord"
|
android:id="@+id/accettazione_main_list_group_item_container_testata_ord"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="Ord. Acq. 39 del 27 ott 2017"
|
android:text="Ord. Prod. 39 del 27 ott 2017"
|
||||||
android:textColor="#000" />
|
android:textColor="#000" />
|
||||||
|
|
||||||
|
|
||||||
@ -36,4 +47,7 @@
|
|||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
|
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
|
|
||||||
|
</layout>
|
||||||
@ -1,23 +1,25 @@
|
|||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
|
<layout>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:card_view="http://schemas.android.com/apk/res-auto"
|
xmlns:card_view="http://schemas.android.com/apk/res-auto"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
|
||||||
<androidx.cardview.widget.CardView
|
<!--<androidx.cardview.widget.CardView-->
|
||||||
xmlns:card_view="http://schemas.android.com/apk/res-auto"
|
<!--xmlns:card_view="http://schemas.android.com/apk/res-auto"-->
|
||||||
android:id="@+id/card_view"
|
<!--android:id="@+id/card_view"-->
|
||||||
android:layout_gravity="center"
|
<!--android:layout_gravity="center"-->
|
||||||
android:layout_width="match_parent"
|
<!--android:layout_width="match_parent"-->
|
||||||
android:layout_height="wrap_content"
|
<!--android:layout_height="wrap_content"-->
|
||||||
card_view:cardUseCompatPadding="true"
|
<!--card_view:cardUseCompatPadding="true"-->
|
||||||
card_view:cardCornerRadius="4dp"
|
<!--card_view:cardCornerRadius="4dp"-->
|
||||||
card_view:cardElevation="4dp">
|
<!--card_view:cardElevation="4dp">-->
|
||||||
|
|
||||||
<LinearLayout
|
<!--<LinearLayout-->
|
||||||
android:layout_width="match_parent"
|
<!--android:layout_width="match_parent"-->
|
||||||
android:layout_height="match_parent"
|
<!--android:layout_height="match_parent"-->
|
||||||
android:orientation="vertical">
|
<!--android:orientation="vertical">-->
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
@ -43,18 +45,20 @@
|
|||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
<LinearLayout
|
<!--<LinearLayout-->
|
||||||
android:layout_width="match_parent"
|
<!--android:layout_width="match_parent"-->
|
||||||
android:layout_height="wrap_content"
|
<!--android:layout_height="wrap_content"-->
|
||||||
android:orientation="vertical"
|
<!--android:orientation="vertical"-->
|
||||||
android:id="@+id/accettazione_main_list_group_item_container">
|
<!--android:id="@+id/accettazione_main_list_group_item_container">-->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!--</LinearLayout>-->
|
||||||
|
|
||||||
|
<!--</LinearLayout>-->
|
||||||
|
|
||||||
|
<!--</androidx.cardview.widget.CardView>-->
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
</LinearLayout>
|
</layout>
|
||||||
|
|
||||||
</androidx.cardview.widget.CardView>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
@ -68,7 +68,8 @@
|
|||||||
android:iconifiedByDefault="true"
|
android:iconifiedByDefault="true"
|
||||||
app:defaultQueryHint="@string/search"
|
app:defaultQueryHint="@string/search"
|
||||||
app:iconifiedByDefault="true"
|
app:iconifiedByDefault="true"
|
||||||
android:layout_gravity="end"/>
|
android:layout_gravity="end"
|
||||||
|
android:tint="@android:color/black"/>
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatImageButton
|
<androidx.appcompat.widget.AppCompatImageButton
|
||||||
android:id="@+id/main_filter"
|
android:id="@+id/main_filter"
|
||||||
@ -79,7 +80,7 @@
|
|||||||
android:adjustViewBounds="true"
|
android:adjustViewBounds="true"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
android:src="@drawable/ic_search_black_24dp"
|
android:src="@drawable/ic_search_black_24dp"
|
||||||
android:tint="@color/colorPrimaryGray"/>
|
android:tint="@android:color/black"/>
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatImageButton
|
<androidx.appcompat.widget.AppCompatImageButton
|
||||||
android:id="@+id/main_select_all"
|
android:id="@+id/main_select_all"
|
||||||
@ -90,7 +91,7 @@
|
|||||||
android:adjustViewBounds="true"
|
android:adjustViewBounds="true"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
android:src="@drawable/ic_check_black_24dp"
|
android:src="@drawable/ic_check_black_24dp"
|
||||||
android:tint="@color/colorPrimaryGray"/>
|
android:tint="@android:color/black"/>
|
||||||
|
|
||||||
</androidx.appcompat.widget.Toolbar>
|
</androidx.appcompat.widget.Toolbar>
|
||||||
|
|
||||||
|
|||||||
@ -17,11 +17,16 @@
|
|||||||
app:cardCornerRadius="12dp"
|
app:cardCornerRadius="12dp"
|
||||||
app:cardElevation="0dp">
|
app:cardElevation="0dp">
|
||||||
|
|
||||||
|
|
||||||
|
<ScrollView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:layout_margin="16dp">
|
android:padding="16dp">
|
||||||
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
@ -54,14 +59,24 @@
|
|||||||
|
|
||||||
</com.google.android.material.textfield.TextInputLayout>
|
</com.google.android.material.textfield.TextInputLayout>
|
||||||
|
|
||||||
<!--<com.google.android.material.textfield.TextInputEditText-->
|
|
||||||
<!--android:id="@+id/input_cod_mdep"-->
|
<com.google.android.material.textfield.TextInputLayout
|
||||||
<!--android:layout_width="match_parent"-->
|
android:id="@+id/input_id_viaggio"
|
||||||
<!--android:layout_height="wrap_content"-->
|
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
|
||||||
<!--android:inputType="textNoSuggestions"-->
|
android:layout_width="match_parent"
|
||||||
<!--android:hint="@string/deposit"-->
|
android:layout_height="wrap_content"
|
||||||
<!--android:focusable="false"-->
|
android:hint="@string/travel_id">
|
||||||
<!--app:binding="@{viewmodel.deposito}"/>-->
|
|
||||||
|
<androidx.appcompat.widget.AppCompatAutoCompleteTextView
|
||||||
|
android:id="@+id/filled_exposed_dropdown_id_viaggio"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:singleLine="true"
|
||||||
|
android:ellipsize="end"
|
||||||
|
app:binding="@{viewmodel.idViaggio}" />
|
||||||
|
|
||||||
|
</com.google.android.material.textfield.TextInputLayout>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<com.google.android.material.textfield.TextInputLayout
|
<com.google.android.material.textfield.TextInputLayout
|
||||||
@ -83,15 +98,6 @@
|
|||||||
</com.google.android.material.textfield.TextInputLayout>
|
</com.google.android.material.textfield.TextInputLayout>
|
||||||
|
|
||||||
|
|
||||||
<!--<com.google.android.material.textfield.TextInputEditText-->
|
|
||||||
<!--android:id="@+id/input_num_ords"-->
|
|
||||||
<!--android:layout_width="match_parent"-->
|
|
||||||
<!--android:layout_height="wrap_content"-->
|
|
||||||
<!--android:inputType="number|text"-->
|
|
||||||
<!--android:hint="@string/num_ords"-->
|
|
||||||
<!--app:binding="@{viewmodel.numOrds}"/>-->
|
|
||||||
|
|
||||||
|
|
||||||
<com.google.android.material.textfield.TextInputLayout
|
<com.google.android.material.textfield.TextInputLayout
|
||||||
android:id="@+id/input_cliente"
|
android:id="@+id/input_cliente"
|
||||||
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
|
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
|
||||||
@ -111,77 +117,6 @@
|
|||||||
</com.google.android.material.textfield.TextInputLayout>
|
</com.google.android.material.textfield.TextInputLayout>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!--<com.google.android.material.textfield.TextInputEditText-->
|
|
||||||
<!--android:id="@+id/input_cliente"-->
|
|
||||||
<!--android:layout_width="match_parent"-->
|
|
||||||
<!--android:layout_height="wrap_content"-->
|
|
||||||
<!--android:inputType="textNoSuggestions"-->
|
|
||||||
<!--android:hint="@string/customer"-->
|
|
||||||
<!--app:binding="@{viewmodel.cliente}"/>-->
|
|
||||||
|
|
||||||
<com.google.android.material.textfield.TextInputLayout
|
|
||||||
android:id="@+id/input_data_cons"
|
|
||||||
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:hint="@string/ship_date">
|
|
||||||
|
|
||||||
|
|
||||||
<com.google.android.material.textfield.TextInputEditText
|
|
||||||
android:id="@+id/filled_exposed_dropdown_data_cons"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:inputType="textNoSuggestions"
|
|
||||||
android:focusable="false"
|
|
||||||
android:singleLine="true"
|
|
||||||
app:binding="@{viewmodel.dataConsegna}"/>
|
|
||||||
|
|
||||||
</com.google.android.material.textfield.TextInputLayout>
|
|
||||||
|
|
||||||
<!--<com.google.android.material.textfield.TextInputEditText-->
|
|
||||||
<!--android:id="@+id/input_data_cons"-->
|
|
||||||
<!--android:layout_width="match_parent"-->
|
|
||||||
<!--android:layout_height="wrap_content"-->
|
|
||||||
<!--android:inputType="textNoSuggestions"-->
|
|
||||||
<!--android:hint="@string/ship_date"-->
|
|
||||||
<!--android:focusable="false"-->
|
|
||||||
<!--app:binding="@{viewmodel.dataConsegna}"/>-->
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<com.google.android.material.textfield.TextInputLayout
|
|
||||||
android:id="@+id/input_term_cons"
|
|
||||||
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:hint="@string/terms_of_delivery">
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatAutoCompleteTextView
|
|
||||||
android:id="@+id/filled_exposed_dropdown_term_cons"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:inputType="textNoSuggestions"
|
|
||||||
android:singleLine="true"
|
|
||||||
android:ellipsize="end"
|
|
||||||
app:binding="@{viewmodel.terminiConsegna}"/>
|
|
||||||
|
|
||||||
</com.google.android.material.textfield.TextInputLayout>
|
|
||||||
|
|
||||||
|
|
||||||
<!--<com.google.android.material.textfield.TextInputEditText-->
|
|
||||||
<!--android:id="@+id/input_term_cons"-->
|
|
||||||
<!--android:layout_width="match_parent"-->
|
|
||||||
<!--android:layout_height="wrap_content"-->
|
|
||||||
<!--android:inputType="textNoSuggestions"-->
|
|
||||||
<!--android:hint="@string/terms_of_delivery"-->
|
|
||||||
<!--android:focusable="false"-->
|
|
||||||
<!--app:binding="@{viewmodel.terminiConsegna}"/>-->
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<com.google.android.material.textfield.TextInputLayout
|
<com.google.android.material.textfield.TextInputLayout
|
||||||
android:id="@+id/input_vettore"
|
android:id="@+id/input_vettore"
|
||||||
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
|
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
|
||||||
@ -201,19 +136,6 @@
|
|||||||
</com.google.android.material.textfield.TextInputLayout>
|
</com.google.android.material.textfield.TextInputLayout>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!--<com.google.android.material.textfield.TextInputEditText-->
|
|
||||||
<!--android:id="@+id/input_vettore"-->
|
|
||||||
<!--android:layout_width="match_parent"-->
|
|
||||||
<!--android:layout_height="wrap_content"-->
|
|
||||||
<!--android:inputType="textNoSuggestions"-->
|
|
||||||
<!--android:hint="@string/carrier"-->
|
|
||||||
<!--android:focusable="false"-->
|
|
||||||
<!--app:binding="@{viewmodel.vettore}"/>-->
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<com.google.android.material.textfield.TextInputLayout
|
<com.google.android.material.textfield.TextInputLayout
|
||||||
android:id="@+id/input_automezzo"
|
android:id="@+id/input_automezzo"
|
||||||
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
|
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
|
||||||
@ -233,17 +155,115 @@
|
|||||||
</com.google.android.material.textfield.TextInputLayout>
|
</com.google.android.material.textfield.TextInputLayout>
|
||||||
|
|
||||||
|
|
||||||
|
<com.google.android.material.textfield.TextInputLayout
|
||||||
|
android:id="@+id/input_agente"
|
||||||
|
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:hint="@string/agent">
|
||||||
|
|
||||||
<!--<com.google.android.material.textfield.TextInputEditText-->
|
<androidx.appcompat.widget.AppCompatAutoCompleteTextView
|
||||||
<!--android:id="@+id/input_automezzo"-->
|
android:id="@+id/filled_exposed_dropdown_agente"
|
||||||
<!--android:layout_width="match_parent"-->
|
android:layout_width="match_parent"
|
||||||
<!--android:layout_height="wrap_content"-->
|
android:layout_height="wrap_content"
|
||||||
<!--android:inputType="textNoSuggestions"-->
|
android:inputType="textNoSuggestions"
|
||||||
<!--android:hint="@string/vehicle"-->
|
android:singleLine="true"
|
||||||
<!--android:focusable="false"-->
|
android:ellipsize="end"
|
||||||
<!--app:binding="@{viewmodel.automezzo}"/>-->
|
app:binding="@{viewmodel.agente}"/>
|
||||||
|
|
||||||
|
</com.google.android.material.textfield.TextInputLayout>
|
||||||
|
|
||||||
|
<com.google.android.material.textfield.TextInputLayout
|
||||||
|
android:id="@+id/input_data_cons"
|
||||||
|
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:hint="@string/ship_date">
|
||||||
|
|
||||||
|
|
||||||
|
<com.google.android.material.textfield.TextInputEditText
|
||||||
|
android:id="@+id/filled_exposed_dropdown_data_cons"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:inputType="textNoSuggestions"
|
||||||
|
android:focusable="false"
|
||||||
|
android:singleLine="true"
|
||||||
|
app:binding="@{viewmodel.dataConsegna}"/>
|
||||||
|
|
||||||
|
</com.google.android.material.textfield.TextInputLayout>
|
||||||
|
|
||||||
|
|
||||||
|
<com.google.android.material.textfield.TextInputLayout
|
||||||
|
android:id="@+id/input_term_cons"
|
||||||
|
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:hint="@string/terms_of_delivery">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatAutoCompleteTextView
|
||||||
|
android:id="@+id/filled_exposed_dropdown_term_cons"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:inputType="textNoSuggestions"
|
||||||
|
android:singleLine="true"
|
||||||
|
android:ellipsize="end"
|
||||||
|
app:binding="@{viewmodel.terminiConsegna}"/>
|
||||||
|
|
||||||
|
</com.google.android.material.textfield.TextInputLayout>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="24dp"
|
||||||
|
android:layout_marginEnd="24dp"
|
||||||
|
android:layout_marginTop="8dp">
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.Guideline
|
||||||
|
android:id="@+id/buttons_guideline"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
app:layout_constraintGuide_percent="0.5"/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/neutral_btn"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
style="@style/Button.PrimaryOutline"
|
||||||
|
android:layout_marginLeft="8dp"
|
||||||
|
android:layout_marginRight="8dp"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintEnd_toStartOf="@id/buttons_guideline"
|
||||||
|
app:strokeColor="@color/colorPrimary"
|
||||||
|
android:text="@string/reset"/>
|
||||||
|
|
||||||
|
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/positive_btn"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
style="@style/Button.PrimaryFull"
|
||||||
|
android:layout_marginLeft="8dp"
|
||||||
|
android:layout_marginRight="8dp"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="@id/buttons_guideline"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
android:text="@string/confirm"/>
|
||||||
|
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
</ScrollView>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</androidx.cardview.widget.CardView>
|
</androidx.cardview.widget.CardView>
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,6 @@
|
|||||||
|
|
||||||
<data>
|
<data>
|
||||||
<import type="androidx.databinding.ObservableList"/>
|
<import type="androidx.databinding.ObservableList"/>
|
||||||
<variable name="view" type="it.integry.integrywmsnative.gest.vendita.MainVenditaFragment" />
|
|
||||||
</data>
|
</data>
|
||||||
|
|
||||||
<FrameLayout
|
<FrameLayout
|
||||||
|
|||||||
@ -0,0 +1,80 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<layout xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||||
|
<data>
|
||||||
|
<import type="it.integry.integrywmsnative.R" />
|
||||||
|
<variable
|
||||||
|
name="checkboxValue"
|
||||||
|
type="it.integry.integrywmsnative.core.di.BindableBoolean" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</data>
|
||||||
|
|
||||||
|
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingStart="2dp"
|
||||||
|
android:paddingEnd="4dp">
|
||||||
|
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:id="@+id/ordine_lavorazione_main_list_group_item_container_root"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingStart="2dp"
|
||||||
|
android:paddingEnd="8dp"
|
||||||
|
android:paddingTop="8dp"
|
||||||
|
android:paddingBottom="8dp"
|
||||||
|
android:background="@color/full_white">
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatCheckBox
|
||||||
|
android:id="@+id/ordine_lavorazione_main_list_group_item_container_checkBox"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="@android:color/transparent" />
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:layout_toEndOf="@id/ordine_lavorazione_main_list_group_item_container_checkBox">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/ordine_lavorazione_main_list_group_item_container_testata_data_cons"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="Cons 07 nov 2018"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:textColor="#000" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/ordine_lavorazione_main_list_group_item_container_testata_ord"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="Ord. Ven. 39 del 27 ott 2017"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:textColor="#000"
|
||||||
|
android:layout_alignParentStart="true"
|
||||||
|
android:layout_toStartOf="@id/ordine_lavorazione_main_list_group_item_container_testata_data_cons"/>
|
||||||
|
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/vendita_main_list_group_item_container_detail_ord"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:paddingEnd="6dp"
|
||||||
|
android:text="TextView"
|
||||||
|
android:layout_below="@+id/ordine_lavorazione_main_list_group_item_container_testata_ord" />
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
|
||||||
|
</layout>
|
||||||
@ -0,0 +1,67 @@
|
|||||||
|
<layout>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:card_view="http://schemas.android.com/apk/res-auto"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
|
||||||
|
|
||||||
|
<!--<androidx.cardview.widget.CardView-->
|
||||||
|
<!--xmlns:card_view="http://schemas.android.com/apk/res-auto"-->
|
||||||
|
<!--android:id="@+id/card_view"-->
|
||||||
|
<!--android:layout_gravity="center"-->
|
||||||
|
<!--android:layout_width="match_parent"-->
|
||||||
|
<!--android:layout_height="wrap_content"-->
|
||||||
|
<!--card_view:cardUseCompatPadding="true"-->
|
||||||
|
<!--card_view:cardCornerRadius="4dp"-->
|
||||||
|
<!--card_view:cardElevation="4dp">-->
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="@color/mainOrange"
|
||||||
|
android:paddingStart="12dp"
|
||||||
|
android:paddingTop="8dp"
|
||||||
|
android:paddingEnd="8dp"
|
||||||
|
android:paddingBottom="8dp">
|
||||||
|
|
||||||
|
<CheckBox
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:checked="true"
|
||||||
|
android:enabled="false" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/ordine_lavorazione_main_list_group_header"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textStyle="bold"
|
||||||
|
style="@android:style/TextAppearance.Medium"
|
||||||
|
tools:text="NOME GRUPPO"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:id="@+id/ordine_lavorazione_main_list_group_item_container">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<!--</androidx.cardview.widget.CardView>-->
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</layout>
|
||||||
@ -0,0 +1,90 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<layout
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
|
||||||
|
<data>
|
||||||
|
<import type="androidx.databinding.ObservableList"/>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
<FrameLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:background="@android:color/white">
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/ordine_lavorazione_main_list"
|
||||||
|
android:scrollbars="vertical"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"/>
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:id="@+id/ordine_lavorazione_empty_view"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:alpha="0.3">
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.Guideline
|
||||||
|
android:id="@+id/guideline_empty_top"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
app:layout_constraintGuide_percent="0.2" />
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.Guideline
|
||||||
|
android:id="@+id/guideline_empty_left"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
app:layout_constraintGuide_percent="0.15" />
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.Guideline
|
||||||
|
android:id="@+id/guideline_empty_right"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
app:layout_constraintGuide_percent="0.85" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
app:layout_constraintStart_toEndOf="@id/guideline_empty_left"
|
||||||
|
app:layout_constraintEnd_toStartOf="@id/guideline_empty_right"
|
||||||
|
app:layout_constraintTop_toTopOf="@id/guideline_empty_top">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
|
android:layout_width="72dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:src="@drawable/ic_playlist_add_check_24dp"
|
||||||
|
android:adjustViewBounds="true"/>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textSize="18sp"
|
||||||
|
android:text="@string/no_orders_found_message"/>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
||||||
|
android:id="@+id/ordine_lavorazione_main_fab"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="bottom|end"
|
||||||
|
android:layout_margin="@dimen/fab_margin"
|
||||||
|
android:tint="@android:color/white"
|
||||||
|
app:srcCompat="@drawable/ic_check_black_24dp" />
|
||||||
|
</FrameLayout>
|
||||||
|
</layout>
|
||||||
@ -0,0 +1,25 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<layout>
|
||||||
|
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/ordine_produzione_main_list_group_clienti_comm"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_toStartOf="@+id/ordine_produzione_main_list_group_clienti_datacons"
|
||||||
|
android:maxLines="1"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:paddingEnd="6dp"
|
||||||
|
android:text="TextView" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/ordine_produzione_main_list_group_clienti_datacons"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:text="TextView" />
|
||||||
|
</RelativeLayout>
|
||||||
|
</layout>
|
||||||
@ -0,0 +1,53 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<layout xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||||
|
<data>
|
||||||
|
<import type="it.integry.integrywmsnative.R" />
|
||||||
|
<variable
|
||||||
|
name="checkboxValue"
|
||||||
|
type="it.integry.integrywmsnative.core.di.BindableBoolean" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</data>
|
||||||
|
|
||||||
|
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:padding="8dp">
|
||||||
|
|
||||||
|
|
||||||
|
<CheckBox
|
||||||
|
android:id="@+id/ordine_produzione_main_list_group_item_container_checkBox"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
tools:layout_editor_absoluteX="0dp"
|
||||||
|
tools:layout_editor_absoluteY="1dp" />
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_toEndOf="@id/ordine_produzione_main_list_group_item_container_checkBox">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/ordine_produzione_main_list_group_item_container_testata_ord"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="Ord. Prod. 39 del 27 ott 2017"
|
||||||
|
android:textColor="#000" />
|
||||||
|
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/ordine_produzione_main_list_group_item_container_clienti_ord"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_below="@+id/ordine_produzione_main_list_group_item_container_testata_ord"
|
||||||
|
android:orientation="vertical">
|
||||||
|
</LinearLayout>
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
|
||||||
|
</layout>
|
||||||
@ -0,0 +1,67 @@
|
|||||||
|
<layout>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:card_view="http://schemas.android.com/apk/res-auto"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
|
||||||
|
|
||||||
|
<!--<androidx.cardview.widget.CardView-->
|
||||||
|
<!--xmlns:card_view="http://schemas.android.com/apk/res-auto"-->
|
||||||
|
<!--android:id="@+id/card_view"-->
|
||||||
|
<!--android:layout_gravity="center"-->
|
||||||
|
<!--android:layout_width="match_parent"-->
|
||||||
|
<!--android:layout_height="wrap_content"-->
|
||||||
|
<!--card_view:cardUseCompatPadding="true"-->
|
||||||
|
<!--card_view:cardCornerRadius="4dp"-->
|
||||||
|
<!--card_view:cardElevation="4dp">-->
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="@color/mainGreen"
|
||||||
|
android:paddingStart="12dp"
|
||||||
|
android:paddingTop="8dp"
|
||||||
|
android:paddingEnd="8dp"
|
||||||
|
android:paddingBottom="8dp">
|
||||||
|
|
||||||
|
<CheckBox
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:checked="true"
|
||||||
|
android:enabled="false" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/ordine_produzione_main_list_group_header"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textStyle="bold"
|
||||||
|
style="@android:style/TextAppearance.Medium"
|
||||||
|
tools:text="NOME GRUPPO"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:id="@+id/ordine_produzione_main_list_group_item_container">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<!--</androidx.cardview.widget.CardView>-->
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</layout>
|
||||||
@ -0,0 +1,94 @@
|
|||||||
|
<layout
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||||
|
|
||||||
|
<data>
|
||||||
|
<import type="androidx.databinding.ObservableList"/>
|
||||||
|
<variable name="view" type="it.integry.integrywmsnative.gest.prod_ord_produzione.ProdOrdineProduzioneElencoFragment" />
|
||||||
|
</data>
|
||||||
|
|
||||||
|
<FrameLayout
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
xmlns:fab="http://schemas.android.com/apk/res-auto"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:background="@color/full_white"
|
||||||
|
tools:context="it.integry.integrywmsnative.gest.prod_ord_produzione.ProdOrdineProduzioneElencoFragment">
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/ordine_produzione_main_list"
|
||||||
|
android:scrollbars="vertical"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"/>
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:id="@+id/ordini_produzione_empty_view"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:alpha="0.3">
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.Guideline
|
||||||
|
android:id="@+id/guideline_empty_top"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
app:layout_constraintGuide_percent="0.2" />
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.Guideline
|
||||||
|
android:id="@+id/guideline_empty_left"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
app:layout_constraintGuide_percent="0.15" />
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.Guideline
|
||||||
|
android:id="@+id/guideline_empty_right"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
app:layout_constraintGuide_percent="0.85" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
app:layout_constraintStart_toEndOf="@id/guideline_empty_left"
|
||||||
|
app:layout_constraintEnd_toStartOf="@id/guideline_empty_right"
|
||||||
|
app:layout_constraintTop_toTopOf="@id/guideline_empty_top">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
|
android:layout_width="72dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:src="@drawable/ic_playlist_add_check_24dp"
|
||||||
|
android:adjustViewBounds="true"/>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center_horizontal"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textSize="18sp"
|
||||||
|
android:text="@string/no_orders_found_message"/>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
||||||
|
android:id="@+id/ordine_produzione_main_fab"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="bottom|end"
|
||||||
|
android:layout_margin="@dimen/fab_margin"
|
||||||
|
android:tint="@android:color/white"
|
||||||
|
app:srcCompat="@drawable/ic_check_black_24dp" />
|
||||||
|
</FrameLayout>
|
||||||
|
|
||||||
|
</layout>
|
||||||
@ -6,12 +6,22 @@
|
|||||||
<data>
|
<data>
|
||||||
|
|
||||||
</data>
|
</data>
|
||||||
<FrameLayout
|
<RelativeLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
tools:context=".gest.prod_recupero_materiale.ProdRecuperoMaterialeFragment">
|
tools:context=".gest.prod_recupero_materiale.ProdRecuperoMaterialeFragment">
|
||||||
|
|
||||||
|
|
||||||
</FrameLayout>
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:background="@color/gray_200"
|
||||||
|
android:id="@+id/prod_recupero_materiale_main_list"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
|
||||||
|
</androidx.recyclerview.widget.RecyclerView>
|
||||||
|
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
</layout>
|
</layout>
|
||||||
@ -0,0 +1,30 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<layout>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:orientation="vertical" android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="@android:color/white"
|
||||||
|
android:layout_marginTop="16dp">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/cod_jfas"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="L1"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:textAllCaps="true"
|
||||||
|
android:textColor="@color/gray_600"
|
||||||
|
android:layout_marginStart="16dp"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:layout_marginBottom="8dp"/>
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
</layout>
|
||||||
108
app/src/main/res/layout/prod_recupero_materiale_list_item.xml
Normal file
108
app/src/main/res/layout/prod_recupero_materiale_list_item.xml
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<layout>
|
||||||
|
<RelativeLayout
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="@android:color/white"
|
||||||
|
android:paddingTop="4dp"
|
||||||
|
android:paddingBottom="4dp">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/left_content"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:layout_alignParentStart="true"
|
||||||
|
android:layout_toStartOf="@id/right_content"
|
||||||
|
android:paddingEnd="8dp">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/num_collo"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
tools:text="22"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
android:textSize="22sp"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:layout_marginStart="16dp"
|
||||||
|
android:layout_marginEnd="16dp"/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/cod_mart"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textSize="18sp"
|
||||||
|
tools:text="150101-040"
|
||||||
|
android:textColor="@android:color/black"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/partita_mag"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textColor="@color/gray_700"
|
||||||
|
tools:text="Lotto articolo"
|
||||||
|
android:layout_marginStart="4dp"
|
||||||
|
/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/descrizione"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textColor="@color/gray_700"
|
||||||
|
tools:text="Descrizione estesa articolo"
|
||||||
|
/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:id="@+id/right_content"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:layout_alignTop="@id/left_content"
|
||||||
|
android:layout_alignBottom="@id/left_content"
|
||||||
|
android:paddingEnd="8dp">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/qta_versata"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textSize="18sp"
|
||||||
|
tools:text="27"/>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/unt_mis_qta_versata"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="4dp"
|
||||||
|
android:textSize="18sp"
|
||||||
|
tools:text="PZ"/>
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
</layout>
|
||||||
@ -36,6 +36,14 @@
|
|||||||
<group android:checkableBehavior="single" >
|
<group android:checkableBehavior="single" >
|
||||||
<item android:title="@string/production">
|
<item android:title="@string/production">
|
||||||
<menu>
|
<menu>
|
||||||
|
<item
|
||||||
|
android:id="@+id/nav_prod_ordine_produzione"
|
||||||
|
android:icon="@drawable/ic_black_external"
|
||||||
|
android:title="@string/prod_ordine_produzione_title_fragment" />
|
||||||
|
<item
|
||||||
|
android:id="@+id/nav_prod_ordine_lavorazione"
|
||||||
|
android:icon="@drawable/ic_black_external"
|
||||||
|
android:title="@string/prod_ordine_lavorazione_title_fragment" />
|
||||||
<item
|
<item
|
||||||
android:id="@+id/nav_prod_versamento_materiale"
|
android:id="@+id/nav_prod_versamento_materiale"
|
||||||
android:icon="@drawable/ic_black_external"
|
android:icon="@drawable/ic_black_external"
|
||||||
|
|||||||
@ -176,6 +176,8 @@
|
|||||||
<string name="terms_of_delivery">Termini di consegna</string>
|
<string name="terms_of_delivery">Termini di consegna</string>
|
||||||
<string name="vehicle">Automezzo</string>
|
<string name="vehicle">Automezzo</string>
|
||||||
<string name="deposit">Deposito</string>
|
<string name="deposit">Deposito</string>
|
||||||
|
<string name="travel_id">ID Viaggio</string>
|
||||||
|
<string name="agent">Agente</string>
|
||||||
<string name="carrier">Vettore</string>
|
<string name="carrier">Vettore</string>
|
||||||
|
|
||||||
<string name="no_items_found_message">Nessun articolo trovato</string>
|
<string name="no_items_found_message">Nessun articolo trovato</string>
|
||||||
@ -200,6 +202,7 @@
|
|||||||
<string name="error_multiple_gest">Impossibile caricare ordini di diverse <b>gestioni</b></string>
|
<string name="error_multiple_gest">Impossibile caricare ordini di diverse <b>gestioni</b></string>
|
||||||
<string name="error_no_gest_found">Non è stato possibile identificare la <b>gestione</b> degli ordini selezionati</string>
|
<string name="error_no_gest_found">Non è stato possibile identificare la <b>gestione</b> degli ordini selezionati</string>
|
||||||
<string name="error_multiple_cod_mdep_ordv">Impossibile caricare ordini di diversi <b>depositi</b></string>
|
<string name="error_multiple_cod_mdep_ordv">Impossibile caricare ordini di diversi <b>depositi</b></string>
|
||||||
|
<string name="error_multiple_cod_jfas_ordp">Non verrà salvata la <b>linea di produzione</b> poiché stai selezionando ordini di diverse produzioni</string>
|
||||||
|
|
||||||
<string name="recovering_data">Recupero dati</string>
|
<string name="recovering_data">Recupero dati</string>
|
||||||
<string name="wait_a_moment">Attendi qualche istante</string>
|
<string name="wait_a_moment">Attendi qualche istante</string>
|
||||||
@ -223,6 +226,8 @@
|
|||||||
|
|
||||||
<string name="general">Generale</string>
|
<string name="general">Generale</string>
|
||||||
<string name="production">Produzione</string>
|
<string name="production">Produzione</string>
|
||||||
|
<string name="prod_ordine_produzione_title_fragment">Picking produzione</string>
|
||||||
|
<string name="prod_ordine_lavorazione_title_fragment">Picking lavorazione</string>
|
||||||
<string name="prod_versamento_materiale_title_fragment">Versamento materiale</string>
|
<string name="prod_versamento_materiale_title_fragment">Versamento materiale</string>
|
||||||
<string name="prod_recupero_materiale_title_fragment">Recupero materiale</string>
|
<string name="prod_recupero_materiale_title_fragment">Recupero materiale</string>
|
||||||
|
|
||||||
|
|||||||
@ -43,6 +43,9 @@
|
|||||||
<color name="green_700">#388E3C</color>
|
<color name="green_700">#388E3C</color>
|
||||||
|
|
||||||
|
|
||||||
|
<color name="gray_100">#F5F5F5</color>
|
||||||
|
<color name="gray_200">#eeeeee</color>
|
||||||
|
<color name="gray_300">#e0e0e0</color>
|
||||||
<color name="gray_400">#BDBDBD</color>
|
<color name="gray_400">#BDBDBD</color>
|
||||||
<color name="gray_500">#9E9E9E</color>
|
<color name="gray_500">#9E9E9E</color>
|
||||||
<color name="gray_600">#757575</color>
|
<color name="gray_600">#757575</color>
|
||||||
|
|||||||
@ -181,6 +181,8 @@
|
|||||||
<string name="terms_of_delivery">Terms of delivery</string>
|
<string name="terms_of_delivery">Terms of delivery</string>
|
||||||
<string name="vehicle">Vehicle</string>
|
<string name="vehicle">Vehicle</string>
|
||||||
<string name="deposit">Deposit</string>
|
<string name="deposit">Deposit</string>
|
||||||
|
<string name="travel_id">Travel ID</string>
|
||||||
|
<string name="agent">Agent</string>
|
||||||
<string name="carrier">Carrier</string>
|
<string name="carrier">Carrier</string>
|
||||||
|
|
||||||
<string name="no_items_found_message">No items found</string>
|
<string name="no_items_found_message">No items found</string>
|
||||||
@ -201,6 +203,7 @@
|
|||||||
<string name="error_multiple_gest">Can\'t load orders of different type</string>
|
<string name="error_multiple_gest">Can\'t load orders of different type</string>
|
||||||
<string name="error_no_gest_found">Can\'t load current order type</string>
|
<string name="error_no_gest_found">Can\'t load current order type</string>
|
||||||
<string name="error_multiple_cod_mdep_ordv">Can\'t load orders of different deposits</string>
|
<string name="error_multiple_cod_mdep_ordv">Can\'t load orders of different deposits</string>
|
||||||
|
<string name="error_multiple_cod_jfas_ordp">The <b>production line</b> will not be saved because you are selecting orders for different productions</string>
|
||||||
|
|
||||||
<string name="recovering_data">Recovering data</string>
|
<string name="recovering_data">Recovering data</string>
|
||||||
<string name="wait_a_moment">Wait a moment</string>
|
<string name="wait_a_moment">Wait a moment</string>
|
||||||
@ -226,6 +229,8 @@
|
|||||||
|
|
||||||
<string name="general">General</string>
|
<string name="general">General</string>
|
||||||
<string name="production">Production</string>
|
<string name="production">Production</string>
|
||||||
|
<string name="prod_ordine_produzione_title_fragment">Production picking</string>
|
||||||
|
<string name="prod_ordine_lavorazione_title_fragment">Manufacture picking</string>
|
||||||
<string name="prod_versamento_materiale_title_fragment">Deposit raw material</string>
|
<string name="prod_versamento_materiale_title_fragment">Deposit raw material</string>
|
||||||
<string name="prod_recupero_materiale_title_fragment">Recover raw material</string>
|
<string name="prod_recupero_materiale_title_fragment">Recover raw material</string>
|
||||||
|
|
||||||
@ -236,5 +241,8 @@
|
|||||||
<string name="not_valid_recipient_error">Invalid recipient</string>
|
<string name="not_valid_recipient_error">Invalid recipient</string>
|
||||||
<string name="title_dynamic_ime">Module Title</string>
|
<string name="title_dynamic_ime">Module Title</string>
|
||||||
|
|
||||||
|
<!-- TODO: Remove or change this placeholder text -->
|
||||||
|
<string name="hello_blank_fragment">Hello blank fragment</string>
|
||||||
|
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@ -40,7 +40,8 @@
|
|||||||
|
|
||||||
<style name="AppTheme.NewMaterial.Text.ToolbarTitle" parent="AppTheme.NewMaterial.Text">
|
<style name="AppTheme.NewMaterial.Text.ToolbarTitle" parent="AppTheme.NewMaterial.Text">
|
||||||
<item name="android:textSize">20sp</item>
|
<item name="android:textSize">20sp</item>
|
||||||
<item name="android:textColor">#5F6368</item>
|
<!--<item name="android:textColor">#5F6368</item>-->
|
||||||
|
<item name="android:textColor">@android:color/black</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="AppTheme.NewMaterial.Text.ListDivider" parent="AppTheme.NewMaterial.Text">
|
<style name="AppTheme.NewMaterial.Text.ListDivider" parent="AppTheme.NewMaterial.Text">
|
||||||
|
|||||||
@ -14,7 +14,7 @@ buildscript {
|
|||||||
google()
|
google()
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.android.tools.build:gradle:3.4.1'
|
classpath 'com.android.tools.build:gradle:3.4.2'
|
||||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||||
classpath 'com.google.gms:google-services:4.2.0'
|
classpath 'com.google.gms:google-services:4.2.0'
|
||||||
classpath 'com.google.firebase:perf-plugin:1.2.1'
|
classpath 'com.google.firebase:perf-plugin:1.2.1'
|
||||||
|
|||||||
@ -8,4 +8,14 @@ public class FiltroOrdiniVendita implements IFiltroOrdiniVendita {
|
|||||||
public boolean shoudShowCodMdepFilter() {
|
public boolean shoudShowCodMdepFilter() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean shoudShowIdViaggioFilter() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean shoudShowAgenteFilter() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,4 +8,14 @@ public class FiltroOrdiniVendita implements IFiltroOrdiniVendita {
|
|||||||
public boolean shoudShowCodMdepFilter() {
|
public boolean shoudShowCodMdepFilter() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean shoudShowIdViaggioFilter() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean shoudShowAgenteFilter() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -40,6 +40,20 @@ public class MenuConfigurationIME extends BaseMenuConfiguration {
|
|||||||
// .setID(it.integry.integrywmsnative.R.id.nav_resi_cliente)
|
// .setID(it.integry.integrywmsnative.R.id.nav_resi_cliente)
|
||||||
// .setTitleText(it.integry.integrywmsnative.R.string.fragment_ultime_consegne_cliente_title)
|
// .setTitleText(it.integry.integrywmsnative.R.string.fragment_ultime_consegne_cliente_title)
|
||||||
// .setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_latest_delivery))
|
// .setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_latest_delivery))
|
||||||
|
)
|
||||||
|
.addGroup(
|
||||||
|
new MenuGroup()
|
||||||
|
.setGroupText(it.integry.integrywmsnative.R.string.production)
|
||||||
|
|
||||||
|
.addItem(new MenuItem()
|
||||||
|
.setID(it.integry.integrywmsnative.R.id.nav_prod_ordine_produzione)
|
||||||
|
.setTitleText(it.integry.integrywmsnative.R.string.prod_ordine_produzione_title_fragment)
|
||||||
|
.setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_accettazione))
|
||||||
|
|
||||||
|
.addItem(new MenuItem()
|
||||||
|
.setID(it.integry.integrywmsnative.R.id.nav_prod_ordine_lavorazione)
|
||||||
|
.setTitleText(it.integry.integrywmsnative.R.string.prod_ordine_lavorazione_title_fragment)
|
||||||
|
.setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_spedizione))
|
||||||
);
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,4 +9,14 @@ public class FiltroOrdiniVendita implements IFiltroOrdiniVendita {
|
|||||||
public boolean shoudShowCodMdepFilter() {
|
public boolean shoudShowCodMdepFilter() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean shoudShowIdViaggioFilter() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean shoudShowAgenteFilter() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user