Implementato versamento da V- a L+

This commit is contained in:
Giuseppe Scorrano 2020-05-26 11:47:00 +02:00
parent 021f7e9732
commit b60a11951f
15 changed files with 69 additions and 2652 deletions

View File

@ -37,7 +37,11 @@ public class UtilityExceptions {
String errorMessage = CommonRESTException.tryRecognizeThenGetMessage(ex);
if(errorMessage == null) errorMessage = ex.getMessage();
if(errorMessage == null) {
errorMessage = ex.getMessage();
if(ex.getCause() != null) errorMessage += "<br />" + ex.getCause().getMessage();
}
if(context != null) {
DialogSimpleMessageHelper.makeErrorDialog(context, new SpannableString(errorMessage), null, null).show();

View File

@ -37,9 +37,9 @@ import it.integry.integrywmsnative.core.utility.UtilityToast;
import it.integry.integrywmsnative.databinding.FragmentProdOrdineLavorazioneElencoBinding;
import it.integry.integrywmsnative.gest.prod_pick_ord_lavorazione.core.ProdOrdineLavorazioneHelper;
import it.integry.integrywmsnative.gest.prod_pick_ord_lavorazione.core.ProdOrdineLavorazioneListAdapter;
import it.integry.integrywmsnative.gest.spedizione_new.SpedizioneActivity;
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTOOld;
import it.integry.integrywmsnative.gest.spedizione.VenditaOrdineInevasoActivity;
import it.integry.integrywmsnative.ui.ElevatedToolbar;
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
@ -277,7 +277,7 @@ public class ProdOrdineLavorazioneElencoFragment extends Fragment implements ITi
}
private void startPickingActivity(List<PickingObjectDTOOld> ordini, List<OrdineVenditaInevasoDTO> selectedOrders, List<MtbColt> mtbColtList) {
Intent myIntent = new Intent(getActivity(), VenditaOrdineInevasoActivity.class);
Intent myIntent = new Intent(getActivity(), SpedizioneActivity.class);
String keyPickingList = DataCache.addItem(ordini);
myIntent.putExtra("keyPickingList", keyPickingList);

View File

@ -1,124 +0,0 @@
package it.integry.integrywmsnative.gest.spedizione;
import android.content.Intent;
import androidx.databinding.DataBindingUtil;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import java.util.ArrayList;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.expansion.BaseActivity;
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
import it.integry.integrywmsnative.core.data_cache.DataCache;
import it.integry.integrywmsnative.core.model.MtbColt;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.databinding.ActivityVenditaOrdineInevasoBinding;
import it.integry.integrywmsnative.databinding.FragmentArticoliInColloBottomSheetBinding;
import it.integry.integrywmsnative.gest.lista_bancali.ListaBancaliActivity;
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTOOld;
import it.integry.integrywmsnative.gest.spedizione.viewmodel.VenditaOrdineInevasoViewModel;
import it.integry.integrywmsnative.view.bottomsheet.viewmodel.ArticoliInColloBottomSheetViewModel;
public class VenditaOrdineInevasoActivity extends BaseActivity {
private ActivityVenditaOrdineInevasoBinding mBindings;
private VenditaOrdineInevasoViewModel mVenditaOrdineInevasoViewModel;
private ArticoliInColloBottomSheetViewModel mArticoliInColloBottomSheetViewModel;
private static final int PICK_UL_REQUEST = 1; // The request code
private int barcodeScannerIstanceID = -1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mBindings = DataBindingUtil.setContentView(this, R.layout.activity_vendita_ordine_inevaso);
FragmentArticoliInColloBottomSheetBinding bindings = this.mBindings.bottomSheetInclude;
mArticoliInColloBottomSheetViewModel = new ArticoliInColloBottomSheetViewModel(this, bindings);
ArrayList<PickingObjectDTOOld> pickingList = DataCache.retrieveItem(getIntent().getStringExtra("keyPickingList"));
ArrayList<OrdineVenditaInevasoDTO> testateOrdini = DataCache.retrieveItem(getIntent().getStringExtra("keyTestateOrdini"));
ArrayList<MtbColt> colliRegistrati = DataCache.retrieveItem(getIntent().getStringExtra("keyColliRegistrati"));
mVenditaOrdineInevasoViewModel = new VenditaOrdineInevasoViewModel(
this, mBindings, mArticoliInColloBottomSheetViewModel, pickingList, testateOrdini, colliRegistrati);
setSupportActionBar(this.mBindings.toolbar);
setTitle(R.string.activity_vendita_inevaso_title);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
.setOnScanSuccessfull(mVenditaOrdineInevasoViewModel.onScanSuccessfull)
.setOnScanFailed(ex -> UtilityExceptions.defaultException(this, ex, false)));
}
@Override
public boolean onSupportNavigateUp() {
onBackPressed();
return true;
}
@Override
public void onBackPressed() {
if(mArticoliInColloBottomSheetViewModel.isExpanded()){
mArticoliInColloBottomSheetViewModel.collapse();
} else if(mVenditaOrdineInevasoViewModel.thereIsAnOpenedUL()) {
mArticoliInColloBottomSheetViewModel.closeCurrentUL(() -> {
BarcodeManager.removeCallback(barcodeScannerIstanceID);
super.onBackPressed();
});
} else {
BarcodeManager.removeCallback(barcodeScannerIstanceID);
super.onBackPressed();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_vendita_ordine_inevaso, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
default:
return super.onOptionsItemSelected(item);
}
}
public void startListaBancaliRegistratiActivity(ArrayList<MtbColt> mtbColts){
Intent myIntent = ListaBancaliActivity.createIntent(this, mtbColts, true, PrinterRESTConsumer.Type.PRIMARIA);
this.startActivityForResult(myIntent, PICK_UL_REQUEST);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// Check which request we're responding to
if (requestCode == PICK_UL_REQUEST) {
// Make sure the request was successful
if (resultCode == RESULT_OK) {
MtbColt recoveredMtbColt = DataCache.retrieveItem(data.getStringExtra("key"));
mVenditaOrdineInevasoViewModel.recoverUL(recoveredMtbColt);
}
}
}
}

View File

@ -1,262 +0,0 @@
package it.integry.integrywmsnative.gest.spedizione.core;
import android.content.Context;
import androidx.databinding.ObservableArrayList;
import androidx.databinding.ObservableList;
import android.graphics.Color;
import androidx.core.util.Pools;
import androidx.recyclerview.widget.RecyclerView;
import android.text.Html;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.annimon.stream.Stream;
import java.util.ArrayList;
import java.util.List;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.CommonConst;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityNumber;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.gest.spedizione.core.interfaces.IOnOrdineVenditaRowDispatched;
import it.integry.integrywmsnative.gest.spedizione.dto.VenditaOrdineInevasoListViewModel;
public class MainListOrdineVenditaInevasoAdapter extends RecyclerView.Adapter<MainListOrdineVenditaInevasoAdapter.ViewHolder> {
private Context mContext;
private List<VenditaOrdineInevasoListViewModel> mDataset;
private View mEmptyView;
private ObservableArrayList<VenditaOrdineInevasoListViewModel> mObservableDataset;
private IOnOrdineVenditaRowDispatched mOrdineRowDispatch;
private static final Pools.SynchronizedPool sPool = new Pools.SynchronizedPool(200);
public static class ViewHolder extends RecyclerView.ViewHolder {
// each data item is just a string in this case
protected View mGroupTitle;
protected LinearLayout mLinearLayoutGroupItemContainer;
protected List<View> pool = new ArrayList<>();
public ViewHolder(View v) {
super(v);
}
}
public MainListOrdineVenditaInevasoAdapter(Context context, ObservableArrayList<VenditaOrdineInevasoListViewModel> myDataset, View emptyView) {
mContext = context;
mObservableDataset = myDataset;
mEmptyView = emptyView;
mDataset = Stream.of(mObservableDataset).filter(x -> !x.isHidden()).toList();
mObservableDataset.addOnListChangedCallback(onListChangedCallback);
checkIfEmpty();
}
public void setOnOrdineRowDispatchCallback(IOnOrdineVenditaRowDispatched ordineRowDispatch) {
mOrdineRowDispatch = ordineRowDispatch;
}
private ObservableList.OnListChangedCallback onListChangedCallback = new ObservableList.OnListChangedCallback<ObservableList<VenditaOrdineInevasoListViewModel>>() {
@Override
public void onChanged(ObservableList<VenditaOrdineInevasoListViewModel> sender) {
refreshNotHiddenElements();
notifyDataSetChanged();
checkIfEmpty();
}
@Override
public void onItemRangeChanged(ObservableList<VenditaOrdineInevasoListViewModel> sender, int positionStart, int itemCount) {
refreshNotHiddenElements();
notifyDataSetChanged();
checkIfEmpty();
}
@Override
public void onItemRangeInserted(ObservableList<VenditaOrdineInevasoListViewModel> sender, int positionStart, int itemCount) {
refreshNotHiddenElements();
notifyDataSetChanged();
checkIfEmpty();
}
@Override
public void onItemRangeMoved(ObservableList<VenditaOrdineInevasoListViewModel> sender, int fromPosition, int toPosition, int itemCount) {
refreshNotHiddenElements();
notifyDataSetChanged();
checkIfEmpty();
}
@Override
public void onItemRangeRemoved(ObservableList<VenditaOrdineInevasoListViewModel> sender, int positionStart, int itemCount) {
refreshNotHiddenElements();
notifyDataSetChanged();
checkIfEmpty();
}
private void refreshNotHiddenElements() {
mDataset = Stream.of(mObservableDataset).filter(x -> !x.isHidden()).toList();
}
};
@Override
public MainListOrdineVenditaInevasoAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
// create a new view
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.vendita_ordine_inevaso_main_list_model, parent, false);
ViewHolder vh = new ViewHolder(v);
TextView descrizioneArtForn = v.findViewById(R.id.vendita_ordine_inevaso_main_list__descrizione_gruppo);
vh.mGroupTitle = descrizioneArtForn;
LinearLayout groupItemContainer = v.findViewById(R.id.vendita_ordine_inevaso_main_list__group_item_container);
vh.mLinearLayoutGroupItemContainer = groupItemContainer;
return vh;
}
// Replace the contents of a view (invoked by the layout manager)
@Override
public void onBindViewHolder(MainListOrdineVenditaInevasoAdapter.ViewHolder holder, int position) {
((TextView)holder.mGroupTitle).setText(mDataset.get(position).descrizioneGroup);
List<VenditaOrdineInevasoListViewModel.SubItem> subset = mDataset.get(position).rows;
int visibleElementsCounter = 0;
for(int i = 0; i < subset.size(); i++) {
final VenditaOrdineInevasoListViewModel.SubItem rowItem = subset.get(i);
if(!rowItem.getOriginalModel().isHidden() &&
(rowItem.getOriginalModel().isTempHidden() == null ||
(rowItem.getOriginalModel().isTempHidden() != null && !rowItem.getOriginalModel().isTempHidden()))) {
visibleElementsCounter++;
View groupModelViewPool = (View) sPool.acquire();
if (groupModelViewPool == null) {
groupModelViewPool = LayoutInflater.from(mContext)
.inflate(R.layout.vendita_ordine_inevaso_main_list_child_group_model, holder.mLinearLayoutGroupItemContainer, false);
}
View groupModelView = groupModelViewPool;
holder.pool.add(groupModelView);
if (rowItem.getQtaRiservata().subtract(rowItem.getQtaOrdinata()).floatValue() >= 0 ) {
groupModelView.setBackgroundColor(mContext.getResources().getColor(R.color.green_500_with_alpha));
} else if (rowItem.getQtaRiservata().floatValue() > 0) {
groupModelView.setBackgroundColor(mContext.getResources().getColor(R.color.orange_600_with_alpha));
} else if (visibleElementsCounter % 2 == 1) {
groupModelView.setBackgroundColor(Color.WHITE);
} else {
groupModelView.setBackgroundColor(mContext.getResources().getColor(R.color.letturaFacilitataBG));
}
final TextView badge1 = groupModelView.findViewById(R.id.vendita_ordine_inevaso_main_list_group_item_badge1);
badge1.setText(rowItem.getBadge1());
final TextView badge2 = groupModelView.findViewById(R.id.vendita_ordine_inevaso_main_list_group_item_badge2);
badge2.setText(rowItem.getBadge2());
badge2.setVisibility(UtilityString.isNullOrEmpty(rowItem.getBadge2()) ? View.GONE : View.VISIBLE);
final TextView descrizione = groupModelView.findViewById(R.id.vendita_ordine_inevaso_main_list_group_item_descrizione);
String descrizioneString = rowItem.getDescrizione();
int descrizioneColor = Color.BLACK;
if (UtilityString.isNullOrEmpty(descrizioneString)) {
descrizioneString = mContext.getString(R.string.no_description);
descrizioneColor = Color.GRAY;
} else if (descrizioneString.equalsIgnoreCase(CommonConst.Config.COMMESSA_MAG)) {
descrizioneString = mContext.getString(R.string.stock);
}
descrizione.setText(descrizioneString);
descrizione.setTextColor(descrizioneColor);
final TextView subDescrizione1 = groupModelView.findViewById(R.id.vendita_ordine_inevaso_main_list_group_item_subdescrizione1);
if(rowItem.getSubDescrizione1() != null) subDescrizione1.setText(Html.fromHtml(rowItem.getSubDescrizione1()));
subDescrizione1.setVisibility(UtilityString.isNullOrEmpty(rowItem.getSubDescrizione1()) ? View.GONE : View.VISIBLE);
final TextView subDescrizione2 = groupModelView.findViewById(R.id.vendita_ordine_inevaso_main_list_group_item_subdescrizione2);
if(rowItem.getSubDescrizione2() != null) subDescrizione2.setText(Html.fromHtml(rowItem.getSubDescrizione2()));
subDescrizione2.setVisibility(UtilityString.isNullOrEmpty(rowItem.getSubDescrizione2()) ? View.GONE : View.VISIBLE);
final TextView qtaEvasa = groupModelView.findViewById(R.id.vendita_ordine_inevaso_main_list_group_item_qta_evasa);
qtaEvasa.setText(UtilityNumber.decimalToString(rowItem.getQtaRiservata()));
final TextView qtaTot = groupModelView.findViewById(R.id.vendita_ordine_inevaso_main_list_group_item_qta_tot);
qtaTot.setText(UtilityNumber.decimalToString(rowItem.getQtaOrdinata()));
final TextView untMis = groupModelView.findViewById(R.id.vendita_ordine_inevaso_main_list_group_item_unt_mis);
untMis.setText(rowItem.getUntMis());
final View deactivatedOverBG = groupModelView.findViewById(R.id.deactivated_over_bg);
deactivatedOverBG.setVisibility(rowItem.getOriginalModel().isDeactivated() ? View.VISIBLE : View.GONE);
groupModelView.setAlpha(rowItem.getOriginalModel().isDeactivated() ? 0.8f : 1);
badge1.setBackground(mContext.getResources().getDrawable(rowItem.getOriginalModel().isDeactivated() ? R.drawable.badge_gray_round_corner : R.drawable.badge1_round_corner));
qtaEvasa.setTextColor(mContext.getResources().getColor(rowItem.getOriginalModel().isDeactivated() ? R.color.gray_600 : R.color.green_700));
groupModelView.setOnClickListener(view -> {
if (mOrdineRowDispatch != null && SettingsManager.iDB().isFlagSpedizioneEnableManualPick()) {
// rowItem.getOriginalModel().setTempEan128Model(null);
mOrdineRowDispatch.onOrdineRowDispatch(rowItem.getOriginalModel());
}
});
holder.mLinearLayoutGroupItemContainer.addView(groupModelView);
}
}
}
@Override
public void onViewRecycled(MainListOrdineVenditaInevasoAdapter.ViewHolder holder){
if(holder != null){
for(int i = 0; i < holder.pool.size(); i++){
((ViewGroup) holder.pool.get(i).getParent()).removeView(holder.pool.get(i));
sPool.release(holder.pool.get(i));
}
holder.pool.clear();
}
super.onViewRecycled(holder);
}
// Return the size of your dataset (invoked by the layout manager)
@Override
public int getItemCount() {
return mDataset.size();
}
void checkIfEmpty() {
if (mEmptyView != null) {
final boolean emptyViewVisible = getItemCount() == 0;
mEmptyView.setVisibility(emptyViewVisible ? View.VISIBLE : View.GONE);
}
}
}

View File

@ -1,18 +0,0 @@
package it.integry.integrywmsnative.gest.spedizione.core;
import androidx.databinding.ObservableArrayList;
import java.util.List;
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTOOld;
public class SpedizioneHelper {
private ObservableArrayList<PickingObjectDTOOld> mPickingObjectDtoList;
public SpedizioneHelper(List<PickingObjectDTOOld> pickingObjectDTOList) {
this.mPickingObjectDtoList = new ObservableArrayList<>();
this.mPickingObjectDtoList.addAll(pickingObjectDTOList);
}
}

View File

@ -1,190 +0,0 @@
package it.integry.integrywmsnative.gest.spedizione.core;
import android.content.Context;
import androidx.databinding.ObservableArrayList;
import android.view.View;
import com.annimon.stream.Stream;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.class_router.BaseCustomConfiguration;
import it.integry.integrywmsnative.core.class_router.ClassRouter;
import it.integry.integrywmsnative.core.class_router.interfaces.ICustomConfiguration;
import it.integry.integrywmsnative.core.model.MtbColr;
import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityString;
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTOOld;
import it.integry.integrywmsnative.gest.spedizione.dto.VenditaOrdineInevasoListViewModel;
public class VenditaOrdineInevasoHelper {
private Context mContext;
private ObservableArrayList<VenditaOrdineInevasoListViewModel> mListViewModels = new ObservableArrayList<>();
public VenditaOrdineInevasoHelper(Context context){
mContext = context;
}
public MainListOrdineVenditaInevasoAdapter getRightListAdapter(View emptyView) {
return new MainListOrdineVenditaInevasoAdapter(mContext, mListViewModels, emptyView);
}
public void updateListModel(List<List<PickingObjectDTOOld>> mDataset, List<MtbColr> mtbColrs) throws Exception {
mListViewModels.clear();
mListViewModels.addAll(getListViewModelPerPosizione(mDataset, mtbColrs));
}
public List<List<PickingObjectDTOOld>> getPickingListRaggruppataPerPosizione(List<PickingObjectDTOOld> mPickingList, boolean forceHiddenCheck){
for(int i = 0; i < mPickingList.size(); i++) {
if(mPickingList.get(i).isHidden() == null || forceHiddenCheck) {
PickingObjectDTOOld tmpItem = mPickingList.get(i);
tmpItem.setDeactivated(tmpItem.getQtaCollo() == null || tmpItem.getQtaCollo().floatValue() == 0);
tmpItem.setHidden(false);
tmpItem.setTempHidden(false);
}
}
List<String> listOfKnownPositions = Stream.of(mPickingList)
.filter(x -> !x.isDeactivated())
.map(PickingObjectDTOOld::getPosizione)
.distinctBy(x -> x)
.withoutNulls()
.sortBy(x -> x)
.toList();
listOfKnownPositions.add(null);
List<List<PickingObjectDTOOld>> groupedRighe = new ArrayList<>();
for (String position : listOfKnownPositions) {
List<PickingObjectDTOOld> tmpList = Stream.of(mPickingList)
.filter(x -> !x.isDeactivated() && (x.getPosizione() == null && position == null) ||
(x.getPosizione() != null && x.getPosizione().equalsIgnoreCase(position))).toList();
for(int i = 0; i < tmpList.size(); i++){
if(tmpList.get(i).isHidden() == null || forceHiddenCheck) {
PickingObjectDTOOld tmpItem = tmpList.get(i);
tmpItem.setHidden(tmpItem.getQtaCollo().compareTo(BigDecimal.ZERO) <= 0 || (!tmpItem.getMtbAart().isFlagQtaCnfFissaBoolean() && tmpItem.getNumCnfCollo().compareTo(BigDecimal.ZERO) <= 0));
tmpItem.setTempHidden(false);
}
}
if(tmpList.size() > 0){
groupedRighe.add(tmpList);
}
}
List<PickingObjectDTOOld> deactivatedItems = Stream.of(mPickingList)
.filter(PickingObjectDTOOld::isDeactivated)
.toList();
if(deactivatedItems.size() > 0) groupedRighe.add(deactivatedItems);
return groupedRighe;
}
public List<VenditaOrdineInevasoListViewModel> getListViewModelPerPosizione(List<List<PickingObjectDTOOld>> groupedRighe, List<MtbColr> mtbColrs) {
ICustomConfiguration customConfiguration = ClassRouter.getInstance(ClassRouter.PATH.CUSTOM_CONFIGURATION);
List<VenditaOrdineInevasoListViewModel> listModel = new ArrayList<>();
for(int i = 0; i < groupedRighe.size(); i++) {
List<PickingObjectDTOOld> currentGroup = groupedRighe.get(i);
VenditaOrdineInevasoListViewModel itemModel = new VenditaOrdineInevasoListViewModel();
String posizioneString = "";
if(currentGroup.get(0).isDeactivated()) {
posizioneString = mContext.getResources().getText(R.string.picking_not_available).toString();
} else {
posizioneString = mContext.getResources().getText(R.string.position_text) + ": " + (UtilityString.isNullOrEmpty(currentGroup.get(0).getPosizione()) ? "N.A." : currentGroup.get(0).getPosizione());
}
itemModel.descrizioneGroup = posizioneString;
itemModel.rows = new ArrayList<>();
for(int k = 0; k < currentGroup.size(); k++) {
final PickingObjectDTOOld currentItem = currentGroup.get(k);
final VenditaOrdineInevasoListViewModel.SubItem rowModel = new VenditaOrdineInevasoListViewModel.SubItem();
String badge1 = "";
if(customConfiguration.getConfig(BaseCustomConfiguration.Keys.FLAG_SHOW_COD_FORN_IN_SPEDIZIONE)) {
badge1 += !UtilityString.isNullOrEmpty(currentItem.getCodAlis()) ? (currentItem.getCodAlis() + " - ") : "";
badge1 += (!UtilityString.isNullOrEmpty(currentItem.getCodArtFor()) ? currentItem.getCodArtFor() : currentItem.getCodMart());
} else {
badge1 += currentItem.getCodMart();
}
rowModel.setBadge1(badge1);
rowModel.setBadge2(UtilityString.isNullOrEmpty(currentItem.getCodJcom()) ? null : currentItem.getCodJcom());
rowModel.setDescrizione(currentItem.getDescrizioneEstesa());
if(!UtilityString.isNullOrEmpty(currentItem.getPartitaMag())) {
rowModel.setSubDescrizione1(String.format(mContext.getResources().getText(R.string.batch_lot_text).toString(), currentItem.getPartitaMag()));
}
if(currentItem.getNumCollo() != null) {
rowModel.setSubDescrizione2(String.format(mContext.getResources().getText(R.string.lu_number_data_text).toString(), currentItem.getNumCollo(), currentItem.getDataColloHuman()));
}
BigDecimal currentQtaColEvasa = BigDecimal.ZERO;
BigDecimal currentNumCnfColEvasa = BigDecimal.ZERO;
if(currentItem.getWithdrawRows() != null) {
for (MtbColr mtbColr : currentItem.getWithdrawRows()) {
currentQtaColEvasa = currentQtaColEvasa.add(mtbColr.getQtaCol());
currentNumCnfColEvasa = currentNumCnfColEvasa.add(mtbColr.getNumCnf());
}
}
if(!SettingsManager.iDB().isFlagForceAllToColli() && (currentItem.getMtbAart() == null || currentItem.getMtbAart().isFlagQtaCnfFissaBoolean())){
rowModel.setQtaOrdinata(currentItem.getNumCollo() != null ? currentItem.getQtaCollo() : currentItem.getQtaOrd());
rowModel.setQtaRiservata(currentQtaColEvasa);
if(currentItem.getMtbAart() != null) {
rowModel.setUntMis(currentItem.getMtbAart().getUntMis());
}
} else {
rowModel.setUntMis("col");
rowModel.setQtaOrdinata(currentItem.getNumCollo() != null ? currentItem.getNumCnfCollo() : currentItem.getNumCnfOrd());
rowModel.setQtaRiservata(currentNumCnfColEvasa);
}
rowModel.setOriginalModel(currentItem);
itemModel.rows.add(rowModel);
}
listModel.add(itemModel);
}
return listModel;
}
}

View File

@ -1,8 +0,0 @@
package it.integry.integrywmsnative.gest.spedizione.core.interfaces;
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTOOld;
public interface IOnOrdineVenditaRowDispatched {
void onOrdineRowDispatch(PickingObjectDTOOld item);
}

View File

@ -1,116 +0,0 @@
package it.integry.integrywmsnative.gest.spedizione.dto;
import com.annimon.stream.Stream;
import java.math.BigDecimal;
import java.util.List;
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTOOld;
public class VenditaOrdineInevasoListViewModel {
public String descrizioneGroup;
public List<SubItem> rows;
public boolean isHidden(){
if(rows == null || rows.size() == 0) return true;
return Stream.of(rows).filter(x -> (x.originalModel.isHidden() != null && !x.originalModel.isHidden()) &&
(x.originalModel.isTempHidden() != null && !x.originalModel.isTempHidden())).count() == 0;
}
public static class SubItem {
private String badge1;
private String badge2;
private String descrizione;
private String subDescrizione1;
private String subDescrizione2;
private BigDecimal qtaRiservata;
private BigDecimal qtaOrdinata;
private String untMis;
private PickingObjectDTOOld originalModel;
public String getBadge1() {
return badge1;
}
public SubItem setBadge1(String badge1) {
this.badge1 = badge1;
return this;
}
public String getBadge2() {
return badge2;
}
public SubItem setBadge2(String badge2) {
this.badge2 = badge2;
return this;
}
public String getDescrizione() {
return descrizione;
}
public SubItem setDescrizione(String descrizione) {
this.descrizione = descrizione;
return this;
}
public String getSubDescrizione1() {
return subDescrizione1;
}
public SubItem setSubDescrizione1(String subDescrizione1) {
this.subDescrizione1 = subDescrizione1;
return this;
}
public String getSubDescrizione2() {
return subDescrizione2;
}
public SubItem setSubDescrizione2(String subDescrizione2) {
this.subDescrizione2 = subDescrizione2;
return this;
}
public BigDecimal getQtaRiservata() {
return qtaRiservata == null ? BigDecimal.ZERO : qtaRiservata;
}
public SubItem setQtaRiservata(BigDecimal qtaRiservata) {
this.qtaRiservata = qtaRiservata;
return this;
}
public BigDecimal getQtaOrdinata() {
return qtaOrdinata == null ? BigDecimal.ZERO : qtaOrdinata;
}
public SubItem setQtaOrdinata(BigDecimal qtaOrdinata) {
this.qtaOrdinata = qtaOrdinata;
return this;
}
public PickingObjectDTOOld getOriginalModel() {
return originalModel;
}
public SubItem setOriginalModel(PickingObjectDTOOld originalModel) {
this.originalModel = originalModel;
return this;
}
public String getUntMis() {
return untMis;
}
public SubItem setUntMis(String untMis) {
this.untMis = untMis;
return this;
}
}
}

View File

@ -1,4 +0,0 @@
package it.integry.integrywmsnative.gest.spedizione.rest;
public interface OrdineVenditaInevasoRESTConsumerService {
}

View File

@ -69,11 +69,11 @@ public class VersamentoMerceViewModel {
public void openLU() {
DialogScanOrCreateLU.make(mContext, true, false, true, false, (mtbColt, created) -> {
if(mtbColt == null) {
((IPoppableActivity)mContext).pop();
} else if((mtbColt.getGestioneEnum() == GestioneEnum.ACQUISTO || mtbColt.getGestioneEnum() == GestioneEnum.LAVORAZIONE) && mtbColt.getSegno().equals(+1)){
if (mtbColt == null) {
((IPoppableActivity) mContext).pop();
} else if ((mtbColt.getGestioneEnum() == GestioneEnum.ACQUISTO || mtbColt.getGestioneEnum() == GestioneEnum.LAVORAZIONE) && mtbColt.getSegno().equals(+1)) {
setMtbColt(mtbColt);
} else if(mtbColt.getGestioneEnum() == GestioneEnum.VENDITA && mtbColt.getSegno().equals(+1)){
} else if (mtbColt.getGestioneEnum() == GestioneEnum.VENDITA) {
setMtbColt(mtbColt);
} else {
DialogSimpleMessageHelper.makeWarningDialog(mContext,
@ -98,14 +98,14 @@ public class VersamentoMerceViewModel {
Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
if(UtilityBarcode.isEtichettaPosizione(data)){
if (UtilityBarcode.isEtichettaPosizione(data)) {
progressDialog.show();
this.executeEtichettaPosizione(data, progressDialog);
} else if(data.getType() == BarcodeType.EAN8 || data.getType() == BarcodeType.EAN13 || data.getType() == BarcodeType.UPCA){
} else if (data.getType() == BarcodeType.EAN8 || data.getType() == BarcodeType.EAN13 || data.getType() == BarcodeType.UPCA) {
//searchArtInt(data.getStringValue());
} else if(UtilityBarcode.isEtichettaAnonima(data)) {
this.executeEtichettaLU(data.getStringValue(), true, progressDialog);
}else if(UtilityBarcode.isEtichetta128(data)) {
} else if (UtilityBarcode.isEtichettaAnonima(data)) {
this.executeEtichettaLU(data.getStringValue(), true, progressDialog);
} else if (UtilityBarcode.isEtichetta128(data)) {
this.executeEtichettaEan128(data, progressDialog);
} else {
BarcodeManager.enable();
@ -119,11 +119,11 @@ public class VersamentoMerceViewModel {
.filter(x -> x.getPosizione().equalsIgnoreCase(barcodeScanDTO.getStringValue()))
.single();
if(foundPosizione.isFlagMonoCollo()) {
if (foundPosizione.isFlagMonoCollo()) {
PosizioniRESTConsumer.getBancaliInPosizione(foundPosizione, mtbColtList -> {
if(mtbColtList == null || mtbColtList.size() == 0){
if (mtbColtList == null || mtbColtList.size() == 0) {
progressDialog.dismiss();
BarcodeManager.enable();
DialogCommon.showNoULFound(mContext, null);
@ -133,7 +133,7 @@ public class VersamentoMerceViewModel {
//TAKE HERE
pickMerceULtoUL(mtbColt, progressDialog);
}, ex -> {
}, ex -> {
UtilityExceptions.defaultException(mContext, ex, progressDialog);
BarcodeManager.enable();
});
@ -153,14 +153,15 @@ public class VersamentoMerceViewModel {
String barcodeProd = null;
if(!UtilityString.isNullOrEmpty(ean128Model.Sscc)) barcodeProd = ean128Model.Sscc;
if(!UtilityString.isNullOrEmpty(ean128Model.Gtin)) barcodeProd = ean128Model.Gtin;
if(!UtilityString.isNullOrEmpty(ean128Model.Content)) barcodeProd = ean128Model.Content;
if (!UtilityString.isNullOrEmpty(ean128Model.Sscc)) barcodeProd = ean128Model.Sscc;
if (!UtilityString.isNullOrEmpty(ean128Model.Gtin)) barcodeProd = ean128Model.Gtin;
if (!UtilityString.isNullOrEmpty(ean128Model.Content))
barcodeProd = ean128Model.Content;
if(!UtilityString.isNullOrEmpty(barcodeProd)) {
if (!UtilityString.isNullOrEmpty(barcodeProd)) {
if(!UtilityString.isNullOrEmpty(ean128Model.Sscc)){
if (!UtilityString.isNullOrEmpty(ean128Model.Sscc)) {
this.executeEtichettaLU(ean128Model.Sscc, false, progressDialog);
} else {
DialogCommon.showNoULFound(mContext, null);
@ -174,19 +175,17 @@ public class VersamentoMerceViewModel {
progressDialog.dismiss();
BarcodeManager.enable();
}
}, ex-> {
}, ex -> {
UtilityExceptions.defaultException(mContext, ex, progressDialog);
BarcodeManager.enable();
});
}
private void executeEtichettaLU(String sscc, boolean isAnonima, Dialog progressDialog) {
ColliMagazzinoRESTConsumer.getBySSCCStatic(sscc, true, false, mtbColt -> {
if(mtbColt == null && !isAnonima) {
if (mtbColt == null && !isAnonima) {
DialogCommon.showNoULFound(mContext, null);
BarcodeManager.enable();
progressDialog.dismiss();
@ -194,8 +193,8 @@ public class VersamentoMerceViewModel {
showWrongGestioneUL();
BarcodeManager.enable();
progressDialog.dismiss();
} else {
if(mtbColt == null && isAnonima) {
} else {
if (mtbColt == null && isAnonima) {
ColliMagazzinoRESTConsumer.createColloFromEtichettaAnonima(sscc, GestioneEnum.LAVORAZIONE, mtbColtAnonimo -> {
pickMerceULtoUL(mtbColtAnonimo, progressDialog);
}, ex -> {
@ -206,12 +205,10 @@ public class VersamentoMerceViewModel {
} else {
pickMerceULtoUL(mtbColt, progressDialog);
}
}
}, ex -> {
}, ex -> {
UtilityExceptions.defaultException(mContext, ex, progressDialog);
BarcodeManager.enable();
});
@ -219,10 +216,10 @@ public class VersamentoMerceViewModel {
private void updatePosizione(MtbDepoPosizione mtbDepoPosizione, boolean shouldAskLivello, Dialog progressDialog) {
if(shouldAskLivello) {
if (shouldAskLivello) {
DialogAskLivelloPosizione.make(mContext, mtbDepoPosizione, false, newPosizione -> {
if(newPosizione == null) {
if (newPosizione == null) {
updatePosizione(mtbDepoPosizione, shouldAskLivello, progressDialog);
} else {
updatePosizione(newPosizione, false, progressDialog);
@ -263,22 +260,22 @@ public class VersamentoMerceViewModel {
askQuantities(pickedAarts.iterator(), destNewMtbColr, () -> {
BarcodeManager.enable();
if(destNewMtbColr != null && destNewMtbColr.size() > 0){
if (destNewMtbColr != null && destNewMtbColr.size() > 0) {
MtbColt clonedSourceTestata = (MtbColt) sourceMtbColt.clone();
MtbColt clonedDestTestata = (MtbColt) destMtbColt.clone();
ObservableArrayList<MtbColr> mtbColrSourceObservableField = new ObservableArrayList<>();
ObservableArrayList<MtbColr> mtbColrDestObservableField = new ObservableArrayList<>();
for(int i = 0; i < destNewMtbColr.size(); i++) {
for (int i = 0; i < destNewMtbColr.size(); i++) {
MtbColr cloneMtbColr = (MtbColr) destNewMtbColr.get(i).clone();
boolean destroyMtbColrReferences = false;
//Se le gestioni sono uguali faccio uno storno sulla sorgente e non lavoro con
//i riferimenti
if(sourceMtbColt.getGestioneEnum() == destMtbColt.getGestioneEnum() &&
(/*sourceMtbColt.getGestioneEnum() == GestioneEnum.ACQUISTO ||*/ sourceMtbColt.getGestioneEnum() == GestioneEnum.VENDITA)){
if ((sourceMtbColt.getGestioneEnum() == destMtbColt.getGestioneEnum() && sourceMtbColt.getGestioneEnum() == GestioneEnum.VENDITA) ||
(sourceMtbColt.getGestioneEnum() == GestioneEnum.VENDITA && sourceMtbColt.getSegno() == -1 && destMtbColt.getGestioneEnum() == GestioneEnum.LAVORAZIONE)) {
destroyMtbColrReferences = true;
MtbColr stornoSourceMtbColr = (MtbColr) destNewMtbColr.get(i).clone();
@ -300,7 +297,7 @@ public class VersamentoMerceViewModel {
mtbColrSourceObservableField.add(stornoSourceMtbColr);
}
if(!destroyMtbColrReferences) {
if (!destroyMtbColrReferences) {
cloneMtbColr
.setGestioneRif(cloneMtbColr.getGestione())
.setSerColloRif(cloneMtbColr.getSerCollo())
@ -308,7 +305,7 @@ public class VersamentoMerceViewModel {
.setDataColloRif(cloneMtbColr.getDataColloS());
}
if(sourceMtbColt.getGestioneEnum() == GestioneEnum.VENDITA && sourceMtbColt.getSegno() == +1){
if (sourceMtbColt.getGestioneEnum() == GestioneEnum.VENDITA && sourceMtbColt.getSegno() == +1) {
cloneMtbColr.setCodJcom(null);
}
@ -342,9 +339,9 @@ public class VersamentoMerceViewModel {
}
private void askQuantities(Iterator<MtbColr> sourceMtbColrs, List<MtbColr> destMtbColr, Runnable onComplete, Runnable onAbort){
private void askQuantities(Iterator<MtbColr> sourceMtbColrs, List<MtbColr> destMtbColr, Runnable onComplete, Runnable onAbort) {
if(sourceMtbColrs.hasNext()){
if (sourceMtbColrs.hasNext()) {
askSingleQuantity(sourceMtbColrs.next(), mtbColr -> {
@ -383,6 +380,16 @@ public class VersamentoMerceViewModel {
}
private void askULVenditaConfirm(RunnableArgs<Boolean> callback) {
DialogSimpleMessageHelper.makeWarningDialog(
mContext,
new SpannableString(mContext.getResources().getString(R.string.lu_gest_v_loading_alert)),
null,
() -> callback.run(true),
() -> callback.run(false)).show();
}
private void showWrongGestioneUL() {
DialogSimpleMessageHelper.makeWarningDialog(mContext,
new SpannableString(Html.fromHtml(mContext.getResources().getText(R.string.gestione_V_not_accepted_message).toString())),
@ -391,18 +398,13 @@ public class VersamentoMerceViewModel {
/* private void createNewLU(RunnableArgs<MtbColt> onComplete ,RunnableArgs<Exception> onFailed) {
ColliMagazzinoRESTConsumer.createColloLavorazione(+1, onComplete, onFailed);
}
*/
private void saveLUs(MtbColt mtbColt1, MtbColt mtbColt2) {
ArrayList<MtbColt> mtbColts = new ArrayList<>();
mtbColts.add(mtbColt1);
mtbColts.add(mtbColt2);
for(MtbColt mtbColt : mtbColts) {
for (MtbColt mtbColt : mtbColts) {
mtbColt.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
for (int i = 0; i < mtbColt.getMtbColr().size(); i++) {

View File

@ -239,8 +239,22 @@ public class DialogScanOrCreateLU {
})
.show();
} else {
BarcodeManager.enable();
sendMtbColt(mtbColt, progressDialog, false);
if(mtbColt.getGestioneEnum() == GestioneEnum.VENDITA && mtbColt.getSegno() == -1) {
DialogSimpleMessageHelper.makeWarningDialog(mContext,
new SpannableString(mContext.getResources().getText(R.string.lu_gest_v_loading_alert)),
null, () -> {
BarcodeManager.enable();
sendMtbColt(mtbColt, progressDialog, false);
}, () -> {
BarcodeManager.enable();
progressDialog.dismiss();
})
.show();
} else {
BarcodeManager.enable();
sendMtbColt(mtbColt, progressDialog, false);
}
}

View File

@ -1,297 +0,0 @@
<layout xmlns:tools="http://schemas.android.com/tools">
<data>
<import type="android.view.View" />
<import type="it.integry.integrywmsnative.BuildConfig" />
<variable
name="viewmodel"
type="it.integry.integrywmsnative.gest.spedizione.viewmodel.VenditaOrdineInevasoViewModel"/>
</data>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="false"
xmlns:fab="http://schemas.android.com/apk/res-auto"
android:background="@color/full_white"
android:layout_gravity="top">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/empty_space_padding">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:background="@color/full_white">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin"
android:layout_width="match_parent"
style="@style/AppTheme.NewMaterial.Text">
<androidx.appcompat.widget.AppCompatImageButton
android:id="@+id/add_extra_items_toolbar"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_gravity="end"
android:background="@drawable/ripple_effect"
android:adjustViewBounds="true"
android:src="@drawable/ic_add_24dp"
app:visibility="@{viewmodel.shouldShowAddExtraItems}"
android:tint="@color/colorPrimaryGray"/>
<androidx.appcompat.widget.AppCompatImageButton
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_gravity="end"
android:background="@drawable/ripple_effect"
android:adjustViewBounds="true"
android:src="@drawable/ic_black_barcode"
android:visibility="@{BuildConfig.DEBUG ? View.VISIBLE : View.GONE}"
android:onClick="@{() -> viewmodel.manualSearch()}"
android:tint="@color/colorPrimaryGray"/>
</androidx.appcompat.widget.Toolbar>
</com.google.android.material.appbar.AppBarLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<net.cachapa.expandablelayout.ExpandableLayout
android:id="@+id/filtered_arts_in_list_expandable_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:el_duration="400"
app:el_expanded="false">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="12dp"
android:paddingBottom="12dp"
android:paddingLeft="8dp"
android:paddingRight="8dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_toLeftOf="@+id/remove_art_filter_list"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="14sp"
android:text="@string/filtered_arts_in_list" />
<TextView
android:id="@+id/description_filter_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/black"
android:textSize="16sp"
android:textStyle="bold"
android:ellipsize="end"
android:maxLines="1"
tools:text="COD_ART_HERE"/>
</LinearLayout>
<com.google.android.material.button.MaterialButton
android:id="@+id/remove_art_filter_list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Button.DangerOutline"
android:layout_alignParentEnd="true"
android:text="@string/remove_filter_button"
android:onClick="@{() -> viewmodel.removeListFilter()}"
app:strokeColor="@color/red_600"/>
</RelativeLayout>
</net.cachapa.expandablelayout.ExpandableLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/vendita_ordine_main_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical"
android:clipToPadding="false"/>
</LinearLayout>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/vendita_ordine_inevaso_empty_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:alpha="0.3"
tools:context=".gest.lista_bancali.ListaBancaliActivity">
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline_empty_top"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.2" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline_empty_left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.15" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline_empty_right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.85" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_horizontal"
app:layout_constraintStart_toEndOf="@id/guideline_empty_left"
app:layout_constraintEnd_toStartOf="@id/guideline_empty_right"
app:layout_constraintTop_toTopOf="@id/guideline_empty_top">
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="72dp"
android:layout_height="wrap_content"
android:src="@drawable/ic_playlist_add_check_24dp"
android:adjustViewBounds="true"/>
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:textColor="@android:color/black"
android:textSize="18sp"
android:text="@string/no_item_to_pick_text"/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<com.github.clans.fab.FloatingActionMenu
android:id="@+id/vendita_ordine_inevaso_fab"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:visibility="@{viewmodel.isFabVisible ? View.VISIBLE : View.GONE}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
fab:menu_animationDelayPerItem="50"
fab:menu_backgroundColor="@color/white_bg_alpha"
fab:menu_buttonSpacing="0dp"
fab:menu_colorNormal="@color/colorSecondary"
fab:menu_colorPressed="@color/colorSecondaryDark"
fab:menu_fab_size="normal"
fab:menu_labels_colorNormal="@color/white"
fab:menu_labels_colorPressed="@color/white_pressed"
fab:menu_labels_colorRipple="#66FFFFFF"
fab:menu_labels_cornerRadius="3dp"
fab:menu_labels_hideAnimation="@anim/fab_slide_out_to_right"
fab:menu_labels_margin="0dp"
fab:menu_labels_padding="8dp"
fab:menu_labels_paddingBottom="4dp"
fab:menu_labels_paddingLeft="8dp"
fab:menu_labels_paddingRight="8dp"
fab:menu_labels_paddingTop="4dp"
fab:menu_labels_position="left"
fab:menu_labels_showAnimation="@anim/fab_slide_in_from_right"
fab:menu_labels_showShadow="true"
fab:menu_labels_textColor="@color/black_semi_transparent"
fab:menu_labels_textSize="18sp"
fab:menu_openDirection="up"
fab:menu_shadowColor="#66000000"
fab:menu_shadowRadius="4dp"
fab:menu_shadowXOffset="1dp"
fab:menu_shadowYOffset="3dp"
fab:menu_showShadow="true">
<com.github.clans.fab.FloatingActionButton
android:id="@+id/vendita_ordine_inevaso_fab_item1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_box"
app:fab_colorNormal="@color/white"
app:fab_colorPressed="@color/white_pressed"
app:fab_colorRipple="#66FFFFFF"
app:onClick="@{() -> viewmodel.showCreatedUL()}"
fab:fab_label="@string/action_show_created_ul" />
<com.github.clans.fab.FloatingActionButton
android:id="@+id/vendita_ordine_inevaso_fab_item2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_add_24dp"
app:fab_colorNormal="@color/white"
app:fab_colorPressed="@color/white_pressed"
app:fab_colorRipple="#66FFFFFF"
app:onClick="@{() -> viewmodel.createNewUL()}"
fab:fab_label="@string/action_create_ul" />
</com.github.clans.fab.FloatingActionMenu>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
<RelativeLayout
android:id="@+id/empty_space_padding"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:visibility="@{!viewmodel.isFabVisible ? View.VISIBLE : View.GONE}"
android:layout_alignParentBottom="true">
</RelativeLayout>
</RelativeLayout>
<View
android:id="@+id/shadow"
android:layout_width="match_parent"
android:layout_height="16dp"
android:background="@drawable/shape_gradient_top_shadow"
android:visibility="@{!viewmodel.isFabVisible ? View.VISIBLE : View.GONE}"
app:layout_anchor="@id/bottom_sheet_include" />
<include
android:id="@+id/bottom_sheet_include"
layout="@layout/fragment_articoli_in_collo_bottom_sheet"
android:visibility="@{!viewmodel.isFabVisible ? View.VISIBLE : View.GONE}" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</layout>

View File

@ -58,6 +58,7 @@
<string name="dialog_message_additional_notes">Inserisci eventuali note aggiuntive della tua UL</string>
<string name="lu_scan_not_granted_here">Non è possibile scansionare il barcode di una UL adesso</string>
<string name="lu_already_attache_to_doc">L\'UL selezionata è già agganciata ad un documento per cui non può essere utilizzata</string>
<string name="lu_gest_v_loading_alert">Stai caricando una UL di <b>vendita</b>. Sei sicuro di voler continuare?</string>
<string name="warehouse">Magazzino</string>

View File

@ -235,6 +235,7 @@
<string name="error_multiple_cod_jfas_ordp">The <b>production line</b> will not be saved because you are selecting orders for different productions</string>
<string name="lu_scan_not_granted_here">Logistics Unit\'s barcode is not accepted at this moment</string>
<string name="lu_already_attache_to_doc">Selected LU is already attached to a document hence can\'t be opened</string>
<string name="lu_gest_v_loading_alert">You are loading a <b>sales</b> logistics unit. Are you sure you want to continue?</string>
<string name="recovering_data">Recovering data</string>
<string name="wait_a_moment">Wait a moment</string>