Separata lista di Spedizione/Lavorazione
This commit is contained in:
parent
d46c172d27
commit
508c722897
2
.idea/runConfigurations/app.xml
generated
2
.idea/runConfigurations/app.xml
generated
@ -6,7 +6,7 @@
|
|||||||
<option name="DEPLOY_AS_INSTANT" value="false" />
|
<option name="DEPLOY_AS_INSTANT" value="false" />
|
||||||
<option name="ARTIFACT_NAME" value="" />
|
<option name="ARTIFACT_NAME" value="" />
|
||||||
<option name="PM_INSTALL_OPTIONS" value="" />
|
<option name="PM_INSTALL_OPTIONS" value="" />
|
||||||
<option name="DYNAMIC_FEATURES_DISABLED_LIST" value="dynamic_ime,dynamic_vgalimenti" />
|
<option name="DYNAMIC_FEATURES_DISABLED_LIST" value="dynamic__base,dynamic_vgalimenti" />
|
||||||
<option name="ACTIVITY_EXTRA_FLAGS" value="" />
|
<option name="ACTIVITY_EXTRA_FLAGS" value="" />
|
||||||
<option name="MODE" value="default_activity" />
|
<option name="MODE" value="default_activity" />
|
||||||
<option name="CLEAR_LOGCAT" value="true" />
|
<option name="CLEAR_LOGCAT" value="true" />
|
||||||
|
|||||||
@ -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,8 +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.ProdOrdineLavorazioneElenco;
|
import it.integry.integrywmsnative.gest.prod_ord_lavorazione.ProdOrdineLavorazioneElencoFragment;
|
||||||
import it.integry.integrywmsnative.gest.prod_ord_produzione.ProdOrdineProduzioneElenco;
|
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;
|
||||||
@ -59,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 {
|
||||||
@ -136,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")
|
||||||
@ -189,12 +173,12 @@ public class MainActivity extends AppCompatActivity
|
|||||||
|
|
||||||
|
|
||||||
case R.id.nav_prod_ordine_produzione:
|
case R.id.nav_prod_ordine_produzione:
|
||||||
fragment = ProdOrdineProduzioneElenco.newInstance();
|
fragment = ProdOrdineProduzioneElencoFragment.newInstance();
|
||||||
this.adaptViewToFragment(fragment);
|
this.adaptViewToFragment(fragment);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case R.id.nav_prod_ordine_lavorazione:
|
case R.id.nav_prod_ordine_lavorazione:
|
||||||
fragment = ProdOrdineLavorazioneElenco.newInstance();
|
fragment = ProdOrdineLavorazioneElencoFragment.newInstance();
|
||||||
this.adaptViewToFragment(fragment);
|
this.adaptViewToFragment(fragment);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|||||||
@ -50,12 +50,12 @@ public class MenuConfiguration extends BaseMenuConfiguration {
|
|||||||
.addItem(new MenuItem()
|
.addItem(new MenuItem()
|
||||||
.setID(R.id.nav_prod_ordine_produzione)
|
.setID(R.id.nav_prod_ordine_produzione)
|
||||||
.setTitleText(R.string.prod_ordine_produzione_title_fragment)
|
.setTitleText(R.string.prod_ordine_produzione_title_fragment)
|
||||||
.setTitleIcon(R.drawable.ic_dashboard_prod_versamento_materiale))
|
.setTitleIcon(R.drawable.ic_dashboard_accettazione))
|
||||||
|
|
||||||
.addItem(new MenuItem()
|
.addItem(new MenuItem()
|
||||||
.setID(R.id.nav_prod_ordine_lavorazione)
|
.setID(R.id.nav_prod_ordine_lavorazione)
|
||||||
.setTitleText(R.string.prod_ordine_lavorazione_title_fragment)
|
.setTitleText(R.string.prod_ordine_lavorazione_title_fragment)
|
||||||
.setTitleIcon(R.drawable.ic_dashboard_prod_versamento_materiale))
|
.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)
|
||||||
|
|||||||
@ -1,60 +0,0 @@
|
|||||||
package it.integry.integrywmsnative.gest.prod_ord_lavorazione;
|
|
||||||
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.os.Bundle;
|
|
||||||
|
|
||||||
import androidx.appcompat.widget.AppCompatTextView;
|
|
||||||
import androidx.databinding.DataBindingUtil;
|
|
||||||
import androidx.fragment.app.Fragment;
|
|
||||||
|
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.View;
|
|
||||||
import android.view.ViewGroup;
|
|
||||||
|
|
||||||
import it.integry.integrywmsnative.R;
|
|
||||||
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
|
||||||
import it.integry.integrywmsnative.databinding.FragmentProdOrdineLavorazioneElencoBinding;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A simple {@link Fragment} subclass.
|
|
||||||
*/
|
|
||||||
public class ProdOrdineLavorazioneElenco extends Fragment implements ITitledFragment {
|
|
||||||
private FragmentProdOrdineLavorazioneElencoBinding mBinding;
|
|
||||||
|
|
||||||
|
|
||||||
public ProdOrdineLavorazioneElenco() {
|
|
||||||
// Required empty public constructor
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static ProdOrdineLavorazioneElenco newInstance() {
|
|
||||||
ProdOrdineLavorazioneElenco fragment = new ProdOrdineLavorazioneElenco();
|
|
||||||
Bundle args = new Bundle();
|
|
||||||
fragment.setArguments(args);
|
|
||||||
return fragment;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
|
|
||||||
// mViewmodel = new ProdOrdineLavorazioneElenco();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
|
||||||
Bundle savedInstanceState) {
|
|
||||||
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_prod_ordine_lavorazione_elenco, container, false);
|
|
||||||
|
|
||||||
|
|
||||||
// init();
|
|
||||||
return mBinding.getRoot();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCreateActionBar(AppCompatTextView titleText, Context context) {
|
|
||||||
titleText.setText(context.getText(R.string.prod_ordine_lavorazione_title_fragment).toString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -29,25 +29,21 @@ 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.IScrollableFragment;
|
import it.integry.integrywmsnative.core.interfaces.IScrollableFragment;
|
||||||
import it.integry.integrywmsnative.core.interfaces.ISearcableFragment;
|
|
||||||
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
||||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||||
import it.integry.integrywmsnative.databinding.FragmentProdOrdineProduzioneElencoBinding;
|
import it.integry.integrywmsnative.databinding.FragmentProdOrdineProduzioneElencoBinding;
|
||||||
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_ordine_inevaso.AccettazioneOrdineInevasoActivity;
|
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.OrdineProduzioneHelper;
|
||||||
import it.integry.integrywmsnative.gest.prod_ord_produzione.core.OrdineProduzioneListAdapter;
|
import it.integry.integrywmsnative.gest.prod_ord_produzione.core.OrdineProduzioneListAdapter;
|
||||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
|
||||||
import it.integry.integrywmsnative.ui.ElevatedToolbar;
|
import it.integry.integrywmsnative.ui.ElevatedToolbar;
|
||||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A simple {@link Fragment} subclass.
|
* A simple {@link Fragment} subclass.
|
||||||
*/
|
*/
|
||||||
public class ProdOrdineProduzioneElenco extends Fragment implements ITitledFragment, IScrollableFragment {
|
public class ProdOrdineProduzioneElencoFragment extends Fragment implements ITitledFragment, IScrollableFragment {
|
||||||
|
|
||||||
private Runnable mOnPreDestroy;
|
private Runnable mOnPreDestroy;
|
||||||
private ElevatedToolbar mToolbar;
|
private ElevatedToolbar mToolbar;
|
||||||
@ -62,13 +58,13 @@ public class ProdOrdineProduzioneElenco extends Fragment implements ITitledFragm
|
|||||||
|
|
||||||
private AppCompatTextView mAppBarTitle;
|
private AppCompatTextView mAppBarTitle;
|
||||||
|
|
||||||
public ProdOrdineProduzioneElenco() {
|
public ProdOrdineProduzioneElencoFragment() {
|
||||||
// Required empty public constructor
|
// Required empty public constructor
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static ProdOrdineProduzioneElenco newInstance() {
|
public static ProdOrdineProduzioneElencoFragment newInstance() {
|
||||||
ProdOrdineProduzioneElenco fragment = new ProdOrdineProduzioneElenco();
|
ProdOrdineProduzioneElencoFragment fragment = new ProdOrdineProduzioneElencoFragment();
|
||||||
Bundle args = new Bundle();
|
Bundle args = new Bundle();
|
||||||
fragment.setArguments(args);
|
fragment.setArguments(args);
|
||||||
return fragment;
|
return fragment;
|
||||||
@ -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);
|
||||||
}
|
}
|
||||||
@ -287,20 +192,11 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IS
|
|||||||
|
|
||||||
if(!allMatch) {
|
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 +206,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<>();
|
||||||
|
|||||||
@ -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);
|
||||||
|
|
||||||
|
|||||||
@ -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>
|
||||||
@ -1,16 +1,90 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<layout>
|
<layout
|
||||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
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_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
tools:context=".gest.prod_ord_lavorazione.ProdOrdineLavorazioneElenco">
|
android:background="@android:color/white">
|
||||||
|
|
||||||
<!-- TODO: Update blank fragment layout -->
|
<RelativeLayout
|
||||||
<TextView
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent">
|
||||||
android:text="@string/hello_blank_fragment" />
|
|
||||||
|
|
||||||
|
<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>
|
</FrameLayout>
|
||||||
</layout>
|
</layout>
|
||||||
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
<data>
|
<data>
|
||||||
<import type="androidx.databinding.ObservableList"/>
|
<import type="androidx.databinding.ObservableList"/>
|
||||||
<variable name="view" type="it.integry.integrywmsnative.gest.prod_ord_produzione.ProdOrdineProduzioneElenco" />
|
<variable name="view" type="it.integry.integrywmsnative.gest.prod_ord_produzione.ProdOrdineProduzioneElencoFragment" />
|
||||||
</data>
|
</data>
|
||||||
|
|
||||||
<FrameLayout
|
<FrameLayout
|
||||||
@ -13,7 +13,7 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:background="@color/full_white"
|
android:background="@color/full_white"
|
||||||
tools:context="it.integry.integrywmsnative.gest.prod_ord_produzione.ProdOrdineProduzioneElenco">
|
tools:context="it.integry.integrywmsnative.gest.prod_ord_produzione.ProdOrdineProduzioneElencoFragment">
|
||||||
|
|
||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|||||||
@ -40,7 +40,21 @@ 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))
|
||||||
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user