Prima implementazione azioni rapide nel Menu principale

This commit is contained in:
Giuseppe Scorrano 2019-01-14 20:17:22 +01:00
parent e0eb57c459
commit d8171f3f74
20 changed files with 435 additions and 89 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>

View File

@ -1,6 +1,8 @@
package it.integry.integrywmsnative; package it.integry.integrywmsnative;
import android.content.Intent; import android.content.Intent;
import androidx.annotation.IdRes;
import androidx.databinding.DataBindingUtil; import androidx.databinding.DataBindingUtil;
import android.os.Bundle; import android.os.Bundle;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
@ -22,7 +24,6 @@ import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker; 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.IFilterableFragment;
import it.integry.integrywmsnative.core.interfaces.IRecyclerFragment; import it.integry.integrywmsnative.core.interfaces.IRecyclerFragment;
import it.integry.integrywmsnative.core.interfaces.ISelectAllFragment; import it.integry.integrywmsnative.core.interfaces.ISelectAllFragment;
@ -102,19 +103,11 @@ public class MainActivity extends AppCompatActivity
return true; return true;
} }
@Override public void setItem(@IdRes int menuId) {
public boolean onOptionsItemSelected(MenuItem item) { mBinding.navView.setCheckedItem(menuId);
// Handle action bar item clicks here. The action bar will onNavigationItemSelected(mBinding.navView.getMenu().findItem(menuId));
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
// if (id == R.id.action_search) {
// return true;
// }
return super.onOptionsItemSelected(item);
} }
@SuppressWarnings("StatementWithEmptyBody") @SuppressWarnings("StatementWithEmptyBody")
@ -128,25 +121,21 @@ public class MainActivity extends AppCompatActivity
Fragment fragment = null; Fragment fragment = null;
int id = item.getItemId(); 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(); fragment = MainAccettazioneFragment.newInstance();
this.adaptViewToFragment(fragment); this.adaptViewToFragment(fragment);
} else if (id == R.id.nav_gallery) { } else if (id == R.id.nav_spedizione) {
fragment = MainVenditaFragment.newInstance(); fragment = MainVenditaFragment.newInstance();
this.adaptViewToFragment(fragment); this.adaptViewToFragment(fragment);
} else if (id == R.id.nav_slideshow) { } else if (id == R.id.nav_rettifica_giacenze) {
fragment = RettificaGiacenzeFragment.newInstance(); fragment = RettificaGiacenzeFragment.newInstance();
this.adaptViewToFragment(fragment); this.adaptViewToFragment(fragment);
} else if (id == R.id.nav_manage) { } else if (id == R.id.nav_manage) {
fragment = VersamentoMerceFragment.newInstance(); fragment = VersamentoMerceFragment.newInstance();
this.adaptViewToFragment(fragment); this.adaptViewToFragment(fragment);
} }
/*else if (id == R.id.nav_share) {
} else if (id == R.id.nav_send) {
}*/
else if(id == R.id.nav_settings){ else if(id == R.id.nav_settings){
fragment = new MainSettingsFragment(); fragment = new MainSettingsFragment();

View File

@ -134,16 +134,9 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{
mtbColtToCreate.setSerCollo(customSerCollo); mtbColtToCreate.setSerCollo(customSerCollo);
} }
Calendar calendar = Calendar.getInstance(); if(!UtilityBarcode.isEtichettaAnonimaOfCurrentYear(barcode)) {
int currentYear = calendar.get(Calendar.YEAR);
String fullYear = "20" + UtilityBarcode.getAnnoColloFromULAnonima(barcode);
if(!fullYear.equalsIgnoreCase("" + currentYear)){
onFailed.run(new Exception("Per continuare scansiona un'etichetta dell'anno corrente")); onFailed.run(new Exception("Per continuare scansiona un'etichetta dell'anno corrente"));
return;
} }
mtbColtToCreate 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.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.utility.UtilityLogger; 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.Call;
import retrofit2.Callback; import retrofit2.Callback;
import retrofit2.Response; 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) { 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); PrinterRESTConsumerService printerService = RESTBuilder.getService(PrinterRESTConsumerService.class);
printerService.printCollo( printerService.printCollo(
printerName, printerName,

View File

@ -2,6 +2,8 @@ package it.integry.integrywmsnative.core.utility;
import com.annimon.stream.Stream; import com.annimon.stream.Stream;
import java.util.Calendar;
import it.integry.integrywmsnative.core.model.MtbDepoPosizione; import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO; 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"); 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){ public static boolean isEtichetta128(BarcodeScanDTO barcodeScanDTO){
return barcodeScanDTO != null && (barcodeScanDTO.getType() == BarcodeType.CODE128 || barcodeScanDTO.getType() == BarcodeType.EAN128); return barcodeScanDTO != null && (barcodeScanDTO.getType() == BarcodeType.CODE128 || barcodeScanDTO.getType() == BarcodeType.EAN128);
} }

View File

@ -19,6 +19,11 @@ public class UtilityExceptions {
progressDialog.dismiss(); progressDialog.dismiss();
defaultException(context, ex); 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){ public static void defaultException(Context context, Exception ex){
defaultException(context, ex, false); defaultException(context, ex, false);
} }

View File

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

View File

@ -226,8 +226,13 @@ public class AccettazioneOnOrdineAccettazioneInevasoViewModel implements IOnColl
ColliMagazzinoRESTConsumer.getBySSCC(barcodeScanDTO.getStringValue(), false, false, mtbColt -> { ColliMagazzinoRESTConsumer.getBySSCC(barcodeScanDTO.getStringValue(), false, false, mtbColt -> {
if(mtbColt == null) { if(mtbColt == 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, null); this.createNewUL(UtilityBarcode.getNumColloFromULAnonima(barcodeScanDTO.getStringValue()), CommonConst.Config.DEFAULT_ANONYMOUS_UL_SERIE, progressDialog, true, null);
BarcodeManager.enable(); BarcodeManager.enable();
}
} else { } else {
progressDialog.dismiss(); progressDialog.dismiss();
BarcodeManager.enable(); BarcodeManager.enable();

View File

@ -13,6 +13,8 @@ import net.cachapa.expandablelayout.ExpandableLayout;
import butterknife.BindView; import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
import butterknife.OnClick;
import it.integry.integrywmsnative.MainActivity;
import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker; import it.integry.integrywmsnative.core.REST.watcher.ServerStatusChecker;
import it.integry.integrywmsnative.core.interfaces.ITitledFragment; import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
@ -97,4 +99,15 @@ public class MainFragment extends Fragment implements ITitledFragment {
public String getTitle(Context context) { public String getTitle(Context context) {
return context.getString(R.string.app_name); return context.getString(R.string.app_name);
} }
@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);
}
} }

View File

@ -12,6 +12,7 @@ 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.CommonConst;
import it.integry.integrywmsnative.core.REST.consumers.BarcodeRESTConsumer; import it.integry.integrywmsnative.core.REST.consumers.BarcodeRESTConsumer;
import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer; import it.integry.integrywmsnative.core.REST.consumers.ColliMagazzinoRESTConsumer;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
@ -60,7 +61,9 @@ public class VenditaViewModel {
BarcodeManager.disable(); BarcodeManager.disable();
final ProgressDialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext); 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); this.executeEtichettaEan128(data, progressDialog);
} else { } else {
progressDialog.dismiss(); progressDialog.dismiss();
@ -69,8 +72,6 @@ public class VenditaViewModel {
}; };
private void executeEtichettaEan128(BarcodeScanDTO barcodeScanDTO, ProgressDialog progressDialog) { private void executeEtichettaEan128(BarcodeScanDTO barcodeScanDTO, ProgressDialog progressDialog) {
BarcodeRESTConsumer.decodeEan128(barcodeScanDTO, ean128Model -> { 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.view.bottomsheet.viewmodel.ArticoliInColloBottomSheetViewModel;
import it.integry.integrywmsnative.BR; 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.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.DialogInputQuantity;
import it.integry.integrywmsnative.view.dialogs.input_quantity.QuantityDTO; import it.integry.integrywmsnative.view.dialogs.input_quantity.QuantityDTO;
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO; 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 -> { ColliMagazzinoRESTConsumer.getBySSCC(barcodeScanDTO.getStringValue(), true, false, mtbColt -> {
if(mtbColt == null) { if(mtbColt == 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( this.createNewUL(
UtilityBarcode.getNumColloFromULAnonima(barcodeScanDTO.getStringValue()), UtilityBarcode.getNumColloFromULAnonima(barcodeScanDTO.getStringValue()),
CommonConst.Config.DEFAULT_ANONYMOUS_UL_SERIE, progressDialog, CommonConst.Config.DEFAULT_ANONYMOUS_UL_SERIE, progressDialog,
true, true, true, true,
null); null);
}
} else { } else {
this.createNewUL( this.createNewUL(
@ -733,7 +742,9 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
} }
private void printCollo(ProgressDialog progress) { private void printCollo(ProgressDialog progress) {
DialogAskShouldPrint.make(mActivity, "Packing List", shouldPrint -> {
if(shouldPrint) {
PrinterRESTConsumer.getAvailablePrinters(SettingsManager.i().userSession.depo.getCodMdep(), PrinterRESTConsumer.Type.SECONDARIA, new ISimpleOperationCallback<List<String>>() { PrinterRESTConsumer.getAvailablePrinters(SettingsManager.i().userSession.depo.getCodMdep(), PrinterRESTConsumer.Type.SECONDARIA, new ISimpleOperationCallback<List<String>>() {
@Override @Override
public void onSuccess(List<String> value) { public void onSuccess(List<String> value) {
@ -783,6 +794,11 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
UtilityExceptions.defaultException(mActivity, ex, progress); UtilityExceptions.defaultException(mActivity, ex, progress);
} }
}); });
} else {
postCloseOperations();
progress.dismiss();
}
}).show();
} }
private void deleteCollo(ProgressDialog progress) { private void deleteCollo(ProgressDialog progress) {
@ -800,6 +816,7 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
public boolean thereIsAnOpenedUL() { public boolean thereIsAnOpenedUL() {
return mArticoliInColloBottomSheetViewModel.mtbColt.get() != null; return mArticoliInColloBottomSheetViewModel.mtbColt.get() != null;
} }
public boolean thereIsAnyRowInUL() { public boolean thereIsAnyRowInUL() {
return mArticoliInColloBottomSheetViewModel.mtbColt.get() != null && return mArticoliInColloBottomSheetViewModel.mtbColt.get() != null &&
mArticoliInColloBottomSheetViewModel.mtbColt.get().getMtbColr() != null && mArticoliInColloBottomSheetViewModel.mtbColt.get().getMtbColr() != null &&
@ -842,7 +859,6 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
removeListFilter(); removeListFilter();
refreshOrderBy(true); refreshOrderBy(true);
} }
@ -881,8 +897,6 @@ public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IO
float qtaEvasaCurrentUL = qtaEvasaCurrentULInMtbColr; float qtaEvasaCurrentUL = qtaEvasaCurrentULInMtbColr;
BigDecimal qtaDaEvadere = item.getQtaOrd().subtract(new BigDecimal(qtaEvasaTotale)); BigDecimal qtaDaEvadere = item.getQtaOrd().subtract(new BigDecimal(qtaEvasaTotale));
if(qtaDaEvadere.floatValue() < 0) qtaDaEvadere = BigDecimal.ZERO; if(qtaDaEvadere.floatValue() < 0) qtaDaEvadere = BigDecimal.ZERO;

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);
});
}
}

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>

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>

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

@ -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,100 @@
</LinearLayout> </LinearLayout>
</androidx.cardview.widget.CardView> </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:padding="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:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="0.5"
android:gravity="center">
<androidx.appcompat.widget.AppCompatImageButton
android:id="@+id/fast_button_accettazione"
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_download_black_24dp"
android:tint="@color/mainGreen" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Accettazione"/>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="0.5"
android:gravity="center">
<androidx.appcompat.widget.AppCompatImageButton
android:id="@+id/fast_button_spedizione"
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_upload_black_24dp"
android:tint="@color/mainOrange" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Spedizione"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
</LinearLayout> </LinearLayout>
</FrameLayout> </FrameLayout>

View File

@ -2,16 +2,20 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android"> <menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single"> <group android:checkableBehavior="single">
<item
android:id="@+id/nav_home"
android:icon="@drawable/ic_home_black_24dp"
android:title="Home" />
<item <item
android:id="@+id/nav_accettazione" android:id="@+id/nav_accettazione"
android:icon="@drawable/ic_menu_camera" android:icon="@drawable/ic_menu_camera"
android:title="Accettazione" /> android:title="Accettazione" />
<item <item
android:id="@+id/nav_gallery" android:id="@+id/nav_spedizione"
android:icon="@drawable/ic_menu_gallery" android:icon="@drawable/ic_menu_gallery"
android:title="Spedizione" /> android:title="Spedizione" />
<item <item
android:id="@+id/nav_slideshow" android:id="@+id/nav_rettifica_giacenze"
android:icon="@drawable/ic_menu_slideshow" android:icon="@drawable/ic_menu_slideshow"
android:title="Rettifica Giacenze" /> android:title="Rettifica Giacenze" />
<item <item

View File

@ -41,6 +41,7 @@
<string name="action_show_created_ul">Mostra UL già create</string> <string name="action_show_created_ul">Mostra UL già create</string>
<string name="action_recover_ul">Recupera UL</string> <string name="action_recover_ul">Recupera UL</string>
<string name="action_print_ul">Stampa UL</string> <string name="action_print_ul">Stampa UL</string>
<string name="action_print">Stampa</string>
<string name="confirm">Conferma</string> <string name="confirm">Conferma</string>
<string name="hint_additional_notes">Note Aggiuntive</string> <string name="hint_additional_notes">Note Aggiuntive</string>
<string name="dialog_message_additional_notes">Inserisci eventuali note aggiuntive della tua UL</string> <string name="dialog_message_additional_notes">Inserisci eventuali note aggiuntive della tua UL</string>

View File

@ -41,6 +41,7 @@
<string name="action_show_created_ul">Show already created LU</string> <string name="action_show_created_ul">Show already created LU</string>
<string name="action_recover_ul">Recover LU</string> <string name="action_recover_ul">Recover LU</string>
<string name="action_print_ul">Print LU</string> <string name="action_print_ul">Print LU</string>
<string name="action_print">Print</string>
<string name="confirm">Confirm</string> <string name="confirm">Confirm</string>
<string name="hint_additional_notes">Additional notes</string> <string name="hint_additional_notes">Additional notes</string>
<string name="dialog_message_additional_notes">Enter any additional notes in your logistics unit</string> <string name="dialog_message_additional_notes">Enter any additional notes in your logistics unit</string>