Implementato versamento da V- a L+
This commit is contained in:
parent
021f7e9732
commit
b60a11951f
@ -37,7 +37,11 @@ public class UtilityExceptions {
|
||||
|
||||
String errorMessage = CommonRESTException.tryRecognizeThenGetMessage(ex);
|
||||
|
||||
if(errorMessage == null) errorMessage = ex.getMessage();
|
||||
if(errorMessage == null) {
|
||||
errorMessage = ex.getMessage();
|
||||
|
||||
if(ex.getCause() != null) errorMessage += "<br />" + ex.getCause().getMessage();
|
||||
}
|
||||
|
||||
if(context != null) {
|
||||
DialogSimpleMessageHelper.makeErrorDialog(context, new SpannableString(errorMessage), null, null).show();
|
||||
|
||||
@ -37,9 +37,9 @@ import it.integry.integrywmsnative.core.utility.UtilityToast;
|
||||
import it.integry.integrywmsnative.databinding.FragmentProdOrdineLavorazioneElencoBinding;
|
||||
import it.integry.integrywmsnative.gest.prod_pick_ord_lavorazione.core.ProdOrdineLavorazioneHelper;
|
||||
import it.integry.integrywmsnative.gest.prod_pick_ord_lavorazione.core.ProdOrdineLavorazioneListAdapter;
|
||||
import it.integry.integrywmsnative.gest.spedizione_new.SpedizioneActivity;
|
||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
||||
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTOOld;
|
||||
import it.integry.integrywmsnative.gest.spedizione.VenditaOrdineInevasoActivity;
|
||||
import it.integry.integrywmsnative.ui.ElevatedToolbar;
|
||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||
|
||||
@ -277,7 +277,7 @@ public class ProdOrdineLavorazioneElencoFragment extends Fragment implements ITi
|
||||
}
|
||||
|
||||
private void startPickingActivity(List<PickingObjectDTOOld> ordini, List<OrdineVenditaInevasoDTO> selectedOrders, List<MtbColt> mtbColtList) {
|
||||
Intent myIntent = new Intent(getActivity(), VenditaOrdineInevasoActivity.class);
|
||||
Intent myIntent = new Intent(getActivity(), SpedizioneActivity.class);
|
||||
|
||||
String keyPickingList = DataCache.addItem(ordini);
|
||||
myIntent.putExtra("keyPickingList", keyPickingList);
|
||||
|
||||
@ -1,124 +0,0 @@
|
||||
package it.integry.integrywmsnative.gest.spedizione;
|
||||
|
||||
import android.content.Intent;
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.expansion.BaseActivity;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.PrinterRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
|
||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||
import it.integry.integrywmsnative.core.data_cache.DataCache;
|
||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||
import it.integry.integrywmsnative.databinding.ActivityVenditaOrdineInevasoBinding;
|
||||
import it.integry.integrywmsnative.databinding.FragmentArticoliInColloBottomSheetBinding;
|
||||
import it.integry.integrywmsnative.gest.lista_bancali.ListaBancaliActivity;
|
||||
import it.integry.integrywmsnative.gest.vendita.dto.OrdineVenditaInevasoDTO;
|
||||
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTOOld;
|
||||
import it.integry.integrywmsnative.gest.spedizione.viewmodel.VenditaOrdineInevasoViewModel;
|
||||
import it.integry.integrywmsnative.view.bottomsheet.viewmodel.ArticoliInColloBottomSheetViewModel;
|
||||
|
||||
public class VenditaOrdineInevasoActivity extends BaseActivity {
|
||||
|
||||
|
||||
private ActivityVenditaOrdineInevasoBinding mBindings;
|
||||
private VenditaOrdineInevasoViewModel mVenditaOrdineInevasoViewModel;
|
||||
private ArticoliInColloBottomSheetViewModel mArticoliInColloBottomSheetViewModel;
|
||||
|
||||
|
||||
private static final int PICK_UL_REQUEST = 1; // The request code
|
||||
|
||||
private int barcodeScannerIstanceID = -1;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
mBindings = DataBindingUtil.setContentView(this, R.layout.activity_vendita_ordine_inevaso);
|
||||
FragmentArticoliInColloBottomSheetBinding bindings = this.mBindings.bottomSheetInclude;
|
||||
mArticoliInColloBottomSheetViewModel = new ArticoliInColloBottomSheetViewModel(this, bindings);
|
||||
|
||||
ArrayList<PickingObjectDTOOld> pickingList = DataCache.retrieveItem(getIntent().getStringExtra("keyPickingList"));
|
||||
ArrayList<OrdineVenditaInevasoDTO> testateOrdini = DataCache.retrieveItem(getIntent().getStringExtra("keyTestateOrdini"));
|
||||
ArrayList<MtbColt> colliRegistrati = DataCache.retrieveItem(getIntent().getStringExtra("keyColliRegistrati"));
|
||||
mVenditaOrdineInevasoViewModel = new VenditaOrdineInevasoViewModel(
|
||||
this, mBindings, mArticoliInColloBottomSheetViewModel, pickingList, testateOrdini, colliRegistrati);
|
||||
|
||||
setSupportActionBar(this.mBindings.toolbar);
|
||||
|
||||
setTitle(R.string.activity_vendita_inevaso_title);
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
|
||||
barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
|
||||
.setOnScanSuccessfull(mVenditaOrdineInevasoViewModel.onScanSuccessfull)
|
||||
.setOnScanFailed(ex -> UtilityExceptions.defaultException(this, ex, false)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onSupportNavigateUp() {
|
||||
onBackPressed();
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
if(mArticoliInColloBottomSheetViewModel.isExpanded()){
|
||||
mArticoliInColloBottomSheetViewModel.collapse();
|
||||
} else if(mVenditaOrdineInevasoViewModel.thereIsAnOpenedUL()) {
|
||||
mArticoliInColloBottomSheetViewModel.closeCurrentUL(() -> {
|
||||
BarcodeManager.removeCallback(barcodeScannerIstanceID);
|
||||
super.onBackPressed();
|
||||
});
|
||||
|
||||
} else {
|
||||
BarcodeManager.removeCallback(barcodeScannerIstanceID);
|
||||
super.onBackPressed();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
// Inflate the menu; this adds items to the action bar if it is present.
|
||||
getMenuInflater().inflate(R.menu.activity_vendita_ordine_inevaso, menu);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
// Handle item selection
|
||||
switch (item.getItemId()) {
|
||||
default:
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void startListaBancaliRegistratiActivity(ArrayList<MtbColt> mtbColts){
|
||||
Intent myIntent = ListaBancaliActivity.createIntent(this, mtbColts, true, PrinterRESTConsumer.Type.PRIMARIA);
|
||||
this.startActivityForResult(myIntent, PICK_UL_REQUEST);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
// Check which request we're responding to
|
||||
if (requestCode == PICK_UL_REQUEST) {
|
||||
// Make sure the request was successful
|
||||
if (resultCode == RESULT_OK) {
|
||||
|
||||
MtbColt recoveredMtbColt = DataCache.retrieveItem(data.getStringExtra("key"));
|
||||
|
||||
mVenditaOrdineInevasoViewModel.recoverUL(recoveredMtbColt);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,262 +0,0 @@
|
||||
package it.integry.integrywmsnative.gest.spedizione.core;
|
||||
|
||||
import android.content.Context;
|
||||
import androidx.databinding.ObservableArrayList;
|
||||
import androidx.databinding.ObservableList;
|
||||
import android.graphics.Color;
|
||||
import androidx.core.util.Pools;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import android.text.Html;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.CommonConst;
|
||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityNumber;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||
import it.integry.integrywmsnative.gest.spedizione.core.interfaces.IOnOrdineVenditaRowDispatched;
|
||||
import it.integry.integrywmsnative.gest.spedizione.dto.VenditaOrdineInevasoListViewModel;
|
||||
|
||||
public class MainListOrdineVenditaInevasoAdapter extends RecyclerView.Adapter<MainListOrdineVenditaInevasoAdapter.ViewHolder> {
|
||||
|
||||
private Context mContext;
|
||||
private List<VenditaOrdineInevasoListViewModel> mDataset;
|
||||
private View mEmptyView;
|
||||
private ObservableArrayList<VenditaOrdineInevasoListViewModel> mObservableDataset;
|
||||
private IOnOrdineVenditaRowDispatched mOrdineRowDispatch;
|
||||
|
||||
private static final Pools.SynchronizedPool sPool = new Pools.SynchronizedPool(200);
|
||||
|
||||
public static class ViewHolder extends RecyclerView.ViewHolder {
|
||||
// each data item is just a string in this case
|
||||
protected View mGroupTitle;
|
||||
protected LinearLayout mLinearLayoutGroupItemContainer;
|
||||
|
||||
protected List<View> pool = new ArrayList<>();
|
||||
|
||||
public ViewHolder(View v) {
|
||||
super(v);
|
||||
}
|
||||
}
|
||||
|
||||
public MainListOrdineVenditaInevasoAdapter(Context context, ObservableArrayList<VenditaOrdineInevasoListViewModel> myDataset, View emptyView) {
|
||||
mContext = context;
|
||||
mObservableDataset = myDataset;
|
||||
mEmptyView = emptyView;
|
||||
|
||||
|
||||
mDataset = Stream.of(mObservableDataset).filter(x -> !x.isHidden()).toList();
|
||||
mObservableDataset.addOnListChangedCallback(onListChangedCallback);
|
||||
|
||||
checkIfEmpty();
|
||||
}
|
||||
|
||||
public void setOnOrdineRowDispatchCallback(IOnOrdineVenditaRowDispatched ordineRowDispatch) {
|
||||
mOrdineRowDispatch = ordineRowDispatch;
|
||||
}
|
||||
|
||||
private ObservableList.OnListChangedCallback onListChangedCallback = new ObservableList.OnListChangedCallback<ObservableList<VenditaOrdineInevasoListViewModel>>() {
|
||||
@Override
|
||||
public void onChanged(ObservableList<VenditaOrdineInevasoListViewModel> sender) {
|
||||
refreshNotHiddenElements();
|
||||
notifyDataSetChanged();
|
||||
checkIfEmpty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemRangeChanged(ObservableList<VenditaOrdineInevasoListViewModel> sender, int positionStart, int itemCount) {
|
||||
refreshNotHiddenElements();
|
||||
notifyDataSetChanged();
|
||||
checkIfEmpty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemRangeInserted(ObservableList<VenditaOrdineInevasoListViewModel> sender, int positionStart, int itemCount) {
|
||||
refreshNotHiddenElements();
|
||||
notifyDataSetChanged();
|
||||
checkIfEmpty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemRangeMoved(ObservableList<VenditaOrdineInevasoListViewModel> sender, int fromPosition, int toPosition, int itemCount) {
|
||||
refreshNotHiddenElements();
|
||||
notifyDataSetChanged();
|
||||
checkIfEmpty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemRangeRemoved(ObservableList<VenditaOrdineInevasoListViewModel> sender, int positionStart, int itemCount) {
|
||||
refreshNotHiddenElements();
|
||||
notifyDataSetChanged();
|
||||
checkIfEmpty();
|
||||
}
|
||||
|
||||
private void refreshNotHiddenElements() {
|
||||
mDataset = Stream.of(mObservableDataset).filter(x -> !x.isHidden()).toList();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@Override
|
||||
public MainListOrdineVenditaInevasoAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||
// create a new view
|
||||
View v = LayoutInflater.from(parent.getContext())
|
||||
.inflate(R.layout.vendita_ordine_inevaso_main_list_model, parent, false);
|
||||
|
||||
|
||||
ViewHolder vh = new ViewHolder(v);
|
||||
|
||||
TextView descrizioneArtForn = v.findViewById(R.id.vendita_ordine_inevaso_main_list__descrizione_gruppo);
|
||||
vh.mGroupTitle = descrizioneArtForn;
|
||||
|
||||
LinearLayout groupItemContainer = v.findViewById(R.id.vendita_ordine_inevaso_main_list__group_item_container);
|
||||
vh.mLinearLayoutGroupItemContainer = groupItemContainer;
|
||||
|
||||
return vh;
|
||||
}
|
||||
|
||||
|
||||
// Replace the contents of a view (invoked by the layout manager)
|
||||
@Override
|
||||
public void onBindViewHolder(MainListOrdineVenditaInevasoAdapter.ViewHolder holder, int position) {
|
||||
((TextView)holder.mGroupTitle).setText(mDataset.get(position).descrizioneGroup);
|
||||
|
||||
List<VenditaOrdineInevasoListViewModel.SubItem> subset = mDataset.get(position).rows;
|
||||
|
||||
int visibleElementsCounter = 0;
|
||||
|
||||
for(int i = 0; i < subset.size(); i++) {
|
||||
|
||||
final VenditaOrdineInevasoListViewModel.SubItem rowItem = subset.get(i);
|
||||
|
||||
if(!rowItem.getOriginalModel().isHidden() &&
|
||||
(rowItem.getOriginalModel().isTempHidden() == null ||
|
||||
(rowItem.getOriginalModel().isTempHidden() != null && !rowItem.getOriginalModel().isTempHidden()))) {
|
||||
visibleElementsCounter++;
|
||||
|
||||
View groupModelViewPool = (View) sPool.acquire();
|
||||
if (groupModelViewPool == null) {
|
||||
groupModelViewPool = LayoutInflater.from(mContext)
|
||||
.inflate(R.layout.vendita_ordine_inevaso_main_list_child_group_model, holder.mLinearLayoutGroupItemContainer, false);
|
||||
}
|
||||
|
||||
View groupModelView = groupModelViewPool;
|
||||
holder.pool.add(groupModelView);
|
||||
|
||||
|
||||
if (rowItem.getQtaRiservata().subtract(rowItem.getQtaOrdinata()).floatValue() >= 0 ) {
|
||||
groupModelView.setBackgroundColor(mContext.getResources().getColor(R.color.green_500_with_alpha));
|
||||
} else if (rowItem.getQtaRiservata().floatValue() > 0) {
|
||||
groupModelView.setBackgroundColor(mContext.getResources().getColor(R.color.orange_600_with_alpha));
|
||||
} else if (visibleElementsCounter % 2 == 1) {
|
||||
groupModelView.setBackgroundColor(Color.WHITE);
|
||||
} else {
|
||||
groupModelView.setBackgroundColor(mContext.getResources().getColor(R.color.letturaFacilitataBG));
|
||||
}
|
||||
|
||||
final TextView badge1 = groupModelView.findViewById(R.id.vendita_ordine_inevaso_main_list_group_item_badge1);
|
||||
badge1.setText(rowItem.getBadge1());
|
||||
|
||||
final TextView badge2 = groupModelView.findViewById(R.id.vendita_ordine_inevaso_main_list_group_item_badge2);
|
||||
badge2.setText(rowItem.getBadge2());
|
||||
badge2.setVisibility(UtilityString.isNullOrEmpty(rowItem.getBadge2()) ? View.GONE : View.VISIBLE);
|
||||
|
||||
|
||||
final TextView descrizione = groupModelView.findViewById(R.id.vendita_ordine_inevaso_main_list_group_item_descrizione);
|
||||
|
||||
String descrizioneString = rowItem.getDescrizione();
|
||||
int descrizioneColor = Color.BLACK;
|
||||
|
||||
if (UtilityString.isNullOrEmpty(descrizioneString)) {
|
||||
descrizioneString = mContext.getString(R.string.no_description);
|
||||
descrizioneColor = Color.GRAY;
|
||||
} else if (descrizioneString.equalsIgnoreCase(CommonConst.Config.COMMESSA_MAG)) {
|
||||
descrizioneString = mContext.getString(R.string.stock);
|
||||
}
|
||||
|
||||
descrizione.setText(descrizioneString);
|
||||
descrizione.setTextColor(descrizioneColor);
|
||||
|
||||
final TextView subDescrizione1 = groupModelView.findViewById(R.id.vendita_ordine_inevaso_main_list_group_item_subdescrizione1);
|
||||
if(rowItem.getSubDescrizione1() != null) subDescrizione1.setText(Html.fromHtml(rowItem.getSubDescrizione1()));
|
||||
subDescrizione1.setVisibility(UtilityString.isNullOrEmpty(rowItem.getSubDescrizione1()) ? View.GONE : View.VISIBLE);
|
||||
|
||||
final TextView subDescrizione2 = groupModelView.findViewById(R.id.vendita_ordine_inevaso_main_list_group_item_subdescrizione2);
|
||||
if(rowItem.getSubDescrizione2() != null) subDescrizione2.setText(Html.fromHtml(rowItem.getSubDescrizione2()));
|
||||
subDescrizione2.setVisibility(UtilityString.isNullOrEmpty(rowItem.getSubDescrizione2()) ? View.GONE : View.VISIBLE);
|
||||
|
||||
final TextView qtaEvasa = groupModelView.findViewById(R.id.vendita_ordine_inevaso_main_list_group_item_qta_evasa);
|
||||
qtaEvasa.setText(UtilityNumber.decimalToString(rowItem.getQtaRiservata()));
|
||||
|
||||
final TextView qtaTot = groupModelView.findViewById(R.id.vendita_ordine_inevaso_main_list_group_item_qta_tot);
|
||||
qtaTot.setText(UtilityNumber.decimalToString(rowItem.getQtaOrdinata()));
|
||||
|
||||
final TextView untMis = groupModelView.findViewById(R.id.vendita_ordine_inevaso_main_list_group_item_unt_mis);
|
||||
untMis.setText(rowItem.getUntMis());
|
||||
|
||||
|
||||
|
||||
final View deactivatedOverBG = groupModelView.findViewById(R.id.deactivated_over_bg);
|
||||
deactivatedOverBG.setVisibility(rowItem.getOriginalModel().isDeactivated() ? View.VISIBLE : View.GONE);
|
||||
groupModelView.setAlpha(rowItem.getOriginalModel().isDeactivated() ? 0.8f : 1);
|
||||
badge1.setBackground(mContext.getResources().getDrawable(rowItem.getOriginalModel().isDeactivated() ? R.drawable.badge_gray_round_corner : R.drawable.badge1_round_corner));
|
||||
qtaEvasa.setTextColor(mContext.getResources().getColor(rowItem.getOriginalModel().isDeactivated() ? R.color.gray_600 : R.color.green_700));
|
||||
|
||||
|
||||
groupModelView.setOnClickListener(view -> {
|
||||
if (mOrdineRowDispatch != null && SettingsManager.iDB().isFlagSpedizioneEnableManualPick()) {
|
||||
// rowItem.getOriginalModel().setTempEan128Model(null);
|
||||
mOrdineRowDispatch.onOrdineRowDispatch(rowItem.getOriginalModel());
|
||||
}
|
||||
});
|
||||
|
||||
holder.mLinearLayoutGroupItemContainer.addView(groupModelView);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void onViewRecycled(MainListOrdineVenditaInevasoAdapter.ViewHolder holder){
|
||||
if(holder != null){
|
||||
for(int i = 0; i < holder.pool.size(); i++){
|
||||
((ViewGroup) holder.pool.get(i).getParent()).removeView(holder.pool.get(i));
|
||||
sPool.release(holder.pool.get(i));
|
||||
}
|
||||
|
||||
holder.pool.clear();
|
||||
}
|
||||
|
||||
super.onViewRecycled(holder);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Return the size of your dataset (invoked by the layout manager)
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return mDataset.size();
|
||||
}
|
||||
|
||||
|
||||
void checkIfEmpty() {
|
||||
if (mEmptyView != null) {
|
||||
final boolean emptyViewVisible = getItemCount() == 0;
|
||||
mEmptyView.setVisibility(emptyViewVisible ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,18 +0,0 @@
|
||||
package it.integry.integrywmsnative.gest.spedizione.core;
|
||||
|
||||
import androidx.databinding.ObservableArrayList;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTOOld;
|
||||
|
||||
public class SpedizioneHelper {
|
||||
|
||||
private ObservableArrayList<PickingObjectDTOOld> mPickingObjectDtoList;
|
||||
|
||||
public SpedizioneHelper(List<PickingObjectDTOOld> pickingObjectDTOList) {
|
||||
this.mPickingObjectDtoList = new ObservableArrayList<>();
|
||||
this.mPickingObjectDtoList.addAll(pickingObjectDTOList);
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,190 +0,0 @@
|
||||
package it.integry.integrywmsnative.gest.spedizione.core;
|
||||
|
||||
import android.content.Context;
|
||||
import androidx.databinding.ObservableArrayList;
|
||||
import android.view.View;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.class_router.BaseCustomConfiguration;
|
||||
import it.integry.integrywmsnative.core.class_router.ClassRouter;
|
||||
import it.integry.integrywmsnative.core.class_router.interfaces.ICustomConfiguration;
|
||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTOOld;
|
||||
import it.integry.integrywmsnative.gest.spedizione.dto.VenditaOrdineInevasoListViewModel;
|
||||
|
||||
public class VenditaOrdineInevasoHelper {
|
||||
|
||||
private Context mContext;
|
||||
|
||||
private ObservableArrayList<VenditaOrdineInevasoListViewModel> mListViewModels = new ObservableArrayList<>();
|
||||
|
||||
public VenditaOrdineInevasoHelper(Context context){
|
||||
mContext = context;
|
||||
}
|
||||
|
||||
public MainListOrdineVenditaInevasoAdapter getRightListAdapter(View emptyView) {
|
||||
return new MainListOrdineVenditaInevasoAdapter(mContext, mListViewModels, emptyView);
|
||||
}
|
||||
|
||||
public void updateListModel(List<List<PickingObjectDTOOld>> mDataset, List<MtbColr> mtbColrs) throws Exception {
|
||||
|
||||
mListViewModels.clear();
|
||||
|
||||
mListViewModels.addAll(getListViewModelPerPosizione(mDataset, mtbColrs));
|
||||
|
||||
}
|
||||
|
||||
public List<List<PickingObjectDTOOld>> getPickingListRaggruppataPerPosizione(List<PickingObjectDTOOld> mPickingList, boolean forceHiddenCheck){
|
||||
|
||||
|
||||
for(int i = 0; i < mPickingList.size(); i++) {
|
||||
if(mPickingList.get(i).isHidden() == null || forceHiddenCheck) {
|
||||
PickingObjectDTOOld tmpItem = mPickingList.get(i);
|
||||
|
||||
tmpItem.setDeactivated(tmpItem.getQtaCollo() == null || tmpItem.getQtaCollo().floatValue() == 0);
|
||||
tmpItem.setHidden(false);
|
||||
tmpItem.setTempHidden(false);
|
||||
}
|
||||
}
|
||||
|
||||
List<String> listOfKnownPositions = Stream.of(mPickingList)
|
||||
.filter(x -> !x.isDeactivated())
|
||||
.map(PickingObjectDTOOld::getPosizione)
|
||||
.distinctBy(x -> x)
|
||||
.withoutNulls()
|
||||
.sortBy(x -> x)
|
||||
.toList();
|
||||
|
||||
|
||||
listOfKnownPositions.add(null);
|
||||
|
||||
|
||||
List<List<PickingObjectDTOOld>> groupedRighe = new ArrayList<>();
|
||||
for (String position : listOfKnownPositions) {
|
||||
|
||||
List<PickingObjectDTOOld> tmpList = Stream.of(mPickingList)
|
||||
.filter(x -> !x.isDeactivated() && (x.getPosizione() == null && position == null) ||
|
||||
(x.getPosizione() != null && x.getPosizione().equalsIgnoreCase(position))).toList();
|
||||
|
||||
for(int i = 0; i < tmpList.size(); i++){
|
||||
if(tmpList.get(i).isHidden() == null || forceHiddenCheck) {
|
||||
PickingObjectDTOOld tmpItem = tmpList.get(i);
|
||||
|
||||
tmpItem.setHidden(tmpItem.getQtaCollo().compareTo(BigDecimal.ZERO) <= 0 || (!tmpItem.getMtbAart().isFlagQtaCnfFissaBoolean() && tmpItem.getNumCnfCollo().compareTo(BigDecimal.ZERO) <= 0));
|
||||
tmpItem.setTempHidden(false);
|
||||
}
|
||||
}
|
||||
|
||||
if(tmpList.size() > 0){
|
||||
groupedRighe.add(tmpList);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
List<PickingObjectDTOOld> deactivatedItems = Stream.of(mPickingList)
|
||||
.filter(PickingObjectDTOOld::isDeactivated)
|
||||
.toList();
|
||||
|
||||
if(deactivatedItems.size() > 0) groupedRighe.add(deactivatedItems);
|
||||
|
||||
return groupedRighe;
|
||||
}
|
||||
|
||||
|
||||
public List<VenditaOrdineInevasoListViewModel> getListViewModelPerPosizione(List<List<PickingObjectDTOOld>> groupedRighe, List<MtbColr> mtbColrs) {
|
||||
|
||||
ICustomConfiguration customConfiguration = ClassRouter.getInstance(ClassRouter.PATH.CUSTOM_CONFIGURATION);
|
||||
|
||||
List<VenditaOrdineInevasoListViewModel> listModel = new ArrayList<>();
|
||||
|
||||
for(int i = 0; i < groupedRighe.size(); i++) {
|
||||
List<PickingObjectDTOOld> currentGroup = groupedRighe.get(i);
|
||||
|
||||
VenditaOrdineInevasoListViewModel itemModel = new VenditaOrdineInevasoListViewModel();
|
||||
|
||||
|
||||
String posizioneString = "";
|
||||
if(currentGroup.get(0).isDeactivated()) {
|
||||
posizioneString = mContext.getResources().getText(R.string.picking_not_available).toString();
|
||||
} else {
|
||||
posizioneString = mContext.getResources().getText(R.string.position_text) + ": " + (UtilityString.isNullOrEmpty(currentGroup.get(0).getPosizione()) ? "N.A." : currentGroup.get(0).getPosizione());
|
||||
}
|
||||
|
||||
|
||||
itemModel.descrizioneGroup = posizioneString;
|
||||
itemModel.rows = new ArrayList<>();
|
||||
|
||||
for(int k = 0; k < currentGroup.size(); k++) {
|
||||
final PickingObjectDTOOld currentItem = currentGroup.get(k);
|
||||
final VenditaOrdineInevasoListViewModel.SubItem rowModel = new VenditaOrdineInevasoListViewModel.SubItem();
|
||||
|
||||
String badge1 = "";
|
||||
|
||||
if(customConfiguration.getConfig(BaseCustomConfiguration.Keys.FLAG_SHOW_COD_FORN_IN_SPEDIZIONE)) {
|
||||
badge1 += !UtilityString.isNullOrEmpty(currentItem.getCodAlis()) ? (currentItem.getCodAlis() + " - ") : "";
|
||||
badge1 += (!UtilityString.isNullOrEmpty(currentItem.getCodArtFor()) ? currentItem.getCodArtFor() : currentItem.getCodMart());
|
||||
} else {
|
||||
badge1 += currentItem.getCodMart();
|
||||
}
|
||||
|
||||
rowModel.setBadge1(badge1);
|
||||
|
||||
rowModel.setBadge2(UtilityString.isNullOrEmpty(currentItem.getCodJcom()) ? null : currentItem.getCodJcom());
|
||||
|
||||
rowModel.setDescrizione(currentItem.getDescrizioneEstesa());
|
||||
|
||||
if(!UtilityString.isNullOrEmpty(currentItem.getPartitaMag())) {
|
||||
rowModel.setSubDescrizione1(String.format(mContext.getResources().getText(R.string.batch_lot_text).toString(), currentItem.getPartitaMag()));
|
||||
}
|
||||
|
||||
if(currentItem.getNumCollo() != null) {
|
||||
rowModel.setSubDescrizione2(String.format(mContext.getResources().getText(R.string.lu_number_data_text).toString(), currentItem.getNumCollo(), currentItem.getDataColloHuman()));
|
||||
}
|
||||
|
||||
BigDecimal currentQtaColEvasa = BigDecimal.ZERO;
|
||||
BigDecimal currentNumCnfColEvasa = BigDecimal.ZERO;
|
||||
|
||||
if(currentItem.getWithdrawRows() != null) {
|
||||
for (MtbColr mtbColr : currentItem.getWithdrawRows()) {
|
||||
currentQtaColEvasa = currentQtaColEvasa.add(mtbColr.getQtaCol());
|
||||
currentNumCnfColEvasa = currentNumCnfColEvasa.add(mtbColr.getNumCnf());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(!SettingsManager.iDB().isFlagForceAllToColli() && (currentItem.getMtbAart() == null || currentItem.getMtbAart().isFlagQtaCnfFissaBoolean())){
|
||||
rowModel.setQtaOrdinata(currentItem.getNumCollo() != null ? currentItem.getQtaCollo() : currentItem.getQtaOrd());
|
||||
rowModel.setQtaRiservata(currentQtaColEvasa);
|
||||
|
||||
if(currentItem.getMtbAart() != null) {
|
||||
rowModel.setUntMis(currentItem.getMtbAart().getUntMis());
|
||||
}
|
||||
} else {
|
||||
rowModel.setUntMis("col");
|
||||
rowModel.setQtaOrdinata(currentItem.getNumCollo() != null ? currentItem.getNumCnfCollo() : currentItem.getNumCnfOrd());
|
||||
rowModel.setQtaRiservata(currentNumCnfColEvasa);
|
||||
}
|
||||
|
||||
|
||||
rowModel.setOriginalModel(currentItem);
|
||||
|
||||
itemModel.rows.add(rowModel);
|
||||
}
|
||||
listModel.add(itemModel);
|
||||
}
|
||||
|
||||
return listModel;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
@ -1,116 +0,0 @@
|
||||
package it.integry.integrywmsnative.gest.spedizione.dto;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.gest.vendita.dto.PickingObjectDTOOld;
|
||||
|
||||
public class VenditaOrdineInevasoListViewModel {
|
||||
public String descrizioneGroup;
|
||||
public List<SubItem> rows;
|
||||
|
||||
public boolean isHidden(){
|
||||
if(rows == null || rows.size() == 0) return true;
|
||||
return Stream.of(rows).filter(x -> (x.originalModel.isHidden() != null && !x.originalModel.isHidden()) &&
|
||||
(x.originalModel.isTempHidden() != null && !x.originalModel.isTempHidden())).count() == 0;
|
||||
}
|
||||
|
||||
public static class SubItem {
|
||||
|
||||
private String badge1;
|
||||
private String badge2;
|
||||
|
||||
private String descrizione;
|
||||
private String subDescrizione1;
|
||||
private String subDescrizione2;
|
||||
private BigDecimal qtaRiservata;
|
||||
private BigDecimal qtaOrdinata;
|
||||
private String untMis;
|
||||
|
||||
private PickingObjectDTOOld originalModel;
|
||||
|
||||
public String getBadge1() {
|
||||
return badge1;
|
||||
}
|
||||
|
||||
public SubItem setBadge1(String badge1) {
|
||||
this.badge1 = badge1;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getBadge2() {
|
||||
return badge2;
|
||||
}
|
||||
|
||||
public SubItem setBadge2(String badge2) {
|
||||
this.badge2 = badge2;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDescrizione() {
|
||||
return descrizione;
|
||||
}
|
||||
|
||||
public SubItem setDescrizione(String descrizione) {
|
||||
this.descrizione = descrizione;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getSubDescrizione1() {
|
||||
return subDescrizione1;
|
||||
}
|
||||
|
||||
public SubItem setSubDescrizione1(String subDescrizione1) {
|
||||
this.subDescrizione1 = subDescrizione1;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getSubDescrizione2() {
|
||||
return subDescrizione2;
|
||||
}
|
||||
|
||||
public SubItem setSubDescrizione2(String subDescrizione2) {
|
||||
this.subDescrizione2 = subDescrizione2;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getQtaRiservata() {
|
||||
return qtaRiservata == null ? BigDecimal.ZERO : qtaRiservata;
|
||||
}
|
||||
|
||||
public SubItem setQtaRiservata(BigDecimal qtaRiservata) {
|
||||
this.qtaRiservata = qtaRiservata;
|
||||
return this;
|
||||
}
|
||||
|
||||
public BigDecimal getQtaOrdinata() {
|
||||
return qtaOrdinata == null ? BigDecimal.ZERO : qtaOrdinata;
|
||||
}
|
||||
|
||||
public SubItem setQtaOrdinata(BigDecimal qtaOrdinata) {
|
||||
this.qtaOrdinata = qtaOrdinata;
|
||||
return this;
|
||||
}
|
||||
|
||||
public PickingObjectDTOOld getOriginalModel() {
|
||||
return originalModel;
|
||||
}
|
||||
|
||||
public SubItem setOriginalModel(PickingObjectDTOOld originalModel) {
|
||||
this.originalModel = originalModel;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getUntMis() {
|
||||
return untMis;
|
||||
}
|
||||
|
||||
public SubItem setUntMis(String untMis) {
|
||||
this.untMis = untMis;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,4 +0,0 @@
|
||||
package it.integry.integrywmsnative.gest.spedizione.rest;
|
||||
|
||||
public interface OrdineVenditaInevasoRESTConsumerService {
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@ -69,11 +69,11 @@ public class VersamentoMerceViewModel {
|
||||
|
||||
public void openLU() {
|
||||
DialogScanOrCreateLU.make(mContext, true, false, true, false, (mtbColt, created) -> {
|
||||
if(mtbColt == null) {
|
||||
((IPoppableActivity)mContext).pop();
|
||||
} else if((mtbColt.getGestioneEnum() == GestioneEnum.ACQUISTO || mtbColt.getGestioneEnum() == GestioneEnum.LAVORAZIONE) && mtbColt.getSegno().equals(+1)){
|
||||
if (mtbColt == null) {
|
||||
((IPoppableActivity) mContext).pop();
|
||||
} else if ((mtbColt.getGestioneEnum() == GestioneEnum.ACQUISTO || mtbColt.getGestioneEnum() == GestioneEnum.LAVORAZIONE) && mtbColt.getSegno().equals(+1)) {
|
||||
setMtbColt(mtbColt);
|
||||
} else if(mtbColt.getGestioneEnum() == GestioneEnum.VENDITA && mtbColt.getSegno().equals(+1)){
|
||||
} else if (mtbColt.getGestioneEnum() == GestioneEnum.VENDITA) {
|
||||
setMtbColt(mtbColt);
|
||||
} else {
|
||||
DialogSimpleMessageHelper.makeWarningDialog(mContext,
|
||||
@ -98,14 +98,14 @@ public class VersamentoMerceViewModel {
|
||||
|
||||
Dialog progressDialog = UtilityProgress.createDefaultProgressDialog(mContext);
|
||||
|
||||
if(UtilityBarcode.isEtichettaPosizione(data)){
|
||||
if (UtilityBarcode.isEtichettaPosizione(data)) {
|
||||
progressDialog.show();
|
||||
this.executeEtichettaPosizione(data, progressDialog);
|
||||
} else if(data.getType() == BarcodeType.EAN8 || data.getType() == BarcodeType.EAN13 || data.getType() == BarcodeType.UPCA){
|
||||
} else if (data.getType() == BarcodeType.EAN8 || data.getType() == BarcodeType.EAN13 || data.getType() == BarcodeType.UPCA) {
|
||||
//searchArtInt(data.getStringValue());
|
||||
} else if(UtilityBarcode.isEtichettaAnonima(data)) {
|
||||
this.executeEtichettaLU(data.getStringValue(), true, progressDialog);
|
||||
}else if(UtilityBarcode.isEtichetta128(data)) {
|
||||
} else if (UtilityBarcode.isEtichettaAnonima(data)) {
|
||||
this.executeEtichettaLU(data.getStringValue(), true, progressDialog);
|
||||
} else if (UtilityBarcode.isEtichetta128(data)) {
|
||||
this.executeEtichettaEan128(data, progressDialog);
|
||||
} else {
|
||||
BarcodeManager.enable();
|
||||
@ -119,11 +119,11 @@ public class VersamentoMerceViewModel {
|
||||
.filter(x -> x.getPosizione().equalsIgnoreCase(barcodeScanDTO.getStringValue()))
|
||||
.single();
|
||||
|
||||
if(foundPosizione.isFlagMonoCollo()) {
|
||||
if (foundPosizione.isFlagMonoCollo()) {
|
||||
|
||||
PosizioniRESTConsumer.getBancaliInPosizione(foundPosizione, mtbColtList -> {
|
||||
|
||||
if(mtbColtList == null || mtbColtList.size() == 0){
|
||||
if (mtbColtList == null || mtbColtList.size() == 0) {
|
||||
progressDialog.dismiss();
|
||||
BarcodeManager.enable();
|
||||
DialogCommon.showNoULFound(mContext, null);
|
||||
@ -133,7 +133,7 @@ public class VersamentoMerceViewModel {
|
||||
//TAKE HERE
|
||||
pickMerceULtoUL(mtbColt, progressDialog);
|
||||
|
||||
}, ex -> {
|
||||
}, ex -> {
|
||||
UtilityExceptions.defaultException(mContext, ex, progressDialog);
|
||||
BarcodeManager.enable();
|
||||
});
|
||||
@ -153,14 +153,15 @@ public class VersamentoMerceViewModel {
|
||||
|
||||
String barcodeProd = null;
|
||||
|
||||
if(!UtilityString.isNullOrEmpty(ean128Model.Sscc)) barcodeProd = ean128Model.Sscc;
|
||||
if(!UtilityString.isNullOrEmpty(ean128Model.Gtin)) barcodeProd = ean128Model.Gtin;
|
||||
if(!UtilityString.isNullOrEmpty(ean128Model.Content)) barcodeProd = ean128Model.Content;
|
||||
if (!UtilityString.isNullOrEmpty(ean128Model.Sscc)) barcodeProd = ean128Model.Sscc;
|
||||
if (!UtilityString.isNullOrEmpty(ean128Model.Gtin)) barcodeProd = ean128Model.Gtin;
|
||||
if (!UtilityString.isNullOrEmpty(ean128Model.Content))
|
||||
barcodeProd = ean128Model.Content;
|
||||
|
||||
|
||||
if(!UtilityString.isNullOrEmpty(barcodeProd)) {
|
||||
if (!UtilityString.isNullOrEmpty(barcodeProd)) {
|
||||
|
||||
if(!UtilityString.isNullOrEmpty(ean128Model.Sscc)){
|
||||
if (!UtilityString.isNullOrEmpty(ean128Model.Sscc)) {
|
||||
this.executeEtichettaLU(ean128Model.Sscc, false, progressDialog);
|
||||
} else {
|
||||
DialogCommon.showNoULFound(mContext, null);
|
||||
@ -174,19 +175,17 @@ public class VersamentoMerceViewModel {
|
||||
progressDialog.dismiss();
|
||||
BarcodeManager.enable();
|
||||
}
|
||||
}, ex-> {
|
||||
}, ex -> {
|
||||
UtilityExceptions.defaultException(mContext, ex, progressDialog);
|
||||
BarcodeManager.enable();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
private void executeEtichettaLU(String sscc, boolean isAnonima, Dialog progressDialog) {
|
||||
ColliMagazzinoRESTConsumer.getBySSCCStatic(sscc, true, false, mtbColt -> {
|
||||
|
||||
if(mtbColt == null && !isAnonima) {
|
||||
if (mtbColt == null && !isAnonima) {
|
||||
DialogCommon.showNoULFound(mContext, null);
|
||||
BarcodeManager.enable();
|
||||
progressDialog.dismiss();
|
||||
@ -194,8 +193,8 @@ public class VersamentoMerceViewModel {
|
||||
showWrongGestioneUL();
|
||||
BarcodeManager.enable();
|
||||
progressDialog.dismiss();
|
||||
} else {
|
||||
if(mtbColt == null && isAnonima) {
|
||||
} else {
|
||||
if (mtbColt == null && isAnonima) {
|
||||
ColliMagazzinoRESTConsumer.createColloFromEtichettaAnonima(sscc, GestioneEnum.LAVORAZIONE, mtbColtAnonimo -> {
|
||||
pickMerceULtoUL(mtbColtAnonimo, progressDialog);
|
||||
}, ex -> {
|
||||
@ -206,12 +205,10 @@ public class VersamentoMerceViewModel {
|
||||
} else {
|
||||
pickMerceULtoUL(mtbColt, progressDialog);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}, ex -> {
|
||||
}, ex -> {
|
||||
UtilityExceptions.defaultException(mContext, ex, progressDialog);
|
||||
BarcodeManager.enable();
|
||||
});
|
||||
@ -219,10 +216,10 @@ public class VersamentoMerceViewModel {
|
||||
|
||||
private void updatePosizione(MtbDepoPosizione mtbDepoPosizione, boolean shouldAskLivello, Dialog progressDialog) {
|
||||
|
||||
if(shouldAskLivello) {
|
||||
if (shouldAskLivello) {
|
||||
DialogAskLivelloPosizione.make(mContext, mtbDepoPosizione, false, newPosizione -> {
|
||||
|
||||
if(newPosizione == null) {
|
||||
if (newPosizione == null) {
|
||||
updatePosizione(mtbDepoPosizione, shouldAskLivello, progressDialog);
|
||||
} else {
|
||||
updatePosizione(newPosizione, false, progressDialog);
|
||||
@ -263,22 +260,22 @@ public class VersamentoMerceViewModel {
|
||||
askQuantities(pickedAarts.iterator(), destNewMtbColr, () -> {
|
||||
BarcodeManager.enable();
|
||||
|
||||
if(destNewMtbColr != null && destNewMtbColr.size() > 0){
|
||||
if (destNewMtbColr != null && destNewMtbColr.size() > 0) {
|
||||
MtbColt clonedSourceTestata = (MtbColt) sourceMtbColt.clone();
|
||||
MtbColt clonedDestTestata = (MtbColt) destMtbColt.clone();
|
||||
|
||||
ObservableArrayList<MtbColr> mtbColrSourceObservableField = new ObservableArrayList<>();
|
||||
ObservableArrayList<MtbColr> mtbColrDestObservableField = new ObservableArrayList<>();
|
||||
|
||||
for(int i = 0; i < destNewMtbColr.size(); i++) {
|
||||
for (int i = 0; i < destNewMtbColr.size(); i++) {
|
||||
MtbColr cloneMtbColr = (MtbColr) destNewMtbColr.get(i).clone();
|
||||
|
||||
boolean destroyMtbColrReferences = false;
|
||||
|
||||
//Se le gestioni sono uguali faccio uno storno sulla sorgente e non lavoro con
|
||||
//i riferimenti
|
||||
if(sourceMtbColt.getGestioneEnum() == destMtbColt.getGestioneEnum() &&
|
||||
(/*sourceMtbColt.getGestioneEnum() == GestioneEnum.ACQUISTO ||*/ sourceMtbColt.getGestioneEnum() == GestioneEnum.VENDITA)){
|
||||
if ((sourceMtbColt.getGestioneEnum() == destMtbColt.getGestioneEnum() && sourceMtbColt.getGestioneEnum() == GestioneEnum.VENDITA) ||
|
||||
(sourceMtbColt.getGestioneEnum() == GestioneEnum.VENDITA && sourceMtbColt.getSegno() == -1 && destMtbColt.getGestioneEnum() == GestioneEnum.LAVORAZIONE)) {
|
||||
destroyMtbColrReferences = true;
|
||||
|
||||
MtbColr stornoSourceMtbColr = (MtbColr) destNewMtbColr.get(i).clone();
|
||||
@ -300,7 +297,7 @@ public class VersamentoMerceViewModel {
|
||||
mtbColrSourceObservableField.add(stornoSourceMtbColr);
|
||||
}
|
||||
|
||||
if(!destroyMtbColrReferences) {
|
||||
if (!destroyMtbColrReferences) {
|
||||
cloneMtbColr
|
||||
.setGestioneRif(cloneMtbColr.getGestione())
|
||||
.setSerColloRif(cloneMtbColr.getSerCollo())
|
||||
@ -308,7 +305,7 @@ public class VersamentoMerceViewModel {
|
||||
.setDataColloRif(cloneMtbColr.getDataColloS());
|
||||
}
|
||||
|
||||
if(sourceMtbColt.getGestioneEnum() == GestioneEnum.VENDITA && sourceMtbColt.getSegno() == +1){
|
||||
if (sourceMtbColt.getGestioneEnum() == GestioneEnum.VENDITA && sourceMtbColt.getSegno() == +1) {
|
||||
cloneMtbColr.setCodJcom(null);
|
||||
}
|
||||
|
||||
@ -342,9 +339,9 @@ public class VersamentoMerceViewModel {
|
||||
}
|
||||
|
||||
|
||||
private void askQuantities(Iterator<MtbColr> sourceMtbColrs, List<MtbColr> destMtbColr, Runnable onComplete, Runnable onAbort){
|
||||
private void askQuantities(Iterator<MtbColr> sourceMtbColrs, List<MtbColr> destMtbColr, Runnable onComplete, Runnable onAbort) {
|
||||
|
||||
if(sourceMtbColrs.hasNext()){
|
||||
if (sourceMtbColrs.hasNext()) {
|
||||
|
||||
askSingleQuantity(sourceMtbColrs.next(), mtbColr -> {
|
||||
|
||||
@ -383,6 +380,16 @@ public class VersamentoMerceViewModel {
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void askULVenditaConfirm(RunnableArgs<Boolean> callback) {
|
||||
DialogSimpleMessageHelper.makeWarningDialog(
|
||||
mContext,
|
||||
new SpannableString(mContext.getResources().getString(R.string.lu_gest_v_loading_alert)),
|
||||
null,
|
||||
() -> callback.run(true),
|
||||
() -> callback.run(false)).show();
|
||||
}
|
||||
|
||||
private void showWrongGestioneUL() {
|
||||
DialogSimpleMessageHelper.makeWarningDialog(mContext,
|
||||
new SpannableString(Html.fromHtml(mContext.getResources().getText(R.string.gestione_V_not_accepted_message).toString())),
|
||||
@ -391,18 +398,13 @@ public class VersamentoMerceViewModel {
|
||||
|
||||
|
||||
|
||||
/* private void createNewLU(RunnableArgs<MtbColt> onComplete ,RunnableArgs<Exception> onFailed) {
|
||||
ColliMagazzinoRESTConsumer.createColloLavorazione(+1, onComplete, onFailed);
|
||||
}
|
||||
*/
|
||||
|
||||
private void saveLUs(MtbColt mtbColt1, MtbColt mtbColt2) {
|
||||
|
||||
ArrayList<MtbColt> mtbColts = new ArrayList<>();
|
||||
mtbColts.add(mtbColt1);
|
||||
mtbColts.add(mtbColt2);
|
||||
|
||||
for(MtbColt mtbColt : mtbColts) {
|
||||
for (MtbColt mtbColt : mtbColts) {
|
||||
mtbColt.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE);
|
||||
|
||||
for (int i = 0; i < mtbColt.getMtbColr().size(); i++) {
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -1,297 +0,0 @@
|
||||
<layout xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<data>
|
||||
<import type="android.view.View" />
|
||||
<import type="it.integry.integrywmsnative.BuildConfig" />
|
||||
|
||||
<variable
|
||||
name="viewmodel"
|
||||
type="it.integry.integrywmsnative.gest.spedizione.viewmodel.VenditaOrdineInevasoViewModel"/>
|
||||
|
||||
</data>
|
||||
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:fitsSystemWindows="false"
|
||||
xmlns:fab="http://schemas.android.com/apk/res-auto"
|
||||
android:background="@color/full_white"
|
||||
android:layout_gravity="top">
|
||||
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_above="@id/empty_space_padding">
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:id="@+id/appbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="?attr/actionBarSize"
|
||||
android:background="@color/full_white">
|
||||
|
||||
<androidx.appcompat.widget.Toolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
app:layout_collapseMode="pin"
|
||||
android:layout_width="match_parent"
|
||||
style="@style/AppTheme.NewMaterial.Text">
|
||||
|
||||
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageButton
|
||||
android:id="@+id/add_extra_items_toolbar"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="50dp"
|
||||
android:layout_gravity="end"
|
||||
android:background="@drawable/ripple_effect"
|
||||
android:adjustViewBounds="true"
|
||||
android:src="@drawable/ic_add_24dp"
|
||||
app:visibility="@{viewmodel.shouldShowAddExtraItems}"
|
||||
android:tint="@color/colorPrimaryGray"/>
|
||||
|
||||
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageButton
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="50dp"
|
||||
android:layout_gravity="end"
|
||||
android:background="@drawable/ripple_effect"
|
||||
android:adjustViewBounds="true"
|
||||
android:src="@drawable/ic_black_barcode"
|
||||
android:visibility="@{BuildConfig.DEBUG ? View.VISIBLE : View.GONE}"
|
||||
android:onClick="@{() -> viewmodel.manualSearch()}"
|
||||
android:tint="@color/colorPrimaryGray"/>
|
||||
|
||||
</androidx.appcompat.widget.Toolbar>
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
||||
|
||||
<net.cachapa.expandablelayout.ExpandableLayout
|
||||
android:id="@+id/filtered_arts_in_list_expandable_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:el_duration="400"
|
||||
app:el_expanded="false">
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="12dp"
|
||||
android:paddingBottom="12dp"
|
||||
android:paddingLeft="8dp"
|
||||
android:paddingRight="8dp">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_toLeftOf="@+id/remove_art_filter_list"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="14sp"
|
||||
android:text="@string/filtered_arts_in_list" />
|
||||
<TextView
|
||||
android:id="@+id/description_filter_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@android:color/black"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
tools:text="COD_ART_HERE"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/remove_art_filter_list"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/Button.DangerOutline"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:text="@string/remove_filter_button"
|
||||
android:onClick="@{() -> viewmodel.removeListFilter()}"
|
||||
app:strokeColor="@color/red_600"/>
|
||||
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
</net.cachapa.expandablelayout.ExpandableLayout>
|
||||
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/vendita_ordine_main_list"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:scrollbars="vertical"
|
||||
android:clipToPadding="false"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/vendita_ordine_inevaso_empty_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:alpha="0.3"
|
||||
tools:context=".gest.lista_bancali.ListaBancaliActivity">
|
||||
|
||||
<androidx.constraintlayout.widget.Guideline
|
||||
android:id="@+id/guideline_empty_top"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
app:layout_constraintGuide_percent="0.2" />
|
||||
|
||||
<androidx.constraintlayout.widget.Guideline
|
||||
android:id="@+id/guideline_empty_left"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintGuide_percent="0.15" />
|
||||
|
||||
<androidx.constraintlayout.widget.Guideline
|
||||
android:id="@+id/guideline_empty_right"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintGuide_percent="0.85" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:gravity="center_horizontal"
|
||||
app:layout_constraintStart_toEndOf="@id/guideline_empty_left"
|
||||
app:layout_constraintEnd_toStartOf="@id/guideline_empty_right"
|
||||
app:layout_constraintTop_toTopOf="@id/guideline_empty_top">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:layout_width="72dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@drawable/ic_playlist_add_check_24dp"
|
||||
android:adjustViewBounds="true"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_horizontal"
|
||||
android:textColor="@android:color/black"
|
||||
android:textSize="18sp"
|
||||
android:text="@string/no_item_to_pick_text"/>
|
||||
</LinearLayout>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<com.github.clans.fab.FloatingActionMenu
|
||||
android:id="@+id/vendita_ordine_inevaso_fab"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:visibility="@{viewmodel.isFabVisible ? View.VISIBLE : View.GONE}"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
||||
fab:menu_animationDelayPerItem="50"
|
||||
fab:menu_backgroundColor="@color/white_bg_alpha"
|
||||
fab:menu_buttonSpacing="0dp"
|
||||
fab:menu_colorNormal="@color/colorSecondary"
|
||||
fab:menu_colorPressed="@color/colorSecondaryDark"
|
||||
fab:menu_fab_size="normal"
|
||||
fab:menu_labels_colorNormal="@color/white"
|
||||
fab:menu_labels_colorPressed="@color/white_pressed"
|
||||
fab:menu_labels_colorRipple="#66FFFFFF"
|
||||
fab:menu_labels_cornerRadius="3dp"
|
||||
fab:menu_labels_hideAnimation="@anim/fab_slide_out_to_right"
|
||||
fab:menu_labels_margin="0dp"
|
||||
fab:menu_labels_padding="8dp"
|
||||
fab:menu_labels_paddingBottom="4dp"
|
||||
fab:menu_labels_paddingLeft="8dp"
|
||||
fab:menu_labels_paddingRight="8dp"
|
||||
fab:menu_labels_paddingTop="4dp"
|
||||
fab:menu_labels_position="left"
|
||||
fab:menu_labels_showAnimation="@anim/fab_slide_in_from_right"
|
||||
fab:menu_labels_showShadow="true"
|
||||
fab:menu_labels_textColor="@color/black_semi_transparent"
|
||||
fab:menu_labels_textSize="18sp"
|
||||
fab:menu_openDirection="up"
|
||||
fab:menu_shadowColor="#66000000"
|
||||
fab:menu_shadowRadius="4dp"
|
||||
fab:menu_shadowXOffset="1dp"
|
||||
fab:menu_shadowYOffset="3dp"
|
||||
fab:menu_showShadow="true">
|
||||
|
||||
<com.github.clans.fab.FloatingActionButton
|
||||
android:id="@+id/vendita_ordine_inevaso_fab_item1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@drawable/ic_box"
|
||||
app:fab_colorNormal="@color/white"
|
||||
app:fab_colorPressed="@color/white_pressed"
|
||||
app:fab_colorRipple="#66FFFFFF"
|
||||
app:onClick="@{() -> viewmodel.showCreatedUL()}"
|
||||
fab:fab_label="@string/action_show_created_ul" />
|
||||
|
||||
<com.github.clans.fab.FloatingActionButton
|
||||
android:id="@+id/vendita_ordine_inevaso_fab_item2"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@drawable/ic_add_24dp"
|
||||
app:fab_colorNormal="@color/white"
|
||||
app:fab_colorPressed="@color/white_pressed"
|
||||
app:fab_colorRipple="#66FFFFFF"
|
||||
app:onClick="@{() -> viewmodel.createNewUL()}"
|
||||
fab:fab_label="@string/action_create_ul" />
|
||||
|
||||
</com.github.clans.fab.FloatingActionMenu>
|
||||
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/empty_space_padding"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
android:visibility="@{!viewmodel.isFabVisible ? View.VISIBLE : View.GONE}"
|
||||
android:layout_alignParentBottom="true">
|
||||
|
||||
</RelativeLayout>
|
||||
</RelativeLayout>
|
||||
|
||||
|
||||
<View
|
||||
android:id="@+id/shadow"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="16dp"
|
||||
android:background="@drawable/shape_gradient_top_shadow"
|
||||
android:visibility="@{!viewmodel.isFabVisible ? View.VISIBLE : View.GONE}"
|
||||
app:layout_anchor="@id/bottom_sheet_include" />
|
||||
|
||||
<include
|
||||
android:id="@+id/bottom_sheet_include"
|
||||
layout="@layout/fragment_articoli_in_collo_bottom_sheet"
|
||||
android:visibility="@{!viewmodel.isFabVisible ? View.VISIBLE : View.GONE}" />
|
||||
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||
|
||||
</layout>
|
||||
@ -58,6 +58,7 @@
|
||||
<string name="dialog_message_additional_notes">Inserisci eventuali note aggiuntive della tua UL</string>
|
||||
<string name="lu_scan_not_granted_here">Non è possibile scansionare il barcode di una UL adesso</string>
|
||||
<string name="lu_already_attache_to_doc">L\'UL selezionata è già agganciata ad un documento per cui non può essere utilizzata</string>
|
||||
<string name="lu_gest_v_loading_alert">Stai caricando una UL di <b>vendita</b>. Sei sicuro di voler continuare?</string>
|
||||
|
||||
<string name="warehouse">Magazzino</string>
|
||||
|
||||
|
||||
@ -235,6 +235,7 @@
|
||||
<string name="error_multiple_cod_jfas_ordp">The <b>production line</b> will not be saved because you are selecting orders for different productions</string>
|
||||
<string name="lu_scan_not_granted_here">Logistics Unit\'s barcode is not accepted at this moment</string>
|
||||
<string name="lu_already_attache_to_doc">Selected LU is already attached to a document hence can\'t be opened</string>
|
||||
<string name="lu_gest_v_loading_alert">You are loading a <b>sales</b> logistics unit. Are you sure you want to continue?</string>
|
||||
|
||||
<string name="recovering_data">Recovering data</string>
|
||||
<string name="wait_a_moment">Wait a moment</string>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user