Prima implementazione azioni rapide nel Menu principale
This commit is contained in:
@@ -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;
|
||||
@@ -22,7 +24,6 @@ import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
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;
|
||||
@@ -102,19 +103,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 +121,21 @@ 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) {
|
||||
fragment = VersamentoMerceFragment.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();
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -13,6 +13,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;
|
||||
@@ -97,4 +99,15 @@ public class MainFragment extends Fragment implements ITitledFragment {
|
||||
public String getTitle(Context context) {
|
||||
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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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 -> {
|
||||
|
||||
|
||||
@@ -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.SECONDARIA, 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;
|
||||
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user