Finish v1_0_21(24)

This commit is contained in:
Giuseppe Scorrano 2019-01-15 17:48:26 +01:00
commit 9085a1e7cf
40 changed files with 1029 additions and 424 deletions

46
.idea/assetWizardSettings.xml generated Normal file
View File

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="WizardSettings">
<option name="children">
<map>
<entry key="vectorWizard">
<value>
<PersistentState>
<option name="children">
<map>
<entry key="vectorAssetStep">
<value>
<PersistentState>
<option name="children">
<map>
<entry key="clipartAsset">
<value>
<PersistentState>
<option name="values">
<map>
<entry key="url" value="jar:file:/C:/Program%20Files/Android/Android%20Studio/plugins/android/lib/android.jar!/images/material_design_icons/file/ic_file_upload_black_24dp.xml" />
</map>
</option>
</PersistentState>
</value>
</entry>
</map>
</option>
<option name="values">
<map>
<entry key="outputName" value="ic_upload_black_24dp" />
<entry key="sourceFile" value="C:\Users\GiuseppeS" />
</map>
</option>
</PersistentState>
</value>
</entry>
</map>
</option>
</PersistentState>
</value>
</entry>
</map>
</option>
</component>
</project>

Binary file not shown.

View File

@ -17,8 +17,8 @@ apply plugin: 'com.google.gms.google-services'
android {
def appVersionCode = 23
def appVersionName = '1.0.20'
def appVersionCode = 24
def appVersionName = '1.0.21'
signingConfigs {
release {

View File

@ -1,6 +1,8 @@
package it.integry.integrywmsnative;
import android.content.Intent;
import androidx.annotation.IdRes;
import androidx.databinding.DataBindingUtil;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
@ -21,8 +23,8 @@ import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.fragment.app.FragmentTransaction;
import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.interfaces.IFilterableFragment;
import it.integry.integrywmsnative.core.interfaces.IRecyclerFragment;
import it.integry.integrywmsnative.core.interfaces.ISelectAllFragment;
@ -34,6 +36,7 @@ import it.integry.integrywmsnative.gest.accettazione.MainAccettazioneFragment;
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
import it.integry.integrywmsnative.gest.login.LoginActivity;
import it.integry.integrywmsnative.gest.main.MainFragment;
import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoFragment;
import it.integry.integrywmsnative.gest.rettifica_giacenze.RettificaGiacenzeFragment;
import it.integry.integrywmsnative.gest.settings.MainSettingsFragment;
import it.integry.integrywmsnative.gest.vendita.MainVenditaFragment;
@ -71,7 +74,7 @@ public class MainActivity extends AppCompatActivity
mBinding.navView.setNavigationItemSelectedListener(this);
mBinding.appBarMain.mainSearch.setVisibility(View.GONE);
changeContentFragment(MainFragment.newInstance());
popToMain();
init();
}
@ -91,10 +94,17 @@ public class MainActivity extends AppCompatActivity
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
int count = getSupportFragmentManager().getBackStackEntryCount();
if (count == 0) {
super.onBackPressed();
} else {
getSupportFragmentManager().popBackStack();
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
@ -102,19 +112,11 @@ public class MainActivity extends AppCompatActivity
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
public void setItem(@IdRes int menuId) {
mBinding.navView.setCheckedItem(menuId);
onNavigationItemSelected(mBinding.navView.getMenu().findItem(menuId));
//noinspection SimplifiableIfStatement
// if (id == R.id.action_search) {
// return true;
// }
return super.onOptionsItemSelected(item);
}
@SuppressWarnings("StatementWithEmptyBody")
@ -128,25 +130,24 @@ public class MainActivity extends AppCompatActivity
Fragment fragment = null;
int id = item.getItemId();
if (id == R.id.nav_accettazione) {
if (id == R.id.nav_home) {
this.popToMain();
} else if (id == R.id.nav_accettazione) {
fragment = MainAccettazioneFragment.newInstance();
this.adaptViewToFragment(fragment);
} else if (id == R.id.nav_gallery) {
} else if (id == R.id.nav_spedizione) {
fragment = MainVenditaFragment.newInstance();
this.adaptViewToFragment(fragment);
} else if (id == R.id.nav_slideshow) {
} else if (id == R.id.nav_rettifica_giacenze) {
fragment = RettificaGiacenzeFragment.newInstance();
this.adaptViewToFragment(fragment);
} else if (id == R.id.nav_manage) {
} else if (id == R.id.nav_versamento_merce) {
fragment = VersamentoMerceFragment.newInstance();
this.adaptViewToFragment(fragment);
} else if (id == R.id.nav_free_picking) {
fragment = PickingLiberoFragment.newInstance();
this.adaptViewToFragment(fragment);
}
/*else if (id == R.id.nav_share) {
} else if (id == R.id.nav_send) {
}*/
else if(id == R.id.nav_settings){
fragment = new MainSettingsFragment();
@ -158,7 +159,7 @@ public class MainActivity extends AppCompatActivity
startLoginActivity();
}
changeContentFragment(fragment);
changeContentFragment(fragment, true);
DrawerLayout drawer = findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
@ -170,7 +171,7 @@ public class MainActivity extends AppCompatActivity
adaptViewToFragment(mainFragment);
changeContentFragment(mainFragment);
changeContentFragment(mainFragment, false);
}
private void adaptViewToFragment(Fragment fragment){
@ -184,7 +185,7 @@ public class MainActivity extends AppCompatActivity
if(fragment instanceof ITitledFragment) {
getSupportActionBar().setTitle(((ITitledFragment) fragment).getTitle(this));
((ITitledFragment) fragment).onCreateActionBar(getSupportActionBar(), this);
} else {
getSupportActionBar().setTitle(R.string.app_name);
}
@ -210,11 +211,16 @@ public class MainActivity extends AppCompatActivity
}
}
private void changeContentFragment(Fragment fragment){
private void changeContentFragment(Fragment fragment, boolean addToBackStack){
if (fragment != null) {
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.frame_container, fragment).commit();
FragmentTransaction ft = fragmentManager
.beginTransaction()
.replace(R.id.frame_container, fragment);
if(addToBackStack) ft.addToBackStack(fragment.getTag());
ft.commit();
}
}

View File

@ -134,16 +134,9 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{
mtbColtToCreate.setSerCollo(customSerCollo);
}
Calendar calendar = Calendar.getInstance();
int currentYear = calendar.get(Calendar.YEAR);
String fullYear = "20" + UtilityBarcode.getAnnoColloFromULAnonima(barcode);
if(!fullYear.equalsIgnoreCase("" + currentYear)){
if(!UtilityBarcode.isEtichettaAnonimaOfCurrentYear(barcode)) {
onFailed.run(new Exception("Per continuare scansiona un'etichetta dell'anno corrente"));
return;
}
mtbColtToCreate

View File

@ -9,6 +9,8 @@ import it.integry.integrywmsnative.core.REST.model.ServiceRESTResponse;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.utility.UtilityLogger;
import it.integry.integrywmsnative.core.utility.UtilityServer;
import it.integry.integrywmsnative.core.utility.UtilityString;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
@ -88,6 +90,11 @@ public class PrinterRESTConsumer extends _BaseRESTConsumer {
public static void printCollo(String printerName, MtbColt testataColloToPrint, int quantity, String reportName, Runnable onComplete, RunnableArgs<Exception> onFailed) {
if(UtilityString.isNullOrEmpty(printerName)) {
onFailed.run(new Exception("Nessuna stampante configurata: valore null"));
return;
}
PrinterRESTConsumerService printerService = RESTBuilder.getService(PrinterRESTConsumerService.class);
printerService.printCollo(
printerName,

View File

@ -19,12 +19,9 @@ public class ExpandableLayoutBinders {
view.setOnExpansionUpdateListener(null);
}
ExpandableLayout.OnExpansionUpdateListener watcher = new ExpandableLayout.OnExpansionUpdateListener() {
@Override
public void onExpansionUpdate(float expansionFraction, int state) {
if(view.isExpanded() == bindableBoolean.get()) return;
bindableBoolean.set(state == 1);
}
ExpandableLayout.OnExpansionUpdateListener watcher = (expansionFraction, state) -> {
if(view.isExpanded() == bindableBoolean.get()) return;
bindableBoolean.set(state == 1);
};
view.setTag(R.id.bound_observable, new Pair<>(bindableBoolean, watcher));

View File

@ -2,12 +2,14 @@ package it.integry.integrywmsnative.core.interfaces;
import android.content.Context;
import androidx.appcompat.app.ActionBar;
/**
* Created by GiuseppeS on 07/03/2018.
*/
public interface ITitledFragment {
String getTitle(Context context);
void onCreateActionBar(ActionBar actionBar, Context context);
}

View File

@ -2,6 +2,8 @@ package it.integry.integrywmsnative.core.utility;
import com.annimon.stream.Stream;
import java.util.Calendar;
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
@ -13,6 +15,14 @@ public class UtilityBarcode {
return barcodeScanDTO != null && barcodeScanDTO.getType() == BarcodeType.CODE128 && barcodeScanDTO.getStringValue().startsWith("U");
}
public static boolean isEtichettaAnonimaOfCurrentYear(String barcode) {
Calendar calendar = Calendar.getInstance();
int currentYear = calendar.get(Calendar.YEAR);
String fullYear = "20" + UtilityBarcode.getAnnoColloFromULAnonima(barcode);
return fullYear.equalsIgnoreCase("" + currentYear);
}
public static boolean isEtichetta128(BarcodeScanDTO barcodeScanDTO){
return barcodeScanDTO != null && (barcodeScanDTO.getType() == BarcodeType.CODE128 || barcodeScanDTO.getType() == BarcodeType.EAN128);
}

View File

@ -19,6 +19,11 @@ public class UtilityExceptions {
progressDialog.dismiss();
defaultException(context, ex);
}
public static void defaultException(Context context, Exception ex, ProgressDialog progressDialog, boolean sendMail){
progressDialog.dismiss();
defaultException(context, ex, sendMail);
}
public static void defaultException(Context context, Exception ex){
defaultException(context, ex, false);
}

View File

@ -33,19 +33,19 @@ public class WiFiCheckerViewHolder implements ISingleValueOperationCallback<WiFi
public void onResult(WiFiStatusChecker.SIGNAL value) {
switch (value){
case EXCELLENT:
mWifiSignalTextView.setText("EXCELLENT");
mWifiSignalTextView.setText("ECCELLENTE");
break;
case GOOD:
mWifiSignalTextView.setText("GOOD");
mWifiSignalTextView.setText("BUONO");
break;
case FAIR:
mWifiSignalTextView.setText("FAIR");
mWifiSignalTextView.setText("SUFFICIENTE");
break;
case WEAK:
mWifiSignalTextView.setText("WEAK");
mWifiSignalTextView.setText("SCARSO");
break;
case NONE:
mWifiSignalTextView.setText("NONE");
mWifiSignalTextView.setText("NESSUNO");
break;
}
}

View File

@ -4,6 +4,8 @@ package it.integry.integrywmsnative.gest.accettazione;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import androidx.appcompat.app.ActionBar;
import androidx.databinding.DataBindingUtil;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
@ -69,9 +71,12 @@ public class MainAccettazioneFragment extends Fragment implements SearchView.OnQ
return fragment;
}
@Override
public String getTitle(Context context){
return context.getText(R.string.accettazione_title_fragment).toString();
public void onCreateActionBar(ActionBar actionBar, Context context) {
actionBar.setTitle(context.getText(R.string.accettazione_title_fragment).toString());
}
@Override

View File

@ -226,8 +226,13 @@ public class AccettazioneOnOrdineAccettazioneInevasoViewModel implements IOnColl
ColliMagazzinoRESTConsumer.getBySSCC(barcodeScanDTO.getStringValue(), false, false, mtbColt -> {
if(mtbColt == null) {
this.createNewUL(UtilityBarcode.getNumColloFromULAnonima(barcodeScanDTO.getStringValue()), CommonConst.Config.DEFAULT_ANONYMOUS_UL_SERIE, progressDialog, true, null);
BarcodeManager.enable();
if(!UtilityBarcode.isEtichettaAnonimaOfCurrentYear(barcodeScanDTO.getStringValue())) {
UtilityExceptions.defaultException(mActivity, new Exception("Per continuare scansiona un'etichetta dell'anno corrente"), progressDialog, false);
BarcodeManager.enable();
} else {
this.createNewUL(UtilityBarcode.getNumColloFromULAnonima(barcodeScanDTO.getStringValue()), CommonConst.Config.DEFAULT_ANONYMOUS_UL_SERIE, progressDialog, true, null);
BarcodeManager.enable();
}
} else {
progressDialog.dismiss();
BarcodeManager.enable();
@ -566,7 +571,7 @@ public class AccettazioneOnOrdineAccettazioneInevasoViewModel implements IOnColl
return;
}
PrinterRESTConsumer.getAvailablePrinters(SettingsManager.i().userSession.depo.getCodMdep(), new ISimpleOperationCallback<List<String>>() {
PrinterRESTConsumer.getAvailablePrinters(SettingsManager.i().userSession.depo.getCodMdep(), PrinterRESTConsumer.Type.SECONDARIA, new ISimpleOperationCallback<List<String>>() {
@Override
public void onSuccess(List<String> value) {

View File

@ -3,6 +3,8 @@ package it.integry.integrywmsnative.gest.main;
import android.content.Context;
import android.os.Bundle;
import androidx.appcompat.app.ActionBar;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
@ -13,6 +15,8 @@ import net.cachapa.expandablelayout.ExpandableLayout;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import it.integry.integrywmsnative.MainActivity;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker;
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
@ -93,8 +97,35 @@ public class MainFragment extends Fragment implements ITitledFragment {
}
@Override
public String getTitle(Context context) {
return context.getString(R.string.app_name);
public void onCreateActionBar(ActionBar actionBar, Context context) {
actionBar.setTitle(context.getText(R.string.app_name).toString());
}
@OnClick(R.id.fast_button_accettazione)
public void onClickAccettazione(View view) {
((MainActivity) getActivity()).setItem(R.id.nav_accettazione);
}
@OnClick(R.id.fast_button_spedizione)
public void onClickSpedizione(View view) {
((MainActivity) getActivity()).setItem(R.id.nav_spedizione);
}
@OnClick(R.id.fast_button_rettifica_giacenze)
public void onClickRettificaGiacenze(View view) {
((MainActivity) getActivity()).setItem(R.id.nav_rettifica_giacenze);
}
@OnClick(R.id.fast_button_versamento)
public void onClickVersamento(View view) {
((MainActivity) getActivity()).setItem(R.id.nav_versamento_merce);
}
@OnClick(R.id.fast_button_picking_libero)
public void onClickPickingLibero(View view) {
((MainActivity) getActivity()).setItem(R.id.nav_free_picking);
}
}

View File

@ -27,13 +27,13 @@ public class PickingLiberoActivity extends AppCompatActivity {
mBindings = DataBindingUtil.setContentView(this, R.layout.activity_picking_libero);
mHelper = new PickingLiberoHelper(this);
/*
mViewModel = new PickingLiberoViewModel();
mViewModel.init(this, mBindings, mHelper);
mViewModel.init(this, mBindings, mHelper, getSupportActionBar());
mBindings.setViewmodel(mViewModel);
setSupportActionBar(this.mBindings.toolbar);
setSupportActionBar(this.mBindings.layout.toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowTitleEnabled(false);
@ -42,11 +42,12 @@ public class PickingLiberoActivity extends AppCompatActivity {
.setOnScanFailed(ex -> UtilityExceptions.defaultException(this, ex, false)));
mBindings.waterfallToolbar.setNestedScrollView(mBindings.scrollView);
mBindings.layout.waterfallToolbar.setNestedScrollView(mBindings.layout.scrollView);
*/
}
public void setTitle(String title) {
mBindings.toolbarTitle.setText(title);
mBindings.layout.toolbarTitle.setText(title);
}
@Override

View File

@ -0,0 +1,83 @@
package it.integry.integrywmsnative.gest.picking_libero;
import android.content.Context;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.appcompat.app.ActionBar;
import androidx.databinding.DataBindingUtil;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.databinding.FragmentPickingLiberoBinding;
import it.integry.integrywmsnative.gest.picking_libero.core.PickingLiberoHelper;
import it.integry.integrywmsnative.gest.picking_libero.viewmodel.PickingLiberoViewModel;
/**
* A simple {@link Fragment} subclass.
*/
public class PickingLiberoFragment extends Fragment implements ITitledFragment {
private FragmentPickingLiberoBinding mBindings;
private PickingLiberoHelper mHelper;
private PickingLiberoViewModel mViewModel;
private ActionBar mAppCompatActionBar;
private int barcodeScannerIstanceID = -1;
public PickingLiberoFragment() {
// Required empty public constructor
}
public static PickingLiberoFragment newInstance() {
PickingLiberoFragment fragment = new PickingLiberoFragment();
Bundle args = new Bundle();
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreateActionBar(ActionBar actionBar, Context context) {
mAppCompatActionBar = actionBar;
mAppCompatActionBar.setTitle(context.getText(R.string.free_picking_title_fragment).toString());
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
mBindings = DataBindingUtil.inflate(inflater, R.layout.fragment_picking_libero, container, false);
mHelper = new PickingLiberoHelper(getActivity());
mViewModel = new PickingLiberoViewModel();
mViewModel.init(getActivity(), mBindings, mHelper, mAppCompatActionBar);
mBindings.setViewmodel(mViewModel);
barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
.setOnScanSuccessfull(mViewModel.onScanSuccessfull)
.setOnScanFailed(ex -> UtilityExceptions.defaultException(getActivity(), ex, false)));
mBindings.waterfallToolbar.setNestedScrollView(mBindings.scrollView);
return mBindings.getRoot();
}
}

View File

@ -2,6 +2,7 @@ package it.integry.integrywmsnative.gest.picking_libero.viewmodel;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.text.SpannableString;
import android.view.View;
@ -15,6 +16,7 @@ import java.util.Iterator;
import java.util.List;
import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBar;
import androidx.core.content.ContextCompat;
import androidx.databinding.Observable;
import androidx.databinding.ObservableArrayList;
@ -45,6 +47,7 @@ import it.integry.integrywmsnative.core.utility.UtilityNumber;
import it.integry.integrywmsnative.core.utility.UtilityProgress;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.databinding.ActivityPickingLiberoBinding;
import it.integry.integrywmsnative.databinding.FragmentPickingLiberoBinding;
import it.integry.integrywmsnative.gest.picking_libero.PickingLiberoActivity;
import it.integry.integrywmsnative.gest.picking_libero.core.PickingLiberoHelper;
import it.integry.integrywmsnative.gest.picking_libero.core.PickingLiberoListAdapter;
@ -67,16 +70,19 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked<MtbColr> {
private BottomSheetBehavior mBottomSheetBehavior;
private PickingLiberoActivity mContext;
private ActivityPickingLiberoBinding mBinding;
private Activity mContext;
private FragmentPickingLiberoBinding mBinding;
private PickingLiberoHelper mHelper;
private ActionBar mAppCompatActionBar;
private PickingLiberoListAdapter mAdapter;
public void init(PickingLiberoActivity context, ActivityPickingLiberoBinding binding, PickingLiberoHelper helper) {
public void init(Activity context, FragmentPickingLiberoBinding binding, PickingLiberoHelper helper, ActionBar appCompatActionBar) {
mContext = context;
mBinding = binding;
mHelper = helper;
mAppCompatActionBar = appCompatActionBar;
initObservable();
@ -101,14 +107,14 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked<MtbColr> {
if(mtbColt.get() != null) {
initAdapter();
mContext.setTitle(String.format(mContext.getText(R.string.lu_number_text).toString(), mtbColt.get().getNumCollo()));
mAppCompatActionBar.setTitle(String.format(mContext.getText(R.string.lu_number_text).toString(), mtbColt.get().getNumCollo()));
initObservableMtbColr();
}
else {
destroyAdapter();
mContext.setTitle(mContext.getText(R.string.free_picking).toString());
mAppCompatActionBar.setTitle(mContext.getText(R.string.free_picking).toString());
}
thereIsAnOpenedUL.set(mtbColt.get() != null);

View File

@ -2,6 +2,8 @@ package it.integry.integrywmsnative.gest.rettifica_giacenze;
import android.content.Context;
import android.content.res.ColorStateList;
import androidx.appcompat.app.ActionBar;
import androidx.databinding.DataBindingUtil;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
@ -99,15 +101,13 @@ public class RettificaGiacenzeFragment extends Fragment implements ITitledFragme
super.onDetach();
}
@Override
public String getTitle(Context context) {
return context.getResources().getString(R.string.rettifica_giacenze_fragment_title);
public void onCreateActionBar(ActionBar actionBar, Context context) {
actionBar.setTitle(context.getText(R.string.rettifica_giacenze_fragment_title).toString());
}
public void setUIToForn() {
mBinding.rettificaGiacenzeFornCheckBox.setChecked(true);
mBinding.rettificaGiacenzeFornLayout.setBackground(getActivity().getResources().getDrawable(R.drawable.circular_background_left));

View File

@ -1,6 +1,8 @@
package it.integry.integrywmsnative.gest.settings;
import android.content.Context;
import androidx.appcompat.app.ActionBar;
import androidx.databinding.DataBindingUtil;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
@ -29,8 +31,8 @@ public class MainSettingsFragment extends Fragment implements ITitledFragment {
}
@Override
public String getTitle(Context context){
return context.getText(R.string.settings_category).toString();
public void onCreateActionBar(ActionBar actionBar, Context context) {
actionBar.setTitle(context.getText(R.string.settings_category).toString());
}
@Override

View File

@ -2,6 +2,8 @@ package it.integry.integrywmsnative.gest.settings;
import android.content.Context;
import android.os.Bundle;
import androidx.appcompat.app.ActionBar;
import androidx.preference.CheckBoxPreference;
import androidx.preference.EditTextPreference;
import androidx.preference.ListPreference;
@ -43,10 +45,9 @@ public class SettingsPreferenceFragment extends PreferenceFragmentCompat impleme
}
@Override
public String getTitle(Context context) {
return context.getText(R.string.settings_category).toString();
public void onCreateActionBar(ActionBar actionBar, Context context) {
actionBar.setTitle(context.getText(R.string.settings_category).toString());
}

View File

@ -3,6 +3,8 @@ package it.integry.integrywmsnative.gest.vendita;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import androidx.appcompat.app.ActionBar;
import androidx.databinding.DataBindingUtil;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
@ -81,8 +83,8 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IR
}
@Override
public String getTitle(Context context){
return context.getText(R.string.vendita_title_fragment).toString();
public void onCreateActionBar(ActionBar actionBar, Context context) {
actionBar.setTitle(context.getText(R.string.vendita_title_fragment).toString());
}
@Override
@ -129,10 +131,10 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IR
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId() == R.id.action_free_picking) {
Intent myIntent = new Intent(getActivity(), PickingLiberoActivity.class);
startActivity(myIntent);
}
// if(item.getItemId() == R.id.action_free_picking) {
// Intent myIntent = new Intent(getActivity(), PickingLiberoActivity.class);
// startActivity(myIntent);
// }
return true;

View File

@ -12,6 +12,7 @@ import java.util.ArrayList;
import java.util.List;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.CommonConst;
import it.integry.integrywmsnative.core.REST.consumers.BarcodeRESTConsumer;
import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
@ -60,7 +61,9 @@ public class VenditaViewModel {
BarcodeManager.disable();
final ProgressDialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
if(UtilityBarcode.isEtichetta128(data)){
if(UtilityBarcode.isEtichettaAnonima(data)) {
this.executeEtichettaLU(data.getStringValue(), progressDialog);
} else if(UtilityBarcode.isEtichetta128(data)){
this.executeEtichettaEan128(data, progressDialog);
} else {
progressDialog.dismiss();
@ -69,8 +72,6 @@ public class VenditaViewModel {
};
private void executeEtichettaEan128(BarcodeScanDTO barcodeScanDTO, ProgressDialog progressDialog) {
BarcodeRESTConsumer.decodeEan128(barcodeScanDTO, ean128Model -> {

View File

@ -47,7 +47,9 @@ import it.integry.integrywmsnative.view.bottomsheet.interfaces.IOnColloClosedCal
import it.integry.integrywmsnative.view.bottomsheet.viewmodel.ArticoliInColloBottomSheetViewModel;
import it.integry.integrywmsnative.BR;
import it.integry.integrywmsnative.view.dialogs.DialogAskLivelloPosizione;
import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper;
import it.integry.integrywmsnative.view.dialogs.ask_should_print.DialogAskShouldPrint;
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
import it.integry.integrywmsnative.view.dialogs.input_quantity.QuantityDTO;
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
@ -342,11 +344,18 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
ColliMagazzinoRESTConsumer.getBySSCC(barcodeScanDTO.getStringValue(), true, false, mtbColt -> {
if(mtbColt == null) {
this.createNewUL(
UtilityBarcode.getNumColloFromULAnonima(barcodeScanDTO.getStringValue()),
CommonConst.Config.DEFAULT_ANONYMOUS_UL_SERIE, progressDialog,
true, true,
null);
if(!UtilityBarcode.isEtichettaAnonimaOfCurrentYear(barcodeScanDTO.getStringValue())) {
UtilityExceptions.defaultException(mActivity, new Exception("Per continuare scansiona un'etichetta dell'anno corrente"), progressDialog, false);
BarcodeManager.enable();
} else {
this.createNewUL(
UtilityBarcode.getNumColloFromULAnonima(barcodeScanDTO.getStringValue()),
CommonConst.Config.DEFAULT_ANONYMOUS_UL_SERIE, progressDialog,
true, true,
null);
}
} else {
this.createNewUL(
@ -733,56 +742,63 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
}
private void printCollo(ProgressDialog progress) {
DialogAskShouldPrint.make(mActivity, "Packing List", shouldPrint -> {
PrinterRESTConsumer.getAvailablePrinters(SettingsManager.i().userSession.depo.getCodMdep(), PrinterRESTConsumer.Type.SECONDARIA, new ISimpleOperationCallback<List<String>>() {
@Override
public void onSuccess(List<String> value) {
if(shouldPrint) {
PrinterRESTConsumer.getAvailablePrinters(SettingsManager.i().userSession.depo.getCodMdep(), PrinterRESTConsumer.Type.PRIMARIA, new ISimpleOperationCallback<List<String>>() {
@Override
public void onSuccess(List<String> value) {
if(value.size() > 0) {
try{
MtbColt currentMtbColt = mArticoliInColloBottomSheetViewModel.mtbColt.get();
if (value.size() > 0) {
try {
MtbColt currentMtbColt = mArticoliInColloBottomSheetViewModel.mtbColt.get();
ReportManager.getRightReportNameByMtbColt(currentMtbColt, reportName -> {
ReportManager.getRightReportNameByMtbColt(currentMtbColt, reportName -> {
PrinterRESTConsumer.printCollo(
value.get(0),
currentMtbColt,
1, reportName, () -> {
PrinterRESTConsumer.printCollo(
value.get(0),
currentMtbColt,
1, reportName, () -> {
postCloseOperations();
progress.dismiss();
postCloseOperations();
progress.dismiss();
}, ex -> {
}, ex -> {
progress.dismiss();
String errorMessage = ex.getMessage();
DialogSimpleMessageHelper.makeErrorDialog(
mActivity,
new SpannableString(errorMessage),
null,
null,
R.string.button_ignore_print,
() -> postCloseOperations()).show();
});
progress.dismiss();
String errorMessage = ex.getMessage();
DialogSimpleMessageHelper.makeErrorDialog(
mActivity,
new SpannableString(errorMessage),
null,
null,
R.string.button_ignore_print,
() -> postCloseOperations()).show();
});
}, ex -> UtilityExceptions.defaultException(mActivity, ex, progress)
);
} catch (Exception ex) {
UtilityExceptions.defaultException(mActivity, ex, progress);
postCloseOperations();
}, ex -> UtilityExceptions.defaultException(mActivity, ex, progress)
);
} catch (Exception ex) {
UtilityExceptions.defaultException(mActivity, ex, progress);
postCloseOperations();
}
} else {
progress.dismiss();
String errorMessage = "Nessuna stampante configurata";
DialogSimpleMessageHelper.makeWarningDialog(mActivity, new SpannableString(errorMessage), null, () -> postCloseOperations()).show();
}
}
} else {
progress.dismiss();
String errorMessage = "Nessuna stampante configurata";
DialogSimpleMessageHelper.makeWarningDialog(mActivity, new SpannableString(errorMessage), null, () -> postCloseOperations()).show();
}
}
@Override
public void onFailed(Exception ex) {
UtilityExceptions.defaultException(mActivity, ex, progress);
@Override
public void onFailed(Exception ex) {
UtilityExceptions.defaultException(mActivity, ex, progress);
}
});
} else {
postCloseOperations();
progress.dismiss();
}
});
}).show();
}
private void deleteCollo(ProgressDialog progress) {
@ -800,6 +816,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
public boolean thereIsAnOpenedUL() {
return mArticoliInColloBottomSheetViewModel.mtbColt.get() != null;
}
public boolean thereIsAnyRowInUL() {
return mArticoliInColloBottomSheetViewModel.mtbColt.get() != null &&
mArticoliInColloBottomSheetViewModel.mtbColt.get().getMtbColr() != null &&
@ -842,7 +859,6 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
removeListFilter();
refreshOrderBy(true);
}
@ -881,8 +897,6 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
float qtaEvasaCurrentUL = qtaEvasaCurrentULInMtbColr;
BigDecimal qtaDaEvadere = item.getQtaOrd().subtract(new BigDecimal(qtaEvasaTotale));
if(qtaDaEvadere.floatValue() < 0) qtaDaEvadere = BigDecimal.ZERO;

View File

@ -1,6 +1,8 @@
package it.integry.integrywmsnative.gest.versamento_merce;
import android.content.Context;
import androidx.appcompat.app.ActionBar;
import androidx.databinding.DataBindingUtil;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
@ -83,7 +85,7 @@ public class VersamentoMerceFragment extends Fragment implements ITitledFragment
}
@Override
public String getTitle(Context context) {
return context.getResources().getString(R.string.versamento_merce_fragment_title);
public void onCreateActionBar(ActionBar actionBar, Context context) {
actionBar.setTitle(context.getText(R.string.versamento_merce_fragment_title).toString());
}
}

View File

@ -0,0 +1,50 @@
package it.integry.integrywmsnative.view.dialogs.ask_should_print;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import androidx.appcompat.app.AlertDialog;
import androidx.databinding.DataBindingUtil;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.databinding.DialogAskShouldPrintBinding;
public class DialogAskShouldPrint {
private Context currentContext;
private AlertDialog currentAlert;
public static AlertDialog make(final Context context, final String nomeEtichetta, RunnableArgs<Boolean> onDialogDismiss) {
return new DialogAskShouldPrint(context, nomeEtichetta, onDialogDismiss).currentAlert;
}
private DialogAskShouldPrint(Context context, String nomeEtichetta, RunnableArgs<Boolean> onDialogDismiss) {
currentContext = context;
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
DialogAskShouldPrintBinding bindings = DataBindingUtil.inflate(inflater, R.layout.dialog_ask_should_print, null, false);
final AlertDialog.Builder alertDialog = new AlertDialog.Builder(context)
.setView(bindings.getRoot());
currentAlert = alertDialog.create();
currentAlert.setCanceledOnTouchOutside(false);
bindings.printMessage.setText("La procedura stamperà una " + nomeEtichetta);
bindings.buttonConfirm.setOnClickListener(v -> {
currentAlert.dismiss();
onDialogDismiss.run(true);
});
bindings.buttonAbort.setOnClickListener(v -> {
currentAlert.dismiss();
onDialogDismiss.run(false);
});
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FF000000"
android:pathData="M19,9h-4V3H9v6H5l7,7 7,-7zM5,18v2h14v-2H5z"/>
</vector>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FF000000"
android:pathData="M10,20v-6h4v6h5v-8h3L12,3 2,12h3v8z"/>
</vector>

Binary file not shown.

After

Width:  |  Height:  |  Size: 992 B

View File

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FF000000"
android:pathData="M9,16h6v-6h4l-7,-7 -7,7h4zM5,18h14v2L5,20z"/>
</vector>

View File

@ -19,281 +19,9 @@
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/full_white">
<it.integry.plugins.waterfalltoolbar.WaterfallToolbar
android:id="@+id/waterfall_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:gravity="center_horizontal"
app:popupTheme="@style/AppTheme.PopupOverlay">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/toolbar_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="Picking Libero"
style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
android:layout_gravity="center" />
</androidx.appcompat.widget.Toolbar>
</it.integry.plugins.waterfalltoolbar.WaterfallToolbar>
<androidx.core.widget.NestedScrollView
android:id="@+id/scroll_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<LinearLayout
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingTop="8dp"
android:focusableInTouchMode="true"
tools:context=".gest.contenuto_bancale.ContenutoBancaleActivity">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/picking_libero_main_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginBottom="92dp"
android:paddingStart="2dp"
android:paddingEnd="2dp">
</androidx.recyclerview.widget.RecyclerView>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</LinearLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.Guideline
android:id="@+id/free_picking__suggestion_1__guideline_top"
android:layout_width="0dp"
android:layout_height="0dp"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.35"/>
<androidx.constraintlayout.widget.Guideline
android:id="@+id/free_picking__suggestion_1__guideline_left"
android:layout_width="0dp"
android:layout_height="0dp"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.2" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/free_picking__suggestion_1__guideline_right"
android:layout_width="0dp"
android:layout_height="0dp"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.8" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:alpha="0.4"
app:visibility="@{viewmodel.thereIsntAnOpenedUL}"
app:layout_constraintTop_toBottomOf="@id/free_picking__suggestion_1__guideline_top"
app:layout_constraintLeft_toRightOf="@id/free_picking__suggestion_1__guideline_left"
app:layout_constraintRight_toLeftOf="@id/free_picking__suggestion_1__guideline_right">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/black"
android:textSize="18sp"
android:gravity="center_horizontal"
android:layout_gravity="center_horizontal"
android:text="@string/free_picking_suggestion_1"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:alpha="0.4"
app:visibility="@{viewmodel.thereIsAnOpenULWithoutRows}"
app:layout_constraintTop_toBottomOf="@id/free_picking__suggestion_1__guideline_top"
app:layout_constraintLeft_toRightOf="@id/free_picking__suggestion_1__guideline_left"
app:layout_constraintRight_toLeftOf="@id/free_picking__suggestion_1__guideline_right">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/black"
android:textSize="18sp"
android:gravity="center_horizontal"
android:layout_gravity="center_horizontal"
android:text="@string/free_picking_suggestion_2"/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<com.github.clans.fab.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|right"
android:layout_marginBottom="8dp"
android:layout_marginRight="8dp"
android:src="@drawable/fab_add"
android:onClick="@{() -> viewmodel.createNewLU()}"
android:visibility="@{viewmodel.mtbColt == null ? View.VISIBLE : View.GONE}"
fab:fab_colorNormal="@color/colorPrimary"
fab:fab_colorPressed="@color/white_pressed"
fab:fab_colorRipple="#66FFFFFF"/>
<com.github.clans.fab.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|right"
android:layout_marginBottom="8dp"
android:layout_marginRight="8dp"
android:src="@drawable/ic_check_white_24dp"
android:onClick="@{() -> viewmodel.closeLU()}"
android:visibility="@{viewmodel.mtbColt != null ? View.VISIBLE : View.GONE}"
fab:fab_colorNormal="@color/mainGreen"
fab:fab_colorPressed="@color/white_pressed"
fab:fab_colorRipple="#66FFFFFF"/>
<View
android:visibility="gone"
android:id="@+id/bg"
android:background="#99000000"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<LinearLayout
android:id="@+id/bottom_sheet_actions"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#fff"
android:orientation="vertical"
android:padding="16dp"
android:layout_gravity="bottom"
app:behavior_hideable="true"
app:behavior_peekHeight="0dp"
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="center_vertical">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginBottom="8dp"
app:layout_constraintEnd_toStartOf="@id/bottom_sheet_actions_quantity"
app:layout_constraintStart_toStartOf="parent">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/bottom_sheet_actions_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="Descrizione articolo"
android:textColor="#444"
android:textSize="18dp"
android:maxLines="1"
android:ellipsize="end"
android:paddingRight="8dp"
android:textStyle="bold" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/bottom_sheet_actions_subtitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="ABF52IL"
android:textSize="14dp"
android:textStyle="bold" />
</LinearLayout>
<TextView
android:id="@+id/bottom_sheet_actions_quantity"
android:layout_width="wrap_content"
android:gravity="right"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textSize="15dp"
tools:text="250 PZ"
app:layout_constraintEnd_toEndOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:gravity="center">
<androidx.appcompat.widget.AppCompatImageButton
android:id="@+id/bottom_sheet_actions_delete_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="16dp"
android:background="@android:color/white"
android:scaleX="1.5"
android:scaleY="1.5"
android:src="@drawable/ic_delete_24dp"
android:tint="@color/red_600" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cancella"/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
<include
android:id="@+id/layout"
layout="@layout/fragment_picking_libero" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@ -0,0 +1,85 @@
<?xml version="1.0" encoding="utf-8"?>
<layout>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="16dp"
android:layout_gravity="center">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/action_print"
style="@style/TextViewMaterial.DialogTitle"
android:gravity="center_horizontal"/>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:gravity="center_horizontal">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/print_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginBottom="16dp"
style="@style/TextInputLayout.OutlinePrimary"
android:textColor="#5F6368"
android:textSize="16sp"
tools:text="La procedura stamperà una packing list"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:paddingTop="8dp"
android:gravity="bottom|center_horizontal">
<com.google.android.material.button.MaterialButton
android:id="@+id/button_abort"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Button.PrimaryOutline"
app:icon="@drawable/ic_clear_24dp"
android:layout_marginEnd="8dp"
android:text="@android:string/no"/>
<com.google.android.material.button.MaterialButton
android:id="@+id/button_confirm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Button.PrimaryFull"
app:icon="@drawable/ic_print_24dp"
android:text="@android:string/yes"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
</layout>

View File

@ -142,5 +142,182 @@
</LinearLayout>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
app:cardBackgroundColor="@android:color/white"
app:cardCornerRadius="4dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginBottom="10dp"
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:textColor="@android:color/black"
android:layout_marginTop="10dp"
android:layout_marginLeft="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Azioni rapide"
android:textAllCaps="true"
android:textStyle="bold"/>
<LinearLayout
android:layout_margin="15dp"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="1">
<LinearLayout
android:id="@+id/fast_button_accettazione"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="0.5"
android:gravity="center">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_margin="8dp"
android:background="@android:color/white"
android:src="@drawable/ic_download_black_24dp"
android:tint="@color/mainGreen" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Accettazione"
android:gravity="center_horizontal"/>
</LinearLayout>
<LinearLayout
android:id="@+id/fast_button_spedizione"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="0.5"
android:gravity="center">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_margin="8dp"
android:background="@android:color/white"
android:src="@drawable/ic_upload_black_24dp"
android:tint="@color/mainOrange" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Spedizione"
android:gravity="center_horizontal"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="16dp"
android:weightSum="0.9">
<LinearLayout
android:id="@+id/fast_button_rettifica_giacenze"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="0.3"
android:gravity="center">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_margin="8dp"
android:background="@android:color/white"
android:src="@drawable/ic_empty_box_96"
android:tint="@color/brown_500" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Rettifica Giacenze"
android:gravity="center_horizontal"/>
</LinearLayout>
<LinearLayout
android:id="@+id/fast_button_versamento"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="0.3"
android:gravity="center">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_margin="8dp"
android:background="@android:color/white"
android:src="@drawable/ic_load_shelf_96"
android:tint="@color/teal_500" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:text="Versamento Merce"/>
</LinearLayout>
<LinearLayout
android:id="@+id/fast_button_picking_libero"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="0.3"
android:gravity="center">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_margin="8dp"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:background="@android:color/white"
android:src="@drawable/ic_barcode_96"
android:tint="@color/colorPrimary" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/free_picking"
android:gravity="center_horizontal"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
</LinearLayout>
</FrameLayout>

View File

@ -0,0 +1,301 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:fab="http://schemas.android.com/apk/res-auto">
<data>
<import type="android.view.View"/>
<import type="it.integry.integrywmsnative.core.utility.UtilityString" />
<variable
name="viewmodel"
type="it.integry.integrywmsnative.gest.picking_libero.viewmodel.PickingLiberoViewModel" />
</data>
<androidx.coordinatorlayout.widget.CoordinatorLayout android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/full_white">
<it.integry.plugins.waterfalltoolbar.WaterfallToolbar
android:id="@+id/waterfall_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:gravity="center_horizontal"
app:popupTheme="@style/AppTheme.PopupOverlay">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/toolbar_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="Picking Libero"
style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
android:layout_gravity="center" />
</androidx.appcompat.widget.Toolbar>
</it.integry.plugins.waterfalltoolbar.WaterfallToolbar>
<androidx.core.widget.NestedScrollView
android:id="@+id/scroll_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<LinearLayout
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingTop="8dp"
android:focusableInTouchMode="true"
tools:context=".gest.contenuto_bancale.ContenutoBancaleActivity">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/picking_libero_main_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginBottom="92dp"
android:paddingStart="2dp"
android:paddingEnd="2dp">
</androidx.recyclerview.widget.RecyclerView>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</LinearLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.Guideline
android:id="@+id/free_picking__suggestion_1__guideline_top"
android:layout_width="0dp"
android:layout_height="0dp"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.35"/>
<androidx.constraintlayout.widget.Guideline
android:id="@+id/free_picking__suggestion_1__guideline_left"
android:layout_width="0dp"
android:layout_height="0dp"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.2" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/free_picking__suggestion_1__guideline_right"
android:layout_width="0dp"
android:layout_height="0dp"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.8" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:alpha="0.4"
app:visibility="@{viewmodel.thereIsntAnOpenedUL}"
app:layout_constraintTop_toBottomOf="@id/free_picking__suggestion_1__guideline_top"
app:layout_constraintLeft_toRightOf="@id/free_picking__suggestion_1__guideline_left"
app:layout_constraintRight_toLeftOf="@id/free_picking__suggestion_1__guideline_right">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/black"
android:textSize="18sp"
android:gravity="center_horizontal"
android:layout_gravity="center_horizontal"
android:text="@string/free_picking_suggestion_1"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:alpha="0.4"
app:visibility="@{viewmodel.thereIsAnOpenULWithoutRows}"
app:layout_constraintTop_toBottomOf="@id/free_picking__suggestion_1__guideline_top"
app:layout_constraintLeft_toRightOf="@id/free_picking__suggestion_1__guideline_left"
app:layout_constraintRight_toLeftOf="@id/free_picking__suggestion_1__guideline_right">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/black"
android:textSize="18sp"
android:gravity="center_horizontal"
android:layout_gravity="center_horizontal"
android:text="@string/free_picking_suggestion_2"/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<com.github.clans.fab.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|right"
android:layout_marginBottom="8dp"
android:layout_marginRight="8dp"
android:src="@drawable/fab_add"
android:onClick="@{() -> viewmodel.createNewLU()}"
android:visibility="@{viewmodel.mtbColt == null ? View.VISIBLE : View.GONE}"
fab:fab_colorNormal="@color/colorPrimary"
fab:fab_colorPressed="@color/white_pressed"
fab:fab_colorRipple="#66FFFFFF"/>
<com.github.clans.fab.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|right"
android:layout_marginBottom="8dp"
android:layout_marginRight="8dp"
android:src="@drawable/ic_check_white_24dp"
android:onClick="@{() -> viewmodel.closeLU()}"
android:visibility="@{viewmodel.mtbColt != null ? View.VISIBLE : View.GONE}"
fab:fab_colorNormal="@color/mainGreen"
fab:fab_colorPressed="@color/white_pressed"
fab:fab_colorRipple="#66FFFFFF"/>
<View
android:visibility="gone"
android:id="@+id/bg"
android:background="#99000000"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<LinearLayout
android:id="@+id/bottom_sheet_actions"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#fff"
android:orientation="vertical"
android:padding="16dp"
android:layout_gravity="bottom"
app:behavior_hideable="true"
app:behavior_peekHeight="0dp"
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="center_vertical">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginBottom="8dp"
app:layout_constraintEnd_toStartOf="@id/bottom_sheet_actions_quantity"
app:layout_constraintStart_toStartOf="parent">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/bottom_sheet_actions_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="Descrizione articolo"
android:textColor="#444"
android:textSize="18dp"
android:maxLines="1"
android:ellipsize="end"
android:paddingRight="8dp"
android:textStyle="bold" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/bottom_sheet_actions_subtitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="ABF52IL"
android:textSize="14dp"
android:textStyle="bold" />
</LinearLayout>
<TextView
android:id="@+id/bottom_sheet_actions_quantity"
android:layout_width="wrap_content"
android:gravity="right"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textSize="15dp"
tools:text="250 PZ"
app:layout_constraintEnd_toEndOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:gravity="center">
<androidx.appcompat.widget.AppCompatImageButton
android:id="@+id/bottom_sheet_actions_delete_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="16dp"
android:background="@android:color/white"
android:scaleX="1.5"
android:scaleY="1.5"
android:src="@drawable/ic_delete_24dp"
android:tint="@color/red_600" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cancella"/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</layout>

View File

@ -2,22 +2,30 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="@+id/nav_home"
android:icon="@drawable/ic_home_black_24dp"
android:title="Home" />
<item
android:id="@+id/nav_accettazione"
android:icon="@drawable/ic_menu_camera"
android:icon="@drawable/ic_download_black_24dp"
android:title="Accettazione" />
<item
android:id="@+id/nav_gallery"
android:icon="@drawable/ic_menu_gallery"
android:id="@+id/nav_spedizione"
android:icon="@drawable/ic_upload_black_24dp"
android:title="Spedizione" />
<item
android:id="@+id/nav_slideshow"
android:icon="@drawable/ic_menu_slideshow"
android:id="@+id/nav_rettifica_giacenze"
android:icon="@drawable/ic_empty_box_96"
android:title="Rettifica Giacenze" />
<item
android:id="@+id/nav_manage"
android:icon="@drawable/ic_menu_manage"
android:id="@+id/nav_versamento_merce"
android:icon="@drawable/ic_load_shelf_96"
android:title="Versamento Merce" />
<item
android:id="@+id/nav_free_picking"
android:icon="@drawable/ic_barcode_96"
android:title="@string/free_picking" />
</group>
<!--
<item android:title="Communicate">

View File

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_free_picking"
android:orderInCategory="100"
android:title="@string/free_picking"
app:showAsAction="never" />
<!--<item-->
<!--android:id="@+id/action_free_picking"-->
<!--android:orderInCategory="100"-->
<!--android:title="@string/free_picking"-->
<!--app:showAsAction="never" />-->
</menu>

View File

@ -41,6 +41,7 @@
<string name="action_show_created_ul">Mostra UL già create</string>
<string name="action_recover_ul">Recupera UL</string>
<string name="action_print_ul">Stampa UL</string>
<string name="action_print">Stampa</string>
<string name="confirm">Conferma</string>
<string name="hint_additional_notes">Note Aggiuntive</string>
<string name="dialog_message_additional_notes">Inserisci eventuali note aggiuntive della tua UL</string>
@ -175,5 +176,6 @@
<string name="free_picking">Picking libero</string>
<string name="free_picking_suggestion_1">Per iniziare clicca sul + in basso a destra</string>
<string name="free_picking_suggestion_2">Scansiona un articolo per iniziare</string>
<string name="free_picking_title_fragment">Picking libero</string>
</resources>

View File

@ -29,6 +29,7 @@
<color name="blue_700">#1976D2</color>
<color name="brown_500">#795548</color>
<color name="green_500_with_alpha">#884CAF50</color>
<color name="green_500">#4CAF50</color>
@ -57,6 +58,8 @@
<color name="red_700">#D32F2F</color>
<color name="teal_500">#009688</color>
<color name="yellow_600">#FDD835</color>
</resources>

View File

@ -25,6 +25,7 @@
<string name="vendita_title_fragment">Check out</string>
<string name="rettifica_giacenze_fragment_title">Inventory</string>
<string name="versamento_merce_fragment_title">Items placement</string>
<string name="free_picking_title_fragment">Free picking</string>
<string name="error">Error</string>
<string name="ops">Ops</string>
<string name="warning">Warning</string>
@ -41,6 +42,7 @@
<string name="action_show_created_ul">Show already created LU</string>
<string name="action_recover_ul">Recover LU</string>
<string name="action_print_ul">Print LU</string>
<string name="action_print">Print</string>
<string name="confirm">Confirm</string>
<string name="hint_additional_notes">Additional notes</string>
<string name="dialog_message_additional_notes">Enter any additional notes in your logistics unit</string>
@ -177,4 +179,7 @@
<string name="free_picking_suggestion_1">Please press + button to start with picking</string>
<string name="free_picking_suggestion_2">Scan an item to start</string>
<!-- TODO: Remove or change this placeholder text -->
<string name="hello_blank_fragment">Hello blank fragment</string>
</resources>