Completata finestra di info sulle righe in picking uscita

This commit is contained in:
Giuseppe Scorrano 2021-03-03 10:26:20 +01:00
parent 0133a9232f
commit 1020a31b89
66 changed files with 1153 additions and 393 deletions

View File

@ -2,7 +2,6 @@ apply plugin: 'com.android.application'
apply plugin: 'com.google.firebase.firebase-perf' apply plugin: 'com.google.firebase.firebase-perf'
apply plugin: 'com.google.firebase.crashlytics' apply plugin: 'com.google.firebase.crashlytics'
apply plugin: 'kotlin-android' apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'com.google.gms.google-services' apply plugin: 'com.google.gms.google-services'
android { android {
@ -97,7 +96,7 @@ dependencies {
implementation 'com.google.firebase:firebase-crash' implementation 'com.google.firebase:firebase-crash'
implementation 'com.google.firebase:firebase-crashlytics' implementation 'com.google.firebase:firebase-crashlytics'
implementation 'com.google.firebase:firebase-perf' implementation 'com.google.firebase:firebase-perf'
implementation 'com.google.android.gms:play-services-basement:17.5.0' implementation 'com.google.android.gms:play-services-basement:17.6.0'
implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'androidx.appcompat:appcompat:1.2.0'
@ -111,15 +110,13 @@ dependencies {
implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0' implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation 'com.annimon:stream:1.2.1' implementation 'com.annimon:stream:1.2.1'
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.2.0' implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.0'
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
implementation 'androidx.lifecycle:lifecycle-common-java8:2.2.0' implementation 'androidx.lifecycle:lifecycle-common-java8:2.3.0'
implementation 'org.apache.commons:commons-text:1.9' implementation 'org.apache.commons:commons-text:1.9'
//MVVM //MVVM
def dagger2_version = '2.29.1' def dagger2_version = '2.29.1'
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
implementation "androidx.lifecycle:lifecycle-common-java8:2.2.0"
api "com.google.dagger:dagger:$dagger2_version" api "com.google.dagger:dagger:$dagger2_version"
annotationProcessor "com.google.dagger:dagger-compiler:$dagger2_version" annotationProcessor "com.google.dagger:dagger-compiler:$dagger2_version"
api "com.google.dagger:dagger-android:$dagger2_version" api "com.google.dagger:dagger-android:$dagger2_version"
@ -139,7 +136,7 @@ dependencies {
implementation 'com.github.pedromassango:doubleClick:3.0' implementation 'com.github.pedromassango:doubleClick:3.0'
//SQLite ROOM //SQLite ROOM
def room_version = "2.2.5" def room_version = "2.2.6"
implementation "androidx.room:room-runtime:$room_version" implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version" annotationProcessor "androidx.room:room-compiler:$room_version"

View File

@ -17,18 +17,14 @@
android:roundIcon="@mipmap/ic_launcher_round" android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/AppTheme" android:theme="@style/AppTheme"
android:usesCleartextTraffic="true"> android:usesCleartextTraffic="true"
android:fullBackupContent="@xml/backup_descriptor">
<activity <activity
android:name=".gest.spedizione.SpedizioneActivity" android:name=".gest.spedizione.SpedizioneActivity"
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:theme="@style/Light" android:theme="@style/Light"
android:windowSoftInputMode="adjustNothing" /> android:windowSoftInputMode="adjustNothing" />
<activity android:name=".gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditActivity" /> <activity android:name=".gest.pv_ordine_acquisto_edit.PVOrdineAcquistoEditActivity" />
<activity
android:name=".gest.picking_resi_OLD.PickingResiActivity"
android:label="@string/activity_ultime_consegne_title"
android:screenOrientation="portrait"
android:theme="@style/Light" />
<activity <activity
android:name=".gest.picking_resi.PickingResiActivity" android:name=".gest.picking_resi.PickingResiActivity"
android:screenOrientation="portrait" android:screenOrientation="portrait"

View File

@ -25,6 +25,8 @@ import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeComp
import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeModule; import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeModule;
import it.integry.integrywmsnative.gest.spedizione.SpedizioneComponent; import it.integry.integrywmsnative.gest.spedizione.SpedizioneComponent;
import it.integry.integrywmsnative.gest.spedizione.SpedizioneModule; import it.integry.integrywmsnative.gest.spedizione.SpedizioneModule;
import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.prod_fabbisogno_linee_prod.DialogRowInfoProdFabbisognoLineeProdComponent;
import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.prod_fabbisogno_linee_prod.DialogRowInfoProdFabbisognoLineeProdModule;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2Component; import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2Component;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2Module; import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2Module;
import it.integry.integrywmsnative.view.dialogs.scan_art.DialogScanArtComponent; import it.integry.integrywmsnative.view.dialogs.scan_art.DialogScanArtComponent;
@ -47,7 +49,8 @@ import it.integry.integrywmsnative.view.dialogs.scan_art.DialogScanArtModule;
DialogInputQuantityV2Module.class, DialogInputQuantityV2Module.class,
DialogScanArtModule.class, DialogScanArtModule.class,
ProdFabbisognoLineeProdModule.class, ProdFabbisognoLineeProdModule.class,
DialogAskMagazzinoProssimitaModule.class}) DialogAskMagazzinoProssimitaModule.class,
DialogRowInfoProdFabbisognoLineeProdModule.class})
public interface MainApplicationComponent { public interface MainApplicationComponent {
MainActivityComponent.Factory mainActivityComponent(); MainActivityComponent.Factory mainActivityComponent();
@ -63,6 +66,7 @@ public interface MainApplicationComponent {
DialogScanArtComponent.Factory dialogScanArtComponent(); DialogScanArtComponent.Factory dialogScanArtComponent();
ProdFabbisognoLineeProdComponent.Factory prodFabbisognoLineeProdComponent(); ProdFabbisognoLineeProdComponent.Factory prodFabbisognoLineeProdComponent();
DialogAskMagazzinoProssimitaComponent.Factory dialogAskMagazzinoProssimitaComponent(); DialogAskMagazzinoProssimitaComponent.Factory dialogAskMagazzinoProssimitaComponent();
DialogRowInfoProdFabbisognoLineeProdComponent.Factory dialogRowInfoProdFabbisognoLineeProdComponent();
void inject(AppContext appContext); void inject(AppContext appContext);

View File

@ -16,6 +16,7 @@ import it.integry.integrywmsnative.core.rest.consumers.OrdiniRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.rest.ProdFabbisognoLineeProdRESTConsumer;
@Module @Module
public class MainApplicationModule { public class MainApplicationModule {
@ -88,5 +89,12 @@ public class MainApplicationModule {
return new PosizioniRESTConsumer(systemRESTConsumer); return new PosizioniRESTConsumer(systemRESTConsumer);
} }
@Provides
@Singleton
ProdFabbisognoLineeProdRESTConsumer providesProdFabbisognoLineeProdRESTConsumer(SystemRESTConsumer systemRESTConsumer) {
return new ProdFabbisognoLineeProdRESTConsumer(systemRESTConsumer);
}
} }

View File

@ -48,7 +48,7 @@ public class MenuConfiguration extends BaseMenuConfiguration {
.setTitleText(R.string.vendita_title_fragment) .setTitleText(R.string.vendita_title_fragment)
.setTitleIcon(R.drawable.ic_dashboard_spedizione) .setTitleIcon(R.drawable.ic_dashboard_spedizione)
.setDrawerIcon(R.drawable.ic_black_upload) .setDrawerIcon(R.drawable.ic_black_upload)
.setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.VENDITA, null, -1))) .setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.VENDITA, null, -1, null)))
.addItem(new MenuItem() .addItem(new MenuItem()
.setID(R.id.nav_free_picking) .setID(R.id.nav_free_picking)
@ -79,7 +79,7 @@ public class MenuConfiguration extends BaseMenuConfiguration {
.setTitleText(R.string.prod_ordine_lavorazione_title_fragment) .setTitleText(R.string.prod_ordine_lavorazione_title_fragment)
.setTitleIcon(R.drawable.ic_dashboard_prod_picking_lavorazione) .setTitleIcon(R.drawable.ic_dashboard_prod_picking_lavorazione)
.setDrawerIcon(R.drawable.ic_black_external) .setDrawerIcon(R.drawable.ic_black_external)
.setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.PRODUZIONE, GestioneEnum.LAVORAZIONE, -1))) .setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.PRODUZIONE, GestioneEnum.LAVORAZIONE, -1, null)))
.addItem(new MenuItem() .addItem(new MenuItem()
.setID(R.id.nav_free_lav_picking) .setID(R.id.nav_free_lav_picking)

View File

@ -13,14 +13,18 @@ public class BaseFragment extends Fragment {
protected void openProgress() { protected void openProgress() {
if (this.mCurrentProgress == null) { if (this.mCurrentProgress == null) {
this.mCurrentProgress = UtilityProgress.createDefaultProgressDialog(getActivity()); getActivity().runOnUiThread(() -> {
this.mCurrentProgress = UtilityProgress.createDefaultProgressDialog(getActivity());
});
} }
} }
protected void closeProgress() { protected void closeProgress() {
if (mCurrentProgress != null) { if (mCurrentProgress != null) {
mCurrentProgress.dismiss(); getActivity().runOnUiThread(() -> {
mCurrentProgress = null; mCurrentProgress.dismiss();
mCurrentProgress = null;
});
} }
} }
} }

View File

@ -1,6 +1,7 @@
package it.integry.integrywmsnative.core.rest.model; package it.integry.integrywmsnative.core.rest.model;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.HashMap;
public class SitArtOrdDTO { public class SitArtOrdDTO {
@ -25,6 +26,8 @@ public class SitArtOrdDTO {
private String codMsfa; private String codMsfa;
private String descrizioneMsfa; private String descrizioneMsfa;
private final HashMap<String, Object> extraInfo = new HashMap<>();
public String getCodJcom() { public String getCodJcom() {
return codJcom; return codJcom;
} }
@ -196,4 +199,8 @@ public class SitArtOrdDTO {
this.descrizioneMsfa = descrizioneMsfa; this.descrizioneMsfa = descrizioneMsfa;
return this; return this;
} }
public HashMap<String, Object> getExtraInfo() {
return extraInfo;
}
} }

View File

@ -53,7 +53,7 @@ public class WiFiStatusChecker {
}; };
public WiFiStatusChecker(Context context){ public WiFiStatusChecker(Context context){
mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); mWifiManager = (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE);
} }
public void startMonitoring(RunnableArgs<SIGNAL> callback){ public void startMonitoring(RunnableArgs<SIGNAL> callback){

View File

@ -612,7 +612,7 @@ public class AccettazionePickingViewModel {
.setNumCollo(value.getNumCollo()) .setNumCollo(value.getNumCollo())
.setGestione(value.getGestione()) .setGestione(value.getGestione())
.setSerCollo(value.getSerCollo()) .setSerCollo(value.getSerCollo())
.setRiga(value.getMtbColr().get(0).getRiga()) .setRiga(value.getMtbColr().get(value.getMtbColr().size() - 1).getRiga())
.setUntMis(pickingObjectDTO.getMtbAart().getUntMis()) .setUntMis(pickingObjectDTO.getMtbAart().getUntMis())
.setMtbAart(pickingObjectDTO.getMtbAart()); .setMtbAart(pickingObjectDTO.getMtbAart());

View File

@ -7,6 +7,7 @@ import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.res.ResourcesCompat;
import androidx.databinding.DataBindingUtil; import androidx.databinding.DataBindingUtil;
import androidx.databinding.ObservableArrayList; import androidx.databinding.ObservableArrayList;
import androidx.databinding.ObservableList; import androidx.databinding.ObservableList;
@ -111,8 +112,8 @@ public class AccettazioneListAdapter extends SectionedRecyclerViewAdapter<Accett
holder.mBinding.deactivatedOverBg.setVisibility(!pickingObjectDTO.isActive() ? View.VISIBLE : View.GONE); holder.mBinding.deactivatedOverBg.setVisibility(!pickingObjectDTO.isActive() ? View.VISIBLE : View.GONE);
holder.mBinding.getRoot().setAlpha(!pickingObjectDTO.isActive() ? 0.8f : 1); holder.mBinding.getRoot().setAlpha(!pickingObjectDTO.isActive() ? 0.8f : 1);
holder.mBinding.badge1.setBackground(mContext.getResources().getDrawable(!pickingObjectDTO.isActive() ? R.drawable.badge_gray_round_corner : R.drawable.badge1_round_corner)); holder.mBinding.badge1.setBackground(ResourcesCompat.getDrawable(mContext.getResources(), !pickingObjectDTO.isActive() ? R.drawable.badge_gray_round_corner : R.drawable.badge1_round_corner, null));
holder.mBinding.qtaEvasa.setTextColor(mContext.getResources().getColor(!pickingObjectDTO.isActive() ? R.color.gray_600 : R.color.green_700)); holder.mBinding.qtaEvasa.setTextColor(ResourcesCompat.getColor(mContext.getResources(), !pickingObjectDTO.isActive() ? R.color.gray_600 : R.color.green_700, null));
holder.mBinding.descrizione.setText(pickingObjectDTO.getDescrizione()); holder.mBinding.descrizione.setText(pickingObjectDTO.getDescrizione());
holder.mBinding.descrizione.setTextColor(pickingObjectDTO.isDescrizionePresente() ? Color.BLACK : Color.GRAY); holder.mBinding.descrizione.setTextColor(pickingObjectDTO.isDescrizionePresente() ? Color.BLACK : Color.GRAY);

View File

@ -2,13 +2,13 @@ package it.integry.integrywmsnative.gest.main;
import android.content.Context; import android.content.Context;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.core.content.res.ResourcesCompat;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import java.util.List; import java.util.List;
@ -42,7 +42,7 @@ public class MenuListAdapter extends RecyclerView.Adapter<MenuListAdapter.ViewHo
// binds the data to the TextView in each cell // binds the data to the TextView in each cell
@Override @Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) { public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.mIcon.setImageDrawable(mContext.getResources().getDrawable(mDataset.get(position).getTitleIcon(), null)); holder.mIcon.setImageDrawable(ResourcesCompat.getDrawable(mContext.getResources(), mDataset.get(position).getTitleIcon(), null));
holder.mTitle.setText(mContext.getResources().getString(mDataset.get(position).getTitleText())); holder.mTitle.setText(mContext.getResources().getString(mDataset.get(position).getTitleText()));
} }

View File

@ -1,6 +1,5 @@
package it.integry.integrywmsnative.gest.ordini_uscita_elenco; package it.integry.integrywmsnative.gest.ordini_uscita_elenco;
import android.app.Dialog;
import android.content.Context; import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
import android.text.Html; import android.text.Html;
@ -14,7 +13,6 @@ import androidx.appcompat.widget.AppCompatTextView;
import androidx.core.content.res.ResourcesCompat; import androidx.core.content.res.ResourcesCompat;
import androidx.databinding.DataBindingUtil; import androidx.databinding.DataBindingUtil;
import androidx.databinding.ObservableArrayList; import androidx.databinding.ObservableArrayList;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import com.annimon.stream.ComparatorCompat; import com.annimon.stream.ComparatorCompat;
@ -30,7 +28,9 @@ import it.integry.integrywmsnative.MainApplication;
import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO; import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.data_cache.DataCache;
import it.integry.integrywmsnative.core.di.BindableBoolean; import it.integry.integrywmsnative.core.di.BindableBoolean;
import it.integry.integrywmsnative.core.expansion.BaseFragment;
import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.interfaces.IFilterableFragment; import it.integry.integrywmsnative.core.interfaces.IFilterableFragment;
import it.integry.integrywmsnative.core.interfaces.ILifecycleFragment; import it.integry.integrywmsnative.core.interfaces.ILifecycleFragment;
@ -45,17 +45,17 @@ import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO;
import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityDate; import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityProgress;
import it.integry.integrywmsnative.databinding.FragmentMainOrdiniUscitaBinding; import it.integry.integrywmsnative.databinding.FragmentMainOrdiniUscitaBinding;
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.dialogs.DialogVenditaFiltroAvanzato; import it.integry.integrywmsnative.gest.ordini_uscita_elenco.dialogs.DialogVenditaFiltroAvanzato;
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.dialogs.DialogVenditaFiltroAvanzatoViewModel; import it.integry.integrywmsnative.gest.ordini_uscita_elenco.dialogs.DialogVenditaFiltroAvanzatoViewModel;
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.list.OrdiniUscitaElencoAdapter; import it.integry.integrywmsnative.gest.ordini_uscita_elenco.list.OrdiniUscitaElencoAdapter;
import it.integry.integrywmsnative.gest.ordini_uscita_elenco.list.OrdiniUscitaElencoListModel; import it.integry.integrywmsnative.gest.ordini_uscita_elenco.list.OrdiniUscitaElencoListModel;
import it.integry.integrywmsnative.gest.spedizione.SpedizioneActivity; import it.integry.integrywmsnative.gest.spedizione.SpedizioneActivity;
import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.BaseDialogRowInfoView;
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;
public class OrdiniUscitaElencoFragment extends Fragment implements ITitledFragment, ILifecycleFragment, IScrollableFragment, ISelectAllFragment, IFilterableFragment, OrdiniUscitaElencoViewModel.Listener { public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledFragment, ILifecycleFragment, IScrollableFragment, ISelectAllFragment, IFilterableFragment, OrdiniUscitaElencoViewModel.Listener {
public BindableBoolean fabVisible = new BindableBoolean(false); public BindableBoolean fabVisible = new BindableBoolean(false);
@ -69,19 +69,19 @@ public class OrdiniUscitaElencoFragment extends Fragment implements ITitledFragm
private GestioneEnum mCurrentGestioneOrd = null; private GestioneEnum mCurrentGestioneOrd = null;
private GestioneEnum mCurrentGestioneCol = null; private GestioneEnum mCurrentGestioneCol = null;
private int mCurrentSegnoCol = 0; private int mCurrentSegnoCol = 0;
private Class<? extends BaseDialogRowInfoView> mDialogRowInfo;
private ElevatedToolbar mToolbar; private ElevatedToolbar mToolbar;
private final List<Runnable> mOnPreDestroyList = new ArrayList<>(); private final List<Runnable> mOnPreDestroyList = new ArrayList<>();
private int barcodeScannerIstanceID = -1; private int barcodeScannerIstanceID = -1;
private Dialog mCurrentProgress;
public OrdiniUscitaElencoFragment() { public OrdiniUscitaElencoFragment() {
// Required empty public constructor // Required empty public constructor
} }
public static OrdiniUscitaElencoFragment newInstance(GestioneEnum gestioneOrd, GestioneEnum gestioneCol, int segnoCol) { public static OrdiniUscitaElencoFragment newInstance(GestioneEnum gestioneOrd, GestioneEnum gestioneCol, int segnoCol, Class<? extends BaseDialogRowInfoView> dialogRowInfo) {
OrdiniUscitaElencoFragment fragment = new OrdiniUscitaElencoFragment(); OrdiniUscitaElencoFragment fragment = new OrdiniUscitaElencoFragment();
Bundle args = new Bundle(); Bundle args = new Bundle();
@ -89,6 +89,9 @@ public class OrdiniUscitaElencoFragment extends Fragment implements ITitledFragm
args.putString("gestioneCol", gestioneCol != null ? gestioneCol.getText() : null); args.putString("gestioneCol", gestioneCol != null ? gestioneCol.getText() : null);
args.putInt("segnoCol", segnoCol); args.putInt("segnoCol", segnoCol);
String keyDialogRowInfo = DataCache.addItem(dialogRowInfo);
args.putString("keyDialogRowInfo", keyDialogRowInfo);
fragment.setArguments(args); fragment.setArguments(args);
return fragment; return fragment;
} }
@ -100,6 +103,9 @@ public class OrdiniUscitaElencoFragment extends Fragment implements ITitledFragm
String gestioneCol = getArguments().getString("gestioneCol"); String gestioneCol = getArguments().getString("gestioneCol");
mCurrentGestioneCol = gestioneCol != null ? GestioneEnum.fromString(gestioneCol) : null; mCurrentGestioneCol = gestioneCol != null ? GestioneEnum.fromString(gestioneCol) : null;
mCurrentSegnoCol = getArguments().getInt("segnoCol"); mCurrentSegnoCol = getArguments().getInt("segnoCol");
String keyDialogRowInfo = getArguments().getString("keyDialogRowInfo");
mDialogRowInfo = DataCache.retrieveItem(keyDialogRowInfo);
} }
@Override @Override
@ -276,23 +282,6 @@ public class OrdiniUscitaElencoFragment extends Fragment implements ITitledFragm
} }
private void openProgress() {
getActivity().runOnUiThread(() -> {
if (this.mCurrentProgress == null) {
this.mCurrentProgress = UtilityProgress.createDefaultProgressDialog(getActivity());
}
});
}
private void closeProgress() {
getActivity().runOnUiThread(() -> {
if (mCurrentProgress != null) {
mCurrentProgress.dismiss();
mCurrentProgress = null;
}
});
}
@Override @Override
public void onLoadingStarted() { public void onLoadingStarted() {
BarcodeManager.disable(); BarcodeManager.disable();
@ -314,7 +303,6 @@ public class OrdiniUscitaElencoFragment extends Fragment implements ITitledFragm
@Override @Override
public void onOrderFiltered(List<OrdiniUscitaElencoDTO> filteredOrders) { public void onOrderFiltered(List<OrdiniUscitaElencoDTO> filteredOrders) {
// FBToast.infoToast(getActivity(), "Trovati: " + filteredOrders.size() + " ordini", Toast.LENGTH_LONG);
refreshList(filteredOrders); refreshList(filteredOrders);
} }
@ -335,7 +323,7 @@ public class OrdiniUscitaElencoFragment extends Fragment implements ITitledFragm
+ "<br />" + + "<br />" +
"<b>" + alreadyRegisteredUL + "</b> " + getActivity().getResources().getQuantityString(R.plurals.already_registered_lu, alreadyRegisteredUL)), "<b>" + alreadyRegisteredUL + "</b> " + getActivity().getResources().getQuantityString(R.plurals.already_registered_lu, alreadyRegisteredUL)),
null, null,
() -> SpedizioneActivity.startActivity(getActivity(), sitArts, orders, alreadyRegisteredMtbColts, mCurrentGestioneCol, mCurrentSegnoCol, MtbColr.Causale.DEFAULT) () -> SpedizioneActivity.startActivity(getActivity(), sitArts, orders, alreadyRegisteredMtbColts, mCurrentGestioneCol, mCurrentSegnoCol, MtbColr.Causale.DEFAULT, mDialogRowInfo)
).show(); ).show();
} }

View File

@ -7,6 +7,7 @@ import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.res.ResourcesCompat;
import androidx.databinding.DataBindingUtil; import androidx.databinding.DataBindingUtil;
import androidx.databinding.ObservableArrayList; import androidx.databinding.ObservableArrayList;
import androidx.databinding.ObservableList; import androidx.databinding.ObservableList;
@ -105,8 +106,8 @@ public class PickingResiListAdapter extends SectionedRecyclerViewAdapter<Picking
holder.mBinding.deactivatedOverBg.setVisibility(!pickingResiListModel.isActive() ? View.VISIBLE : View.GONE); holder.mBinding.deactivatedOverBg.setVisibility(!pickingResiListModel.isActive() ? View.VISIBLE : View.GONE);
holder.mBinding.getRoot().setAlpha(!pickingResiListModel.isActive() ? 0.8f : 1); holder.mBinding.getRoot().setAlpha(!pickingResiListModel.isActive() ? 0.8f : 1);
holder.mBinding.badge1.setBackground(mContext.getResources().getDrawable(!pickingResiListModel.isActive() ? R.drawable.badge_gray_round_corner : R.drawable.badge1_round_corner)); holder.mBinding.badge1.setBackground(ResourcesCompat.getDrawable(mContext.getResources(), !pickingResiListModel.isActive() ? R.drawable.badge_gray_round_corner : R.drawable.badge1_round_corner, null));
holder.mBinding.qtaEvasa.setTextColor(mContext.getResources().getColor(!pickingResiListModel.isActive() ? R.color.gray_600 : R.color.green_700)); holder.mBinding.qtaEvasa.setTextColor(ResourcesCompat.getColor(mContext.getResources(), !pickingResiListModel.isActive() ? R.color.gray_600 : R.color.green_700, null));
holder.mBinding.descrizione.setText(pickingResiListModel.getDescrizione()); holder.mBinding.descrizione.setText(pickingResiListModel.getDescrizione());
holder.mBinding.descrizione.setTextColor(pickingResiListModel.isDescrizionePresente() ? Color.BLACK : Color.GRAY); holder.mBinding.descrizione.setTextColor(pickingResiListModel.isDescrizionePresente() ? Color.BLACK : Color.GRAY);

View File

@ -31,6 +31,7 @@ import it.integry.integrywmsnative.databinding.FragmentProdFabbisognoLineeProdBi
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dialog_ask_mag_prossimita.DialogAskMagazzinoProssimitaView; import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dialog_ask_mag_prossimita.DialogAskMagazzinoProssimitaView;
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dto.ProdFabbisognoLineeProdDTO; import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dto.ProdFabbisognoLineeProdDTO;
import it.integry.integrywmsnative.gest.spedizione.SpedizioneActivity; import it.integry.integrywmsnative.gest.spedizione.SpedizioneActivity;
import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.prod_fabbisogno_linee_prod.DialogRowInfoProdFabbisognoLineeProdView;
/** /**
* A simple {@link Fragment} subclass. * A simple {@link Fragment} subclass.
@ -86,12 +87,12 @@ public class ProdFabbisognoLineeProdFragment extends BaseFragment implements ITi
DialogAskMagazzinoProssimitaView DialogAskMagazzinoProssimitaView
.newInstance((jtbFase, startDate, endDate) -> { .newInstance((jtbFase, startDate, endDate) -> {
if (jtbFase == null) { // if (jtbFase == null) {
((IPoppableActivity) getActivity()).pop(); // ((IPoppableActivity) getActivity()).pop();
} else { // } else {
//Load fabbisogno //Load fabbisogno
this.mViewModel.loadFabbisogno(startDate, endDate, jtbFase.getCodJfas(), codMdep, this::startPickingActivity); this.mViewModel.loadFabbisogno(startDate, endDate, codMdep, this::startPickingActivity);
} // }
}) })
.show(getActivity().getSupportFragmentManager(), "tag"); .show(getActivity().getSupportFragmentManager(), "tag");
} }
@ -130,12 +131,22 @@ public class ProdFabbisognoLineeProdFragment extends BaseFragment implements ITi
private void startPickingActivity(List<ProdFabbisognoLineeProdDTO> fabbisognoList) { private void startPickingActivity(List<ProdFabbisognoLineeProdDTO> fabbisognoList) {
String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep();
List<SitArtOrdDTO> sitArtOrdDTOS = Stream.of(fabbisognoList) List<SitArtOrdDTO> sitArtOrdDTOS = Stream.of(fabbisognoList)
.map(x -> new SitArtOrdDTO() .map(x -> {
.setCodMart(x.getCodMart()) SitArtOrdDTO sitArtOrdDTO = new SitArtOrdDTO()
.setQtaOrd(x.getQtaFabbisogno()) .setCodMart(x.getCodMart())
.setNumCnfOrd(x.getNumCnfFabbisogno()) .setCodMdep(codMdep)
.setFlagEnablePickManuale(false)) .setQtaOrd(x.getQtaFabbisogno())
.setNumCnfOrd(x.getNumCnfFabbisogno())
.setFlagEnablePickManuale(false);
sitArtOrdDTO.getExtraInfo().put("dataInizio", x.getDataInizio());
sitArtOrdDTO.getExtraInfo().put("dataFine", x.getDataFine());
return sitArtOrdDTO;
})
.toList(); .toList();
SpedizioneActivity.startActivity(getActivity(), SpedizioneActivity.startActivity(getActivity(),
@ -144,7 +155,8 @@ public class ProdFabbisognoLineeProdFragment extends BaseFragment implements ITi
new ArrayList<>(), new ArrayList<>(),
GestioneEnum.LAVORAZIONE, GestioneEnum.LAVORAZIONE,
+1, +1,
MtbColr.Causale.VERSAMENTO); MtbColr.Causale.VERSAMENTO,
DialogRowInfoProdFabbisognoLineeProdView.class);
((IPoppableActivity) getActivity()).pop(); ((IPoppableActivity) getActivity()).pop();

View File

@ -2,14 +2,14 @@ package it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod;
import dagger.Module; import dagger.Module;
import dagger.Provides; import dagger.Provides;
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer; import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.rest.ProdFabbisognoLineeProdRESTConsumer;
@Module(subcomponents = ProdFabbisognoLineeProdComponent.class) @Module(subcomponents = ProdFabbisognoLineeProdComponent.class)
public class ProdFabbisognoLineeProdModule { public class ProdFabbisognoLineeProdModule {
@Provides @Provides
ProdFabbisognoLineeProdViewModel providesProdFabbisognoLineeProdViewModel(SystemRESTConsumer systemRESTConsumer) { ProdFabbisognoLineeProdViewModel providesProdFabbisognoLineeProdViewModel(ProdFabbisognoLineeProdRESTConsumer prodFabbisognoLineeProdRESTConsumer) {
return new ProdFabbisognoLineeProdViewModel(systemRESTConsumer); return new ProdFabbisognoLineeProdViewModel(prodFabbisognoLineeProdRESTConsumer);
} }
} }

View File

@ -1,26 +1,23 @@
package it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod; package it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod;
import com.google.gson.reflect.TypeToken; import com.annimon.stream.Stream;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import it.integry.integrywmsnative.core.expansion.RunnableArgs; import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener; import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
import it.integry.integrywmsnative.core.utility.UtilityDB;
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dto.ProdFabbisognoLineeProdDTO; import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dto.ProdFabbisognoLineeProdDTO;
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.rest.ProdFabbisognoLineeProdRESTConsumer;
public class ProdFabbisognoLineeProdViewModel { public class ProdFabbisognoLineeProdViewModel {
private final SystemRESTConsumer mSystemRESTConsumer; private final ProdFabbisognoLineeProdRESTConsumer mProdFabbisognoLineeProdRESTConsumer;
private Listener mListener; private Listener mListener;
public ProdFabbisognoLineeProdViewModel(SystemRESTConsumer systemRESTConsumer) { public ProdFabbisognoLineeProdViewModel(ProdFabbisognoLineeProdRESTConsumer prodFabbisognoLineeProdRESTConsumer) {
this.mSystemRESTConsumer = systemRESTConsumer; this.mProdFabbisognoLineeProdRESTConsumer = prodFabbisognoLineeProdRESTConsumer;
} }
public void init() { public void init() {
@ -28,105 +25,15 @@ public class ProdFabbisognoLineeProdViewModel {
} }
public void loadFabbisogno(Date startDate, Date endDate, String codMdep, RunnableArgs<List<ProdFabbisognoLineeProdDTO>> onComplete) {
public void loadFabbisogno(Date startDate, Date endDate, String lineaProd, String codMdep, RunnableArgs<List<ProdFabbisognoLineeProdDTO>> onComplete) {
this.sendOnLoadingStarted(); this.sendOnLoadingStarted();
String sql = "WITH input_values AS ( " + this.mProdFabbisognoLineeProdRESTConsumer.loadFabbisogno(startDate, endDate, codMdep, jtbFasi -> {
" SELECT " + UtilityDB.valueToString(startDate) + " AS data_inizio, " + if (jtbFasi != null) Stream.of(jtbFasi)
" " + UtilityDB.valueToString(endDate) + " AS data_fine, " + .forEach(x -> x
" " + UtilityDB.valueToString(lineaProd) + " AS linea_prod, " + .setDataInizio(startDate)
" " + UtilityDB.valueToString(codMdep) + " AS cod_mdep), " + .setDataFine(endDate));
" withdraw_mtb_colr AS ( " +
" SELECT cod_mart, " +
" SUM(qta_col) as qta_col, " +
" SUM(num_cnf) as num_cnf, " +
" mtb_colr.data_ord, " +
" mtb_colr.num_ord, " +
" mtb_colr.gestione " +
" FROM mtb_colr " +
" INNER JOIN mtb_colt mc on mtb_colr.gestione = mc.gestione and mtb_colr.data_collo = mc.data_collo and " +
" mtb_colr.ser_collo = mc.ser_collo and mtb_colr.num_collo = mc.num_collo " +
" WHERE segno = -1 " +
" GROUP BY cod_mart, " +
" mtb_colr.data_ord, " +
" mtb_colr.num_ord, " +
" mtb_colr.gestione " +
" ), " +
" custom_mtb_colr AS (SELECT cod_mart, " +
" sum(qta_col) AS qta_col, " +
" sum(num_cnf) AS num_cnf, " +
" posizione " +
" FROM mvw_sitart_udc_det_inventario " +
" GROUP BY cod_mart, posizione), " +
" grouped_ord AS ( " +
" SELECT dtb_ordr.cod_mart, " +
" dtb_ordt.cod_jfas, " +
" dtb_ordt.cod_mdep, " +
" dtb_ordt.gestione, " +
" CONVERT(NUMERIC(15, 5), SUM(dtb_ordr.qta_ord * dtb_ordr.rap_conv) - " +
" SUM(dtb_ordr.qta_evasa * dtb_ordr.rap_conv)) AS qta_ord, " +
" SUM(dtb_ordr.num_cnf - dtb_ordr.num_cnf_evasa) AS num_cnf_ord, " +
" SUM(ISNULL(withdraw_mtb_colr.qta_col, 0)) AS qta_col_scaricata, " +
" SUM(ISNULL(withdraw_mtb_colr.num_cnf, 0)) AS num_cnf_scaricata, " +
" jrl_fase_posizioni.posizione " +
" FROM dtb_ordr " +
" INNER JOIN dtb_ordt on dtb_ordr.gestione = dtb_ordt.gestione AND " +
" dtb_ordr.data_ord = dtb_ordt.data_ord AND " +
" dtb_ordr.num_ord = dtb_ordt.num_ord " +
" INNER JOIN jrl_fase_posizioni ON dtb_ordt.cod_jfas = jrl_fase_posizioni.cod_jfas " +
" LEFT OUTER JOIN withdraw_mtb_colr " +
" ON withdraw_mtb_colr.gestione = dtb_ordt.gestione AND " +
" withdraw_mtb_colr.num_ord = dtb_ordt.num_ord AND " +
" withdraw_mtb_colr.data_ord = dtb_ordt.data_ord AND " +
" withdraw_mtb_colr.cod_mart = dtb_ordr.cod_mart " +
" CROSS APPLY input_values " +
" WHERE dtb_ordt.gestione = 'L' " +
" AND flag_evaso = 'I' " +
" AND dtb_ordr.flag_evaso_forzato = 'N' " +
" AND flag_annulla = 'N' " +
" AND dtb_ordt.cod_mdep = input_values.cod_mdep " +
" AND dtb_ordt.data_ord BETWEEN input_values.data_inizio AND input_values.data_fine " +
" AND jrl_fase_posizioni.posizione = input_values.linea_prod " +
" GROUP BY dtb_ordr.cod_mart, dtb_ordt.cod_jfas, dtb_ordt.cod_mdep, dtb_ordt.gestione, " +
" jrl_fase_posizioni.posizione " +
" ), " +
" tmp_ord AS (SELECT grouped_ord.cod_mart, " +
" mtb_aart.unt_mis, " +
" SUM(qta_ord) AS qta_ord, " +
" SUM(num_cnf_ord) AS num_cnf_ord, " +
" SUM(qta_col_scaricata) AS qta_col_scaricata, " +
" SUM(num_cnf_scaricata) AS num_cnf_scaricata, " +
" SUM(ISNULL(custom_mtb_colr.qta_col, 0)) AS qta_col_versata, " +
" SUM(ISNULL(custom_mtb_colr.num_cnf, 0)) AS num_cnf_versata " +
" " +
" FROM grouped_ord " +
" LEFT OUTER JOIN custom_mtb_colr " +
" ON custom_mtb_colr.posizione = grouped_ord.posizione AND " +
" grouped_ord.cod_mart = custom_mtb_colr.cod_mart " +
" INNER JOIN mtb_aart ON grouped_ord.cod_mart = mtb_aart.cod_mart " +
" CROSS APPLY input_values " +
" GROUP BY grouped_ord.cod_mart, mtb_aart.unt_mis) " +
" " +
"SELECT cod_mart, " +
" qta_ord, " +
" num_cnf_ord, " +
" unt_mis, " +
" qta_col_versata, " +
" num_cnf_versata, " +
" qta_col_scaricata, " +
" num_cnf_scaricata, " +
" CASE " +
" WHEN qta_ord - qta_col_versata - qta_col_scaricata < 0 THEN 0 " +
" ELSE qta_ord - qta_col_versata - qta_col_scaricata END AS qta_fabbisogno, " +
" CASE " +
" WHEN num_cnf_ord - num_cnf_versata - num_cnf_scaricata < 0 THEN 0 " +
" ELSE num_cnf_ord - num_cnf_versata - num_cnf_scaricata END AS num_cnf_fabbisogno " +
"FROM tmp_ord " +
"ORDER BY cod_mart";
Type typeOfObjectsList = new TypeToken<ArrayList<ProdFabbisognoLineeProdDTO>>() {}.getType();
this.mSystemRESTConsumer.<List<ProdFabbisognoLineeProdDTO>>processSql(sql, typeOfObjectsList, jtbFasi -> {
this.sendOnLoadingEnded(); this.sendOnLoadingEnded();
onComplete.run(jtbFasi); onComplete.run(jtbFasi);
}, this::sendError); }, this::sendError);

View File

@ -9,19 +9,14 @@ import android.os.Bundle;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.AutoCompleteTextView;
import android.widget.Toast;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.databinding.DataBindingUtil; import androidx.databinding.DataBindingUtil;
import com.tfb.fbtoast.FBToast;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
import java.util.GregorianCalendar; import java.util.GregorianCalendar;
import java.util.List;
import javax.inject.Inject; import javax.inject.Inject;
@ -47,7 +42,7 @@ public class DialogAskMagazzinoProssimitaView extends BaseDialogFragment impleme
private Context mContext; private Context mContext;
private DialogAskMagazzinoProssimitaBinding mBindings; private DialogAskMagazzinoProssimitaBinding mBindings;
private JtbFasi mSelectedItem; // private JtbFasi mSelectedItem;
public static DialogAskMagazzinoProssimitaView newInstance(RunnableArgsss<JtbFasi, Date, Date> onItemSelected) { public static DialogAskMagazzinoProssimitaView newInstance(RunnableArgsss<JtbFasi, Date, Date> onItemSelected) {
return new DialogAskMagazzinoProssimitaView(onItemSelected); return new DialogAskMagazzinoProssimitaView(onItemSelected);
@ -82,11 +77,11 @@ public class DialogAskMagazzinoProssimitaView extends BaseDialogFragment impleme
mBindings.buttonConfirm.setOnClickListener(new OnSingleClickListener() { mBindings.buttonConfirm.setOnClickListener(new OnSingleClickListener() {
@Override @Override
public void onSingleClick(View v) { public void onSingleClick(View v) {
if(mSelectedItem != null) { // if(mSelectedItem != null) {
getDialog().dismiss(); getDialog().dismiss();
} else { // } else {
FBToast.warningToast(mContext, getResources().getString(R.string.please_select_an_item), Toast.LENGTH_LONG); // FBToast.warningToast(mContext, getResources().getString(R.string.please_select_an_item), Toast.LENGTH_LONG);
} // }
} }
}); });
@ -113,13 +108,13 @@ public class DialogAskMagazzinoProssimitaView extends BaseDialogFragment impleme
this.mViewModel.setListener(this); this.mViewModel.setListener(this);
this.mViewModel.init(codMdep); this.mViewModel.init(codMdep);
this.mViewModel.getJtbFasi().observe(getViewLifecycleOwner(), this::onPosizioniLoaded); // this.mViewModel.getJtbFasi().observe(getViewLifecycleOwner(), this::onPosizioniLoaded);
} }
@Override @Override
public void onDismiss(@NonNull DialogInterface dialog) { public void onDismiss(@NonNull DialogInterface dialog) {
super.onDismiss(dialog); super.onDismiss(dialog);
mOnItemSelected.run(mSelectedItem, mViewModel.startDate, mViewModel.endDate); mOnItemSelected.run(null, mViewModel.startDate, mViewModel.endDate);
} }
private final View.OnClickListener onStartDateClickListener = new OnSingleClickListener() { private final View.OnClickListener onStartDateClickListener = new OnSingleClickListener() {
@ -172,16 +167,16 @@ public class DialogAskMagazzinoProssimitaView extends BaseDialogFragment impleme
}; };
private void onPosizioniLoaded(List<JtbFasi> items) { // private void onPosizioniLoaded(List<JtbFasi> items) {
DialogAskMagazzinoProssimitaAdapter adapter = new DialogAskMagazzinoProssimitaAdapter(mContext, items); // DialogAskMagazzinoProssimitaAdapter adapter = new DialogAskMagazzinoProssimitaAdapter(mContext, items);
//
AutoCompleteTextView editTextDropdownCliente = mBindings.dropdownLineaProd; // AutoCompleteTextView editTextDropdownCliente = mBindings.dropdownLineaProd;
editTextDropdownCliente.setThreshold(0); // editTextDropdownCliente.setThreshold(0);
editTextDropdownCliente.setAdapter(adapter); // editTextDropdownCliente.setAdapter(adapter);
editTextDropdownCliente.setOnItemClickListener((parent, view, position, id) -> { // editTextDropdownCliente.setOnItemClickListener((parent, view, position, id) -> {
mSelectedItem = items.get(position); // mSelectedItem = items.get(position);
}); // });
} // }
@Override @Override
public void onError(Exception ex) { public void onError(Exception ex) {

View File

@ -2,10 +2,6 @@ package it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dialog_ask_m
import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.MutableLiveData;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -14,7 +10,6 @@ import it.integry.integrywmsnative.core.di.BindableString;
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener; import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
import it.integry.integrywmsnative.core.model.JtbFasi; import it.integry.integrywmsnative.core.model.JtbFasi;
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer; import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
import it.integry.integrywmsnative.core.utility.UtilityDB;
import it.integry.integrywmsnative.core.utility.UtilityDate; import it.integry.integrywmsnative.core.utility.UtilityDate;
public class DialogAskMagazzinoProssimitaViewModel { public class DialogAskMagazzinoProssimitaViewModel {
@ -36,7 +31,6 @@ public class DialogAskMagazzinoProssimitaViewModel {
} }
public void init(String codMdep) { public void init(String codMdep) {
this.sendOnLoadingStarted();
Calendar c = UtilityDate.getCalendarInstance(); Calendar c = UtilityDate.getCalendarInstance();
c.set(Calendar.DAY_OF_WEEK, c.getActualMinimum(Calendar.DAY_OF_WEEK)); c.set(Calendar.DAY_OF_WEEK, c.getActualMinimum(Calendar.DAY_OF_WEEK));
@ -48,30 +42,32 @@ public class DialogAskMagazzinoProssimitaViewModel {
endDate = c.getTime(); endDate = c.getTime();
endDateBindable.set(UtilityDate.formatDate(endDate, UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)); endDateBindable.set(UtilityDate.formatDate(endDate, UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN));
String sql = "SELECT DISTINCT jrl_fase_posizioni.posizione as cod_jfas, " + // this.sendOnLoadingStarted();
" descrizione, " + //
" jrl_fase_posizioni.cod_mdep " + // String sql = "SELECT DISTINCT jrl_fase_posizioni.posizione as cod_jfas, " +
"FROM jrl_fase_posizioni " + // " descrizione, " +
" INNER JOIN mtb_depo_posizioni mdp ON jrl_fase_posizioni.cod_mdep = mdp.cod_mdep AND " + // " jrl_fase_posizioni.cod_mdep " +
" jrl_fase_posizioni.posizione = mdp.posizione " + // "FROM jrl_fase_posizioni " +
"WHERE cod_jfas IN (SELECT cod_jfas FROM jtb_fasi WHERE um_prod IS NOT NULL) " + // " INNER JOIN mtb_depo_posizioni mdp ON jrl_fase_posizioni.cod_mdep = mdp.cod_mdep AND " +
" AND jrl_fase_posizioni.cod_mdep = " + UtilityDB.valueToString(codMdep) + " " + // " jrl_fase_posizioni.posizione = mdp.posizione " +
"ORDER BY jrl_fase_posizioni.posizione"; // "WHERE cod_jfas IN (SELECT cod_jfas FROM jtb_fasi WHERE um_prod IS NOT NULL) " +
// " AND jrl_fase_posizioni.cod_mdep = " + UtilityDB.valueToString(codMdep) + " " +
// "ORDER BY jrl_fase_posizioni.posizione";
Type typeOfObjectsList = new TypeToken<ArrayList<JtbFasi>>() {}.getType(); //
this.mSystemRESTConsumer.<List<JtbFasi>>processSql(sql, typeOfObjectsList, jtbFasi -> { //
this.mJtbFasi.postValue(jtbFasi); // Type typeOfObjectsList = new TypeToken<ArrayList<JtbFasi>>() {}.getType();
// this.mSystemRESTConsumer.<List<JtbFasi>>processSql(sql, typeOfObjectsList, jtbFasi -> {
this.sendOnLoadingEnded(); // this.mJtbFasi.postValue(jtbFasi);
}, this::sendError); //
// this.sendOnLoadingEnded();
// }, this::sendError);
} }
public MutableLiveData<List<JtbFasi>> getJtbFasi() { // public MutableLiveData<List<JtbFasi>> getJtbFasi() {
return mJtbFasi; // return mJtbFasi;
} // }
private void sendOnLoadingStarted() { private void sendOnLoadingStarted() {

View File

@ -1,10 +1,12 @@
package it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dto; package it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dto;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date;
public class ProdFabbisognoLineeProdDTO { public class ProdFabbisognoLineeProdDTO {
private String codMart; private String codMart;
private String codJfas;
private BigDecimal qtaOrd; private BigDecimal qtaOrd;
private BigDecimal numCnfOrd; private BigDecimal numCnfOrd;
private String untMis; private String untMis;
@ -12,6 +14,11 @@ public class ProdFabbisognoLineeProdDTO {
private BigDecimal numCnfVersata; private BigDecimal numCnfVersata;
private BigDecimal qtaFabbisogno; private BigDecimal qtaFabbisogno;
private BigDecimal numCnfFabbisogno; private BigDecimal numCnfFabbisogno;
private Date dataInizio;
private Date dataFine;
public ProdFabbisognoLineeProdDTO() {
}
public String getCodMart() { public String getCodMart() {
return codMart; return codMart;
@ -22,6 +29,15 @@ public class ProdFabbisognoLineeProdDTO {
return this; return this;
} }
public String getCodJfas() {
return codJfas;
}
public ProdFabbisognoLineeProdDTO setCodJfas(String codJfas) {
this.codJfas = codJfas;
return this;
}
public BigDecimal getQtaOrd() { public BigDecimal getQtaOrd() {
return qtaOrd; return qtaOrd;
} }
@ -84,4 +100,22 @@ public class ProdFabbisognoLineeProdDTO {
this.numCnfFabbisogno = numCnfFabbisogno; this.numCnfFabbisogno = numCnfFabbisogno;
return this; return this;
} }
public Date getDataInizio() {
return dataInizio;
}
public ProdFabbisognoLineeProdDTO setDataInizio(Date dataInizio) {
this.dataInizio = dataInizio;
return this;
}
public Date getDataFine() {
return dataFine;
}
public ProdFabbisognoLineeProdDTO setDataFine(Date dataFine) {
this.dataFine = dataFine;
return this;
}
} }

View File

@ -0,0 +1,402 @@
package it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.rest;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.inject.Singleton;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.rest.consumers.SystemRESTConsumer;
import it.integry.integrywmsnative.core.rest.consumers._BaseRESTConsumer;
import it.integry.integrywmsnative.core.utility.UtilityDB;
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dto.ProdFabbisognoLineeProdDTO;
@Singleton
public class ProdFabbisognoLineeProdRESTConsumer extends _BaseRESTConsumer {
private final SystemRESTConsumer mSystemRESTConsumer;
public ProdFabbisognoLineeProdRESTConsumer(SystemRESTConsumer systemRESTConsumer) {
this.mSystemRESTConsumer = systemRESTConsumer;
}
public void loadFabbisogno(Date startDate, Date endDate, String codMdep, RunnableArgs<List<ProdFabbisognoLineeProdDTO>> onComplete, RunnableArgs<Exception> onFailed) {
String sql = "WITH input_values AS ( " +
" SELECT " + UtilityDB.valueToString(startDate) + " AS data_inizio, " +
" " + UtilityDB.valueToString(endDate) + " AS data_fine, " +
// " " + UtilityDB.valueToString(lineaProd) + " AS linea_prod, " +
" " + UtilityDB.valueToString(codMdep) + " AS cod_mdep)," +
" withdraw_mtb_colr AS ( " +
" SELECT cod_mart, " +
" SUM(ISNULL(qta_col, 0)) as qta_col, " +
" SUM(ISNULL(num_cnf, 0)) as num_cnf, " +
" mtb_colr.data_ord, " +
" mtb_colr.num_ord, " +
" mtb_colr.gestione " +
" FROM mtb_colr " +
" INNER JOIN mtb_colt mc on mtb_colr.gestione = mc.gestione and mtb_colr.data_collo = mc.data_collo and " +
" mtb_colr.ser_collo = mc.ser_collo and mtb_colr.num_collo = mc.num_collo " +
" WHERE segno = -1 " +
" AND cod_dtip IS NULL " +
" GROUP BY cod_mart, " +
" mtb_colr.data_ord, " +
" mtb_colr.num_ord, " +
" mtb_colr.gestione " +
" ), " +
" custom_mtb_colr AS (SELECT cod_mart, " +
" SUM(qta_col) AS qta_col, " +
" SUM(num_cnf) AS num_cnf, " +
" posizione " +
" FROM mvw_sitart_udc_det_inventario " +
" GROUP BY cod_mart, posizione), " +
" grouped_ord AS ( " +
" SELECT dtb_ordr.cod_mart, " +
" dtb_ordt.cod_jfas, " +
" dtb_ordt.cod_mdep, " +
" dtb_ordt.gestione, " +
" CONVERT(NUMERIC(15, 5), SUM(dtb_ordr.qta_ord * dtb_ordr.rap_conv) - " +
" SUM(dtb_ordr.qta_evasa * dtb_ordr.rap_conv)) AS qta_ord, " +
" SUM(dtb_ordr.num_cnf - dtb_ordr.num_cnf_evasa) AS num_cnf_ord, " +
" SUM(ISNULL(withdraw_mtb_colr.qta_col, 0)) AS qta_col_scaricata, " +
" SUM(ISNULL(withdraw_mtb_colr.num_cnf, 0)) AS num_cnf_scaricata " +
" FROM dtb_ordr " +
" INNER JOIN dtb_ordt on dtb_ordr.gestione = dtb_ordt.gestione AND " +
" dtb_ordr.data_ord = dtb_ordt.data_ord AND " +
" dtb_ordr.num_ord = dtb_ordt.num_ord " +
" LEFT OUTER JOIN withdraw_mtb_colr " +
" ON withdraw_mtb_colr.gestione = dtb_ordt.gestione AND " +
" withdraw_mtb_colr.num_ord = dtb_ordt.num_ord AND " +
" withdraw_mtb_colr.data_ord = dtb_ordt.data_ord AND " +
" withdraw_mtb_colr.cod_mart = dtb_ordr.cod_mart " +
" CROSS APPLY input_values " +
" WHERE dtb_ordt.gestione = 'L' " +
" AND flag_evaso = 'I' " +
" AND dtb_ordr.flag_evaso_forzato = 'N' " +
" AND flag_annulla = 'N' " +
" AND dtb_ordt.cod_mdep = input_values.cod_mdep " +
" AND dtb_ordt.data_ord BETWEEN input_values.data_inizio AND input_values.data_fine " +
" GROUP BY dtb_ordr.cod_mart, dtb_ordt.cod_jfas, dtb_ordt.cod_mdep, dtb_ordt.gestione " +
" ), " +
" tmp_ord AS (SELECT grouped_ord.cod_mart, " +
" mtb_aart.unt_mis, " +
" grouped_ord.cod_jfas, " +
" SUM(qta_ord) - SUM(qta_col_scaricata) AS qta_ord, " +
" SUM(num_cnf_ord) - SUM(num_cnf_scaricata) AS num_cnf_ord " +
" FROM grouped_ord " +
" INNER JOIN mtb_aart ON grouped_ord.cod_mart = mtb_aart.cod_mart " +
" CROSS APPLY input_values " +
" GROUP BY grouped_ord.cod_mart, mtb_aart.unt_mis, grouped_ord.cod_jfas " +
" ), " +
" ord_without_positioned_mtb_colt AS ( " +
" SELECT tmp_ord.cod_mart, " +
" tmp_ord.cod_jfas, " +
" ISNULL(custom_mtb_colr_on_linea.posizione, tmp_ord.cod_jfas) AS posizione, " +
" unt_mis, " +
" qta_ord AS qta_ord_calc, " +
" num_cnf_ord AS num_cnf_ord_calc, " +
" ISNULL(custom_mtb_colr_on_linea.qta_col, 0) AS qta_gia_posizionata, " +
" ISNULL(custom_mtb_colr_on_linea.num_cnf, 0) AS num_cnf_gia_posizionata, " +
" qta_ord - ISNULL(custom_mtb_colr_on_linea.qta_col, 0) AS qta_fabbisogno, " +
" num_cnf_ord - ISNULL(custom_mtb_colr_on_linea.num_cnf, 0) AS num_cnf_fabbisogno " +
" FROM tmp_ord " +
" INNER JOIN jrl_fase_posizioni ON tmp_ord.cod_jfas = jrl_fase_posizioni.cod_jfas " +
" AND tmp_ord.cod_jfas = jrl_fase_posizioni.posizione " +
" LEFT OUTER JOIN custom_mtb_colr custom_mtb_colr_on_linea " +
" ON tmp_ord.cod_mart = custom_mtb_colr_on_linea.cod_mart AND " +
" tmp_ord.cod_jfas = custom_mtb_colr_on_linea.posizione " +
" " +
" UNION ALL " +
" " +
" SELECT DISTINCT tmp_ord.cod_mart, " +
" null AS cod_jfas, " +
" jrl_fase_posizioni.posizione, " +
" unt_mis, " +
" 0 AS qta_ord_calc, " +
" 0 AS num_cnf_ord_calc, " +
" ISNULL(custom_mtb_colr_on_linea.qta_col, 0) AS qta_gia_posizionata, " +
" ISNULL(custom_mtb_colr_on_linea.num_cnf, 0) AS num_cnf_gia_posizionata, " +
" 0 AS qta_fabbisogno, " +
" 0 AS num_cnf_fabbisogno " +
" FROM tmp_ord " +
" INNER JOIN jrl_fase_posizioni ON tmp_ord.cod_jfas = jrl_fase_posizioni.cod_jfas " +
" AND tmp_ord.cod_jfas <> jrl_fase_posizioni.posizione " +
" " +
" " +
" LEFT OUTER JOIN custom_mtb_colr custom_mtb_colr_on_linea " +
" ON tmp_ord.cod_mart = custom_mtb_colr_on_linea.cod_mart AND " +
" jrl_fase_posizioni.posizione = custom_mtb_colr_on_linea.posizione " +
" ) " +
"SELECT cod_mart, " +
" unt_mis, " +
" input_values.data_inizio, " +
" input_values.data_fine, " +
" SUM(qta_ord_calc) AS qta_ord, " +
" SUM(num_cnf_ord_calc) AS num_cnf_ord, " +
" SUM(qta_gia_posizionata) AS qta_col_versata, " +
" SUM(num_cnf_gia_posizionata) AS num_cnf_versata, " +
" SUM(qta_ord_calc - qta_gia_posizionata) AS qta_fabbisogno, " +
" SUM(num_cnf_ord_calc - num_cnf_gia_posizionata) AS num_cnf_fabbisogno " +
"FROM ord_without_positioned_mtb_colt " +
"CROSS APPLY input_values " +
"GROUP BY cod_mart, unt_mis, input_values.data_inizio, input_values.data_fine " +
"HAVING SUM(qta_ord_calc - qta_gia_posizionata) > 0 " +
"ORDER BY cod_mart";
/*
* Query splittata per cod_jfas (più pesante)
WITH input_values AS (SELECT '2021-02-15' AS data_inizio,
'2021-02-28' AS data_fine,
--'SC06' AS linea_prod,
'34' AS cod_mdep),
withdraw_mtb_colr AS (
SELECT cod_mart,
SUM(ISNULL(qta_col, 0)) as qta_col,
SUM(ISNULL(num_cnf, 0)) as num_cnf,
mtb_colr.data_ord,
mtb_colr.num_ord,
mtb_colr.gestione
FROM mtb_colr
INNER JOIN mtb_colt mc on mtb_colr.gestione = mc.gestione and mtb_colr.data_collo = mc.data_collo and
mtb_colr.ser_collo = mc.ser_collo and mtb_colr.num_collo = mc.num_collo
WHERE segno = -1
and cod_dtip IS NULL
GROUP BY cod_mart,
mtb_colr.data_ord,
mtb_colr.num_ord,
mtb_colr.gestione
),
custom_mtb_colr AS (SELECT cod_mart,
SUM(qta_col) AS qta_col,
SUM(num_cnf) AS num_cnf,
posizione
FROM mvw_sitart_udc_det_inventario
GROUP BY cod_mart, posizione),
grouped_ord AS (
SELECT dtb_ordr.cod_mart,
dtb_ordt.cod_jfas,
dtb_ordt.cod_mdep,
dtb_ordt.gestione,
CONVERT(NUMERIC(15, 5), SUM(dtb_ordr.qta_ord * dtb_ordr.rap_conv) -
SUM(dtb_ordr.qta_evasa * dtb_ordr.rap_conv)) AS qta_ord,
SUM(dtb_ordr.num_cnf - dtb_ordr.num_cnf_evasa) AS num_cnf_ord,
SUM(ISNULL(withdraw_mtb_colr.qta_col, 0)) AS qta_col_scaricata,
SUM(ISNULL(withdraw_mtb_colr.num_cnf, 0)) AS num_cnf_scaricata
FROM dtb_ordr
INNER JOIN dtb_ordt on dtb_ordr.gestione = dtb_ordt.gestione AND
dtb_ordr.data_ord = dtb_ordt.data_ord AND
dtb_ordr.num_ord = dtb_ordt.num_ord
LEFT OUTER JOIN withdraw_mtb_colr
ON withdraw_mtb_colr.gestione = dtb_ordt.gestione AND
withdraw_mtb_colr.num_ord = dtb_ordt.num_ord AND
withdraw_mtb_colr.data_ord = dtb_ordt.data_ord AND
withdraw_mtb_colr.cod_mart = dtb_ordr.cod_mart
CROSS APPLY input_values
WHERE dtb_ordt.gestione = 'L'
AND flag_evaso = 'I'
AND dtb_ordr.flag_evaso_forzato = 'N'
AND flag_annulla = 'N'
AND dtb_ordt.cod_mdep = input_values.cod_mdep
AND dtb_ordt.data_ord BETWEEN input_values.data_inizio AND input_values.data_fine
GROUP BY dtb_ordr.cod_mart, dtb_ordt.cod_jfas, dtb_ordt.cod_mdep, dtb_ordt.gestione
),
tmp_ord AS (SELECT grouped_ord.cod_mart,
mtb_aart.unt_mis,
grouped_ord.cod_jfas,
SUM(qta_ord) - SUM(qta_col_scaricata) AS qta_ord,
SUM(num_cnf_ord) - SUM(num_cnf_scaricata) AS num_cnf_ord
FROM grouped_ord
INNER JOIN mtb_aart ON grouped_ord.cod_mart = mtb_aart.cod_mart
CROSS APPLY input_values
GROUP BY grouped_ord.cod_mart, mtb_aart.unt_mis, grouped_ord.cod_jfas
),
ord_without_positioned_mtb_colt AS (
SELECT tmp_ord.cod_mart,
tmp_ord.cod_jfas,
ISNULL(custom_mtb_colr_on_linea.posizione, tmp_ord.cod_jfas) AS posizione,
unt_mis,
qta_ord AS qta_ord_calc,
num_cnf_ord AS num_cnf_ord_calc,
ISNULL(custom_mtb_colr_on_linea.qta_col, 0) AS qta_gia_posizionata,
ISNULL(custom_mtb_colr_on_linea.num_cnf, 0) AS num_cnf_gia_posizionata,
qta_ord - ISNULL(custom_mtb_colr_on_linea.qta_col, 0) AS qta_fabbisogno,
num_cnf_ord - ISNULL(custom_mtb_colr_on_linea.num_cnf, 0) AS num_cnf_fabbisogno
FROM tmp_ord
INNER JOIN jrl_fase_posizioni ON tmp_ord.cod_jfas = jrl_fase_posizioni.cod_jfas
AND tmp_ord.cod_jfas = jrl_fase_posizioni.posizione
LEFT OUTER JOIN custom_mtb_colr custom_mtb_colr_on_linea
ON tmp_ord.cod_mart = custom_mtb_colr_on_linea.cod_mart AND
tmp_ord.cod_jfas = custom_mtb_colr_on_linea.posizione
UNION ALL
SELECT DISTINCT tmp_ord.cod_mart,
null AS cod_jfas,
jrl_fase_posizioni.posizione,
unt_mis,
0 AS qta_ord_calc,
0 AS num_cnf_ord_calc,
ISNULL(custom_mtb_colr_on_linea.qta_col, 0) AS qta_gia_posizionata,
ISNULL(custom_mtb_colr_on_linea.num_cnf, 0) AS num_cnf_gia_posizionata,
0 AS qta_fabbisogno,
0 AS num_cnf_fabbisogno
FROM tmp_ord
INNER JOIN jrl_fase_posizioni ON tmp_ord.cod_jfas = jrl_fase_posizioni.cod_jfas
AND tmp_ord.cod_jfas <> jrl_fase_posizioni.posizione
LEFT OUTER JOIN custom_mtb_colr custom_mtb_colr_on_linea
ON tmp_ord.cod_mart = custom_mtb_colr_on_linea.cod_mart AND
jrl_fase_posizioni.posizione = custom_mtb_colr_on_linea.posizione
)
SELECT cod_mart,
cod_jfas,
posizione,
unt_mis,
qta_ord_calc AS qta_ord,
num_cnf_ord_calc AS num_cnf_ord,
qta_gia_posizionata AS qta_col_versata,
num_cnf_gia_posizionata AS num_cnf_versata,
qta_ord_calc - qta_gia_posizionata AS qta_fabbisogno,
num_cnf_ord_calc - num_cnf_gia_posizionata AS num_cnf_fabbisogno
FROM ord_without_positioned_mtb_colt
ORDER BY cod_mart, posizione
* */
Type typeOfObjectsList = new TypeToken<ArrayList<ProdFabbisognoLineeProdDTO>>() {}.getType();
this.mSystemRESTConsumer.processSql(sql, typeOfObjectsList, onComplete, onFailed);
}
public void loadFabbisogno(String codMart, Date startDate, Date endDate, String codMdep, RunnableArgs<List<ProdFabbisognoLineeProdDTO>> onComplete, RunnableArgs<Exception> onFailed) {
String sql = "WITH input_values AS ( " +
" SELECT " + UtilityDB.valueToString(startDate) + " AS data_inizio, " +
" " + UtilityDB.valueToString(endDate) + " AS data_fine, " +
// " " + UtilityDB.valueToString(lineaProd) + " AS linea_prod, " +
" " + UtilityDB.valueToString(codMdep) + " AS cod_mdep)," +
" withdraw_mtb_colr AS ( " +
" SELECT cod_mart, " +
" SUM(ISNULL(qta_col, 0)) as qta_col, " +
" SUM(ISNULL(num_cnf, 0)) as num_cnf, " +
" mtb_colr.data_ord, " +
" mtb_colr.num_ord, " +
" mtb_colr.gestione " +
" FROM mtb_colr " +
" INNER JOIN mtb_colt mc on mtb_colr.gestione = mc.gestione and mtb_colr.data_collo = mc.data_collo and " +
" mtb_colr.ser_collo = mc.ser_collo and mtb_colr.num_collo = mc.num_collo " +
" WHERE segno = -1 " +
" AND cod_dtip IS NULL " +
" GROUP BY cod_mart, " +
" mtb_colr.data_ord, " +
" mtb_colr.num_ord, " +
" mtb_colr.gestione " +
" ), " +
" custom_mtb_colr AS (SELECT cod_mart, " +
" SUM(qta_col) AS qta_col, " +
" SUM(num_cnf) AS num_cnf, " +
" posizione " +
" FROM mvw_sitart_udc_det_inventario " +
" GROUP BY cod_mart, posizione), " +
" grouped_ord AS ( " +
" SELECT dtb_ordr.cod_mart, " +
" dtb_ordt.cod_jfas, " +
" dtb_ordt.cod_mdep, " +
" dtb_ordt.gestione, " +
" CONVERT(NUMERIC(15, 5), SUM(dtb_ordr.qta_ord * dtb_ordr.rap_conv) - " +
" SUM(dtb_ordr.qta_evasa * dtb_ordr.rap_conv)) AS qta_ord, " +
" SUM(dtb_ordr.num_cnf - dtb_ordr.num_cnf_evasa) AS num_cnf_ord, " +
" SUM(ISNULL(withdraw_mtb_colr.qta_col, 0)) AS qta_col_scaricata, " +
" SUM(ISNULL(withdraw_mtb_colr.num_cnf, 0)) AS num_cnf_scaricata " +
" FROM dtb_ordr " +
" INNER JOIN dtb_ordt on dtb_ordr.gestione = dtb_ordt.gestione AND " +
" dtb_ordr.data_ord = dtb_ordt.data_ord AND " +
" dtb_ordr.num_ord = dtb_ordt.num_ord " +
" LEFT OUTER JOIN withdraw_mtb_colr " +
" ON withdraw_mtb_colr.gestione = dtb_ordt.gestione AND " +
" withdraw_mtb_colr.num_ord = dtb_ordt.num_ord AND " +
" withdraw_mtb_colr.data_ord = dtb_ordt.data_ord AND " +
" withdraw_mtb_colr.cod_mart = dtb_ordr.cod_mart " +
" CROSS APPLY input_values " +
" WHERE dtb_ordt.gestione = 'L' " +
" AND flag_evaso = 'I' " +
" AND dtb_ordr.flag_evaso_forzato = 'N' " +
" AND flag_annulla = 'N' " +
" AND dtb_ordt.cod_mdep = input_values.cod_mdep " +
" AND dtb_ordt.data_ord BETWEEN input_values.data_inizio AND input_values.data_fine " +
" GROUP BY dtb_ordr.cod_mart, dtb_ordt.cod_jfas, dtb_ordt.cod_mdep, dtb_ordt.gestione " +
" ), " +
" tmp_ord AS (SELECT grouped_ord.cod_mart, " +
" mtb_aart.unt_mis, " +
" grouped_ord.cod_jfas, " +
" SUM(qta_ord) - SUM(qta_col_scaricata) AS qta_ord, " +
" SUM(num_cnf_ord) - SUM(num_cnf_scaricata) AS num_cnf_ord " +
" FROM grouped_ord " +
" INNER JOIN mtb_aart ON grouped_ord.cod_mart = mtb_aart.cod_mart " +
" CROSS APPLY input_values " +
" GROUP BY grouped_ord.cod_mart, mtb_aart.unt_mis, grouped_ord.cod_jfas " +
" ), " +
" ord_without_positioned_mtb_colt AS ( " +
" SELECT tmp_ord.cod_mart, " +
" tmp_ord.cod_jfas, " +
" ISNULL(custom_mtb_colr_on_linea.posizione, tmp_ord.cod_jfas) AS posizione, " +
" unt_mis, " +
" qta_ord AS qta_ord_calc, " +
" num_cnf_ord AS num_cnf_ord_calc, " +
" ISNULL(custom_mtb_colr_on_linea.qta_col, 0) AS qta_gia_posizionata, " +
" ISNULL(custom_mtb_colr_on_linea.num_cnf, 0) AS num_cnf_gia_posizionata, " +
" qta_ord - ISNULL(custom_mtb_colr_on_linea.qta_col, 0) AS qta_fabbisogno, " +
" num_cnf_ord - ISNULL(custom_mtb_colr_on_linea.num_cnf, 0) AS num_cnf_fabbisogno " +
" FROM tmp_ord " +
" INNER JOIN jrl_fase_posizioni ON tmp_ord.cod_jfas = jrl_fase_posizioni.cod_jfas " +
" AND tmp_ord.cod_jfas = jrl_fase_posizioni.posizione " +
" LEFT OUTER JOIN custom_mtb_colr custom_mtb_colr_on_linea " +
" ON tmp_ord.cod_mart = custom_mtb_colr_on_linea.cod_mart AND " +
" tmp_ord.cod_jfas = custom_mtb_colr_on_linea.posizione " +
" " +
" UNION ALL " +
" " +
" SELECT DISTINCT tmp_ord.cod_mart, " +
" null AS cod_jfas, " +
" jrl_fase_posizioni.posizione, " +
" unt_mis, " +
" 0 AS qta_ord_calc, " +
" 0 AS num_cnf_ord_calc, " +
" ISNULL(custom_mtb_colr_on_linea.qta_col, 0) AS qta_gia_posizionata, " +
" ISNULL(custom_mtb_colr_on_linea.num_cnf, 0) AS num_cnf_gia_posizionata, " +
" 0 AS qta_fabbisogno, " +
" 0 AS num_cnf_fabbisogno " +
" FROM tmp_ord " +
" INNER JOIN jrl_fase_posizioni ON tmp_ord.cod_jfas = jrl_fase_posizioni.cod_jfas " +
" AND tmp_ord.cod_jfas <> jrl_fase_posizioni.posizione " +
" " +
" " +
" LEFT OUTER JOIN custom_mtb_colr custom_mtb_colr_on_linea " +
" ON tmp_ord.cod_mart = custom_mtb_colr_on_linea.cod_mart AND " +
" jrl_fase_posizioni.posizione = custom_mtb_colr_on_linea.posizione " +
" ) " +
"SELECT DISTINCT cod_mart, " +
" unt_mis, " +
" cod_jfas, " +
" input_values.data_inizio, " +
" input_values.data_fine " +
"FROM ord_without_positioned_mtb_colt " +
"CROSS APPLY input_values " +
"WHERE cod_mart = " + UtilityDB.valueToString(codMart) + " " +
"GROUP BY cod_mart, unt_mis, cod_jfas, input_values.data_inizio, input_values.data_fine " +
"HAVING SUM(qta_ord_calc - qta_gia_posizionata) > 0 " +
"ORDER BY cod_mart";
Type typeOfObjectsList = new TypeToken<ArrayList<ProdFabbisognoLineeProdDTO>>() {}.getType();
this.mSystemRESTConsumer.processSql(sql, typeOfObjectsList, onComplete, onFailed);
}
}

View File

@ -203,7 +203,7 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled
mHelper.deleteOrder(ordine, () -> { mHelper.deleteOrder(ordine, () -> {
getActivity().runOnUiThread(() -> { getActivity().runOnUiThread(() -> {
progress.dismiss(); progress.dismiss();
Toast.makeText(getActivity(), "Ordine eliminato!", Toast.LENGTH_SHORT); Toast.makeText(getActivity(), "Ordine eliminato!", Toast.LENGTH_SHORT).show();
fetchOrders(); fetchOrders();
}); });
}, e -> { }, e -> {

View File

@ -13,6 +13,7 @@ import android.view.inputmethod.EditorInfo;
import androidx.appcompat.widget.AppCompatTextView; import androidx.appcompat.widget.AppCompatTextView;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import androidx.core.content.res.ResourcesCompat;
import androidx.databinding.DataBindingUtil; import androidx.databinding.DataBindingUtil;
import androidx.databinding.ObservableField; import androidx.databinding.ObservableField;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
@ -245,7 +246,7 @@ public class RettificaGiacenzeFragment extends Fragment implements ITitledFragme
public void setUIToForn() { public void setUIToForn() {
mBinding.rettificaGiacenzeFornCheckBox.setChecked(true); mBinding.rettificaGiacenzeFornCheckBox.setChecked(true);
mBinding.rettificaGiacenzeFornLayout.setBackground(getActivity().getResources().getDrawable(R.drawable.circular_background_left)); mBinding.rettificaGiacenzeFornLayout.setBackground(ResourcesCompat.getDrawable(getActivity().getResources(), R.drawable.circular_background_left, null));
mBinding.rettificaGiacenzeFornLayout.setBackgroundTintList(ColorStateList.valueOf(getActivity().getResources().getColor(R.color.alpha_blue_500))); mBinding.rettificaGiacenzeFornLayout.setBackgroundTintList(ColorStateList.valueOf(getActivity().getResources().getColor(R.color.alpha_blue_500)));
mBinding.rettificaGiacenzeArtIntCheckBox.setChecked(false); mBinding.rettificaGiacenzeArtIntCheckBox.setChecked(false);
@ -256,7 +257,7 @@ public class RettificaGiacenzeFragment extends Fragment implements ITitledFragme
public void setUIToIntArt() { public void setUIToIntArt() {
mBinding.rettificaGiacenzeArtIntCheckBox.setChecked(true); mBinding.rettificaGiacenzeArtIntCheckBox.setChecked(true);
mBinding.rettificaGiacenzeArtIntLayout.setBackground(getActivity().getResources().getDrawable(R.drawable.circular_background_left)); mBinding.rettificaGiacenzeArtIntLayout.setBackground(ResourcesCompat.getDrawable(getActivity().getResources(), R.drawable.circular_background_left, null));
mBinding.rettificaGiacenzeArtIntLayout.setBackgroundTintList(ColorStateList.valueOf(getActivity().getResources().getColor(R.color.alpha_blue_500))); mBinding.rettificaGiacenzeArtIntLayout.setBackgroundTintList(ColorStateList.valueOf(getActivity().getResources().getColor(R.color.alpha_blue_500)));
mBinding.rettificaGiacenzeFornCheckBox.setChecked(false); mBinding.rettificaGiacenzeFornCheckBox.setChecked(false);

View File

@ -55,6 +55,7 @@ import it.integry.integrywmsnative.databinding.ActivitySpedizioneBinding;
import it.integry.integrywmsnative.gest.lista_bancali.ListaBancaliActivity; import it.integry.integrywmsnative.gest.lista_bancali.ListaBancaliActivity;
import it.integry.integrywmsnative.gest.spedizione.core.SpedizioneListAdapter; import it.integry.integrywmsnative.gest.spedizione.core.SpedizioneListAdapter;
import it.integry.integrywmsnative.gest.spedizione.core.SpedizioneListModel; import it.integry.integrywmsnative.gest.spedizione.core.SpedizioneListModel;
import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.BaseDialogRowInfoView;
import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException; import it.integry.integrywmsnative.gest.spedizione.exceptions.InvalidPesoKGException;
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO; import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO; import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
@ -67,8 +68,8 @@ import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleInputHelper;
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
import it.integry.integrywmsnative.view.dialogs.camera_barcode_reader.DialogCameraBarcodeReader; import it.integry.integrywmsnative.view.dialogs.camera_barcode_reader.DialogCameraBarcodeReader;
import it.integry.integrywmsnative.view.dialogs.input_peso_lu.DialogInputPeso; import it.integry.integrywmsnative.view.dialogs.input_peso_lu.DialogInputPeso;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO; import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2View;
import it.integry.integrywmsnative.view.dialogs.scan_art.DialogScanArtView; import it.integry.integrywmsnative.view.dialogs.scan_art.DialogScanArtView;
import it.integry.integrywmsnative.view.dialogs.yes_no.DialogYesNo; import it.integry.integrywmsnative.view.dialogs.yes_no.DialogYesNo;
@ -81,7 +82,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
private BottomSheetFragmentLUContentViewModel mBottomSheetFragmentLUContentViewModel; private BottomSheetFragmentLUContentViewModel mBottomSheetFragmentLUContentViewModel;
private ObservableArrayList<SpedizioneListModel> mSpedizioneMutableData = new ObservableArrayList<>(); private final ObservableArrayList<SpedizioneListModel> mSpedizioneMutableData = new ObservableArrayList<>();
public BindableBoolean addExtraItemsEnabled = new BindableBoolean(false); public BindableBoolean addExtraItemsEnabled = new BindableBoolean(false);
@ -101,12 +102,20 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
private GestioneEnum mGestioneCol; private GestioneEnum mGestioneCol;
private int mSegnoCol; private int mSegnoCol;
private Integer mDefaultCausaleUL; private Integer mDefaultCausaleUL;
private Class<? extends BaseDialogRowInfoView> mInfoDialogClassType;
private boolean mShouldCloseActivity; private boolean mShouldCloseActivity;
private final int PICK_UL_REQUEST = 1; private final int PICK_UL_REQUEST = 1;
public static void startActivity(Context context, List<SitArtOrdDTO> ordini, List<OrdineUscitaInevasoDTO> selectedOrders, List<MtbColt> mtbColtList, GestioneEnum gestioneCol, int segnoCol, Integer defaultCausaleUL) { public static void startActivity(Context context,
List<SitArtOrdDTO> ordini,
List<OrdineUscitaInevasoDTO> selectedOrders,
List<MtbColt> mtbColtList,
GestioneEnum gestioneCol,
int segnoCol,
Integer defaultCausaleUL,
Class<? extends BaseDialogRowInfoView> infoDialogClassType) {
Intent myIntent = new Intent(context, SpedizioneActivity.class); Intent myIntent = new Intent(context, SpedizioneActivity.class);
String keyPickingList = DataCache.addItem(ordini); String keyPickingList = DataCache.addItem(ordini);
@ -127,6 +136,9 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
String keyDefaultCausaleUL = DataCache.addItem(defaultCausaleUL); String keyDefaultCausaleUL = DataCache.addItem(defaultCausaleUL);
myIntent.putExtra("keyDefaultCausaleCol", keyDefaultCausaleUL); myIntent.putExtra("keyDefaultCausaleCol", keyDefaultCausaleUL);
String keyInfoDialogClassType = DataCache.addItem(infoDialogClassType);
myIntent.putExtra("keyInfoDialogClassType", keyInfoDialogClassType);
context.startActivity(myIntent); context.startActivity(myIntent);
} }
@ -140,6 +152,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
mGestioneCol = DataCache.retrieveItem(getIntent().getStringExtra("keyGestioneCol")); mGestioneCol = DataCache.retrieveItem(getIntent().getStringExtra("keyGestioneCol"));
mSegnoCol = DataCache.retrieveItem(getIntent().getStringExtra("keySegnoCol")); mSegnoCol = DataCache.retrieveItem(getIntent().getStringExtra("keySegnoCol"));
mDefaultCausaleUL = DataCache.retrieveItem(getIntent().getStringExtra("keyDefaultCausaleCol")); mDefaultCausaleUL = DataCache.retrieveItem(getIntent().getStringExtra("keyDefaultCausaleCol"));
mInfoDialogClassType = DataCache.retrieveItem(getIntent().getStringExtra("keyInfoDialogClassType"));
mBindings = DataBindingUtil.setContentView(this, R.layout.activity_spedizione); mBindings = DataBindingUtil.setContentView(this, R.layout.activity_spedizione);
@ -236,15 +249,15 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
this.noItemsToPick.set(!isThereAnyItemToPick(updatedData)); this.noItemsToPick.set(!isThereAnyItemToPick(updatedData));
}); });
SpedizioneListAdapter spedizioneListAdapter = new SpedizioneListAdapter(this, mSpedizioneMutableData); SpedizioneListAdapter spedizioneListAdapter = new SpedizioneListAdapter(this, mSpedizioneMutableData, mInfoDialogClassType, getSupportFragmentManager());
this.mBindings.spedizionePickingList.setAdapter(spedizioneListAdapter); this.mBindings.spedizionePickingList.setAdapter(spedizioneListAdapter);
this.mBindings.spedizionePickingList.setLayoutManager(new LinearLayoutManager(this)); this.mBindings.spedizionePickingList.setLayoutManager(new LinearLayoutManager(this));
spedizioneListAdapter.setOnItemClicked((clickedItem, refMtbColt) -> { spedizioneListAdapter.setOnItemClicked((clickedItem, refMtbColt) -> {
if (!noLUPresent.get() && if (!noLUPresent.get() &&
((SettingsManager.iDB().isFlagSpedizioneEnableManualPick() && ((SettingsManager.iDB().isFlagSpedizioneEnableManualPick() &&
clickedItem.getSitArtOrdDTO().isFlagEnablePickManuale()) || clickedItem.getSitArtOrdDTO().isFlagEnablePickManuale()) ||
clickedItem.getTempPickData() != null)) { clickedItem.getTempPickData() != null)) {
this.mViewmodel.dispatchOrdineRow(clickedItem, refMtbColt); this.mViewmodel.dispatchOrdineRow(clickedItem, refMtbColt);
} }
}); });
@ -261,7 +274,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
List<SpedizioneListModel> sortedList = null; List<SpedizioneListModel> sortedList = null;
if(!mDivideByGrpMerc) { if (!mDivideByGrpMerc) {
Stream.of(tmpList) Stream.of(tmpList)
.forEach(x -> { .forEach(x -> {
SpedizioneListModel spedizioneListModel = new SpedizioneListModel(); SpedizioneListModel spedizioneListModel = new SpedizioneListModel();
@ -324,10 +337,10 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
for (MtbColt mtbColtToPick : x.getMtbColts()) { for (MtbColt mtbColtToPick : x.getMtbColts()) {
if(UtilityBigDecimal.equalsTo(qtaColOrdCounter, BigDecimal.ZERO) || UtilityBigDecimal.lowerThan(qtaColOrdCounter, BigDecimal.ZERO)) if (UtilityBigDecimal.equalsTo(qtaColOrdCounter, BigDecimal.ZERO) || UtilityBigDecimal.lowerThan(qtaColOrdCounter, BigDecimal.ZERO))
break; break;
if(UtilityBigDecimal.equalsTo(numCnfOrdCounter, BigDecimal.ZERO) || UtilityBigDecimal.lowerThan(numCnfOrdCounter, BigDecimal.ZERO)) if (UtilityBigDecimal.equalsTo(numCnfOrdCounter, BigDecimal.ZERO) || UtilityBigDecimal.lowerThan(numCnfOrdCounter, BigDecimal.ZERO))
break; break;
SpedizioneListModel cloneModel = (SpedizioneListModel) spedizioneListModel.clone(); SpedizioneListModel cloneModel = (SpedizioneListModel) spedizioneListModel.clone();
@ -348,7 +361,8 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
BigDecimal numCnfOrdToSubstract = UtilityBigDecimal.getLowerBetween(mtbColrToDispatch.getNumCnf(), numCnfOrdCounter); BigDecimal numCnfOrdToSubstract = UtilityBigDecimal.getLowerBetween(mtbColrToDispatch.getNumCnf(), numCnfOrdCounter);
BigDecimal qtaTot = UtilityBigDecimal.getLowerBetween(mtbColrToDispatch.getNumCnf(), numCnfOrdCounter); BigDecimal qtaTot = UtilityBigDecimal.getLowerBetween(mtbColrToDispatch.getNumCnf(), numCnfOrdCounter);
if(UtilityBigDecimal.equalsTo(qtaTot, BigDecimal.ZERO) || UtilityBigDecimal.lowerThan(qtaTot, BigDecimal.ZERO)) continue; if (UtilityBigDecimal.equalsTo(qtaTot, BigDecimal.ZERO) || UtilityBigDecimal.lowerThan(qtaTot, BigDecimal.ZERO))
continue;
cloneModel.setQtaTot(qtaTot); cloneModel.setQtaTot(qtaTot);
numCnfOrdCounter = numCnfOrdCounter.subtract(numCnfOrdToSubstract); numCnfOrdCounter = numCnfOrdCounter.subtract(numCnfOrdToSubstract);
@ -372,7 +386,8 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
BigDecimal qtaOrdToSubstract = UtilityBigDecimal.getLowerBetween(mtbColrToDispatch.getQtaCol(), qtaColOrdCounter); BigDecimal qtaOrdToSubstract = UtilityBigDecimal.getLowerBetween(mtbColrToDispatch.getQtaCol(), qtaColOrdCounter);
BigDecimal qtaTot = UtilityBigDecimal.getLowerBetween(mtbColrToDispatch.getQtaCol(), qtaColOrdCounter); BigDecimal qtaTot = UtilityBigDecimal.getLowerBetween(mtbColrToDispatch.getQtaCol(), qtaColOrdCounter);
if(UtilityBigDecimal.equalsTo(qtaTot, BigDecimal.ZERO) || UtilityBigDecimal.lowerThan(qtaTot, BigDecimal.ZERO)) continue; if (UtilityBigDecimal.equalsTo(qtaTot, BigDecimal.ZERO) || UtilityBigDecimal.lowerThan(qtaTot, BigDecimal.ZERO))
continue;
cloneModel.setQtaTot(qtaTot); cloneModel.setQtaTot(qtaTot);
qtaColOrdCounter = qtaColOrdCounter.subtract(qtaOrdToSubstract); qtaColOrdCounter = qtaColOrdCounter.subtract(qtaOrdToSubstract);
@ -458,7 +473,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
String groupTitle = String.format("%s - %s", x.getSitArtOrdDTO().getDescrizioneMgrp(), x.getSitArtOrdDTO().getDescrizioneMsgr()); String groupTitle = String.format("%s - %s", x.getSitArtOrdDTO().getDescrizioneMgrp(), x.getSitArtOrdDTO().getDescrizioneMsgr());
if(!UtilityString.isNullOrEmpty(x.getSitArtOrdDTO().getDescrizioneMsfa())) { if (!UtilityString.isNullOrEmpty(x.getSitArtOrdDTO().getDescrizioneMsfa())) {
groupTitle += " - " + x.getSitArtOrdDTO().getDescrizioneMsfa(); groupTitle += " - " + x.getSitArtOrdDTO().getDescrizioneMsfa();
} }
@ -488,10 +503,10 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
for (MtbColt mtbColtToPick : x.getMtbColts()) { for (MtbColt mtbColtToPick : x.getMtbColts()) {
if(UtilityBigDecimal.equalsTo(qtaColOrdCounter, BigDecimal.ZERO) || UtilityBigDecimal.lowerThan(qtaColOrdCounter, BigDecimal.ZERO)) if (UtilityBigDecimal.equalsTo(qtaColOrdCounter, BigDecimal.ZERO) || UtilityBigDecimal.lowerThan(qtaColOrdCounter, BigDecimal.ZERO))
break; break;
if(UtilityBigDecimal.equalsTo(numCnfOrdCounter, BigDecimal.ZERO) || UtilityBigDecimal.lowerThan(numCnfOrdCounter, BigDecimal.ZERO)) if (UtilityBigDecimal.equalsTo(numCnfOrdCounter, BigDecimal.ZERO) || UtilityBigDecimal.lowerThan(numCnfOrdCounter, BigDecimal.ZERO))
break; break;
SpedizioneListModel cloneModel = (SpedizioneListModel) spedizioneListModel.clone(); SpedizioneListModel cloneModel = (SpedizioneListModel) spedizioneListModel.clone();
@ -511,7 +526,8 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
BigDecimal numCnfOrdToSubstract = UtilityBigDecimal.getLowerBetween(mtbColrToDispatch.getNumCnf(), numCnfOrdCounter); BigDecimal numCnfOrdToSubstract = UtilityBigDecimal.getLowerBetween(mtbColrToDispatch.getNumCnf(), numCnfOrdCounter);
BigDecimal qtaTot = UtilityBigDecimal.getLowerBetween(mtbColrToDispatch.getNumCnf(), numCnfOrdCounter); BigDecimal qtaTot = UtilityBigDecimal.getLowerBetween(mtbColrToDispatch.getNumCnf(), numCnfOrdCounter);
if(UtilityBigDecimal.equalsTo(qtaTot, BigDecimal.ZERO) || UtilityBigDecimal.lowerThan(qtaTot, BigDecimal.ZERO)) continue; if (UtilityBigDecimal.equalsTo(qtaTot, BigDecimal.ZERO) || UtilityBigDecimal.lowerThan(qtaTot, BigDecimal.ZERO))
continue;
cloneModel.setQtaTot(qtaTot); cloneModel.setQtaTot(qtaTot);
numCnfOrdCounter = numCnfOrdCounter.subtract(numCnfOrdToSubstract); numCnfOrdCounter = numCnfOrdCounter.subtract(numCnfOrdToSubstract);
@ -533,7 +549,8 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
BigDecimal qtaOrdToSubstract = UtilityBigDecimal.getLowerBetween(mtbColrToDispatch.getQtaCol(), qtaColOrdCounter); BigDecimal qtaOrdToSubstract = UtilityBigDecimal.getLowerBetween(mtbColrToDispatch.getQtaCol(), qtaColOrdCounter);
BigDecimal qtaTot = UtilityBigDecimal.getLowerBetween(mtbColrToDispatch.getQtaCol(), qtaColOrdCounter); BigDecimal qtaTot = UtilityBigDecimal.getLowerBetween(mtbColrToDispatch.getQtaCol(), qtaColOrdCounter);
if(UtilityBigDecimal.equalsTo(qtaTot, BigDecimal.ZERO) || UtilityBigDecimal.lowerThan(qtaTot, BigDecimal.ZERO)) continue; if (UtilityBigDecimal.equalsTo(qtaTot, BigDecimal.ZERO) || UtilityBigDecimal.lowerThan(qtaTot, BigDecimal.ZERO))
continue;
cloneModel.setQtaTot(qtaTot); cloneModel.setQtaTot(qtaTot);
qtaColOrdCounter = qtaColOrdCounter.subtract(qtaOrdToSubstract); qtaColOrdCounter = qtaColOrdCounter.subtract(qtaOrdToSubstract);
@ -598,7 +615,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
public void addExtraItem() { public void addExtraItem() {
DialogScanArtView DialogScanArtView
.newInstance((status, mtbAart, ean128Model, mtbColr) -> { .newInstance((status, mtbAart, ean128Model, mtbColr) -> {
if(status == DialogConsts.Results.YES) { if (status == DialogConsts.Results.YES) {
this.mViewmodel.dispatchExtraItem(mtbAart, ean128Model, mtbColr); this.mViewmodel.dispatchExtraItem(mtbAart, ean128Model, mtbColr);
} }
}) })
@ -742,7 +759,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
public void onError(Exception ex) { public void onError(Exception ex) {
this.closeProgress(); this.closeProgress();
if(ex instanceof InvalidPesoKGException) { if (ex instanceof InvalidPesoKGException) {
UtilityToast.showToast(ex.getMessage()); UtilityToast.showToast(ex.getMessage());
} else { } else {
UtilityExceptions.defaultException(this, ex, mCurrentProgress); UtilityExceptions.defaultException(this, ex, mCurrentProgress);

View File

@ -1335,7 +1335,7 @@ public class SpedizioneViewModel {
.setNumCollo(value.getNumCollo()) .setNumCollo(value.getNumCollo())
.setGestione(value.getGestione()) .setGestione(value.getGestione())
.setSerCollo(value.getSerCollo()) .setSerCollo(value.getSerCollo())
.setRiga(value.getMtbColr().get(0).getRiga()) .setRiga(value.getMtbColr().get(value.getMtbColr().size() - 1).getRiga())
.setUntMis(pickingObjectDTO.getMtbAart().getUntMis()) .setUntMis(pickingObjectDTO.getMtbAart().getUntMis())
.setMtbAart(pickingObjectDTO.getMtbAart()); .setMtbAart(pickingObjectDTO.getMtbAart());

View File

@ -8,29 +8,37 @@ import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.res.ResourcesCompat;
import androidx.databinding.DataBindingUtil; import androidx.databinding.DataBindingUtil;
import androidx.databinding.ObservableArrayList; import androidx.databinding.ObservableArrayList;
import androidx.databinding.ObservableList; import androidx.databinding.ObservableList;
import androidx.fragment.app.FragmentManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.zhukic.sectionedrecyclerview.SectionedRecyclerViewAdapter; import com.zhukic.sectionedrecyclerview.SectionedRecyclerViewAdapter;
import java.lang.reflect.Constructor;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.expansion.OnListGeneralChangedCallback; import it.integry.integrywmsnative.core.expansion.OnListGeneralChangedCallback;
import it.integry.integrywmsnative.core.expansion.OnSingleClickListener;
import it.integry.integrywmsnative.core.expansion.RunnableArgss; import it.integry.integrywmsnative.core.expansion.RunnableArgss;
import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.core.utility.UtilityNumber; import it.integry.integrywmsnative.core.utility.UtilityNumber;
import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.SpedizioneMainListGroupHeaderBinding; import it.integry.integrywmsnative.databinding.SpedizioneMainListGroupHeaderBinding;
import it.integry.integrywmsnative.databinding.SpedizioneMainListGroupItemBinding; import it.integry.integrywmsnative.databinding.SpedizioneMainListGroupItemBinding;
import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.BaseDialogRowInfoView;
import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO; import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO;
public class SpedizioneListAdapter extends SectionedRecyclerViewAdapter<SpedizioneListAdapter.SubheaderHolder, SpedizioneListAdapter.SingleItemViewHolder> { public class SpedizioneListAdapter extends SectionedRecyclerViewAdapter<SpedizioneListAdapter.SubheaderHolder, SpedizioneListAdapter.SingleItemViewHolder> {
private Context mContext; private final Context mContext;
private final Class<? extends BaseDialogRowInfoView> mInfoDialogClassType;
private final FragmentManager mFragmentManager;
private final List<SpedizioneListModel> mDataset = new ArrayList<>(); private final List<SpedizioneListModel> mDataset = new ArrayList<>();
private RunnableArgss<PickingObjectDTO, MtbColt> mOnItemClicked; private RunnableArgss<PickingObjectDTO, MtbColt> mOnItemClicked;
@ -57,8 +65,10 @@ public class SpedizioneListAdapter extends SectionedRecyclerViewAdapter<Spedizio
} }
public SpedizioneListAdapter(AppCompatActivity context, ObservableArrayList<SpedizioneListModel> mutableDataSet) { public SpedizioneListAdapter(AppCompatActivity context, ObservableArrayList<SpedizioneListModel> mutableDataSet, Class<? extends BaseDialogRowInfoView> infoDialogClassType, FragmentManager fragmentManager) {
this.mContext = context; this.mContext = context;
this.mInfoDialogClassType = infoDialogClassType;
this.mFragmentManager = fragmentManager;
mutableDataSet.addOnListChangedCallback(new OnListGeneralChangedCallback() { mutableDataSet.addOnListChangedCallback(new OnListGeneralChangedCallback() {
@Override @Override
@ -113,8 +123,8 @@ public class SpedizioneListAdapter extends SectionedRecyclerViewAdapter<Spedizio
holder.mBinding.deactivatedOverBg.setVisibility(!pickingObjectDTO.isActive() ? View.VISIBLE : View.GONE); holder.mBinding.deactivatedOverBg.setVisibility(!pickingObjectDTO.isActive() ? View.VISIBLE : View.GONE);
holder.mBinding.getRoot().setAlpha(!pickingObjectDTO.isActive() ? 0.8f : 1); holder.mBinding.getRoot().setAlpha(!pickingObjectDTO.isActive() ? 0.8f : 1);
holder.mBinding.badge1.setBackground(mContext.getResources().getDrawable(!pickingObjectDTO.isActive() ? R.drawable.badge_gray_round_corner : R.drawable.badge1_round_corner)); holder.mBinding.badge1.setBackground(ResourcesCompat.getDrawable(mContext.getResources(), !pickingObjectDTO.isActive() ? R.drawable.badge_gray_round_corner : R.drawable.badge1_round_corner, null));
holder.mBinding.qtaEvasa.setTextColor(mContext.getResources().getColor(!pickingObjectDTO.isActive() ? R.color.gray_600 : R.color.green_700)); holder.mBinding.qtaEvasa.setTextColor(ResourcesCompat.getColor(mContext.getResources(), !pickingObjectDTO.isActive() ? R.color.gray_600 : R.color.green_700, null));
holder.mBinding.descrizione.setText(pickingObjectDTO.getDescrizione()); holder.mBinding.descrizione.setText(pickingObjectDTO.getDescrizione());
holder.mBinding.descrizione.setTextColor(pickingObjectDTO.isDescrizionePresente() ? Color.BLACK : Color.GRAY); holder.mBinding.descrizione.setTextColor(pickingObjectDTO.isDescrizionePresente() ? Color.BLACK : Color.GRAY);
@ -137,6 +147,16 @@ public class SpedizioneListAdapter extends SectionedRecyclerViewAdapter<Spedizio
holder.mBinding.untMis.setText(pickingObjectDTO.getUntMis()); holder.mBinding.untMis.setText(pickingObjectDTO.getUntMis());
holder.mBinding.untMis.setVisibility(UtilityString.isNullOrEmpty(pickingObjectDTO.getUntMis()) ? View.GONE : View.VISIBLE); holder.mBinding.untMis.setVisibility(UtilityString.isNullOrEmpty(pickingObjectDTO.getUntMis()) ? View.GONE : View.VISIBLE);
if (mInfoDialogClassType != null) {
holder.mBinding.infoRow.setVisibility(View.VISIBLE);
holder.mBinding.infoRow.setOnClickListener(new OnSingleClickListener() {
@Override
public void onSingleClick(View v) {
openInfoDialog(pickingObjectDTO);
}
});
}
holder.mBinding.getRoot().setOnClickListener(v -> { holder.mBinding.getRoot().setOnClickListener(v -> {
if (this.mOnItemClicked != null) if (this.mOnItemClicked != null)
this.mOnItemClicked.run(pickingObjectDTO.getOriginalModel(), pickingObjectDTO.getSourceMtbColt()); this.mOnItemClicked.run(pickingObjectDTO.getOriginalModel(), pickingObjectDTO.getSourceMtbColt());
@ -166,4 +186,20 @@ public class SpedizioneListAdapter extends SectionedRecyclerViewAdapter<Spedizio
} }
private void openInfoDialog(SpedizioneListModel item) {
try {
Constructor<?> cons = Class.forName(mInfoDialogClassType.getName()).getConstructors()[0];
BaseDialogRowInfoView object = (BaseDialogRowInfoView) cons.newInstance(item, (Runnable) () -> {
}, (Runnable) () -> {
});
object.show(mFragmentManager, "tag");
} catch (Exception e) {
UtilityExceptions.defaultException(this.mContext, e);
}
}
} }

View File

@ -0,0 +1,31 @@
package it.integry.integrywmsnative.gest.spedizione.dialogs.row_info;
import org.jetbrains.annotations.NotNull;
import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
import it.integry.integrywmsnative.gest.spedizione.core.SpedizioneListModel;
public abstract class BaseDialogRowInfoView extends BaseDialogFragment implements IBaseDialogRowInfoView {
private final SpedizioneListModel mSpedizioneListModel;
private final Runnable mOnComplete;
private final Runnable mOnAbort;
public BaseDialogRowInfoView(@NotNull SpedizioneListModel spedizioneListModel, @NotNull Runnable onComplete, @NotNull Runnable onAbort) {
this.mSpedizioneListModel = spedizioneListModel;
this.mOnComplete = onComplete;
this.mOnAbort = onAbort;
}
protected SpedizioneListModel getSpedizioneListModel() {
return mSpedizioneListModel;
}
protected Runnable getOnComplete() {
return mOnComplete;
}
protected Runnable getOnAbort() {
return mOnAbort;
}
}

View File

@ -0,0 +1,4 @@
package it.integry.integrywmsnative.gest.spedizione.dialogs.row_info;
public interface IBaseDialogRowInfoView {
}

View File

@ -0,0 +1,14 @@
package it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.prod_fabbisogno_linee_prod;
import dagger.Subcomponent;
@Subcomponent
public interface DialogRowInfoProdFabbisognoLineeProdComponent {
@Subcomponent.Factory
interface Factory {
DialogRowInfoProdFabbisognoLineeProdComponent create();
}
void inject(DialogRowInfoProdFabbisognoLineeProdView dialogRowInfoProdFabbisognoLineeProdView);
}

View File

@ -0,0 +1,16 @@
package it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.prod_fabbisogno_linee_prod;
import dagger.Module;
import dagger.Provides;
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.rest.ProdFabbisognoLineeProdRESTConsumer;
@Module(subcomponents = DialogRowInfoProdFabbisognoLineeProdComponent.class)
public class DialogRowInfoProdFabbisognoLineeProdModule {
@Provides
DialogRowInfoProdFabbisognoLineeProdViewModel providesDialogRowInfoProdFabbisognoLineeProdViewModel(ProdFabbisognoLineeProdRESTConsumer prodFabbisognoLineeProdRESTConsumer) {
return new DialogRowInfoProdFabbisognoLineeProdViewModel(prodFabbisognoLineeProdRESTConsumer);
}
}

View File

@ -0,0 +1,113 @@
package it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.prod_fabbisogno_linee_prod;
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.databinding.DataBindingUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.Date;
import java.util.List;
import javax.inject.Inject;
import it.integry.integrywmsnative.MainApplication;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.rest.model.SitArtOrdDTO;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.databinding.DialogRowInfoProdFabbisognoLineeProdBinding;
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dto.ProdFabbisognoLineeProdDTO;
import it.integry.integrywmsnative.gest.spedizione.core.SpedizioneListModel;
import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.BaseDialogRowInfoView;
public class DialogRowInfoProdFabbisognoLineeProdView extends BaseDialogRowInfoView implements DialogRowInfoProdFabbisognoLineeProdViewModel.Listener {
@Inject
DialogRowInfoProdFabbisognoLineeProdViewModel mViewModel;
private Context mContext;
private DialogRowInfoProdFabbisognoLineeProdBinding mBindings;
public DialogRowInfoProdFabbisognoLineeProdView(@NotNull SpedizioneListModel spedizioneListModel, @NotNull Runnable onComplete, @NotNull Runnable onAbort) {
super(spedizioneListModel, onComplete, onAbort);
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
this.mContext = getActivity();
mBindings = DataBindingUtil.inflate(inflater, R.layout.dialog_row_info_prod_fabbisogno_linee_prod, container, false);
MainApplication.appComponent
.dialogRowInfoProdFabbisognoLineeProdComponent()
.create()
.inject(this);
setCancelable(true);
getDialog().setCanceledOnTouchOutside(true);
getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
this.mViewModel.setListener(this);
return mBindings.getRoot();
}
@Override
public void onStart() {
super.onStart();
SitArtOrdDTO sitArtOrdDTO = getSpedizioneListModel().getOriginalModel().getSitArtOrdDTO();
this.mViewModel.getFabbisognoList().removeObservers(this);
this.mViewModel.getFabbisognoList().observe(this, this::onFabbisognoListLoaded);
this.mViewModel.init(
sitArtOrdDTO.getCodMart(),
sitArtOrdDTO.getCodMdep(),
(Date) sitArtOrdDTO.getExtraInfo().get("dataInizio"),
(Date) sitArtOrdDTO.getExtraInfo().get("dataFine"));
}
private void onFabbisognoListLoaded(List<ProdFabbisognoLineeProdDTO> fabbisognoList) {
for (int i = 0; i < fabbisognoList.size(); i++) {
String currentKey = fabbisognoList.get(i).getCodJfas();
ViewGroup.LayoutParams lparams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
TextView tv = new TextView(this.mContext);
tv.setLayoutParams(lparams);
tv.setText(currentKey);
this.mBindings.contentView.addView(tv);
}
}
@Override
public void onError(Exception ex) {
UtilityExceptions.defaultException(this.mContext, ex);
dismiss();
}
@Override
public void onLoadingStarted() {
this.mBindings.loadingView.setVisibility(View.VISIBLE);
this.mBindings.contentView.setVisibility(View.GONE);
}
@Override
public void onLoadingEnded() {
this.mBindings.loadingView.setVisibility(View.GONE);
this.mBindings.contentView.setVisibility(View.VISIBLE);
}
}

View File

@ -0,0 +1,61 @@
package it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.prod_fabbisogno_linee_prod;
import androidx.lifecycle.MutableLiveData;
import java.util.Date;
import java.util.List;
import it.integry.integrywmsnative.core.interfaces.viewmodel_listeners.ILoadingListener;
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.dto.ProdFabbisognoLineeProdDTO;
import it.integry.integrywmsnative.gest.prod_fabbisogno_linee_prod.rest.ProdFabbisognoLineeProdRESTConsumer;
public class DialogRowInfoProdFabbisognoLineeProdViewModel {
private final ProdFabbisognoLineeProdRESTConsumer mProdFabbisognoLineeProdRESTConsumer;
private final MutableLiveData<List<ProdFabbisognoLineeProdDTO>> mFabbisognoList = new MutableLiveData<>();
private Listener mListener;
public DialogRowInfoProdFabbisognoLineeProdViewModel(ProdFabbisognoLineeProdRESTConsumer mProdFabbisognoLineeProdRESTConsumer) {
this.mProdFabbisognoLineeProdRESTConsumer = mProdFabbisognoLineeProdRESTConsumer;
}
public void init(String codMart, String codMdep, Date startDate, Date endDate) {
this.sendOnLoadingStarted();
this.mProdFabbisognoLineeProdRESTConsumer.loadFabbisogno(codMart, startDate, endDate, codMdep, fabbisognoList -> {
this.mFabbisognoList.postValue(fabbisognoList);
this.sendOnLoadingEnded();
}, this::sendError);
}
public MutableLiveData<List<ProdFabbisognoLineeProdDTO>> getFabbisognoList() {
return mFabbisognoList;
}
private void sendOnLoadingStarted() {
if (this.mListener != null) mListener.onLoadingStarted();
}
private void sendOnLoadingEnded() {
if (this.mListener != null) mListener.onLoadingEnded();
}
private void sendError(Exception ex) {
if (this.mListener != null) mListener.onError(ex);
}
public void setListener(Listener listener) {
this.mListener = listener;
}
public interface Listener extends ILoadingListener {
void onError(Exception ex);
}
}

View File

@ -18,6 +18,7 @@ import android.widget.TextView;
import androidx.annotation.StringRes; import androidx.annotation.StringRes;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import androidx.core.content.res.ResourcesCompat;
import androidx.databinding.DataBindingUtil; import androidx.databinding.DataBindingUtil;
import java.util.HashMap; import java.util.HashMap;
@ -66,22 +67,22 @@ public class DialogSimpleMessageHelper {
switch (type) { switch (type) {
case INFO: case INFO:
colorBackgroundTitle = ContextCompat.getColor(mContext, R.color.light_blue_300); colorBackgroundTitle = ContextCompat.getColor(mContext, R.color.light_blue_300);
titleIconRes = mContext.getResources().getDrawable(R.drawable.ic_info_78dp); titleIconRes = ResourcesCompat.getDrawable(mContext.getResources(), R.drawable.ic_info_78dp, null);
break; break;
case SUCCESS: case SUCCESS:
colorBackgroundTitle = ContextCompat.getColor(mContext, R.color.green_300); colorBackgroundTitle = ContextCompat.getColor(mContext, R.color.green_300);
titleIconRes = mContext.getResources().getDrawable(R.drawable.ic_done_white_24dp); titleIconRes = ResourcesCompat.getDrawable(mContext.getResources(), R.drawable.ic_done_white_24dp, null);
break; break;
case WARNING: case WARNING:
colorBackgroundTitle = ContextCompat.getColor(mContext, R.color.yellow_600); colorBackgroundTitle = ContextCompat.getColor(mContext, R.color.yellow_600);
titleIconRes = mContext.getResources().getDrawable(R.drawable.ic_warning_white_24dp); titleIconRes = ResourcesCompat.getDrawable(mContext.getResources(), R.drawable.ic_warning_white_24dp, null);
break; break;
case ERROR: case ERROR:
colorBackgroundTitle = ContextCompat.getColor(mContext, R.color.red_300); colorBackgroundTitle = ContextCompat.getColor(mContext, R.color.red_300);
titleIconRes = mContext.getResources().getDrawable(R.drawable.ic_mood_bad_24dp); titleIconRes = ResourcesCompat.getDrawable(mContext.getResources(), R.drawable.ic_mood_bad_24dp, null);
break; break;
} }

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android" <vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="512dp" android:width="128dp"
android:height="512dp" android:height="128dp"
android:viewportWidth="512" android:viewportWidth="512"
android:viewportHeight="512"> android:viewportHeight="512">

View File

@ -1,6 +1,6 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" <vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="512dp" android:width="128dp"
android:height="512dp" android:height="128dp"
android:viewportWidth="512" android:viewportWidth="512"
android:viewportHeight="512"> android:viewportHeight="512">
<path <path

View File

@ -1,6 +1,6 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android" <vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="512dp" android:width="128dp"
android:height="512dp" android:height="128dp"
android:viewportWidth="512" android:viewportWidth="512"
android:viewportHeight="512"> android:viewportHeight="512">
<path <path

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android" <vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="250dp" android:width="200dp"
android:height="105dp" android:height="84dp"
android:viewportWidth="250" android:viewportWidth="250"
android:viewportHeight="105"> android:viewportHeight="105">

View File

@ -8,7 +8,7 @@
android:background="@color/full_white"> android:background="@color/full_white">
<LinearLayout <LinearLayout
android:id="@+id/content_view" android:id="@+id/content_view_child"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
@ -113,8 +113,8 @@
android:id="@+id/deactivated_over_bg" android:id="@+id/deactivated_over_bg"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignTop="@id/content_view" android:layout_alignTop="@id/content_view_child"
android:layout_alignBottom="@id/content_view" android:layout_alignBottom="@id/content_view_child"
android:background="@android:color/black" android:background="@android:color/black"
android:alpha="0.15" /> android:alpha="0.15" />

View File

@ -73,21 +73,21 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<com.google.android.material.textfield.TextInputLayout <!-- <com.google.android.material.textfield.TextInputLayout-->
android:id="@+id/input_linea_prod" <!-- android:id="@+id/input_linea_prod"-->
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu" <!-- style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu"-->
android:layout_width="match_parent" <!-- android:layout_width="match_parent"-->
android:layout_height="wrap_content" <!-- android:layout_height="wrap_content"-->
android:hint="@string/production_line"> <!-- android:hint="@string/production_line">-->
<androidx.appcompat.widget.AppCompatAutoCompleteTextView <!-- <androidx.appcompat.widget.AppCompatAutoCompleteTextView-->
android:id="@+id/dropdown_linea_prod" <!-- android:id="@+id/dropdown_linea_prod"-->
android:layout_width="match_parent" <!-- android:layout_width="match_parent"-->
android:layout_height="wrap_content" <!-- android:layout_height="wrap_content"-->
android:singleLine="true" <!-- android:singleLine="true"-->
android:ellipsize="end"/> <!-- android:ellipsize="end"/>-->
</com.google.android.material.textfield.TextInputLayout> <!-- </com.google.android.material.textfield.TextInputLayout>-->
<androidx.appcompat.widget.LinearLayoutCompat <androidx.appcompat.widget.LinearLayoutCompat

View File

@ -1,8 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
@ -13,41 +12,43 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<androidx.constraintlayout.widget.Guideline <androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline" android:id="@+id/guideline"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
app:layout_constraintGuide_percent="0.40" /> app:layout_constraintGuide_percent="0.40" />
<TextView <TextView
android:id="@+id/dialog_content_hashmap_key" android:id="@+id/dialog_content_hashmap_key"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="0dp" android:layout_marginStart="0dp"
android:layout_marginStart="0dp" android:layout_marginEnd="0dp"
tools:text="TextView" android:textColor="@android:color/black"
android:textColor="@android:color/black" android:textSize="16sp"
android:textSize="16sp" app:layout_constraintEnd_toStartOf="@+id/guideline"
app:layout_constraintEnd_toStartOf="@+id/guideline" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintStart_toStartOf="parent" /> app:layout_constraintTop_toTopOf="parent"
tools:text="TextView" />
<TextView <TextView
android:id="@+id/dialog_content_hashmap_value" android:id="@+id/dialog_content_hashmap_value"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="0dp" android:layout_marginStart="0dp"
android:layout_marginStart="0dp" android:layout_marginEnd="0dp"
tools:text="TextView" android:textSize="16sp"
android:textSize="16sp" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@+id/guideline" app:layout_constraintStart_toStartOf="@+id/guideline"
app:layout_constraintEnd_toEndOf="parent" /> app:layout_constraintTop_toTopOf="parent"
tools:text="TextView" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</RelativeLayout> </RelativeLayout>
<!--<LinearLayout--> <!--<LinearLayout-->
<!--xmlns:android="http://schemas.android.com/apk/res/android"--> <!--xmlns:android="http://schemas.android.com/apk/res/android"-->
<!--android:layout_width="match_parent"--> <!--android:layout_width="match_parent"-->
<!--android:layout_height="wrap_content"--> <!--android:layout_height="wrap_content"-->
@ -56,18 +57,18 @@
<!--android:weightSum="1">--> <!--android:weightSum="1">-->
<!--<android.support.v7.widget.AppCompatTextView--> <!--<android.support.v7.widget.AppCompatTextView-->
<!--android:id="@+id/dialog_content_hashmap_key"--> <!--android:id="@+id/dialog_content_hashmap_key"-->
<!--android:layout_width="wrap_content"--> <!--android:layout_width="wrap_content"-->
<!--android:layout_height="wrap_content"--> <!--android:layout_height="wrap_content"-->
<!--android:text="Key"--> <!--android:text="Key"-->
<!--android:textColor="@android:color/black"--> <!--android:textColor="@android:color/black"-->
<!--android:layout_weight="0.4"/>--> <!--android:layout_weight="0.4"/>-->
<!--<android.support.v7.widget.AppCompatTextView--> <!--<android.support.v7.widget.AppCompatTextView-->
<!--android:id="@+id/dialog_content_hashmap_value"--> <!--android:id="@+id/dialog_content_hashmap_value"-->
<!--android:layout_width="wrap_content"--> <!--android:layout_width="wrap_content"-->
<!--android:layout_height="wrap_content"--> <!--android:layout_height="wrap_content"-->
<!--android:text="Value"--> <!--android:text="Value"-->
<!--android:layout_weight="0.6"/>--> <!--android:layout_weight="0.6"/>-->
<!--</LinearLayout>--> <!--</LinearLayout>-->

View File

@ -0,0 +1,88 @@
<?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">
<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"
style="@style/TextViewMaterial.DialogTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:gravity="center_horizontal"
android:text="@string/info" />
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/loading_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<!-- <androidx.appcompat.widget.AppCompatTextView-->
<!-- style="@style/TextViewMaterial.DialogTitle"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:gravity="center_horizontal"-->
<!-- android:text="@string/loading" />-->
<ProgressBar
android:id="@+id/progressBar"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:indeterminate="true" />
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/content_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_horizontal">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/AppTheme.NewMaterial.Text.Medium"
android:text="Linee di impegno"
android:layout_marginBottom="8dp"/>
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/content_view_child"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
</LinearLayout>
</ScrollView>
</androidx.cardview.widget.CardView>
</layout>

View File

@ -32,7 +32,7 @@
android:id="@+id/badge1" android:id="@+id/badge1"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="BADGE 1" tools:text="BADGE 1"
android:background="@drawable/badge1_round_corner" android:background="@drawable/badge1_round_corner"
android:textColor="@android:color/white" android:textColor="@android:color/white"
android:paddingTop="2dp" android:paddingTop="2dp"
@ -49,7 +49,6 @@
style="@android:style/TextAppearance.Small" style="@android:style/TextAppearance.Small"
android:layout_marginTop="4dp" android:layout_marginTop="4dp"
android:layout_marginEnd="4dp" android:layout_marginEnd="4dp"
android:layout_toStartOf="@id/compilato_da"
android:layout_below="@id/badge1" android:layout_below="@id/badge1"
android:singleLine="true" android:singleLine="true"
android:ellipsize="end" android:ellipsize="end"

View File

@ -1,30 +1,33 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<layout xmlns:tools="http://schemas.android.com/tools" <layout xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:app="http://schemas.android.com/apk/res-auto"> xmlns:tools="http://schemas.android.com/tools">
<data> <data>
<import type="android.view.View" /> <import type="android.view.View" />
<import type="it.integry.integrywmsnative.core.utility.UtilityString" /> <import type="it.integry.integrywmsnative.core.utility.UtilityString" />
<import type="it.integry.integrywmsnative.core.utility.UtilityNumber" /> <import type="it.integry.integrywmsnative.core.utility.UtilityNumber" />
<variable <variable
name="articolo" name="articolo"
type="it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine" /> type="it.integry.integrywmsnative.core.data_store.db.entity.ArticoloOrdine" />
</data> </data>
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="8dp"> android:padding="8dp">
<LinearLayout <LinearLayout
android:id="@+id/linearLayout" android:id="@+id/linearLayout"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
app:layout_constraintEnd_toStartOf="@+id/qta_box" app:layout_constraintEnd_toStartOf="@+id/qta_box"
app:layout_constraintStart_toStartOf="parent"> app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
@ -65,9 +68,9 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingStart="12dp" android:paddingStart="12dp"
android:paddingEnd="12dp" android:paddingEnd="12dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent">
app:layout_constraintBottom_toBottomOf="parent">
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -79,8 +82,8 @@
android:paddingRight="6dp" android:paddingRight="6dp"
android:paddingBottom="2dp" android:paddingBottom="2dp"
android:text="@{UtilityNumber.decimalToString(articolo.qtaOrd) + `\n` + articolo.untMis}" android:text="@{UtilityNumber.decimalToString(articolo.qtaOrd) + `\n` + articolo.untMis}"
android:textSize="16sp"
android:textColor="@android:color/white" android:textColor="@android:color/white"
android:textSize="16sp"
android:textStyle="bold" android:textStyle="bold"
tools:text="280.45\nCONF" /> tools:text="280.45\nCONF" />

View File

@ -9,7 +9,7 @@
android:focusable="true"> android:focusable="true">
<LinearLayout <LinearLayout
android:id="@+id/content_view" android:id="@+id/content_view_child"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
@ -101,8 +101,8 @@
android:id="@+id/deactivated_over_bg" android:id="@+id/deactivated_over_bg"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignTop="@id/content_view" android:layout_alignTop="@id/content_view_child"
android:layout_alignBottom="@id/content_view" android:layout_alignBottom="@id/content_view_child"
android:background="@android:color/black" android:background="@android:color/black"
android:alpha="0.15" /> android:alpha="0.15" />

View File

@ -8,14 +8,14 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@color/full_white"> android:background="@color/full_white">
<LinearLayout <androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/content_view" android:id="@+id/content_view_child"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:padding="8dp"> android:padding="8dp">
<LinearLayout <androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal"> android:orientation="horizontal">
@ -35,7 +35,7 @@
style="@style/AppTheme.NewMaterial.Text.Small"/> style="@style/AppTheme.NewMaterial.Text.Small"/>
<LinearLayout <androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal" android:orientation="horizontal"
@ -84,12 +84,25 @@
android:textColor="@android:color/black" android:textColor="@android:color/black"
android:layout_marginStart="4dp" android:layout_marginStart="4dp"
android:textAllCaps="true" android:textAllCaps="true"
android:layout_gravity="center_vertical"
style="@style/AppTheme.NewMaterial.Text.Small" style="@style/AppTheme.NewMaterial.Text.Small"
tools:text="cnf"/> tools:text="cnf"/>
</LinearLayout>
</LinearLayout> <androidx.appcompat.widget.AppCompatImageButton
android:id="@+id/info_row"
android:layout_width="22sp"
android:layout_height="22sp"
android:layout_marginStart="8dp"
android:adjustViewBounds="true"
android:scaleType="fitCenter"
android:background="@drawable/ic_info_78dp"
android:backgroundTint="@color/colorPrimary"
android:visibility="gone"/>
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/descrizione" android:id="@+id/descrizione"
@ -110,8 +123,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:layout_alignParentStart="true" android:layout_alignParentStart="true">
android:layout_toStartOf="@+id/vendita_ordine_inevaso_main_list_group_item_badge2">
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/subdescrizione1" android:id="@+id/subdescrizione1"
@ -153,14 +165,14 @@
</LinearLayout> </androidx.appcompat.widget.LinearLayoutCompat>
<View <View
android:id="@+id/deactivated_over_bg" android:id="@+id/deactivated_over_bg"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignTop="@id/content_view" android:layout_alignTop="@id/content_view_child"
android:layout_alignBottom="@id/content_view" android:layout_alignBottom="@id/content_view_child"
android:background="@android:color/black" android:background="@android:color/black"
android:alpha="0.15" /> android:alpha="0.15" />

View File

@ -1,11 +0,0 @@
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Switch
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" />
</RelativeLayout>

View File

@ -6,7 +6,7 @@
android:background="@color/full_white"> android:background="@color/full_white">
<LinearLayout <LinearLayout
android:id="@+id/content_view" android:id="@+id/content_view_child"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
@ -156,8 +156,8 @@
android:id="@+id/deactivated_over_bg" android:id="@+id/deactivated_over_bg"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_alignTop="@id/content_view" android:layout_alignTop="@id/content_view_child"
android:layout_alignBottom="@id/content_view" android:layout_alignBottom="@id/content_view_child"
android:background="@android:color/black" android:background="@android:color/black"
android:alpha="0.15" /> android:alpha="0.15" />

View File

@ -35,6 +35,7 @@
<string name="scan_item">Scansiona il codice a barre di un <b>articolo</b></string> <string name="scan_item">Scansiona il codice a barre di un <b>articolo</b></string>
<string name="please_open_lu">Prima di procedere apri una <b>nuova UL</b></string> <string name="please_open_lu">Prima di procedere apri una <b>nuova UL</b></string>
<string name="extra_item">Articolo extra</string> <string name="extra_item">Articolo extra</string>
<string name="info">Info</string>
<string name="lu_info">Info UL</string> <string name="lu_info">Info UL</string>

View File

@ -78,6 +78,7 @@
<string name="action_close_order">Close order</string> <string name="action_close_order">Close order</string>
<string name="action_show_created_ul">Show already created LU</string> <string name="action_show_created_ul">Show already created LU</string>
<string name="dialog_input_peso_lu_description">Insert info about LU TYPE and NET / GROSS weight</string> <string name="dialog_input_peso_lu_description">Insert info about LU TYPE and NET / GROSS weight</string>
<string name="info">Info</string>
<string name="lu_info">LU\'s info</string> <string name="lu_info">LU\'s info</string>

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<full-backup-content>
<!-- Exclude specific shared preferences that contain GCM registration Id -->
</full-backup-content>

View File

@ -11,11 +11,18 @@ android {
versionCode 1 versionCode 1
versionName "1.1.1" versionName "1.1.1"
} }
compileOptions { compileOptions {
kotlinOptions.freeCompilerArgs += ['-module-name', "barcode.kaiteki"] kotlinOptions.freeCompilerArgs += ['-module-name', "barcode.kaiteki"]
targetCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8
sourceCompatibility = JavaVersion.VERSION_1_8 sourceCompatibility = JavaVersion.VERSION_1_8
} }
// For Kotlin projects
kotlinOptions {
jvmTarget = "1.8"
}
buildTypes { buildTypes {
release { release {
minifyEnabled false minifyEnabled false
@ -28,9 +35,9 @@ dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar']) implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
implementation 'androidx.core:core-ktx:1.1.0' implementation 'androidx.core:core-ktx:1.3.2'
implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.2' implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation 'com.google.android.material:material:1.3.0-alpha03' implementation 'com.google.android.material:material:1.3.0-alpha03'
api 'androidx.camera:camera-core:1.0.0-alpha03' api 'androidx.camera:camera-core:1.0.0-alpha03'

View File

@ -2,7 +2,7 @@
buildscript { buildscript {
ext { ext {
kotlin_version = '1.4.10' kotlin_version = '1.4.31'
} }
repositories { repositories {
@ -12,11 +12,11 @@ buildscript {
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:4.1.2' classpath 'com.android.tools.build:gradle:4.1.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.3.4' classpath 'com.google.gms:google-services:4.3.5'
classpath 'com.google.firebase:perf-plugin:1.3.3' classpath 'com.google.firebase:perf-plugin:1.3.5'
// Add the Firebase Crashlytics Gradle plugin. // Add the Firebase Crashlytics Gradle plugin.
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.3.0' classpath 'com.google.firebase:firebase-crashlytics-gradle:2.5.1'
// NOTE: Do not place your application dependencies here; they belong // NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files // in the individual module build.gradle files

View File

@ -1,18 +1,15 @@
apply plugin: 'com.android.dynamic-feature' apply plugin: 'com.android.dynamic-feature'
android { android {
compileSdkVersion 28 compileSdkVersion 29
defaultConfig { defaultConfig {
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 28 targetSdkVersion 29
versionCode 1 versionCode 1
versionName "1.0" versionName "1.0"
} }
compileOptions { compileOptions {
sourceCompatibility = '1.8' sourceCompatibility = '1.8'
targetCompatibility = '1.8' targetCompatibility = '1.8'

View File

@ -1,13 +1,13 @@
apply plugin: 'com.android.dynamic-feature' apply plugin: 'com.android.dynamic-feature'
android { android {
compileSdkVersion 28 compileSdkVersion 29
defaultConfig { defaultConfig {
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 28 targetSdkVersion 29
versionCode 1 versionCode 1
versionName "1.0" versionName "1.0"

View File

@ -27,7 +27,7 @@ public class MenuConfigurationFRUDIS extends BaseMenuConfiguration {
.setTitleText(it.integry.integrywmsnative.R.string.vendita_title_fragment) .setTitleText(it.integry.integrywmsnative.R.string.vendita_title_fragment)
.setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_spedizione) .setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_spedizione)
.setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_upload) .setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_upload)
.setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.VENDITA, null, -1))) .setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.VENDITA, null, -1, null)))
.addItem(new MenuItem() .addItem(new MenuItem()
.setID(it.integry.integrywmsnative.R.id.nav_free_picking) .setID(it.integry.integrywmsnative.R.id.nav_free_picking)
@ -61,7 +61,7 @@ public class MenuConfigurationFRUDIS extends BaseMenuConfiguration {
.setTitleText(it.integry.integrywmsnative.R.string.prod_ordine_lavorazione_title_fragment) .setTitleText(it.integry.integrywmsnative.R.string.prod_ordine_lavorazione_title_fragment)
.setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_prod_picking_lavorazione) .setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_prod_picking_lavorazione)
.setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_external) .setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_external)
.setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.PRODUZIONE, GestioneEnum.LAVORAZIONE, -1))) .setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.PRODUZIONE, GestioneEnum.LAVORAZIONE, -1, null)))
.addItem(new MenuItem() .addItem(new MenuItem()
.setID(it.integry.integrywmsnative.R.id.nav_prod_versamento_materiale) .setID(it.integry.integrywmsnative.R.id.nav_prod_versamento_materiale)

View File

@ -1,11 +1,11 @@
apply plugin: "com.android.dynamic-feature" apply plugin: "com.android.dynamic-feature"
android { android {
compileSdkVersion 28 compileSdkVersion 29
defaultConfig { defaultConfig {
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 28 targetSdkVersion 29
versionCode 1 versionCode 1
versionName "1.0" versionName "1.0"

View File

@ -47,7 +47,7 @@ public class MenuConfigurationGRAMM extends BaseMenuConfiguration {
.setTitleText(it.integry.integrywmsnative.R.string.vendita_title_fragment) .setTitleText(it.integry.integrywmsnative.R.string.vendita_title_fragment)
.setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_spedizione) .setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_spedizione)
.setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_upload) .setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_upload)
.setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.VENDITA, null, -1))) .setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.VENDITA, null, -1, null)))
.addItem(new MenuItem() .addItem(new MenuItem()
.setID(it.integry.integrywmsnative.R.id.nav_free_picking) .setID(it.integry.integrywmsnative.R.id.nav_free_picking)
@ -80,7 +80,7 @@ public class MenuConfigurationGRAMM extends BaseMenuConfiguration {
.setTitleText(it.integry.integrywmsnative.R.string.prod_ordine_lavorazione_title_fragment) .setTitleText(it.integry.integrywmsnative.R.string.prod_ordine_lavorazione_title_fragment)
.setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_prod_picking_lavorazione) .setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_prod_picking_lavorazione)
.setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_external) .setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_external)
.setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.PRODUZIONE, GestioneEnum.LAVORAZIONE, -1))) .setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.PRODUZIONE, GestioneEnum.LAVORAZIONE, -1, null)))
.addItem(new MenuItem() .addItem(new MenuItem()
.setID(it.integry.integrywmsnative.R.id.nav_free_lav_picking) .setID(it.integry.integrywmsnative.R.id.nav_free_lav_picking)

View File

@ -1,13 +1,13 @@
apply plugin: 'com.android.dynamic-feature' apply plugin: 'com.android.dynamic-feature'
android { android {
compileSdkVersion 28 compileSdkVersion 29
defaultConfig { defaultConfig {
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 28 targetSdkVersion 29
versionCode 1 versionCode 1
versionName "1.0" versionName "1.0"

View File

@ -46,7 +46,7 @@ public class MenuConfigurationIME extends BaseMenuConfiguration {
.setTitleText(it.integry.integrywmsnative.R.string.vendita_title_fragment) .setTitleText(it.integry.integrywmsnative.R.string.vendita_title_fragment)
.setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_spedizione) .setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_spedizione)
.setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_upload) .setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_upload)
.setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.VENDITA, null, -1))) .setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.VENDITA, null, -1, null)))
.addItem(new MenuItem() .addItem(new MenuItem()
.setID(it.integry.integrywmsnative.R.id.nav_free_picking) .setID(it.integry.integrywmsnative.R.id.nav_free_picking)
@ -79,7 +79,7 @@ public class MenuConfigurationIME extends BaseMenuConfiguration {
.setTitleText(it.integry.integrywmsnative.R.string.prod_ordine_lavorazione_title_fragment) .setTitleText(it.integry.integrywmsnative.R.string.prod_ordine_lavorazione_title_fragment)
.setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_prod_picking_lavorazione) .setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_prod_picking_lavorazione)
.setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_external) .setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_external)
.setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.PRODUZIONE, GestioneEnum.LAVORAZIONE, -1))) .setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.PRODUZIONE, GestioneEnum.LAVORAZIONE, -1, null)))
).addGroup( ).addGroup(
new MenuGroup() new MenuGroup()
.setGroupText(it.integry.integrywmsnative.R.string.internal_handling) .setGroupText(it.integry.integrywmsnative.R.string.internal_handling)

View File

@ -1,13 +1,13 @@
apply plugin: 'com.android.dynamic-feature' apply plugin: 'com.android.dynamic-feature'
android { android {
compileSdkVersion 28 compileSdkVersion 29
defaultConfig { defaultConfig {
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 28 targetSdkVersion 29
versionCode 1 versionCode 1
versionName "1.0" versionName "1.0"

View File

@ -1,13 +1,13 @@
apply plugin: 'com.android.dynamic-feature' apply plugin: 'com.android.dynamic-feature'
android { android {
compileSdkVersion 28 compileSdkVersion 29
defaultConfig { defaultConfig {
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 28 targetSdkVersion 29
versionCode 1 versionCode 1
versionName "1.0" versionName "1.0"

View File

@ -1,10 +1,10 @@
apply plugin: 'com.android.dynamic-feature' apply plugin: 'com.android.dynamic-feature'
android { android {
compileSdkVersion 28 compileSdkVersion 29
defaultConfig { defaultConfig {
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 28 targetSdkVersion 29
versionCode 1 versionCode 1
versionName "1.0" versionName "1.0"
} }

View File

@ -34,7 +34,7 @@ public class MenuConfigurationVG extends BaseMenuConfiguration {
.setTitleText(it.integry.integrywmsnative.R.string.vendita_title_fragment) .setTitleText(it.integry.integrywmsnative.R.string.vendita_title_fragment)
.setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_spedizione) .setTitleIcon(it.integry.integrywmsnative.R.drawable.ic_dashboard_spedizione)
.setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_upload) .setDrawerIcon(it.integry.integrywmsnative.R.drawable.ic_black_upload)
.setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.VENDITA, null, -1))) .setFragmentFactory(() -> OrdiniUscitaElencoFragment.newInstance(GestioneEnum.VENDITA, null, -1, null)))
.addItem(new MenuItem() .addItem(new MenuItem()
.setID(it.integry.integrywmsnative.R.id.nav_free_picking) .setID(it.integry.integrywmsnative.R.id.nav_free_picking)

View File

@ -1,12 +1,12 @@
apply plugin: 'com.android.library' apply plugin: 'com.android.library'
android { android {
compileSdkVersion 28 compileSdkVersion 29
defaultConfig { defaultConfig {
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 28 targetSdkVersion 29
versionCode 1 versionCode 1
versionName "1.0" versionName "1.0"

View File

@ -1,13 +1,13 @@
apply plugin: 'com.android.library' apply plugin: 'com.android.library'
android { android {
compileSdkVersion 28 compileSdkVersion 29
defaultConfig { defaultConfig {
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 28 targetSdkVersion 29
versionCode 1 versionCode 1
versionName "1.0" versionName "1.0"
@ -21,6 +21,10 @@ android {
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
} }
} }
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
} }

View File

@ -1,13 +1,13 @@
apply plugin: 'com.android.library' apply plugin: 'com.android.library'
android { android {
compileSdkVersion 28 compileSdkVersion 29
defaultConfig { defaultConfig {
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 28 targetSdkVersion 29
versionCode 1 versionCode 1
versionName "1.0" versionName "1.0"
@ -21,6 +21,10 @@ android {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
} }
} }
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
} }

View File

@ -1,12 +1,12 @@
apply plugin: 'com.android.library' apply plugin: 'com.android.library'
android { android {
compileSdkVersion 28 compileSdkVersion 29
defaultConfig { defaultConfig {
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 28 targetSdkVersion 29
versionCode 1 versionCode 1
versionName "1.0" versionName "1.0"
@ -20,6 +20,10 @@ android {
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
} }
} }
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
} }