[FEAT] Aggiunto in Accettazione da produzione il codice commessa affianco al rif ord e relativo filtro per la ricerca

This commit is contained in:
Giuseppe Scorrano 2019-10-07 15:35:08 +02:00
parent 7c03c84307
commit 8ad044a1b1
27 changed files with 788 additions and 110 deletions

Binary file not shown.

View File

@ -37,8 +37,8 @@ import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
import it.integry.integrywmsnative.gest.login.LoginActivity;
import it.integry.integrywmsnative.gest.main.MainFragment;
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_pick_ord_lavorazione.ProdOrdineLavorazioneElencoFragment;
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.ProdOrdineProduzioneElencoFragment;
import it.integry.integrywmsnative.gest.prod_recupero_materiale.ProdRecuperoMaterialeFragment;
import it.integry.integrywmsnative.gest.prod_versamento_materiale.ProdVersamentoMaterialeFragment;
import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeFragment;

View File

@ -42,18 +42,28 @@ public class UtilityLogger {
String message = UtilityResources.readRawTextFile(R.raw.error_mail);
message = message.replace("#exception_name#", ex.getMessage());
message = message.replace("__APP_NAME__", UtilityResources.getString(R.string.app_name));
message = message.replace("__APP_PACKAGE__", UtilityResources.getPackageName());
String appVersion = UtilityResources.getAppVersion();
message = message.replace("__APP_VERSION__", appVersion == null ? "" : appVersion);
message = message.replace("__APP_VERSION_CODE__", "" + UtilityResources.getAppVersionCode());
message = message.replaceAll("__ERROR_TITLE__", ex.getMessage());
message = message.replaceAll("__ERROR_DETAIL__", additionalText == null ? "" : additionalText);
StringWriter sw = new StringWriter();
ex.printStackTrace(new PrintWriter(sw));
if (additionalText != null) sw.append("\n").append(additionalText);
message = message.replace("#stacktrace#", sw.toString());
message = message.replace("__ERROR_STACKTRACE__", sw.toString());
String currentAzienda = UtilityString.isNullOrEmpty(SettingsManager.i().userSession.profileDB) ? "" : SettingsManager.i().userSession.profileDB;
message = message.replace("#azienda_nome#", currentAzienda);
message = message.replace("__CUSTOMER_NAME__", currentAzienda);
message = message.replace("#current_date#", UtilityDate.formatDate(UtilityDate.getDateInstance(), UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH));
message = message.replace("__ERROR_DATE__", UtilityDate.formatDate(UtilityDate.getDateInstance(), UtilityDate.COMMONS_DATE_FORMATS.DMY_TIME_SLASH));
SystemRESTConsumer.sendErrorLogMail(message, onComplete, onFailed);
}

View File

@ -1,7 +1,11 @@
package it.integry.integrywmsnative.core.utility;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import androidx.annotation.RawRes;
import androidx.annotation.StringRes;
import java.io.BufferedReader;
import java.io.IOException;
@ -35,4 +39,34 @@ public class UtilityResources {
return text.toString();
}
public static String getString(@StringRes int resId) {
return mContext.getResources().getString(resId);
}
public static String getPackageName() {
return mContext.getApplicationContext().getPackageName();
}
public static String getAppVersion() {
PackageInfo pInfo = null;
try {
pInfo = mContext.getPackageManager().getPackageInfo(getPackageName(), 0);
return pInfo.versionName;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return null;
}
public static int getAppVersionCode() {
PackageInfo pInfo = null;
try {
pInfo = mContext.getPackageManager().getPackageInfo(getPackageName(), 0);
return pInfo.versionCode;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return 0;
}
}

View File

@ -57,7 +57,7 @@ public class OrdineAccettazioneInevasoDTO {
return this;
}
public int getNumero() {
public Integer getNumero() {
return numero;
}

View File

@ -1,8 +1,7 @@
package it.integry.integrywmsnative.gest.prod_ord_produzione;
package it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
@ -26,6 +25,7 @@ import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.interfaces.IFilterableFragment;
import it.integry.integrywmsnative.core.rest.CommonRESTException;
import it.integry.integrywmsnative.core.data_cache.DataCache;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
@ -36,15 +36,16 @@ import it.integry.integrywmsnative.databinding.FragmentProdOrdineProduzioneElenc
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.gest.prod_accettazione_ord_produzione.core.OrdineProduzioneHelper;
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.core.OrdineProduzioneListAdapter;
import it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.dialog.DialogOrdineProduzioneFiltroAvanzato;
import it.integry.integrywmsnative.ui.ElevatedToolbar;
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
/**
* A simple {@link Fragment} subclass.
*/
public class ProdOrdineProduzioneElencoFragment extends Fragment implements ITitledFragment, IScrollableFragment {
public class ProdOrdineProduzioneElencoFragment extends Fragment implements ITitledFragment, IScrollableFragment, IFilterableFragment {
private Runnable mOnPreDestroy;
private ElevatedToolbar mToolbar;
@ -59,6 +60,9 @@ public class ProdOrdineProduzioneElencoFragment extends Fragment implements ITit
private AppCompatTextView mAppBarTitle;
private DialogOrdineProduzioneFiltroAvanzato.DialogOrdineProduzioneFiltroAvanzatoViewModel mAppliedFilterViewModel;
public ProdOrdineProduzioneElencoFragment() {
// Required empty public constructor
}
@ -237,4 +241,27 @@ public class ProdOrdineProduzioneElencoFragment extends Fragment implements ITit
}
@Override
public void onFilterClick() {
DialogOrdineProduzioneFiltroAvanzato.make(getActivity(), mOriginalOrderList, mAppliedFilterViewModel, (filteredOrderList, filter) -> {
mAppliedFilterViewModel = filter;
if(filteredOrderList != null){
refreshOrdini(filteredOrderList);
refreshRecyclerView();
}
}).show();
}
public void refreshOrdini(List<OrdineAccettazioneInevasoDTO> ordini){
mRenderedOrderList.clear();
mRenderedOrderList.addAll(ordini);
}
}

View File

@ -1,4 +1,4 @@
package it.integry.integrywmsnative.gest.prod_ord_produzione.core;
package it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.core;
import android.content.Context;
import android.text.TextUtils;

View File

@ -1,11 +1,10 @@
package it.integry.integrywmsnative.gest.prod_ord_produzione.core;
package it.integry.integrywmsnative.gest.prod_accettazione_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;
@ -16,7 +15,6 @@ 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;
@ -24,11 +22,7 @@ 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 {
@ -143,10 +137,14 @@ public class OrdineProduzioneListAdapter extends SectionedRecyclerViewAdapter<Or
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("");
// if (!UtilityString.isNullOrEmpty(cliente.getDataConsS())) {
// binding.ordineProduzioneMainListGroupClientiDatacons.setText(UtilityDate.formatDate(cliente.getDataConsD(), UtilityDate.COMMONS_DATE_FORMATS.DMY_SLASH));
// } else {
// binding.ordineProduzioneMainListGroupClientiDatacons.setText("");
// }
if (!UtilityString.isNullOrEmpty(cliente.getCodJcom())) {
binding.ordineProduzioneMainListGroupClientiDatacons.setText(cliente.getCodJcom());
}
holder.binding.ordineProduzioneMainListGroupItemContainerClientiOrd.addView(binding.getRoot());

View File

@ -0,0 +1,224 @@
package it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.dialog;
import android.app.AlertDialog;
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.view.LayoutInflater;
import android.view.WindowManager;
import android.widget.ArrayAdapter;
import android.widget.MultiAutoCompleteTextView;
import androidx.databinding.DataBindingUtil;
import com.annimon.stream.Stream;
import com.annimon.stream.function.Predicate;
import java.util.List;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.di.BindableString;
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.DialogOrdineProduzioneFiltroAvanzatoBinding;
import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneInevasoDTO;
public class DialogOrdineProduzioneFiltroAvanzato {
private AlertDialog currentAlert;
private Context currentContext;
private RunnableArgss<List<OrdineAccettazioneInevasoDTO>, DialogOrdineProduzioneFiltroAvanzatoViewModel> currentOnFilterDone;
private List<OrdineAccettazioneInevasoDTO> currentOrderList;
private List<OrdineAccettazioneInevasoDTO> currentFilteredOrderList;
private ArrayAdapter<String> arrayAdapterNumOrds;
private ArrayAdapter<String> arrayAdapterCodJcoms;
private Predicate<OrdineAccettazioneInevasoDTO> currentNumOrdsPredicate = null;
private Predicate<OrdineAccettazioneInevasoDTO> currentCodJcomsPredicate = null;
public static AlertDialog make(final Context context,
final List<OrdineAccettazioneInevasoDTO> ordersList,
DialogOrdineProduzioneFiltroAvanzatoViewModel baseViewModel,
RunnableArgss<List<OrdineAccettazioneInevasoDTO>, DialogOrdineProduzioneFiltroAvanzatoViewModel> onDismiss) {
return new DialogOrdineProduzioneFiltroAvanzato(context, ordersList, baseViewModel, onDismiss).currentAlert;
}
private DialogOrdineProduzioneFiltroAvanzato(final Context context, final List<OrdineAccettazioneInevasoDTO> ordersList, DialogOrdineProduzioneFiltroAvanzatoViewModel baseViewModel, RunnableArgss<List<OrdineAccettazioneInevasoDTO>, DialogOrdineProduzioneFiltroAvanzatoViewModel> onDismiss) {
currentContext = context;
currentOrderList = ordersList;
currentOnFilterDone = onDismiss;
DialogOrdineProduzioneFiltroAvanzatoViewModel viewModel = baseViewModel != null ? baseViewModel : new DialogOrdineProduzioneFiltroAvanzatoViewModel();
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
DialogOrdineProduzioneFiltroAvanzatoBinding binding = DataBindingUtil.inflate(inflater, R.layout.dialog_ordine_produzione_filtro_avanzato, null, false);
final AlertDialog.Builder alertDialog = new AlertDialog.Builder(context)
.setView(binding.getRoot());
binding.setViewmodel(viewModel);
initViewModelNew(viewModel, binding);
initView(binding, viewModel);
currentAlert = alertDialog.create();
currentAlert.setCanceledOnTouchOutside(false);
currentAlert.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
currentAlert.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
binding.positiveBtn.setOnClickListener(view -> {
currentAlert.dismiss();
});
binding.neutralBtn.setOnClickListener(view -> {
resetAll(viewModel);
});
currentAlert.setOnDismissListener(dialogInterface -> {
if(currentOnFilterDone != null) currentOnFilterDone.run(currentFilteredOrderList, viewModel);
});
refreshList();
}
private void resetAll(DialogOrdineProduzioneFiltroAvanzatoViewModel viewModel) {
viewModel.numOrds.set(null);
viewModel.codJcoms.set(null);
}
private void initView(DialogOrdineProduzioneFiltroAvanzatoBinding bindings, DialogOrdineProduzioneFiltroAvanzatoViewModel viewModel) {
arrayAdapterNumOrds = new ArrayAdapter(currentContext, R.layout.dialog_vendita_filtro_avanzato__single_item);
arrayAdapterNumOrds.addAll(getAvailableNumOrds(false));
bindings.filledExposedDropdownNumOrds.setAdapter(arrayAdapterNumOrds);
bindings.filledExposedDropdownNumOrds.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
arrayAdapterCodJcoms = new ArrayAdapter(currentContext, R.layout.dialog_vendita_filtro_avanzato__single_item);
arrayAdapterCodJcoms.addAll(getAvailableCodJcoms(false));
bindings.filledExposedDropdownCodJcoms.setAdapter(arrayAdapterCodJcoms);
bindings.filledExposedDropdownCodJcoms.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
viewModel.numOrds.refresh();
}
private void initViewModelNew(DialogOrdineProduzioneFiltroAvanzatoViewModel viewModel, DialogOrdineProduzioneFiltroAvanzatoBinding bindings) {
BindableString.registerListener(viewModel.numOrds, value -> {
if(UtilityString.isNullOrEmpty(value)) currentNumOrdsPredicate = null;
else {
String[] numOrdsSplitted = value.split("[,\\ ]");
try{
List<Integer> numOrdsInteger = Stream.of(numOrdsSplitted)
.filter(x -> !UtilityString.isNullOrEmpty(x))
.map(Integer::parseInt).toList();
currentNumOrdsPredicate = o -> numOrdsInteger.contains(o.getNumero());
} catch (NumberFormatException ex) {
currentNumOrdsPredicate = null;
}
}
refreshList();
arrayAdapterCodJcoms.clear();
arrayAdapterCodJcoms.addAll(getAvailableCodJcoms(true));
});
BindableString.registerListener(viewModel.codJcoms, value -> {
if(UtilityString.isNullOrEmpty(value)) currentCodJcomsPredicate = null;
else {
String[] codJcomsSplitted = value.split("[,\\ ]");
try{
List<String> codJcoms = Stream.of(codJcomsSplitted)
.filter(x -> !UtilityString.isNullOrEmpty(x)).toList();
currentCodJcomsPredicate = o -> codJcoms.contains(o.getCodJcom());
} catch (NumberFormatException ex) {
currentCodJcomsPredicate = null;
}
}
refreshList();
arrayAdapterNumOrds.clear();
arrayAdapterNumOrds.addAll(getAvailableNumOrds(true));
});
}
private List<String> getAvailableNumOrds(boolean skipRecalc) {
if(currentCodJcomsPredicate == null){
currentFilteredOrderList = currentOrderList;
} else
if(!skipRecalc){
Stream<OrdineAccettazioneInevasoDTO> tmpStream = Stream.of(currentOrderList)
.filter(x ->
(currentCodJcomsPredicate == null || (currentCodJcomsPredicate.test(x)))
);
currentFilteredOrderList = tmpStream.toList();
}
return Stream.of(currentFilteredOrderList).map(x -> x.getNumero().toString()).distinct().withoutNulls().toList();
}
private List<String> getAvailableCodJcoms(boolean skipRecalc) {
if(currentNumOrdsPredicate == null){
currentFilteredOrderList = currentOrderList;
} else
if(!skipRecalc){
Stream<OrdineAccettazioneInevasoDTO> tmpStream = Stream.of(currentOrderList)
.filter(x ->
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x)))
);
currentFilteredOrderList = tmpStream.toList();
}
return Stream.of(currentFilteredOrderList).map(OrdineAccettazioneInevasoDTO::getCodJcom).distinct().withoutNulls().toList();
}
private void refreshList() {
if (currentNumOrdsPredicate == null && currentCodJcomsPredicate == null) {
currentFilteredOrderList = currentOrderList;
} else {
Stream<OrdineAccettazioneInevasoDTO> tmpStream = Stream.of(currentOrderList)
.filter(x ->
(currentNumOrdsPredicate == null || (currentNumOrdsPredicate.test(x))) &&
(currentCodJcomsPredicate == null || (currentCodJcomsPredicate.test(x)))
);
currentFilteredOrderList = tmpStream.toList();
}
}
public class DialogOrdineProduzioneFiltroAvanzatoViewModel {
public BindableString numOrds = new BindableString();
public BindableString codJcoms = new BindableString();
}
}

View File

@ -1,8 +1,7 @@
package it.integry.integrywmsnative.gest.prod_ord_lavorazione;
package it.integry.integrywmsnative.gest.prod_pick_ord_lavorazione;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
@ -36,8 +35,8 @@ import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityProgress;
import it.integry.integrywmsnative.core.utility.UtilityToast;
import it.integry.integrywmsnative.databinding.FragmentProdOrdineLavorazioneElencoBinding;
import it.integry.integrywmsnative.gest.prod_ord_lavorazione.core.ProdOrdineLavorazioneHelper;
import it.integry.integrywmsnative.gest.prod_ord_lavorazione.core.ProdOrdineLavorazioneListAdapter;
import it.integry.integrywmsnative.gest.prod_pick_ord_lavorazione.core.ProdOrdineLavorazioneHelper;
import it.integry.integrywmsnative.gest.prod_pick_ord_lavorazione.core.ProdOrdineLavorazioneListAdapter;
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTO;
import it.integry.integrywmsnative.gest.vendita_ordine_inevaso.VenditaOrdineInevasoActivity;

View File

@ -1,4 +1,4 @@
package it.integry.integrywmsnative.gest.prod_ord_lavorazione.core;
package it.integry.integrywmsnative.gest.prod_pick_ord_lavorazione.core;
import android.content.Context;
import android.text.TextUtils;

View File

@ -1,11 +1,10 @@
package it.integry.integrywmsnative.gest.prod_ord_lavorazione.core;
package it.integry.integrywmsnative.gest.prod_pick_ord_lavorazione.core;
import android.content.Context;
import android.text.Html;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import androidx.core.content.res.ResourcesCompat;
import androidx.databinding.DataBindingUtil;
import androidx.databinding.Observable;
import androidx.recyclerview.widget.RecyclerView;
@ -19,12 +18,9 @@ import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.di.BindableBoolean;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.FragmentProdOrdineLavorazioneListGroupModelBinding;
import it.integry.integrywmsnative.databinding.FragmentProdOrdineLavorazioneListModelBinding;
import it.integry.integrywmsnative.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;
@ -128,6 +124,10 @@ public class ProdOrdineLavorazioneListAdapter extends SectionedRecyclerViewAdapt
holder.binding.venditaMainListGroupItemContainerDetailOrd.setText(ordine.getRifOrd());
if(!UtilityString.isNullOrEmpty(ordine.getCodJcom())) {
// holder.binding.ordineLavorazioneMainListGroupItemContainerTestataCodJcom.setText(ordine.getCodJcom());
}
holder.binding.setCheckboxValue(ordine.selected);
holder.binding.getRoot().setOnClickListener(v -> {

View File

@ -204,6 +204,7 @@ public class DialogVenditaFiltroAvanzato {
}
private void initViewModelNew(DialogVenditaFiltroAvanzatoViewModel viewModel, DialogVenditaFiltroAvanzatoBinding bindings) {
BindableString.registerListener(viewModel.idViaggio, value -> {
if(UtilityString.isNullOrEmpty(value)) currentIdViaggioPredicate = null;

View File

@ -0,0 +1,143 @@
<?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>
<variable
name="viewmodel"
type="it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.dialog.DialogOrdineProduzioneFiltroAvanzato.DialogOrdineProduzioneFiltroAvanzatoViewModel" />
</data>
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardCornerRadius="12dp"
app:cardElevation="0dp">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="16dp">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/title_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/TextViewMaterial.DialogTitle"
android:text="@string/dialog_vendita_filtro_avanzato"
android:gravity="center_horizontal"
android:layout_marginBottom="12dp"/>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/input_num_ords"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/num_ords">
<androidx.appcompat.widget.AppCompatMultiAutoCompleteTextView
android:id="@+id/filled_exposed_dropdown_num_ords"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="number|text"
android:singleLine="true"
android:ellipsize="end"
app:binding="@{viewmodel.numOrds}"/>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/input_cod_jcoms"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/order_cod_jcoms">
<androidx.appcompat.widget.AppCompatMultiAutoCompleteTextView
android:id="@+id/filled_exposed_dropdown_cod_jcoms"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:singleLine="true"
android:ellipsize="end"
app:binding="@{viewmodel.codJcoms}"/>
</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>
</ScrollView>
</androidx.cardview.widget.CardView>
</layout>

View File

@ -36,11 +36,12 @@
android:paddingTop="12dp"
android:paddingBottom="12dp">
<TextView
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="NESSUNA CONNESSIONE DISPONIBILE, RIPROVA"
android:textColor="@color/white" />
android:textColor="@color/white"
style="@style/AppTheme.NewMaterial.Text.Small"/>
</LinearLayout>
@ -152,7 +153,7 @@
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
<androidx.appcompat.widget.AppCompatTextView
style="@style/AppTheme.NewMaterial.Text.TextBoxDashboard"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@ -170,7 +171,7 @@
android:indeterminateDrawable="@drawable/curved_progress_bar" />
<TextView
<androidx.appcompat.widget.AppCompatTextView
style="@style/AppTheme.NewMaterial.Text.TextBoxLittleDashboard"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@ -15,7 +15,7 @@
app:layout_constraintGuide_percent="0.5"/>
<TextView
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/general_dashboard_group_title"
style="@style/AppTheme.NewMaterial.Text.TextBoxGroupTitleDashboard"
android:layout_width="match_parent"

View File

@ -36,7 +36,8 @@
android:textAllCaps="true"
android:textColor="@color/gray_700"
android:gravity="center_horizontal"
android:textStyle="bold" />
android:textStyle="bold"
style="@style/AppTheme.NewMaterial.Text.Small"/>
</LinearLayout>

View File

@ -41,35 +41,48 @@
android:layout_alignParentEnd="true"
android:layout_toEndOf="@id/ordine_lavorazione_main_list_group_item_container_checkBox">
<TextView
<androidx.appcompat.widget.AppCompatTextView
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"
tools:text="Cons 07 nov 2018"
android:layout_alignParentEnd="true"
android:textColor="#000" />
android:textColor="#000"
style="@style/AppTheme.NewMaterial.Text.Small" />
<TextView
<androidx.appcompat.widget.AppCompatTextView
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"
tools:text="Ord. Ven. 39 del 27 ott 2017"
android:ellipsize="end"
android:maxLines="1"
android:textColor="#000"
android:layout_alignParentStart="true"
style="@style/AppTheme.NewMaterial.Text.Small"
android:layout_toStartOf="@id/ordine_lavorazione_main_list_group_item_container_testata_data_cons"/>
<TextView
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/ordine_lavorazione_main_list_group_item_container_testata_cod_jcom"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="Cod Jcom"
android:layout_alignParentEnd="true"
android:layout_below="@id/ordine_lavorazione_main_list_group_item_container_testata_data_cons"
style="@style/AppTheme.NewMaterial.Text.Small" />
<androidx.appcompat.widget.AppCompatTextView
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" />
tools:text="TextView"
style="@style/AppTheme.NewMaterial.Text.Small"
android:layout_below="@+id/ordine_lavorazione_main_list_group_item_container_testata_ord"
android:layout_toStartOf="@id/ordine_lavorazione_main_list_group_item_container_testata_cod_jcom"/>
</RelativeLayout>
</RelativeLayout>

View File

@ -36,13 +36,13 @@
android:checked="true"
android:enabled="false" />
<TextView
<androidx.appcompat.widget.AppCompatTextView
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"
style="@style/AppTheme.NewMaterial.Text.Medium"
tools:text="NOME GRUPPO"/>
</LinearLayout>

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<layout>
<layout xmlns:tools="http://schemas.android.com/tools">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/ordine_produzione_main_list_group_clienti_comm"
android:layout_width="match_parent"
android:layout_height="wrap_content"
@ -12,14 +12,16 @@
android:maxLines="1"
android:ellipsize="end"
android:paddingEnd="6dp"
android:text="TextView" />
style="@style/AppTheme.NewMaterial.Text.Small"
tools:text="TextView" />
<TextView
<androidx.appcompat.widget.AppCompatTextView
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" />
style="@style/AppTheme.NewMaterial.Text.Small"
tools:text="TextView" />
</RelativeLayout>
</layout>

View File

@ -29,12 +29,13 @@
android:layout_height="wrap_content"
android:layout_toEndOf="@id/ordine_produzione_main_list_group_item_container_checkBox">
<TextView
<androidx.appcompat.widget.AppCompatTextView
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" />
tools:text="Ord. Prod. 39 del 27 ott 2017"
android:textColor="#000"
style="@style/AppTheme.NewMaterial.Text.Small"/>
<LinearLayout

View File

@ -36,13 +36,13 @@
android:checked="true"
android:enabled="false" />
<TextView
<androidx.appcompat.widget.AppCompatTextView
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"
style="@style/AppTheme.NewMaterial.Text.Medium"
tools:text="NOME GRUPPO"/>
</LinearLayout>

View File

@ -4,7 +4,7 @@
<data>
<import type="androidx.databinding.ObservableList"/>
<variable name="view" type="it.integry.integrywmsnative.gest.prod_ord_produzione.ProdOrdineProduzioneElencoFragment" />
<variable name="view" type="it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.ProdOrdineProduzioneElencoFragment" />
</data>
<FrameLayout
@ -13,7 +13,7 @@
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">
tools:context="it.integry.integrywmsnative.gest.prod_accettazione_ord_produzione.ProdOrdineProduzioneElencoFragment">
<RelativeLayout
android:layout_width="match_parent"

View File

@ -1,65 +1,287 @@
<html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style>
@import url('https://fonts.googleapis.com/css?family=Open+Sans');
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width">
<title>*|Mail peppino|*</title>
body {
/*background-color: red;*/
font-family: 'Open Sans','Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
<meta property="og:title" content="*|MC:SUBJECT|*">
<style type="text/css">
@import url('https://fonts.googleapis.com/css?family=Open+Sans');
.ExternalClass {
width: 100%;
}
.ExternalClass,
.ExternalClass p,
.ExternalClass span,
.ExternalClass font,
.ExternalClass td,
.ExternalClass div {
line-height: 100%;
}
body {
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
text-size-adjust: 100%;
margin: 0;
padding: 0;
}
table {
border-spacing: 0;
border-collapse: collapse;
}
table td {
border-collapse: collapse;
}
img {
-ms-interpolation-mode: bicubic;
display: block;
outline: none;
text-decoration: none;
}
a img {
border: none;
}
p {
margin: 0;
padding: 0;
margin-bottom: 0;
}
h1,
h2,
h3,
h4,
h5,
h6 {
color: #333333;
line-height: 100%;
}
body,
#body_style {
width: 100%!important;
min-height: 1000px;
color: #333333;
background: #fff;
font-family: 'Open Sans','Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
font-size: 13px;
line-height: 1.4;
}
a {
color: #114eb1;
text-decoration: none;
}
a:link {
color: #114eb1;
text-decoration: none;
}
a:visited {
color: #183082;
text-decoration: none;
}
a:focus {
color: #0066ff!important;
}
a:hover {
color: #0066ff!important;
}
a[href^="tel"],
a[href^="sms"] {
text-decoration: none;
color: #333333;
pointer-events: none;
cursor: default;
}
.mobile_link a[href^="tel"],
.mobile_link a[href^="sms"] {
text-decoration: default;
color: #6e5c4f!important;
pointer-events: auto;
cursor: default;
}
@media only screen and (max-width: 639px) {
.hide {
display: none!important;
}
body > div{
/*display: table;*/
width: 100%;
height: 100%;
.table {
width: 320px!important;
}
</style>
.innertable {
width: 280px!important;
}
.heroimage {
width: 280px!important;
height: 100px!important;
}
.shadow {
width: 280px!important;
height: 4px!important;
}
.collapse-cell {
width: 320px!important;
}
.social-media img {
float: left!important;
margin: 0 1em 0 0 important;
}
}
</style>
</head>
<body style="background-color:#FF5252; font-family: 'Open Sans','Segoe UI', Tahoma, Geneva, Verdana, sans-serif;">
<body style="width:100%!important;min-height:1000px;color:#333333;background: #fff;font-family: 'Open Sans','Segoe UI', Tahoma, Geneva, Verdana, sans-serif;font-size:13px;line-height:1.4;" alink="#114eb1" link="#114eb1" bgcolor="#e0dbcf" text="#333333">
<!--[if mso]>
<v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="http://" style="width:900px; height: 800px;" arcsize="2%" stroke="f" fillcolor="#FFFFFF">
<w:anchorlock/>
<![endif]-->
<div href="http://"
style="background-color:#FFFFFF;border-radius:4px;display:inline-block;-webkit-text-size-adjust:none;">
<div id="body_style">
<table cellpadding="0" cellspacing="0" border="0" align="center" style="width:100%!important;margin:0;padding:0;font-family: 'Open Sans';">
<tbody>
<tr bgcolor="#fff">
<td>
<div id="card" style="margin-left: auto; margin-right: auto; margin: 16px;" >
<table width="600" cellpadding="0" cellspacing="0" border="0" align="center" class="table" style="
border: solid 1px #d3d3d3;
">
<img style="margin-left: 8px;" src="http://www.integry.it/integry-resources/images/Image/immagini-struttura/integry.png" style="margin-top: 8px;" />
<tbody>
<hr style="color: #95a5a6; margin-top: 14px; margin-bottom: 14px; width: 96%;" size="1" noshade />
<tr>
<td>
<table bgcolor="#fff" width="100%" cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr style="text-align: center;">
<td width="100%" style="
padding-top: 24px;
padding-bottom: 24px;
">
<center>
<img alt="" height="60" src="https://www.integry.it/assets/common/logo/logo_integry_completo_1024w.png" />
</center>
</td>
</tr>
</tbody>
</table>
</td>
<p style="margin-left: 24px;font-size: 2em;">
Attenzione!
</p>
<p style="margin-left: 24px;">
Si &egrave; verificato un errore con eccezione <b>#exception_name#</b>.<br />
<br /><br />
Di seguito lo stacktrace dell'eccezione:<br />
<br />
<small>#stacktrace#</small>
</p><br />
<p style="margin-left: 24px;">
(#azienda_nome#)
</p>
</tr>
<p style="margin-left: 24px; font-size: .75em; color: #7f8c8d;">
#current_date#
</p>
<tr style="
background: #319be5;
">
<td style="
padding: 24px;
line-height: 1.6;
">
<span style="
color: white;
opacity: 0.7;
">__APP_NAME__</span>
<span style="
color: white;
opacity: 0.7;
font-size: 20px;
line-height: 0.2;
">·</span>
<span style="
color: white;
opacity: 0.7;
">__APP_PACKAGE__ v__APP_VERSION__ (__APP_VERSION_CODE__)</span>
<br><span style="
color: white;
font-size: 24px;
">Nuova segnalazione (__CUSTOMER_NAME__)</span>
</td>
</tr>
<tr style="
background: #ebeff2;
">
<td style="
padding: 32px 0 0px 0;
">
<center style="padding: 0 100px 0 100px;">
<table>
<tbody style="">
<tr style="
">
<td style="
padding: 24px;
color: white;
font-size: 20px;
background: #fab301;
border-radius: 5px 5px 0 0;
">
<center>
<img src="https://www.integry.it/images/exclamation.png" width="80" height="80" />
<br> Dai forza! &Egrave; stato riscontrato un problema fatale: __ERROR_TITLE__
</center>
</td>
</tr>
<tr style="
">
<td style="
padding: 20px 15px;
border: solid 1px #d3d3d3;
background: white;
">
<span style="
font-weight: bold;
">__ERROR_DETAIL__ (__ERROR_DATE__)</span>
<pre>__ERROR_STACKTRACE__</pre>
</td>
</tr>
</tbody>
</table>
</center>
<hr style="
border: solid 0.5px #d3d3d3;
margin-top: 24px;
">
</td>
</tr>
<tr style="
background: #ebeff2;
">
<td style="
padding: 24px;
">
<center>
<span style="
color: #7c7d81;
font-size: small;
font-weight: bold;
">Questa email &egrave; solo una notifica riguardo un errore che si &egrave; verificatosi in un progetto</span>
</center>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<!--[if mso]>
</v:roundrect>
<![endif]-->
</body>
</html>

View File

@ -175,6 +175,7 @@
<string name="no_supplier_selected">Seleziona un fornitore prima</string>
<string name="num_ords">Numero ordine</string>
<string name="order_cod_jcoms">Commessa</string>
<string name="customer">Cliente</string>
<string name="recipient">Destinatario</string>
<string name="ship_date">Data consegna</string>

View File

@ -178,6 +178,7 @@
<string name="num_ords">Orders number</string>
<string name="order_cod_jcoms">Orders job</string>
<string name="customer">Customer</string>
<string name="recipient">Recipient</string>
<string name="ship_date">Ship date</string>

View File

@ -14,7 +14,7 @@ buildscript {
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.0'
classpath 'com.android.tools.build:gradle:3.5.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.2.0'
classpath 'com.google.firebase:perf-plugin:1.2.1'