diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityExceptions.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityExceptions.java index 7f90afed..97b0d387 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityExceptions.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityExceptions.java @@ -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 += "
" + ex.getCause().getMessage(); + } if(context != null) { DialogSimpleMessageHelper.makeErrorDialog(context, new SpannableString(errorMessage), null, null).show(); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_pick_ord_lavorazione/ProdOrdineLavorazioneElencoFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_pick_ord_lavorazione/ProdOrdineLavorazioneElencoFragment.java index 859073b9..2f527c7d 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_pick_ord_lavorazione/ProdOrdineLavorazioneElencoFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_pick_ord_lavorazione/ProdOrdineLavorazioneElencoFragment.java @@ -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 ordini, List selectedOrders, List mtbColtList) { - Intent myIntent = new Intent(getActivity(), VenditaOrdineInevasoActivity.class); + Intent myIntent = new Intent(getActivity(), SpedizioneActivity.class); String keyPickingList = DataCache.addItem(ordini); myIntent.putExtra("keyPickingList", keyPickingList); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/VenditaOrdineInevasoActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/VenditaOrdineInevasoActivity.java deleted file mode 100644 index 08ee7faa..00000000 --- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/VenditaOrdineInevasoActivity.java +++ /dev/null @@ -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 pickingList = DataCache.retrieveItem(getIntent().getStringExtra("keyPickingList")); - ArrayList testateOrdini = DataCache.retrieveItem(getIntent().getStringExtra("keyTestateOrdini")); - ArrayList 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 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); - } - } - } - -} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/core/MainListOrdineVenditaInevasoAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/core/MainListOrdineVenditaInevasoAdapter.java deleted file mode 100644 index 433a4bc9..00000000 --- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/core/MainListOrdineVenditaInevasoAdapter.java +++ /dev/null @@ -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 { - - private Context mContext; - private List mDataset; - private View mEmptyView; - private ObservableArrayList 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 pool = new ArrayList<>(); - - public ViewHolder(View v) { - super(v); - } - } - - public MainListOrdineVenditaInevasoAdapter(Context context, ObservableArrayList 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>() { - @Override - public void onChanged(ObservableList sender) { - refreshNotHiddenElements(); - notifyDataSetChanged(); - checkIfEmpty(); - } - - @Override - public void onItemRangeChanged(ObservableList sender, int positionStart, int itemCount) { - refreshNotHiddenElements(); - notifyDataSetChanged(); - checkIfEmpty(); - } - - @Override - public void onItemRangeInserted(ObservableList sender, int positionStart, int itemCount) { - refreshNotHiddenElements(); - notifyDataSetChanged(); - checkIfEmpty(); - } - - @Override - public void onItemRangeMoved(ObservableList sender, int fromPosition, int toPosition, int itemCount) { - refreshNotHiddenElements(); - notifyDataSetChanged(); - checkIfEmpty(); - } - - @Override - public void onItemRangeRemoved(ObservableList 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 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); - } - } - -} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/core/SpedizioneHelper.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/core/SpedizioneHelper.java deleted file mode 100644 index 653d16a1..00000000 --- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/core/SpedizioneHelper.java +++ /dev/null @@ -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 mPickingObjectDtoList; - - public SpedizioneHelper(List pickingObjectDTOList) { - this.mPickingObjectDtoList = new ObservableArrayList<>(); - this.mPickingObjectDtoList.addAll(pickingObjectDTOList); - } - -} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/core/VenditaOrdineInevasoHelper.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/core/VenditaOrdineInevasoHelper.java deleted file mode 100644 index 8c87fdab..00000000 --- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/core/VenditaOrdineInevasoHelper.java +++ /dev/null @@ -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 mListViewModels = new ObservableArrayList<>(); - - public VenditaOrdineInevasoHelper(Context context){ - mContext = context; - } - - public MainListOrdineVenditaInevasoAdapter getRightListAdapter(View emptyView) { - return new MainListOrdineVenditaInevasoAdapter(mContext, mListViewModels, emptyView); - } - - public void updateListModel(List> mDataset, List mtbColrs) throws Exception { - - mListViewModels.clear(); - - mListViewModels.addAll(getListViewModelPerPosizione(mDataset, mtbColrs)); - - } - - public List> getPickingListRaggruppataPerPosizione(List 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 listOfKnownPositions = Stream.of(mPickingList) - .filter(x -> !x.isDeactivated()) - .map(PickingObjectDTOOld::getPosizione) - .distinctBy(x -> x) - .withoutNulls() - .sortBy(x -> x) - .toList(); - - - listOfKnownPositions.add(null); - - - List> groupedRighe = new ArrayList<>(); - for (String position : listOfKnownPositions) { - - List 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 deactivatedItems = Stream.of(mPickingList) - .filter(PickingObjectDTOOld::isDeactivated) - .toList(); - - if(deactivatedItems.size() > 0) groupedRighe.add(deactivatedItems); - - return groupedRighe; - } - - - public List getListViewModelPerPosizione(List> groupedRighe, List mtbColrs) { - - ICustomConfiguration customConfiguration = ClassRouter.getInstance(ClassRouter.PATH.CUSTOM_CONFIGURATION); - - List listModel = new ArrayList<>(); - - for(int i = 0; i < groupedRighe.size(); i++) { - List 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; - - } - - -} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/core/interfaces/IOnOrdineVenditaRowDispatched.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/core/interfaces/IOnOrdineVenditaRowDispatched.java deleted file mode 100644 index b7998096..00000000 --- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/core/interfaces/IOnOrdineVenditaRowDispatched.java +++ /dev/null @@ -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); -} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/dto/VenditaOrdineInevasoListViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/dto/VenditaOrdineInevasoListViewModel.java deleted file mode 100644 index f7df383b..00000000 --- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/dto/VenditaOrdineInevasoListViewModel.java +++ /dev/null @@ -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 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; - } - } - -} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/rest/OrdineVenditaInevasoRESTConsumerService.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/rest/OrdineVenditaInevasoRESTConsumerService.java deleted file mode 100644 index c87b126c..00000000 --- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/rest/OrdineVenditaInevasoRESTConsumerService.java +++ /dev/null @@ -1,4 +0,0 @@ -package it.integry.integrywmsnative.gest.spedizione.rest; - -public interface OrdineVenditaInevasoRESTConsumerService { -} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/viewmodel/VenditaOrdineInevasoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/viewmodel/VenditaOrdineInevasoViewModel.java deleted file mode 100644 index b55b6c92..00000000 --- a/app/src/main/java/it/integry/integrywmsnative/gest/spedizione/viewmodel/VenditaOrdineInevasoViewModel.java +++ /dev/null @@ -1,1586 +0,0 @@ -package it.integry.integrywmsnative.gest.spedizione.viewmodel; - -import android.app.Dialog; - -import androidx.databinding.ObservableArrayList; -import androidx.databinding.ObservableField; -import androidx.recyclerview.widget.LinearLayoutManager; - -import android.text.SpannableString; - -import com.annimon.stream.Stream; -import com.tfb.fbtoast.FBToast; - -import org.jetbrains.annotations.NotNull; - -import java.math.BigDecimal; -import java.math.RoundingMode; -import java.util.ArrayList; -import java.util.Date; -import java.util.Iterator; -import java.util.List; -import java.util.Objects; - -import it.integry.barcode_base_android_library.model.BarcodeType; -import it.integry.integrywmsnative.R; -import it.integry.integrywmsnative.core.CommonConst; -import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer; -import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer; -import it.integry.integrywmsnative.core.rest.consumers.ColliMagazzinoRESTConsumer; -import it.integry.integrywmsnative.core.rest.consumers.MagazzinoRESTConsumer; -import it.integry.integrywmsnative.core.rest.consumers.PosizioniRESTConsumer; -import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer; -import it.integry.integrywmsnative.core.rest.model.Ean128Model; -import it.integry.integrywmsnative.core.rest.model.Ean13PesoModel; -import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; -import it.integry.integrywmsnative.core.class_router.ClassRouter; -import it.integry.integrywmsnative.core.class_router.interfaces.IOrdiniVendita; -import it.integry.integrywmsnative.core.data_recover.ColliDataRecover; -import it.integry.integrywmsnative.core.di.BindableBoolean; -import it.integry.integrywmsnative.core.expansion.AtomicBigDecimal; -import it.integry.integrywmsnative.core.expansion.RunnableArgs; -import it.integry.integrywmsnative.core.model.CommonModelConsts; -import it.integry.integrywmsnative.core.model.FiltroOrdineDTO; -import it.integry.integrywmsnative.core.model.MtbAart; -import it.integry.integrywmsnative.core.model.MtbColr; -import it.integry.integrywmsnative.core.model.MtbColt; -import it.integry.integrywmsnative.core.model.MtbDepoPosizione; -import it.integry.integrywmsnative.core.model.secondary.GestioneEnum; -import it.integry.integrywmsnative.core.report.ReportManager; -import it.integry.integrywmsnative.core.settings.SettingsManager; -import it.integry.integrywmsnative.core.utility.UtilityBarcode; -import it.integry.integrywmsnative.core.utility.UtilityDate; -import it.integry.integrywmsnative.core.utility.UtilityExceptions; -import it.integry.integrywmsnative.core.utility.UtilityLogger; -import it.integry.integrywmsnative.core.utility.UtilityPosizione; -import it.integry.integrywmsnative.core.utility.UtilityProgress; -import it.integry.integrywmsnative.core.utility.UtilityString; -import it.integry.integrywmsnative.databinding.ActivityVenditaOrdineInevasoBinding; -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.gest.spedizione.core.VenditaOrdineInevasoHelper; -import it.integry.integrywmsnative.gest.spedizione.core.MainListOrdineVenditaInevasoAdapter; -import it.integry.integrywmsnative.gest.spedizione.core.interfaces.IOnOrdineVenditaRowDispatched; -import it.integry.integrywmsnative.view.bottomsheet.interfaces.IOnColloClosedCallback; -import it.integry.integrywmsnative.view.bottomsheet.viewmodel.ArticoliInColloBottomSheetViewModel; - -import it.integry.integrywmsnative.view.dialogs.DialogCommon; -import it.integry.integrywmsnative.view.dialogs.DialogConsts; -import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleInputHelper; -import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper; -import it.integry.integrywmsnative.view.dialogs.ask_should_print.DialogAskShouldPrint; -import it.integry.integrywmsnative.view.dialogs.input_peso_lu.DialogInputPeso; -import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity; -import it.integry.integrywmsnative.view.dialogs.input_quantity.QuantityDTO; -import it.integry.integrywmsnative.view.dialogs.scan_art.DialogScanArt; -import it.integry.barcode_base_android_library.model.BarcodeScanDTO; - -public class VenditaOrdineInevasoViewModel implements IOnColloClosedCallback, IOnOrdineVenditaRowDispatched { - - public ObservableField isFabVisible = new ObservableField<>(); - public BindableBoolean shouldShowAddExtraItems = new BindableBoolean(); - - private VenditaOrdineInevasoActivity mActivity; - private final ActivityVenditaOrdineInevasoBinding mBindings; - private final ArticoliInColloBottomSheetViewModel mArticoliInColloBottomSheetViewModel; - - private final List mPickingList; - private List> mGroupedPickingList; - private final List mTestateOrdini; - private final List mColliRegistrati; - - private VenditaOrdineInevasoHelper mHelper; - private MainListOrdineVenditaInevasoAdapter mAdapter; - - private GestioneEnum defaultGestioneOfUL = null; - private String defaultCodMdepOfUL = null; - private List defaultFiltroOrdine = new ArrayList<>(); - private String defaultCodAnagOfUL = null; - private String defaultRagSocOfUL = null; - private String defaultRifOrdOfUL = null; - private Integer defaultNumOrdOfUL = null; - private Date defaultDataOrdOfUL = null; - private String defaultCodJFasOfUL = null; - - - private Integer mtbColtSessionID = null; - - public VenditaOrdineInevasoViewModel(VenditaOrdineInevasoActivity activity, ActivityVenditaOrdineInevasoBinding bindings, ArticoliInColloBottomSheetViewModel articoliInColloBottomSheetViewModel, List pickingList, List orders, List colliRegistrati) { - this.mActivity = activity; - this.mBindings = bindings; - this.mArticoliInColloBottomSheetViewModel = articoliInColloBottomSheetViewModel; - this.mPickingList = pickingList; - this.mTestateOrdini = orders; - this.mColliRegistrati = colliRegistrati; - - this.isFabVisible.set(true); - - this.mBindings.setViewmodel(this); - - this.init(); - this.initDatiPicking(); - } - - private void init() { - mArticoliInColloBottomSheetViewModel.setOnCloseColloCallbackListener(this); - - mArticoliInColloBottomSheetViewModel.setOnItemDeletedCallback((deletedItem) -> { - this.onRowItemDeleted(deletedItem); - this.refreshOrderBy(false); - }); - - mArticoliInColloBottomSheetViewModel.setOnItemEditedCallback((originalItem, editedItem) -> { - this.onRowItemEdited(originalItem, editedItem); - this.refreshOrderBy(false); - }); - - mBindings.addExtraItemsToolbar.setOnClickListener((v -> { - addExtraItem(); - })); - - mHelper = new VenditaOrdineInevasoHelper(mActivity); - - initRecyclerView(); - } - - private void initRecyclerView() { - //RecyclerView setup - this.mBindings.venditaOrdineMainList.setHasFixedSize(true); - - this.mBindings.venditaOrdineMainList.setLayoutManager(new LinearLayoutManager(mActivity)); - - mAdapter = mHelper.getRightListAdapter(this.mBindings.venditaOrdineInevasoEmptyView); - - try { - this.mGroupedPickingList = mHelper.getPickingListRaggruppataPerPosizione(mPickingList, true); - mHelper.updateListModel(this.mGroupedPickingList, null); - } catch (Exception e) { - UtilityExceptions.defaultException(mActivity, e); - } - - mAdapter.setOnOrdineRowDispatchCallback(this); - this.mBindings.venditaOrdineMainList.setAdapter(mAdapter); - } - - private void initDatiPicking() { - if (this.mTestateOrdini != null && this.mTestateOrdini.size() > 0) { - - //Definizione della gestione collo di default - List foundGestioni = Stream.of(mTestateOrdini) - .map(OrdineVenditaInevasoDTO::getGestioneEnum) - .withoutNulls() - .distinctBy(x -> x) - .toList(); - - if (foundGestioni != null && foundGestioni.size() > 1) { - DialogSimpleMessageHelper.makeErrorDialog(mActivity, new SpannableString(mActivity.getString(R.string.error_multiple_gest)), null, () -> { - mActivity.finish(); - }).show(); - return; - } else if (foundGestioni != null && foundGestioni.size() == 1) { - defaultGestioneOfUL = foundGestioni.get(0); - } else { - defaultGestioneOfUL = GestioneEnum.VENDITA; - } - - - defaultCodMdepOfUL = SettingsManager.i().userSession.depo.getCodMdep(); - - - //Definizione del filtro ordine da applicare a tutti i colli generati - Stream.of(mTestateOrdini).forEach(x -> { - FiltroOrdineDTO filtro = new FiltroOrdineDTO() - .setDataOrd(x.getDataOrdD()) - .setNumOrd(x.getNumOrd()) - .setGestioneOrd(x.getGestione()) - .setDataCons(x.getDataConsD()); - - if (!defaultFiltroOrdine.contains(filtro)) defaultFiltroOrdine.add(filtro); - }); - - - //Definizione del codAnag - List foundCodAnag = Stream.of(mTestateOrdini) - .map(OrdineVenditaInevasoDTO::getCodAnagOrd) -// .withoutNulls() - .distinctBy(x -> x) - .toList(); - - if (foundCodAnag != null && foundCodAnag.size() == 1) { - defaultCodAnagOfUL = foundCodAnag.get(0); - } - - - //Definizione del codAnag - List foundRagSoc = Stream.of(mTestateOrdini) - .map(OrdineVenditaInevasoDTO::getRagSocOrd) -// .withoutNulls() - .distinctBy(x -> x) - .toList(); - - if (foundRagSoc != null && foundRagSoc.size() == 1) { - defaultRagSocOfUL = foundRagSoc.get(0); - } - - - //Definizione del rifOrd - List foundRifOrd = Stream.of(mTestateOrdini) - .map(OrdineVenditaInevasoDTO::getRifOrd) -// .withoutNulls() - .distinctBy(x -> x) - .toList(); - - if (foundRifOrd != null && foundRifOrd.size() == 1) { - defaultRifOrdOfUL = foundRifOrd.get(0); - } - - - //Definizione del numOrd - List foundNumOrd = Stream.of(mTestateOrdini) - .map(OrdineVenditaInevasoDTO::getNumOrd) - .withoutNulls() - .distinctBy(x -> x) - .toList(); - - if (foundNumOrd != null && foundNumOrd.size() == 1) { - defaultNumOrdOfUL = foundNumOrd.get(0); - } - - - //Definizione del dataOrd - List foundDataOrd = Stream.of(mTestateOrdini) - .map(OrdineVenditaInevasoDTO::getDataOrdD) - .withoutNulls() - .distinctBy(x -> x) - .toList(); - - if (foundDataOrd != null && foundDataOrd.size() == 1) { - defaultDataOrdOfUL = foundDataOrd.get(0); - } - - - //Definizione del codJfas - List foundCodJfas = Stream.of(mTestateOrdini) - .map(OrdineVenditaInevasoDTO::getCodJfas) - //.withoutNulls() - .distinctBy(x -> x) - .toList(); - - if (foundCodJfas != null && foundCodJfas.size() == 1) { - defaultCodJFasOfUL = foundCodJfas.get(0); - } - - } - } - - - private void onRowItemEdited(MtbColr originalItem, MtbColr editedItem) { - - for (int i = 0; i < mPickingList.size(); i++) { - - int foundIndex = mPickingList.get(i).getWithdrawRows().indexOf(originalItem); - - if (foundIndex >= 0) { - mPickingList.get(i).getWithdrawRows().set(foundIndex, editedItem); - - break; - } - - } - } - - private void onRowItemDeleted(MtbColr deletedItem) { - - for (int i = 0; i < mPickingList.size(); i++) { - - int foundIndex = mPickingList.get(i).getWithdrawRows().indexOf(deletedItem); - - if (foundIndex >= 0) { - mPickingList.get(i).getWithdrawRows().remove(foundIndex); - - break; - } - - } - } - - private void refreshOrderBy(boolean forceHiddenCheck) { - - try { - List mtbColrs = mArticoliInColloBottomSheetViewModel.mtbColt.get() != null ? mArticoliInColloBottomSheetViewModel.mtbColt.get().getMtbColr() : null; - - this.mGroupedPickingList = mHelper.getPickingListRaggruppataPerPosizione(mPickingList, forceHiddenCheck); - mHelper.updateListModel(this.mGroupedPickingList, mtbColrs); - } catch (Exception e) { - UtilityExceptions.defaultException(mActivity, e); - } - } - - private void applyFilter(String descriptionText) { - this.mBindings.filteredArtsInListExpandableLayout.expand(true); - this.mBindings.descriptionFilterText.setText(descriptionText); - } - - public void removeListFilter() { - for (int i = 0; i < mPickingList.size(); i++) { - mPickingList.get(i).setTempHidden(false); - mPickingList.get(i).setTempPickData(null); - } - - refreshOrderBy(false); - this.mBindings.filteredArtsInListExpandableLayout.collapse(true); - } - - public void recoverUL(MtbColt recoveredMtbColt) { - mtbColtSessionID = ColliDataRecover.startNewSession(recoveredMtbColt, mTestateOrdini); - setULToCurrentContext(recoveredMtbColt); - refreshOrderBy(false); - } - - public RunnableArgs onScanSuccessfull = data -> { - - Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mActivity); - - BarcodeManager.disable(); - - //Se non c'è una UL aperta - if (!thereIsAnOpenedUL()) { - - //Se è un'etichetta anonima - if (UtilityBarcode.isEtichettaAnonima(data)) { - - //Se il collo non esiste allora lo creo associandolo a questa etichetta anonima - //invece se esiste apro un collo nuovo e cerco gli articoli presenti nell'ul - //dell'etichetta anonima - this.executeEtichettaAnonimaNotOpenedLU(data, progressDialog); - } else if (UtilityBarcode.isEanPeso(data)) { - - //Creo una nuova ul e cerco tramite etichetta ean 128 (che può indicarmi un articolo o una UL) - this.createNewUL(null, null, progressDialog, false, false, () -> { - this.executeEtichettaEanPeso(data, progressDialog); - }); - } else if (UtilityBarcode.isEtichetta128(data)) { - - //Creo una nuova ul e cerco tramite etichetta ean 128 (che può indicarmi un articolo o una UL) - this.createNewUL(null, null, progressDialog, false, false, () -> { - this.executeEtichettaEan128(data, progressDialog); - }); - } else { - this.createNewUL(null, null, progressDialog, false, false, () -> { - this.loadArticolo(data.getStringValue(), null, progressDialog); - }); - } - } else { - if (UtilityBarcode.isEtichettaAnonima(data)) { - //Cerco gli articoli presenti nell'ul dell'etichetta anonima - this.executeEtichettaLU(data.getStringValue(), progressDialog); - - - } else if (UtilityBarcode.isEanPeso(data)) { - //Cerco tramite etichetta ean 128 (che può indicarmi un articolo o una UL) - this.executeEtichettaEanPeso(data, progressDialog); - - - } else if (UtilityBarcode.isEtichetta128(data)) { - //Cerco tramite etichetta ean 128 (che può indicarmi un articolo o una UL) - this.executeEtichettaEan128(data, progressDialog); - - - } else if (UtilityBarcode.isEtichettaPosizione(data)) { - //Cerco l'UL presente all'interno della posizione - this.executeEtichettaPosizione(data.getStringValue(), progressDialog); - - - } else { - this.loadArticolo(data.getStringValue(), null, progressDialog); - } - } - - }; - - private void executeEtichettaAnonimaNotOpenedLU(BarcodeScanDTO barcodeScanDTO, Dialog progressDialog) { - ColliMagazzinoRESTConsumer.getBySSCCStatic(barcodeScanDTO.getStringValue(), true, false, mtbColt -> { - - 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, true, - null); - } - } else { - - this.createNewUL( - null, - null, - progressDialog, - false, false, - () -> searchArtFromUL(mtbColt, progressDialog) - ); - } - BarcodeManager.enable(); - - }, ex -> { - UtilityExceptions.defaultException(mActivity, ex, progressDialog); - BarcodeManager.enable(); - }); - } - - private void executeEtichettaPosizione(String posizione, Dialog progressDialog) { - - - MtbDepoPosizione foundPosizione = UtilityPosizione.getFromCache(posizione); - - - if (foundPosizione != null) { - - if (foundPosizione.isFlagMonoCollo()) { - - PosizioniRESTConsumer.getBancaliInPosizione(foundPosizione, mtbColtList -> { - - if (mtbColtList == null || mtbColtList.size() == 0 || mtbColtList.size() > 1) { - - progressDialog.dismiss(); - //Nessuna UL trovata oppure più UL nella stessa posizione - DialogSimpleMessageHelper.makeErrorDialog(mActivity, new SpannableString("Nessuna UL trovata"), null, BarcodeManager::enable).show(); - - } else { - ColliMagazzinoRESTConsumer.getByTestataStatic(mtbColtList.get(0), true, false, mtbColt -> { - if (mtbColt != null && mtbColt.getMtbColr() != null && mtbColt.getMtbColr().size() > 0) { - searchArtFromUL(mtbColt, progressDialog); - } else { - progressDialog.dismiss(); - DialogCommon.showNoArtFoundDialog(mActivity, null); - } - - - BarcodeManager.enable(); - }, ex -> { - UtilityExceptions.defaultException(mActivity, ex, progressDialog); - BarcodeManager.enable(); - }); - } - - }, ex -> { - UtilityExceptions.defaultException(mActivity, ex, progressDialog); - BarcodeManager.enable(); - }); - - } else { - progressDialog.dismiss(); - //La posizione non è Mono-UL - DialogSimpleMessageHelper.makeErrorDialog(mActivity, new SpannableString("La posizione scelta non è Mono-UL"), null, BarcodeManager::enable).show(); - } - - } else { - progressDialog.dismiss(); - //Nessuna posizione trovata con questo barcode - DialogSimpleMessageHelper.makeErrorDialog(mActivity, new SpannableString("Nessuna posizione trovata con il barcode scansionato"), null, BarcodeManager::enable).show(); - - } -<<<<<<< HEAD:app/src/main/java/it/integry/integrywmsnative/gest/spedizione/viewmodel/VenditaOrdineInevasoViewModel.java -======= - - ->>>>>>> develop:app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java - } - - - private void executeEtichettaLU(String SSCC, Dialog progressDialog) { - ColliMagazzinoRESTConsumer.getBySSCCStatic(SSCC, true, false, mtbColt -> { - - - if (mtbColt != null && mtbColt.getMtbColr() != null && mtbColt.getMtbColr().size() > 0) { - searchArtFromUL(mtbColt, progressDialog); - } else { - progressDialog.dismiss(); - DialogCommon.showNoArtFoundDialog(mActivity, null); - } - - - BarcodeManager.enable(); - - }, ex -> { - UtilityExceptions.defaultException(mActivity, ex, progressDialog); - BarcodeManager.enable(); - }); - } - - - private void executeEtichettaEan128(BarcodeScanDTO barcodeScanDTO, Dialog progressDialog) { - BarcodeRESTConsumer.decodeEan128(barcodeScanDTO, ean128Model -> { - - 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(barcodeProd)) { - - if (!UtilityString.isNullOrEmpty(ean128Model.Sscc)) { - this.executeEtichettaLU(ean128Model.Sscc, progressDialog); - } else { - - if (barcodeProd.startsWith("0") || barcodeProd.startsWith("9")) { - barcodeProd = barcodeProd.substring(1); - } - - this.loadArticolo(barcodeProd, PickingObjectDTOOld.PickData.fromEan128(ean128Model), progressDialog); - - } - - - } else { - //EAN 128 non completo o comunque mancano i riferimenti al prodotto - progressDialog.dismiss(); - BarcodeManager.enable(); - } - }, ex -> { - UtilityExceptions.defaultException(mActivity, ex, progressDialog); - BarcodeManager.enable(); - }); - } - - - private void executeEtichettaEanPeso(BarcodeScanDTO barcodeScanDTO, Dialog progressDialog) { - - try { - Ean13PesoModel ean13PesoModel = Ean13PesoModel.fromBarcode(barcodeScanDTO.getStringValue()); - - this.loadArticolo(ean13PesoModel.getPrecode(), PickingObjectDTOOld.PickData.fromEan128(ean13PesoModel.toEan128()), progressDialog); - } catch (Exception ex) { - UtilityExceptions.defaultException(mActivity, ex, progressDialog); - BarcodeManager.enable(); - } - } - -<<<<<<< HEAD:app/src/main/java/it/integry/integrywmsnative/gest/spedizione/viewmodel/VenditaOrdineInevasoViewModel.java - private void loadArticolo(String barcodeProd, PickingObjectDTOOld.PickData pickData, Dialog progressDialog) { - if(barcodeProd.length() == 14) { -======= - private void loadArticolo(String barcodeProd, PickingObjectDTO.PickData pickData, Dialog progressDialog) { - if (barcodeProd.length() == 14) { ->>>>>>> develop:app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java - barcodeProd = UtilityBarcode.convertITF14toEAN13(barcodeProd); - } - - - ArticoloRESTConsumer.getByBarcodeProd(barcodeProd, mtbAartList -> { - - if (mtbAartList != null && mtbAartList.size() > 0) { - -// if(!thereIsAnOpenedUL()){ -// -// this.createNewUL(null, null, progressDialog, false, () -> { -// BarcodeManager.enable(); -// this.searchArtInList(mtbAartList.get(0), ean128Model); -// }); -// -// } else { - this.searchArtFromAnag(mtbAartList.get(0), pickData); - - BarcodeManager.enable(); - progressDialog.dismiss(); -// } -// - } else { - BarcodeManager.enable(); - progressDialog.dismiss(); - - DialogSimpleMessageHelper.makeWarningDialog(mActivity, - new SpannableString(mActivity.getResources().getText(R.string.no_result_from_barcode)), - null, null) - .show(); - } - - }, ex -> { - BarcodeManager.enable(); - UtilityExceptions.defaultException(mActivity, ex, progressDialog); - }); - - - } - - - private void searchArtFromUL(MtbColt scannedUL, Dialog progressDialog) { - - final List pickingList = mPickingList; - - List matchPickingObject = Stream.of(pickingList) - .filter(x -> Objects.equals(x.getNumCollo(), scannedUL.getNumCollo()) && - x.getDataColloS().equals(scannedUL.getDataColloS()) && - x.getSerCollo().equalsIgnoreCase(scannedUL.getSerCollo()) && - (scannedUL.getGestioneEnum() == GestioneEnum.ACQUISTO || scannedUL.getGestioneEnum() == GestioneEnum.LAVORAZIONE)).toList(); - - List alreadyMatchedArts = Stream.of(matchPickingObject) - .map(PickingObjectDTOOld::getCodMart).toList(); - - //Cerco se devo fare pick dell'articolo tramite codMart perché forse non risulta in nessun collo - //if(matchPickingObject != null && matchPickingObject.size() == 0 && scannedUL.getItem() != null && scannedUL.getItem().size() > 0) { -<<<<<<< HEAD:app/src/main/java/it/integry/integrywmsnative/gest/spedizione/viewmodel/VenditaOrdineInevasoViewModel.java - List listOfCodMartsInRowCollo = Stream.of(scannedUL.getMtbColr()) - .map(MtbColr::getCodMart) - .withoutNulls() - .toList(); - - - - List matchPickingObjectByArt = Stream.of(pickingList) - .filter(x -> //x.getNumCollo() == null && - (listOfCodMartsInRowCollo.contains(x.getCodMart()) && !alreadyMatchedArts.contains(x.getCodMart()))) - .toList(); - - - if(SettingsManager.iDB().isEnableCheckPartitaMagCheckPickingV()) { - for (int i = 0; i < matchPickingObjectByArt.size(); i++) { - PickingObjectDTOOld tmpPickObj = matchPickingObjectByArt.get(i); - - - - List matchWithPartitaMag = Stream.of(scannedUL.getMtbColr()) - .filter(x -> x.getCodMart().equalsIgnoreCase(tmpPickObj.getCodMart()) && - Objects.equals(x.getPartitaMag(), tmpPickObj.getPartitaMag())).toList(); -======= - List listOfCodMartsInRowCollo = Stream.of(scannedUL.getMtbColr()) - .map(MtbColr::getCodMart) - .withoutNulls() - .toList(); ->>>>>>> develop:app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java - - - List matchPickingObjectByArt = Stream.of(pickingList) - .filter(x -> //x.getNumCollo() == null && - (listOfCodMartsInRowCollo.contains(x.getCodMart()) && !alreadyMatchedArts.contains(x.getCodMart()))) - .toList(); - - - if (SettingsManager.iDB().isEnableCheckPartitaMagCheckPickingV()) { - for (int i = 0; i < matchPickingObjectByArt.size(); i++) { - PickingObjectDTO tmpPickObj = matchPickingObjectByArt.get(i); - - -<<<<<<< HEAD:app/src/main/java/it/integry/integrywmsnative/gest/spedizione/viewmodel/VenditaOrdineInevasoViewModel.java - PickingObjectDTOOld.PickData pickData = new PickingObjectDTOOld.PickData() - .setMtbPartitaMag(matchRow.getRifPartitaMag()) - .setNumCnf(matchRow.getNumCnf()) - .setQtaCnf(matchRow.getQtaCnf()) - .setQtaTot(matchRow.getQtaCol()) - .setSourceMtbColt(scannedUL); -======= - List matchWithPartitaMag = Stream.of(scannedUL.getMtbColr()) - .filter(x -> x.getCodMart().equalsIgnoreCase(tmpPickObj.getCodMart()) && - Objects.equals(x.getPartitaMag(), tmpPickObj.getPartitaMag())).toList(); ->>>>>>> develop:app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java - - boolean anyMatch = matchWithPartitaMag.size() > 0; - - if (!anyMatch) { - matchPickingObjectByArt.remove(i); - i--; - } else { - -<<<<<<< HEAD:app/src/main/java/it/integry/integrywmsnative/gest/spedizione/viewmodel/VenditaOrdineInevasoViewModel.java - PickingObjectDTOOld tmpPickObj = matchPickingObjectByArt.get(i); - List matchWithColloRow = Stream.of(scannedUL.getMtbColr()) - .filter(x -> x.getCodMart().equalsIgnoreCase(tmpPickObj.getCodMart())).toList(); -======= - for (int k = 0; k < matchWithPartitaMag.size(); k++) { ->>>>>>> develop:app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java - - - MtbColr matchRow = matchWithPartitaMag.get(k); - -<<<<<<< HEAD:app/src/main/java/it/integry/integrywmsnative/gest/spedizione/viewmodel/VenditaOrdineInevasoViewModel.java - MtbColr matchRow = matchWithColloRow.get(k); - PickingObjectDTOOld.PickData pickData = new PickingObjectDTOOld.PickData() -======= - PickingObjectDTO.PickData pickData = new PickingObjectDTO.PickData() ->>>>>>> develop:app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java - .setMtbPartitaMag(matchRow.getRifPartitaMag()) - .setNumCnf(matchRow.getNumCnf()) - .setQtaCnf(matchRow.getQtaCnf()) - .setQtaTot(matchRow.getQtaCol()) - .setSourceMtbColt(scannedUL); - - tmpPickObj.setTempPickData(pickData); - } - } - } - - } else { - for (int i = 0; i < matchPickingObjectByArt.size(); i++) { - - PickingObjectDTO tmpPickObj = matchPickingObjectByArt.get(i); - List matchWithColloRow = Stream.of(scannedUL.getMtbColr()) - .filter(x -> x.getCodMart().equalsIgnoreCase(tmpPickObj.getCodMart())).toList(); - - for (int k = 0; k < matchWithColloRow.size(); k++) { - - - MtbColr matchRow = matchWithColloRow.get(k); - PickingObjectDTO.PickData pickData = new PickingObjectDTO.PickData() - .setMtbPartitaMag(matchRow.getRifPartitaMag()) - .setNumCnf(matchRow.getNumCnf()) - .setQtaCnf(matchRow.getQtaCnf()) - .setQtaTot(matchRow.getQtaCol()) - .setSourceMtbColt(scannedUL); - - tmpPickObj.setTempPickData(pickData); - } - - } - } - - - //} - matchPickingObject.addAll(matchPickingObjectByArt); - - this.loadMatchedRows(matchPickingObject); - - progressDialog.dismiss(); - BarcodeManager.enable(); - - } - - - private void searchArtFromAnag(MtbAart mtbAart, PickingObjectDTOOld.PickData pickData) { - - final List pickingList = mPickingList; - - List matchPickingObject = Stream.of(pickingList) - .filter(x -> x.getNumCollo() == null && - (mtbAart.getCodMart().equalsIgnoreCase(x.getCodMart()))) - .toList(); - - -<<<<<<< HEAD:app/src/main/java/it/integry/integrywmsnative/gest/spedizione/viewmodel/VenditaOrdineInevasoViewModel.java - if(SettingsManager.iDB().isEnableCheckPartitaMagCheckPickingV()) { - List matchWithPartitaMag = Stream.of(matchPickingObject) -======= - if (SettingsManager.iDB().isEnableCheckPartitaMagCheckPickingV()) { - List matchWithPartitaMag = Stream.of(matchPickingObject) ->>>>>>> develop:app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java - .filter(x -> x.getCodMart().equalsIgnoreCase(mtbAart.getCodMart()) && - (pickData != null && pickData.getMtbPartitaMag() != null && Objects.equals(x.getPartitaMag(), pickData.getMtbPartitaMag().getPartitaMag()))).toList(); - - matchPickingObject = matchWithPartitaMag; - - } - - if (matchPickingObject.size() == 1) { - matchPickingObject.get(0).setTempPickData(pickData); - } - - this.loadMatchedRows(matchPickingObject); - } -<<<<<<< HEAD:app/src/main/java/it/integry/integrywmsnative/gest/spedizione/viewmodel/VenditaOrdineInevasoViewModel.java - private void loadMatchedRows(List matchedRows) { - if(matchedRows == null || matchedRows.size() == 0) { -======= - - - private void loadMatchedRows(List matchedRows) { - if (matchedRows == null || matchedRows.size() == 0) { ->>>>>>> develop:app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java - DialogCommon.showNoArtFoundDialog(mActivity, null); - } else { - for (int i = 0; i < mPickingList.size(); i++) { - if (!matchedRows.contains(mPickingList.get(i))) { - mPickingList.get(i).setTempHidden(true); - } - } - - if (matchedRows.size() == 1) { - - if (matchedRows.get(0).getTempPickData() != null && - matchedRows.get(0).getTempPickData().getSourceMtbColt() != null) { - -// MtbColt tempSourceMtbColt = matchedRows.get(0).getTempPickData().getSourceMtbColt(); - -// if (tempSourceMtbColt.getGestione().equals(matchedRows.get(0).getGestione()) && -// tempSourceMtbColt.getNumCollo() == matchedRows.get(0).getNumCollo() && -// tempSourceMtbColt.getSerCollo().equals(matchedRows.get(0).getSerCollo()) && -// tempSourceMtbColt.getDataColloS().equals(matchedRows.get(0).getDataColloS())) { - - onOrdineRowDispatch(matchedRows.get(0)); -// } else { -// //Se sto pickando da una UL diversa da quella suggerita allora non te la apro in -// //automatico ma ti mostro il filtro -// applyFilter(""); -// refreshOrderBy(false); -// } - - } else if (matchedRows.get(0).isDeactivated()) { - applyFilter(""); - refreshOrderBy(false); - } else { - onOrdineRowDispatch(matchedRows.get(0)); - } - } else { - - applyFilter(""); - refreshOrderBy(false); - } - } - } - - - - - public void createNewUL() { - this.createNewUL(null, null, null, false, true, null); - } - - public void createNewUL(Integer customNumCollo, String customSerCollo, Dialog progress, boolean disablePrint, boolean closeProgress, Runnable onComplete) { - this.mBindings.venditaOrdineInevasoFab.close(true); - - if (progress == null) { - progress = UtilityProgress.createDefaultProgressDialog(mActivity); - } - progress.show(); - - MtbColt mtbColt = new MtbColt(); - mtbColt.initDefaultFields(); - mtbColt.setGestione(defaultGestioneOfUL) - .setSegno(-1) - .setRifOrd(defaultRifOrdOfUL) - .setNumOrd(defaultNumOrdOfUL) - .setDataOrdD(defaultDataOrdOfUL) - .setCodAnag(defaultCodAnagOfUL) - .setCodMdep(defaultCodMdepOfUL) - .setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE); - - if (defaultGestioneOfUL == GestioneEnum.LAVORAZIONE) { - mtbColt.setPosizione(defaultCodJFasOfUL); - } - - if (customNumCollo != null) { - mtbColt.setNumCollo(customNumCollo); - } - - if (!UtilityString.isNullOrEmpty(customSerCollo)) { - mtbColt.setSerCollo(customSerCollo); - } - - mtbColt.generaFiltroOrdineFromDTO(defaultFiltroOrdine); - - Dialog finalProgress = progress; - ColliMagazzinoRESTConsumer.saveColloStatic(mtbColt, value -> { - - mtbColt - .setNumCollo(value.getNumCollo()) - .setDataCollo(value.getDataColloS()); - mtbColtSessionID = ColliDataRecover.startNewSession(mtbColt, mTestateOrdini); - - value - .setDisablePrint(disablePrint) - .setMtbColr(new ObservableArrayList<>()) - .setRagSocCliente(defaultRagSocOfUL); - - setULToCurrentContext(value); - - if (closeProgress) finalProgress.dismiss(); - - FBToast.successToast(mActivity, mActivity.getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT); - - if (onComplete != null) onComplete.run(); - }, ex -> { - UtilityExceptions.defaultException(mActivity, ex, finalProgress); - }); - - } - - private void setULToCurrentContext(MtbColt mtbColt) { - isFabVisible.set(false); - shouldShowAddExtraItems.set(SettingsManager.iDB().isFlagCanAddExtraItemSpedizione()); - mArticoliInColloBottomSheetViewModel.mtbColt.set(mtbColt); - } - - public void showCreatedUL() { - - this.mBindings.venditaOrdineInevasoFab.close(false); - mActivity.startListaBancaliRegistratiActivity((ArrayList) mColliRegistrati); - } - - @Override - public void onColloClosed(Runnable onComplete, boolean shouldPrint) { - if (thereIsAnOpenedUL()) { - - final Dialog progress = UtilityProgress.createDefaultProgressDialog(mActivity); - - final MtbColt currentMtbColt = mArticoliInColloBottomSheetViewModel.mtbColt.get(); - - ColliMagazzinoRESTConsumer.canLUBeDeletedStatic(currentMtbColt, canBeDeleted -> { - - if (!canBeDeleted) { - Runnable saveAction = () -> { - ColliMagazzinoRESTConsumer.updateDataFineStatic( - currentMtbColt, - () -> distribuisciCollo(progress, (generatedMtbColts) -> { - if (shouldPrint) - printCollo(progress, generatedMtbColts, onComplete); - else { - postCloseOperations(generatedMtbColts, onComplete); - progress.dismiss(); - } - }), ex -> UtilityExceptions.defaultException(mActivity, ex, progress)); - }; - - if (SettingsManager.iDB().isFlagAskPesoColloSpedizione()) { - - DialogInputPeso.make(mActivity, currentMtbColt.getCodTcol(), currentMtbColt.getPesoNettoKg(), currentMtbColt.getPesoKg(), (newCodTcol, newNetWeight, newGrossWeight) -> { - - currentMtbColt.setCodTcol(newCodTcol); - currentMtbColt.setPesoNettoKg(newNetWeight); - currentMtbColt.setPesoKg(newGrossWeight); - - saveAction.run(); - }).show(); - } else { - saveAction.run(); - } - } else { - if (mtbColtSessionID != null) ColliDataRecover.closeSession(mtbColtSessionID); - deleteCollo(progress, onComplete); - } - - - }, ex -> { - UtilityExceptions.defaultException(mActivity, ex, progress); - }); - - } else { - if (onComplete != null) onComplete.run(); - } - - } - - - private void distribuisciCollo(Dialog progress, RunnableArgs> onComplete) { - - MtbColt cloneMtbColt = (MtbColt) mArticoliInColloBottomSheetViewModel.mtbColt.get().clone(); - - IOrdiniVendita ordiniVendita = ClassRouter.getInstance(ClassRouter.PATH.ORDINI_VENDITA); - - ordiniVendita.distribuisciCollo(cloneMtbColt, mTestateOrdini, mtbColts -> { - - if (mtbColtSessionID != null) ColliDataRecover.closeSession(mtbColtSessionID); - - ColliMagazzinoRESTConsumer.getMultipleByTestateStatic(mtbColts, true, onComplete::run, ex -> { - UtilityExceptions.defaultException(mActivity, ex, progress); - }); - - }, ex -> { - UtilityExceptions.defaultException(mActivity, ex, progress); - }); - } - - private void printCollo(Dialog progress, List mtbColtsToPrint, Runnable onComplete) { - DialogAskShouldPrint.make(mActivity, "Packing List", shouldPrint -> { - -<<<<<<< HEAD:app/src/main/java/it/integry/integrywmsnative/gest/spedizione/viewmodel/VenditaOrdineInevasoViewModel.java - if(shouldPrint) { - PrinterRESTConsumer.getAvailablePrintersStatic(SettingsManager.i().userSession.depo.getCodMdep(), PrinterRESTConsumer.Type.PRIMARIA, value -> { -======= - if (shouldPrint) { - PrinterRESTConsumer.getAvailablePrinters(SettingsManager.i().userSession.depo.getCodMdep(), PrinterRESTConsumer.Type.PRIMARIA, value -> { ->>>>>>> develop:app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java - - if (value.size() > 0) { - try { - cyclicPrint(mtbColtsToPrint.iterator(), value.get(0), () -> { - postCloseOperations(mtbColtsToPrint, onComplete); - progress.dismiss(); - }, ex -> { - progress.dismiss(); - String errorMessage = ex.getMessage(); - DialogSimpleMessageHelper.makeErrorDialog( - mActivity, - new SpannableString(errorMessage), - null, - null, - R.string.button_ignore_print, - () -> postCloseOperations(mtbColtsToPrint, onComplete)).show(); - }); - - } catch (Exception ex) { - UtilityExceptions.defaultException(mActivity, ex, progress); - postCloseOperations(mtbColtsToPrint, onComplete); - } - } else { - progress.dismiss(); - String errorMessage = "Nessuna stampante configurata"; - DialogSimpleMessageHelper.makeWarningDialog(mActivity, new SpannableString(errorMessage), null, () -> postCloseOperations(mtbColtsToPrint, onComplete)).show(); - } - }, ex -> { - UtilityExceptions.defaultException(mActivity, ex, progress); - }); - } else { - postCloseOperations(mtbColtsToPrint, onComplete); - progress.dismiss(); - } - }).show(); - } - - - private void cyclicPrint(@NotNull Iterator sourceMtbColts, String printerName, Runnable onComplete, RunnableArgs onAbort) { - if (sourceMtbColts.hasNext()) { - singlePrint(sourceMtbColts.next(), printerName, () -> { - cyclicPrint(sourceMtbColts, printerName, onComplete, onAbort); - }, onAbort); - } else { - onComplete.run(); - } - } - - private void singlePrint(MtbColt mtbColtToPrint, String printerName, Runnable onComplete, RunnableArgs onFailed) { - ReportManager.getRightReportNameByGestione(mtbColtToPrint.getGestioneEnum(), reportName -> { - -<<<<<<< HEAD:app/src/main/java/it/integry/integrywmsnative/gest/spedizione/viewmodel/VenditaOrdineInevasoViewModel.java - PrinterRESTConsumer.printCollo( - printerName, - mtbColtToPrint, - 1, - reportName, onComplete, onFailed); - - }, onFailed); -======= - PrinterRESTConsumer.printCollo( - printerName, - mtbColtToPrint, - 1, - reportName, onComplete, onAbort); - - }, onAbort); ->>>>>>> develop:app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java - } - - - private void deleteCollo(Dialog progress, Runnable onComplete) { - - ColliMagazzinoRESTConsumer.deleteColloStatic(mArticoliInColloBottomSheetViewModel.mtbColt.get(), () -> { - mArticoliInColloBottomSheetViewModel.mtbColt.set(null); - - isFabVisible.set(true); - shouldShowAddExtraItems.set(false); - - progress.dismiss(); - - - if (onComplete != null) onComplete.run(); - }, ex -> UtilityExceptions.defaultException(mActivity, ex, progress) - ); - } - - public boolean thereIsAnOpenedUL() { - return mArticoliInColloBottomSheetViewModel.mtbColt.get() != null; - } - - public boolean thereIsAnyRowInUL() { - return mArticoliInColloBottomSheetViewModel.mtbColt.get() != null && - mArticoliInColloBottomSheetViewModel.mtbColt.get().getMtbColr() != null && - mArticoliInColloBottomSheetViewModel.mtbColt.get().getMtbColr().size() > 0; - } - - - private void postCloseOperations(List generatedMtbColt, Runnable onComplete) { - - this.mColliRegistrati.addAll(generatedMtbColt); - - mArticoliInColloBottomSheetViewModel.mtbColt.set(null); - isFabVisible.set(true); - shouldShowAddExtraItems.set(false); - - - for (int i = 0; i < this.mPickingList.size(); i++) { - - for (int k = 0; k < this.mPickingList.get(i).getWithdrawRows().size(); k++) { - - MtbColr withdrawRow = this.mPickingList.get(i).getWithdrawRows().get(k); - - this.mPickingList.get(i).setQtaCollo(this.mPickingList.get(i).getQtaCollo().subtract(withdrawRow.getQtaCol())); - this.mPickingList.get(i).setQtaOrd(this.mPickingList.get(i).getQtaOrd().subtract(withdrawRow.getQtaCol())); - this.mPickingList.get(i).setNumCnfCollo(this.mPickingList.get(i).getNumCnfCollo().subtract(withdrawRow.getNumCnf())); - this.mPickingList.get(i).setNumCnfOrd(this.mPickingList.get(i).getNumCnfOrd().subtract(withdrawRow.getNumCnf())); - - } - - this.mPickingList.get(i).getWithdrawRows().clear(); - } - - removeListFilter(); - refreshOrderBy(true); - - if (onComplete != null) onComplete.run(); - } - - - @Override -<<<<<<< HEAD:app/src/main/java/it/integry/integrywmsnative/gest/spedizione/viewmodel/VenditaOrdineInevasoViewModel.java - public void onOrdineRowDispatch(final PickingObjectDTOOld item) { - if(mArticoliInColloBottomSheetViewModel.mtbColt.get() != null){ -======= - public void onOrdineRowDispatch(final PickingObjectDTO item) { - if (mArticoliInColloBottomSheetViewModel.mtbColt.get() != null) { ->>>>>>> develop:app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java - - - List currentMtbColrs = mArticoliInColloBottomSheetViewModel.mtbColt.get().getMtbColr(); - - List filteredMtbColrs = Stream.of(currentMtbColrs).filter( - x -> x.getCodMart().equalsIgnoreCase(item.getCodMart()) && - (!SettingsManager.iDB().isEnableCheckPartitaMagCheckPickingV() || (SettingsManager.iDB().isEnableCheckPartitaMagCheckPickingV() && ((x.getPartitaMag() == null && item.getPartitaMag() == null) || (x.getPartitaMag() != null && x.getPartitaMag().equalsIgnoreCase(item.getPartitaMag())))))) - .toList(); - - BigDecimal qtaEvasaTotaleInMtbColr = BigDecimal.ZERO; - int numCnfTotaleInMtbColr = 0; - - for (MtbColr mtbColr : filteredMtbColrs) { - qtaEvasaTotaleInMtbColr = qtaEvasaTotaleInMtbColr.add(mtbColr.getQtaCol()); - numCnfTotaleInMtbColr += mtbColr.getNumCnf().intValue(); - } - - - BigDecimal qtaDaEvadere = item.getQtaOrd().subtract(qtaEvasaTotaleInMtbColr); - if (qtaDaEvadere.floatValue() < 0) qtaDaEvadere = BigDecimal.ZERO; - - int numCnfDaEvadere = item.getNumCnfOrd().intValue() - numCnfTotaleInMtbColr; - if (numCnfDaEvadere < 0) numCnfDaEvadere = 0; - - - AtomicBigDecimal qtaColEvasaInCurrentUL = new AtomicBigDecimal(); - AtomicBigDecimal numCnfEvasaInCurrentUL = new AtomicBigDecimal(); - - Stream.of(item.getWithdrawRows()) - .filter(x -> ((x.getNumColloRif() == null) || Objects.equals(x.getNumColloRif(), item.getNumCollo()) && - ((x.getDataColloRifS() == null) || Objects.equals(x.getDataColloRifS(), item.getDataColloS())) && - ((x.getSerColloRif() == null) || Objects.equals(x.getSerColloRif(), item.getSerCollo()))) && - ((x.getGestioneRif() == null) || Objects.equals(x.getGestioneRif(), item.getGestione()))) - .forEach(x -> { - qtaColEvasaInCurrentUL.addAndGet(x.getQtaCol()); - numCnfEvasaInCurrentUL.addAndGet(x.getNumCnf()); - }); - - BigDecimal qtaDisponibile = (item.isDeactivated() ? item.getQtaOrd() : item.getQtaDisponibileCollo()).subtract(qtaColEvasaInCurrentUL.get()); - BigDecimal qtaTot = (item.isDeactivated() ? item.getQtaOrd() : item.getQtaCollo()).subtract(qtaColEvasaInCurrentUL.get()); - - BigDecimal numCnfDisponibile = (item.isDeactivated() ? item.getNumCnfOrd() : item.getNumCnfDisponibileCollo()).subtract(numCnfEvasaInCurrentUL.get()); - BigDecimal numCnfTot = (item.isDeactivated() ? item.getNumCnfOrd() : item.getNumCnfCollo()).subtract(numCnfEvasaInCurrentUL.get()); - - if (qtaDisponibile.floatValue() < 0) qtaDisponibile = BigDecimal.ZERO; - if (qtaTot.floatValue() < 0) qtaTot = BigDecimal.ZERO; - - if (numCnfDisponibile.floatValue() < 0) numCnfDisponibile = BigDecimal.ZERO; - if (numCnfTot.floatValue() < 0) numCnfTot = BigDecimal.ZERO; - - DialogInputQuantity.DTO dto = new DialogInputQuantity.DTO() - .setBatchLot(item.getPartitaMag()) - .setCodArtFor(item.getCodArtFor()) - .setMtbAart(item.getMtbAart()) - .setQtaOrd(item.getQtaOrd()) - .setQtaDaEvadere(qtaDaEvadere) - .setQtaDisponibile(qtaDisponibile) - .setQtaTot(qtaTot) - .setQtaEvasa(qtaEvasaTotaleInMtbColr) - .setCanPartitaMagBeChanged(item.isDeactivated()) - .setMaxQta(qtaDisponibile); - - boolean batchLotEnabled = true; - -<<<<<<< HEAD:app/src/main/java/it/integry/integrywmsnative/gest/spedizione/viewmodel/VenditaOrdineInevasoViewModel.java - if(item.getTempPickData() != null) { - PickingObjectDTOOld.PickData tmpPickData = item.getTempPickData(); -======= - if (item.getTempPickData() != null) { - PickingObjectDTO.PickData tmpPickData = item.getTempPickData(); ->>>>>>> develop:app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java - - if (tmpPickData.getQtaCnf() == null && tmpPickData.getNumCnf() != null && tmpPickData.getQtaTot() != null) { - tmpPickData.setQtaCnf(tmpPickData.getQtaTot().divide(tmpPickData.getNumCnf(), 3, RoundingMode.HALF_EVEN)); - } - - boolean isTakenFromUL = tmpPickData.getSourceMtbColt() != null; - - if (tmpPickData.getMtbPartitaMag() != null) { - - if (!UtilityString.isNullOrEmpty(tmpPickData.getMtbPartitaMag().getPartitaMag())) { - dto.setBatchLot(tmpPickData.getMtbPartitaMag().getPartitaMag()); - } - - if (tmpPickData.getMtbPartitaMag().getDataScadD() != null) { - dto.setDataScad(tmpPickData.getMtbPartitaMag().getDataScadD()); - dto.setShouldAskDataScad(true); - } - - batchLotEnabled = tmpPickData.getMtbPartitaMag().getFlagStato() == null || tmpPickData.getMtbPartitaMag().getFlagStato().equalsIgnoreCase("A"); - } - - boolean useQtaDaEvadere = false; - -<<<<<<< HEAD:app/src/main/java/it/integry/integrywmsnative/gest/spedizione/viewmodel/VenditaOrdineInevasoViewModel.java - if(tmpPickData.getQtaTot() != null) { - useQtaDaEvadere = qtaDaEvadere.floatValue() < tmpPickData.getQtaTot().floatValue() && item.getMtbAart().isFlagQtaCnfFissaBoolean(); -======= - if (tmpPickData.getQtaTot() != null) { - useQtaDaEvadere = qtaDaEvadere.floatValue() < tmpPickData.getQtaTot().floatValue() && item.getMtbAart().isFlagQtaCnfFissa(); ->>>>>>> develop:app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java - if (useQtaDaEvadere && !isTakenFromUL) { - dto.setQtaTot(qtaDaEvadere); - dto.setMaxQta(qtaDaEvadere); - -// if(isTakenFromUL) { -// dto.setNumCnf(qtaDaEvadere.divide(tmpPickData.getQtaCnf(), 0, RoundingMode.HALF_UP).intValue()); -// } - - } else { - if (SettingsManager.iDB().isFlagForceAllToColli()) { - - int numCnfColDaEvadere = numCnfDaEvadere < tmpPickData.getNumCnf().intValue() ? numCnfDaEvadere : tmpPickData.getNumCnf().intValue(); - dto.setNumCnf(numCnfColDaEvadere); - dto.setQtaCnf(tmpPickData.getQtaCnf()); - dto.setQtaTot(tmpPickData.getQtaCnf().multiply(new BigDecimal(numCnfColDaEvadere))); - dto.setQtaDaEvadere(tmpPickData.getQtaCnf().multiply(new BigDecimal(numCnfColDaEvadere))); - - } else { - dto.setQtaTot(qtaDaEvadere.compareTo(tmpPickData.getQtaTot()) < 0 && !tmpPickData.isEanPeso() ? qtaDaEvadere : tmpPickData.getQtaTot()); - dto.setMaxQta(tmpPickData.getQtaTot()); - - if (tmpPickData.getNumCnf() != null) { - dto.setQtaCnf(tmpPickData.getQtaTot().divide(tmpPickData.getNumCnf(), 3, RoundingMode.HALF_UP)); - } else { - dto.setQtaCnf(tmpPickData.getQtaTot()); - } - } - - - } - - if (tmpPickData.getQtaCnf() != null && useQtaDaEvadere) { - dto.setQtaCnf(tmpPickData.getQtaCnf()); - } - } - - - if (dto.getQtaDaEvadere() != null && dto.getQtaDaEvadere().floatValue() > 0 && dto.getQtaCnf() != null && dto.getQtaCnf().floatValue() > 0) { - if (useQtaDaEvadere && (dto.getQtaDaEvadere() != null && dto.getQtaDaEvadere().floatValue() > 0)) { - dto.setNumCnf(dto.getQtaDaEvadere().divide(dto.getQtaCnf(), 3, RoundingMode.HALF_EVEN).intValue()); - } else { - dto.setNumCnf((dto.getQtaTot().compareTo(dto.getQtaDaEvadere()) < 0 ? dto.getQtaTot() : dto.getQtaDaEvadere()).divide(dto.getQtaCnf(), RoundingMode.HALF_UP).intValue()); - if (dto.getNumCnf() == 0) dto.setNumCnf(1); - } - } - - dto.setCanPartitaMagBeChanged(false); - dto.setCanDataScadBeChanged(false); - } else { - - BigDecimal qtaCnf = null; - - if (item.getQtaCnfOrd() != null) { - qtaCnf = item.getQtaCnfOrd(); - } else if (item.getQtaCnfCollo() != null) { - qtaCnf = item.getQtaCnfCollo(); - } else if (item.getMtbAart() != null) { - qtaCnf = item.getMtbAart().getQtaCnf(); - } - - - if (qtaDisponibile != null && qtaDisponibile.compareTo(BigDecimal.ZERO) > 0) { - dto.setNumCnf(qtaDisponibile.divide(qtaCnf, 3, RoundingMode.HALF_EVEN).setScale(0, RoundingMode.UP).intValue()); - } else if (qtaDaEvadere.compareTo(BigDecimal.ZERO) > 0) { - dto.setNumCnf(qtaDaEvadere.divide(qtaCnf, 3, RoundingMode.HALF_EVEN).setScale(0, RoundingMode.UP).intValue()); - } - - dto.setQtaCnf(qtaCnf); - } - - boolean canOverflowQuantity = SettingsManager.iDB().isFlagCanAddExtraQuantitySpedizione(); - - if (!batchLotEnabled) { - this.showBatchLotDisabledWarning(dto.getBatchLot(), () -> { - DialogInputQuantity.makeBase(mActivity, dto, canOverflowQuantity, (quantityDTO, closeUL) -> onOrdineRowDispatched(item, quantityDTO, closeUL), null).show(); - }, null); - } else { - DialogInputQuantity.makeBase(mActivity, dto, canOverflowQuantity, (quantityDTO, closeUL) -> onOrdineRowDispatched(item, quantityDTO, closeUL), null).show(); - } - } - } - -<<<<<<< HEAD:app/src/main/java/it/integry/integrywmsnative/gest/spedizione/viewmodel/VenditaOrdineInevasoViewModel.java - private void onOrdineRowDispatched(PickingObjectDTOOld item, QuantityDTO quantityDTO, boolean closeUL){ -======= - private void onOrdineRowDispatched(PickingObjectDTO item, QuantityDTO quantityDTO, boolean closeUL) { ->>>>>>> develop:app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/viewmodel/VenditaOrdineInevasoViewModel.java - final Dialog progress = UtilityProgress.createDefaultProgressDialog(mActivity); - - final MtbColr mtbColr = new MtbColr() - .setCodMart(item.getCodMart()) - .setPartitaMag(UtilityString.empty2null(quantityDTO.batchLot.get())) - .setQtaCol(quantityDTO.qtaTot.getBigDecimal()) - .setQtaCnf(quantityDTO.qtaCnf.getBigDecimal()) - .setNumCnf(quantityDTO.numCnf.getBigDecimal()) - .setDescrizione(item.getDescrizioneEstesa()) - .setDatetimeRow(UtilityDate.getDateInstance()); - - if (item.getTempPickData() != null && item.getTempPickData().getSourceMtbColt() != null) { - MtbColt sourceMtbColt = item.getTempPickData().getSourceMtbColt(); - - mtbColr - .setCodJcom(UtilityString.empty2null(item.getCodJcom())) - .setSerColloRif(UtilityString.empty2null(sourceMtbColt.getSerCollo())) - .setNumColloRif(sourceMtbColt.getNumCollo()) - .setGestioneRif(UtilityString.empty2null(sourceMtbColt.getGestione())) - .setDataColloRif(UtilityString.empty2null(sourceMtbColt.getDataColloS())); - - MtbColt currentOpenedMtbColt = mArticoliInColloBottomSheetViewModel.mtbColt.get(); - - if (currentOpenedMtbColt.getCodTcol() == null && - currentOpenedMtbColt.getPesoKg() == null && - currentOpenedMtbColt.getPesoNettoKg() == null) { - - currentOpenedMtbColt.setCodTcol(sourceMtbColt.getCodTcol()); - currentOpenedMtbColt.setPesoKg(sourceMtbColt.getPesoKg()); - currentOpenedMtbColt.setPesoNettoKg(sourceMtbColt.getPesoNettoKg()); - } - - } else if (item.getNumCollo() != null) { - mtbColr - .setCodJcom(UtilityString.empty2null(item.getCodJcom())) - .setSerColloRif(UtilityString.empty2null(item.getSerCollo())) - .setNumColloRif(item.getNumCollo()) - .setGestioneRif(UtilityString.empty2null(item.getGestione())) - .setDataColloRif(UtilityString.empty2null(item.getDataColloS())); - } - - - mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE); - - MtbColt cloneMtbColt = (MtbColt) mArticoliInColloBottomSheetViewModel.mtbColt.get().clone(); - cloneMtbColt.setOperation(CommonModelConsts.OPERATION.UPDATE); - - cloneMtbColt.setMtbColr(new ObservableArrayList()); - cloneMtbColt.getMtbColr().add(mtbColr); - - - boolean shouldPrint = true; - //Se è l'unico articolo del collo - if (closeUL && mArticoliInColloBottomSheetViewModel.mtbColt.get().getMtbColr().size() == 0) { -// this.addTipoPedanaFromArt(item, cloneMtbColt, closeUL, progress); - shouldPrint = false; - if (UtilityString.isNullOrEmpty(cloneMtbColt.getCodTcol())) { - cloneMtbColt.setCodTcol(item.getCodTcol()); - cloneMtbColt.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE); - } - } - - - onOrdineRowSave(item, cloneMtbColt, closeUL, !shouldPrint, progress); - - - } - - private void addTipoPedanaFromArt(PickingObjectDTOOld item, MtbColt cloneMtbColt, boolean closeUL, Dialog progress) { - - String codTcol = item.getCodTcol(); - if (codTcol != null) { - MagazzinoRESTConsumer.getTipoCollo(codTcol, mtbTcol -> { - if (mtbTcol != null) { - final MtbColr mtbColr = new MtbColr() - .setCodMart(mtbTcol.getCodMart()) - .setQtaCol(BigDecimal.ONE) - .setDescrizione(mtbTcol.getDescrizione()) - .setDatetimeRow(UtilityDate.getDateInstance()); - mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE); - cloneMtbColt.getMtbColr().add(mtbColr); - - onOrdineRowSave(item, cloneMtbColt, closeUL, true, progress); - } else { - onOrdineRowSave(item, cloneMtbColt, closeUL, false, progress); - } - }, ex -> { - UtilityExceptions.defaultException(mActivity, ex, progress); - }); - } else { - onOrdineRowSave(item, cloneMtbColt, closeUL, false, progress); - } - - } - - - private void onOrdineRowSave(PickingObjectDTOOld item, MtbColt cloneMtbColt, boolean closeUL, boolean hasTipoCollo, Dialog progress) { - ColliMagazzinoRESTConsumer.saveColloStatic(cloneMtbColt, value -> { - - MtbColr mtbColr = cloneMtbColt.getMtbColr().get(0); - - mtbColr - .setDataCollo(value.getDataColloS()) - .setNumCollo(value.getNumCollo()) - .setGestione(value.getGestione()) - .setSerCollo(value.getSerCollo()) - .setRiga(value.getMtbColr().get(0).getRiga()) - .setUntMis(item.getMtbAart().getUntMis()) - .setMtbAart(item.getMtbAart()); - - item.getWithdrawRows().add(mtbColr); - - mArticoliInColloBottomSheetViewModel.mtbColt.get().getMtbColr().add(mtbColr); - - //Chiamato removeListFilter perché cosi mi cancella tutti i dati di pick temporanei - removeListFilter(); - - - FBToast.successToast(mActivity, mActivity.getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT); - - progress.dismiss(); - - if (closeUL) onColloClosed(null, !hasTipoCollo); - }, ex -> { - UtilityExceptions.defaultException(mActivity, ex, progress); - }); - } - - - private void addExtraItem() { - DialogScanArt.make(mActivity, (status, mtbAart, ean128Model) -> { - if (status == DialogConsts.Results.YES) { - this.dispatchExtraItem(mtbAart, ean128Model); - } - }).show(); - } - - - private void dispatchExtraItem(MtbAart mtbAart, Ean128Model ean128Model) { - DialogInputQuantity.DTO qtaDto = new DialogInputQuantity.DTO(); - - qtaDto.setMtbAart(mtbAart); - - qtaDto.setQtaCnf(mtbAart.getQtaCnf()); - qtaDto.setNumCnf(1); - qtaDto.setQtaTot(mtbAart.getQtaCnf()); - - qtaDto.setQtaDaEvadere(new BigDecimal(-1)); - qtaDto.setQtaDisponibile(new BigDecimal(-1)); - - qtaDto.setCanPartitaMagBeChanged(true); - qtaDto.setCanDataScadBeChanged(true); - - - if (ean128Model != null) { - if (!UtilityString.isNullOrEmpty(ean128Model.BatchLot)) { - qtaDto.setBatchLot(ean128Model.BatchLot); - qtaDto.setCanPartitaMagBeChanged(false); - } - - try { - if (!UtilityString.isNullOrEmpty(ean128Model.BestBefore)) { - qtaDto.setDataScad(UtilityDate.recognizeDate(ean128Model.BestBefore)); - qtaDto.setCanDataScadBeChanged(false); - } else if (!UtilityString.isNullOrEmpty(ean128Model.Expiry)) { - qtaDto.setDataScad(UtilityDate.recognizeDate(ean128Model.Expiry)); - qtaDto.setCanDataScadBeChanged(false); - } - - } catch (Exception e) { - UtilityLogger.errorMe(e); - } - - - if (ean128Model.Count != null && ean128Model.Count > 0) { - qtaDto.setNumCnf(ean128Model.Count); - } - - if (ean128Model.NetWeightKg != null && ean128Model.NetWeightKg > 0 && !mtbAart.isFlagQtaCnfFissaBoolean()) { - qtaDto.setQtaTot(new BigDecimal(ean128Model.NetWeightKg)); - } else { - qtaDto.setQtaTot(qtaDto.getQtaCnf().multiply(new BigDecimal(qtaDto.getNumCnf()))); - } - - - // qtaDto.setShouldAskDataScad(true); - } - - - DialogInputQuantity.makeBase(mActivity, qtaDto, true, (quantityDTO) -> { - onExtraItemDispatched(mtbAart, quantityDTO, false); - }, () -> { - BarcodeManager.enable(); - }).show(); - } - - private void onExtraItemDispatched(MtbAart item, QuantityDTO quantityDTO, boolean closeUL) { - final Dialog progress = UtilityProgress.createDefaultProgressDialog(mActivity); - - final MtbColr mtbColr = new MtbColr() - .setCodMart(item.getCodMart()) - .setPartitaMag(UtilityString.empty2null(quantityDTO.batchLot.get())) - .setQtaCol(quantityDTO.qtaTot.getBigDecimal()) - .setQtaCnf(quantityDTO.qtaCnf.getBigDecimal()) - .setNumCnf(quantityDTO.numCnf.getBigDecimal()) - .setDescrizione(item.getDescrizioneEstesa()) - .setDatetimeRow(UtilityDate.getDateInstance()); - - - mtbColr.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE); - - MtbColt cloneMtbColt = (MtbColt) mArticoliInColloBottomSheetViewModel.mtbColt.get().clone(); - cloneMtbColt.setOperation(CommonModelConsts.OPERATION.NO_OP); - - cloneMtbColt.setMtbColr(new ObservableArrayList()); - cloneMtbColt.getMtbColr().add(mtbColr); - - ColliMagazzinoRESTConsumer.saveColloStatic(cloneMtbColt, value -> { - - mtbColr - .setDataCollo(value.getDataColloS()) - .setNumCollo(value.getNumCollo()) - .setGestione(value.getGestione()) - .setSerCollo(value.getSerCollo()) - .setRiga(value.getMtbColr().get(0).getRiga()) - .setUntMis(item.getUntMis()) - .setMtbAart(item); - - - mArticoliInColloBottomSheetViewModel.mtbColt.get().getMtbColr().add(mtbColr); - - //Chiamato removeListFilter perché cosi mi cancella tutti i dati di pick temporanei - removeListFilter(); - - - FBToast.successToast(mActivity, mActivity.getResources().getString(R.string.data_saved), FBToast.LENGTH_SHORT); - - progress.dismiss(); - - if (closeUL) onColloClosed(null, true); - }, ex -> { - UtilityExceptions.defaultException(mActivity, ex, progress); - }); - } - - - public void manualSearch() { - BarcodeManager.disable(); - DialogSimpleInputHelper.makeInputDialog(mActivity, "Inserisci il codice a barre", codice -> { - - this.onScanSuccessfull.run(new BarcodeScanDTO().setStringValue(codice).setType(BarcodeType.CODE128)); - - }, BarcodeManager::enable).show(); - } - - - private void showBatchLotDisabledWarning(String batchLot, Runnable onAccepted, Runnable onRejected) { - - DialogSimpleMessageHelper.makeWarningDialog(mActivity, new SpannableString(String.format(mActivity.getText(R.string.batch_lot_not_enabled).toString(), batchLot)), null, onAccepted, onRejected).show(); - - } - -} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/viewmodel/VersamentoMerceViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/viewmodel/VersamentoMerceViewModel.java index 0bcb7feb..3996bcbc 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/viewmodel/VersamentoMerceViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/versamento_merce/viewmodel/VersamentoMerceViewModel.java @@ -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 mtbColrSourceObservableField = new ObservableArrayList<>(); ObservableArrayList 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 sourceMtbColrs, List destMtbColr, Runnable onComplete, Runnable onAbort){ + private void askQuantities(Iterator sourceMtbColrs, List 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 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 onComplete ,RunnableArgs onFailed) { - ColliMagazzinoRESTConsumer.createColloLavorazione(+1, onComplete, onFailed); - } -*/ - private void saveLUs(MtbColt mtbColt1, MtbColt mtbColt2) { ArrayList 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++) { diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLU.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLU.java index 08ea7b30..de6aad1a 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLU.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_or_create_lu/DialogScanOrCreateLU.java @@ -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); + } } diff --git a/app/src/main/res/layout/activity_vendita_ordine_inevaso.xml b/app/src/main/res/layout/activity_vendita_ordine_inevaso.xml deleted file mode 100644 index 53154b95..00000000 --- a/app/src/main/res/layout/activity_vendita_ordine_inevaso.xml +++ /dev/null @@ -1,297 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 81389a48..9ca72032 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -58,6 +58,7 @@ Inserisci eventuali note aggiuntive della tua UL Non è possibile scansionare il barcode di una UL adesso L\'UL selezionata è già agganciata ad un documento per cui non può essere utilizzata + Stai caricando una UL di vendita. Sei sicuro di voler continuare? Magazzino diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f0dd36d8..20f6fa3b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -235,6 +235,7 @@ The production line will not be saved because you are selecting orders for different productions Logistics Unit\'s barcode is not accepted at this moment Selected LU is already attached to a document hence can\'t be opened + You are loading a sales logistics unit. Are you sure you want to continue? Recovering data Wait a moment