Commit 419a3da6 authored by 姜敏's avatar 姜敏

Merge remote-tracking branch 'origin/master'

parents 4f1e4bea 79d651a8
......@@ -2,8 +2,9 @@
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/TangKuPos.iml" filepath="$PROJECT_DIR$/.idea/TangKuPos.iml" />
<module fileurl="file://$PROJECT_DIR$/TangKuPos.iml" filepath="$PROJECT_DIR$/TangKuPos.iml" />
<module fileurl="file://C:\Users\JM_DEV\AndroidStudioProjects\TangKuPos\TangKuPos.iml" filepath="C:\Users\JM_DEV\AndroidStudioProjects\TangKuPos\TangKuPos.iml" />
<module fileurl="file://D:\Work\Android\AndroidProject\XingData\TangKuPos\.idea\TangKuPos.iml" filepath="D:\Work\Android\AndroidProject\XingData\TangKuPos\.idea\TangKuPos.iml" />
<module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" />
</modules>
</component>
......
......@@ -294,7 +294,10 @@ public class C {
public final class SSKUGRP {
private static final String ROOT_URL = PKG + "sskugrp/";
public static final String add = ROOT_URL + "add";
public static final String query = ROOT_URL + "query";
public static final String delete = ROOT_URL + "delete";
public static final String update = ROOT_URL + "update";
}
public final class CSDETAIL {
......@@ -560,6 +563,7 @@ public class C {
public static final int GIFT = 4;
public static final int PKG = 5;
public static final int SKU_DETAIL = 6;
public static final int ADD_SKU = 7;
}
......
......@@ -10,7 +10,6 @@ import com.xingdata.zzdpos.db.DBFactory;
import com.xingdata.zzdpos.model.Category;
import com.xingdata.zzdpos.model.Gbound;
import com.xingdata.zzdpos.model.Mscard;
import com.xingdata.zzdpos.model.NewSssku;
import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Trule;
import com.xingdata.zzdpos.model.Ubound;
......@@ -667,7 +666,7 @@ public final class ApiFactory {
.retryWhen(new RetryHelper(3));
}
public static Observable<com.xingdata.zzdpos.model.Sssku> update(NewSssku sssku) {
public static Observable<com.xingdata.zzdpos.model.Sssku> update(com.xingdata.zzdpos.model.Sssku sssku) {
return Api.getInstance().service.updateSssku(sssku)
.onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>())
......@@ -676,7 +675,7 @@ public final class ApiFactory {
.retryWhen(new RetryHelper(3));
}
public static Observable<com.xingdata.zzdpos.model.Sssku> addSssku(NewSssku sssku) {
public static Observable<com.xingdata.zzdpos.model.Sssku> addSssku(com.xingdata.zzdpos.model.Sssku sssku) {
return Api.getInstance().service.addSssku(sssku)
.onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>())
......@@ -932,6 +931,33 @@ public final class ApiFactory {
.observeOn(AndroidSchedulers.mainThread())
.retryWhen(new RetryHelper(3));
}
public static Observable<String> add(com.xingdata.zzdpos.model.Sskugrp sskugrp) {
return Api.getInstance().service.addSskugrp(sskugrp)
.onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.retryWhen(new RetryHelper(3));
}
public static Observable<String> update(com.xingdata.zzdpos.model.Sskugrp sskugrp) {
return Api.getInstance().service.updateSskugrp(sskugrp)
.onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.retryWhen(new RetryHelper(3));
}
public static Observable<String> delete(Long skuGrpId) {
return Api.getInstance().service.deleteSskugrp(skuGrpId)
.onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.retryWhen(new RetryHelper(3));
}
}
public static class User {
......
......@@ -11,7 +11,6 @@ import com.xingdata.zzdpos.model.Gbound;
import com.xingdata.zzdpos.model.Level;
import com.xingdata.zzdpos.model.Ms;
import com.xingdata.zzdpos.model.Mscard;
import com.xingdata.zzdpos.model.NewSssku;
import com.xingdata.zzdpos.model.Notice;
import com.xingdata.zzdpos.model.Oper;
import com.xingdata.zzdpos.model.Ossku;
......@@ -197,7 +196,7 @@ interface ApiService {
("pageSize") int pageSize);
@POST(C.URL.RCTRACE.query)
Observable<HttpMessage<Pager<VipRechargeOrder>>> queryRecharge(@Query("vipId") long vipId,@Query("pageNumber") int pageNum, @Query
Observable<HttpMessage<Pager<VipRechargeOrder>>> queryRecharge(@Query("vipId") long vipId, @Query("pageNumber") int pageNum, @Query
("pageSize") int pageSize);
@POST(C.URL.RCTRACE.query)
......@@ -361,6 +360,15 @@ interface ApiService {
@POST(C.URL.SSKUGRP.query)
Observable<HttpMessage<Pager<Sskugrp>>> querySskugrp();
@POST(C.URL.SSKUGRP.add)
Observable<HttpMessage<String>> addSskugrp(@Body Sskugrp sskugrp);
@POST(C.URL.SSKUGRP.update)
Observable<HttpMessage<String>> updateSskugrp(@Body Sskugrp sskugrp);
@POST(C.URL.SSKUGRP.delete)
Observable<HttpMessage<String>> deleteSskugrp(@Query("id") Long skuGrpId);
@POST(C.URL.MS.query)
Observable<HttpMessage<Pager<Ms>>> queryMs(@Query("pageNumber") int pageNumber,
@Query("pageSize") int pageSize,
......@@ -379,13 +387,13 @@ interface ApiService {
Observable<HttpMessage<List<Cor>>> queryAllCor();
@POST(C.URL.SSSKU.add)
Observable<HttpMessage<Sssku>> addSssku(@Body NewSssku sssku);
Observable<HttpMessage<Sssku>> addSssku(@Body Sssku sssku);
@POST(C.URL.SSSKU.detail)
Observable<HttpMessage<Sssku>> detailSssku(@Query("id") Long id);
@POST(C.URL.SSSKU.update)
Observable<HttpMessage<Sssku>> updateSssku(@Body NewSssku sssku);
Observable<HttpMessage<Sssku>> updateSssku(@Body Sssku sssku);
@POST(C.URL.LEVEL.add)
Observable<HttpMessage<Level>> addVipLevel(@Body Level l);
......
......@@ -5,6 +5,7 @@ import com.xingdata.api.print.entity.BaseOrderPrint;
import com.xingdata.zzdpos.db.DB;
import com.xingdata.zzdpos.ui.login.LoginPresenter;
import com.xingdata.zzdpos.ui.main.MainPresenter;
import com.xingdata.zzdpos.ui.marketing.ms.model.BaseBean;
import java.util.ArrayList;
import java.util.List;
......@@ -14,7 +15,7 @@ import java.util.List;
* 盘库记录类
*/
public class Cs implements BaseOrderPrint {
public class Cs implements BaseOrderPrint, com.xingdata.zzdpos.base.BaseBean {
/**
* channelMapId : 0
......
package com.xingdata.zzdpos.model;
import com.xingdata.api.print.entity.BaseGoodPrint;
import com.xingdata.zzdpos.base.BaseBean;
/**
* Created by Administrator on 2017/12/1.
*/
public class CsDetail implements BaseGoodPrint {
public class CsDetail implements BaseGoodPrint ,BaseBean{
/**
......
......@@ -11,7 +11,6 @@ import io.realm.annotations.PrimaryKey;
public class Sskugrp extends RealmObject implements BaseModel, BaseBean {
/**
* 创建默认分组
*
......@@ -116,4 +115,9 @@ public class Sskugrp extends RealmObject implements BaseModel, BaseBean {
public String getPrimaryKey() {
return "skuGrpId";
}
@Override
public String toString() {
return getSkuGrpName();
}
}
\ No newline at end of file
......@@ -42,6 +42,7 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
private List<ItemMenuBottomBinding> itemMenuBottomBindings = new ArrayList<>();
private HandoverDialog mHandoverDialog = new HandoverDialog();
LoadingDialog mLoadingDialog = new LoadingDialog();
@Override
public int getLayoutId() {
return R.layout.activity_main;
......@@ -49,7 +50,7 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
@Override
public void initView() {
mainActivity=this;
mainActivity = this;
mPresenter.initHandoverInfo();
List<BaseFragment> fragments = new ArrayList<>();
fragments.add(new CasherFragment());
......@@ -163,4 +164,9 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
public void showHandoverDialog() {
mHandoverDialog.show(this);
}
@Override
public void onBackPressedSupport() {
}
}
package com.xingdata.zzdpos.ui.manage.inventory;
import android.content.Intent;
import com.blankj.utilcode.util.ActivityUtils;
import com.blankj.utilcode.util.FragmentUtils;
import com.blankj.utilcode.util.KeyboardUtils;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseActivity;
......@@ -9,13 +11,15 @@ import com.xingdata.zzdpos.databinding.ActivityInventoryBinding;
import com.xingdata.zzdpos.model.Cs;
import com.xingdata.zzdpos.model.CsDetail;
import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Saleorder;
import com.xingdata.zzdpos.model.Sssku;
import com.xingdata.zzdpos.ui.dialog.LoadingDialog;
import com.xingdata.zzdpos.ui.manage.inventory.fragment.InventoryAddFragment;
import com.xingdata.zzdpos.ui.manage.inventory.fragment.InventoryFragment;
import com.xingdata.zzdpos.ui.manage.manageMenu.ManageDateFragment;
import com.xingdata.zzdpos.ui.statistics.fragment.StatisticsDateFragment;
import com.xingdata.zzdpos.ui.statistics.StatisticsDetailActivity;
import java.util.List;
......@@ -23,8 +27,7 @@ import java.util.List;
public class InventoryActivity extends BaseActivity<InventoryPresenter, ActivityInventoryBinding> implements InventoryContract.View {
private InventoryFragment mInventoryFragment = new InventoryFragment();
private ManageDateFragment mManageDateFragment = new ManageDateFragment();
private InventoryAddFragment mInventoryAddFragment = new InventoryAddFragment();
// private InventoryDetailDialog mInventoryDetailDialog = new InventoryDetailDialog();
private InventoryAddFragment mInventoryAddFragment;
LoadingDialog mLoadingDialog = new LoadingDialog();
@Override
......@@ -61,8 +64,9 @@ public class InventoryActivity extends BaseActivity<InventoryPresenter, Activity
@Override
public void showInventoryDetailDialog(Cs cs) {
// mInventoryDetailDialog.setData(cs).show(this);
Intent intent = new Intent(InventoryActivity.this, StatisticsDetailActivity.class);
intent.putExtra(Cs.class.getName(), cs);
ActivityUtils.startActivity(intent);
}
@Override
......@@ -82,10 +86,10 @@ public class InventoryActivity extends BaseActivity<InventoryPresenter, Activity
@Override
public void disInventoryDetailFragment(Boolean idChange) {
if (idChange) {
// mInventoryAddFragment.pop();
// mPresenter.refreshCs();
mInventoryAddFragment.pop();
mInventoryFragment.onRefresh();
} else {
// mInventoryAddFragment.pop();
mInventoryAddFragment.pop();
}
}
......@@ -103,6 +107,7 @@ public class InventoryActivity extends BaseActivity<InventoryPresenter, Activity
@Override
public void openInventoryAddFragment(Cs cs) {
mInventoryAddFragment = new InventoryAddFragment();
mInventoryAddFragment.setCs(cs);
start(mInventoryAddFragment);
}
......
......@@ -180,9 +180,14 @@ public class InventoryPresenter extends InventoryContract.Presenter {
ApiFactory.Cs.querCsList(pageNum, nowPageSize, start, end).doFinally(() -> mView.isShowLoading(false))
.subscribe(csPager -> {
//判断是否能加载更多
if (csPager.getList().size() == 0) {
ToastUtils.showShort("没有盘库记录");
} else {
mView.loadCs(csPager, start, end);
mView.setInventoryCount(com.blankj.utilcode.util.TimeUtils.millis2String(start, new SimpleDateFormat(StringUtil.defaultDatePattern)) + " ~ " +
com.blankj.utilcode.util.TimeUtils.millis2String(end, new SimpleDateFormat(StringUtil.defaultDatePattern)));
com.blankj.utilcode.util.TimeUtils.millis2String(end - 86400000L, new SimpleDateFormat(StringUtil.defaultDatePattern)));
}
}, throwable -> {
ToastUtils.showShort(throwable.getMessage());
......
......@@ -26,15 +26,10 @@ public class InventoryAdapter extends BaseAdapter<Cs, ItemInventoryBinding> {
@Override
protected void convert(ItemInventoryBinding mViewBinding, Cs item) {
Drawable drawable = mContext.getResources().getDrawable(R.mipmap.icon_time);
drawable.setBounds(0, 0, (int) mViewBinding.tvDate.getTextSize(), (int) mViewBinding.tvDate.getTextSize());
mViewBinding.tvDate.setCompoundDrawablesRelative(drawable, null, null, null);
mViewBinding.tvDate.setCompoundDrawablePadding(10);
mViewBinding.tvName.setText(item.getOperName());
mViewBinding.tvPhone.setText(item.getOper_mobile());
mViewBinding.tvDate.setText(TimeUtils.millis2String(item.getCreateTime()) + "");
mViewBinding.tvNum.setText(item.getCount() + "");
mViewBinding.tvNum.setText(item.getCsdetailCount() + "");
switch (item.getCsResultFlag()) {
case 0:
mViewBinding.tvResult.setText("相符");
......
......@@ -4,11 +4,8 @@ import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseAdapter;
import com.xingdata.zzdpos.base.BaseViewHolder;
import com.xingdata.zzdpos.databinding.ItemInventoryCartBinding;
import com.xingdata.zzdpos.databinding.ItemStoreSaledetailBinding;
import com.xingdata.zzdpos.model.CsDetail;
import com.xingdata.zzdpos.model.Saledetail;
import com.xingdata.zzdpos.ui.store.dialog.CartDialog;
import com.xingdata.zzdpos.util.ConvertUtil;
import java.util.List;
......@@ -18,21 +15,11 @@ public class InventoryCartAdapter extends BaseAdapter<CsDetail, ItemInventoryCar
super(R.layout.item_inventory_cart, csDetailList);
}
private CartDialog.OnCountChangeListener mOnCountChangeListener;
public void setOnCountChangeListener(CartDialog.OnCountChangeListener onCountChangeListener) {
this.mOnCountChangeListener = onCountChangeListener;
}
@Override
protected void convert(ItemInventoryCartBinding mViewBinding, CsDetail item) {
mViewBinding.tvName.setText(item.getSpuName());
mViewBinding.setCount(item.getCsCnt());
mViewBinding.setCount(item.getCsCnt() + item.getSpuUnitName());
}
......
//package com.xingdata.zzdpos.ui.manage.inventory.adpter;
//
//
//import android.support.annotation.Nullable;
//import android.view.View;
//import android.view.ViewGroup;
//
//
//import java.util.List;
//
//public class InventoryDetailAdapter extends BaseAdapter<CsDetail, ItemInventoryLeftBinding> {
// private int count = 1;
//
// public InventoryDetailAdapter(@Nullable List<CsDetail> data) {
// super(R.layout.item_inventory_left, data);
//
// }
//
//
// @Override
// protected void convert(ItemInventoryLeftBinding mViewBinding, CsDetail item) {
//
// mViewBinding.tvName.setText(item.getSpuName());
// mViewBinding.tvStockCount.setText(item.getSkuCnt() + "");
// mViewBinding.tvResultCount.setText(item.getCsCnt() + "");
// switch (item.getCsResultFlag()) {
// case 0://相等
// mViewBinding.imgResult.setImageResource(R.mipmap.icon_mark_equal);
// break;
// case 1://盘多
// mViewBinding.imgResult.setImageResource(R.mipmap.icon_mark_offer_more);
// break;
// case 2://盘少
// mViewBinding.imgResult.setImageResource(R.mipmap.icon_mark_offer_less);
// break;
// }
// }
//
// @Override
// protected View getItemView(int layoutResId, ViewGroup parent) {
// return super.getItemView(layoutResId, parent);
// }
//
//
//}
package com.xingdata.zzdpos.ui.manage.inventory.adpter;
import android.support.annotation.Nullable;
import android.view.View;
import android.view.ViewGroup;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseAdapter;
import com.xingdata.zzdpos.databinding.ItemInventoryLeftBinding;
import com.xingdata.zzdpos.model.CsDetail;
import java.util.List;
public class InventoryDetailAdapter extends BaseAdapter<CsDetail, ItemInventoryLeftBinding> {
private int count = 1;
public InventoryDetailAdapter(@Nullable List<CsDetail> data) {
super(R.layout.item_inventory_left, data);
}
@Override
protected void convert(ItemInventoryLeftBinding mViewBinding, CsDetail item) {
mViewBinding.tvName.setText(item.getSpuName());
mViewBinding.tvStockCount.setText(item.getSkuCnt() + "");
mViewBinding.tvResultCount.setText(item.getCsCnt() + "");
switch (item.getCsResultFlag()) {
case 0://相等
mViewBinding.imgResult.setImageResource(R.mipmap.icon_mark_equal);
break;
case 1://盘多
mViewBinding.imgResult.setImageResource(R.mipmap.icon_mark_offer_more);
break;
case 2://盘少
mViewBinding.imgResult.setImageResource(R.mipmap.icon_mark_offer_less);
break;
}
}
@Override
protected View getItemView(int layoutResId, ViewGroup parent) {
return super.getItemView(layoutResId, parent);
}
}
......@@ -5,25 +5,22 @@ import android.support.v7.widget.LinearLayoutManager;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseSheetDialog;
import com.xingdata.zzdpos.databinding.DialogStoreCartBinding;
import com.xingdata.zzdpos.databinding.DialogInventoryCartBinding;
import com.xingdata.zzdpos.model.CsDetail;
import com.xingdata.zzdpos.model.Saledetail;
import com.xingdata.zzdpos.model.Saleorder;
import com.xingdata.zzdpos.ui.manage.inventory.InventoryPresenter;
import com.xingdata.zzdpos.ui.manage.inventory.adpter.InventoryCartAdapter;
import com.xingdata.zzdpos.ui.store.StorePresenter;
import com.xingdata.zzdpos.ui.store.adapter.SaledetailAdapter;
import java.util.List;
public class CsCartDialog extends BaseSheetDialog<StorePresenter, DialogStoreCartBinding> {
public class CsCartDialog extends BaseSheetDialog<InventoryPresenter, DialogInventoryCartBinding> {
private List<CsDetail> mCsDetails;
private String result;
public interface OnCountChangeListener {
void onCountChange(Saledetail saledetail, int value);
}
@Override
protected boolean isTransparentBackground() {
......@@ -32,22 +29,35 @@ public class CsCartDialog extends BaseSheetDialog<StorePresenter, DialogStoreCar
@Override
public int getLayoutId() {
return R.layout.dialog_store_cart;
return R.layout.dialog_inventory_cart;
}
@Override
public void initView() {
;
// init C
InventoryCartAdapter mInventoryCartAdapter = new InventoryCartAdapter(mCsDetails);
mViewBinding.rlCart.setAdapter(mInventoryCartAdapter);
mViewBinding.rlCart.setLayoutManager(new LinearLayoutManager(mContext));
mViewBinding.setCartCount(getCount());
mViewBinding.setResult(result);
// set Other listener
mViewBinding.tvSettle.setOnClickListener(view -> mPresenter.clickSettle());
mViewBinding.tvClear.setOnClickListener(view -> mPresenter.clearCart());
mViewBinding.tvOk.setOnClickListener(view -> mPresenter.exitInventoryAdd());
}
public void setResult(String s) {
result = s;
}
private int getCount() {
long i = 0;
for (CsDetail csDetail : mCsDetails) {
i = i + csDetail.getCsCnt();
}
return (int) i;
}
@Override
......@@ -58,14 +68,13 @@ public class CsCartDialog extends BaseSheetDialog<StorePresenter, DialogStoreCar
}
public CsCartDialog setSaledetails(List<CsDetail> csDetailList) {
public CsCartDialog setCsDetails(List<CsDetail> csDetailList) {
this.mCsDetails = csDetailList;
return this;
}
@Override
public void onDestroyView() {
mPresenter.exitCartDialog();
super.onDestroyView();
}
......
//package com.xingdata.zzdpos.ui.manage.inventory.dialog;
//
//import android.support.v7.widget.LinearLayoutManager;
//import android.view.View;
//
//import com.blankj.utilcode.util.TimeUtils;
//import com.blankj.utilcode.util.ToastUtils;
//import com.xingdata.api.print.ZX_PrintPOS;
//import com.xingdata.zzdhd.R;
//import com.xingdata.zzdhd.base.BaseDialog;
//import com.xingdata.zzdhd.databinding.DialogInventoryDetailBinding;
//import com.xingdata.zzdhd.model.Cs;
//import com.xingdata.zzdhd.model.CsDetail;
//import com.xingdata.zzdhd.ui.manager.inventory.InventoryPresenter;
//import com.xingdata.zzdhd.ui.manager.inventory.adpter.InventoryDetailAdapter;
//
//import java.util.ArrayList;
//import java.util.List;
//
///**
// * Created by Administrator on 2017/12/4.
// */
//
//public class InventoryDetailDialog extends BaseDialog<InventoryPresenter, DialogInventoryDetailBinding> {
// private InventoryDetailAdapter mInventoryDetailAdapter;
// private List<CsDetail> csDetails = new ArrayList<>();
// private Cs cs;
// private long mExitTime=0;
//
//
// @Override
// public int getLayoutId() {
// return R.layout.dialog_inventory_detail;
// }
//
// @Override
// public void initView() {
// initLeftRecycler();
// if (cs == null) {
// ToastUtils.showShort("未获取到相关数据");
// return;
// }
// setBtnName("取消", "打印清单");
// mViewBinding.setOperName(cs.getOperName());
// mViewBinding.setDate(TimeUtils.millis2String(cs.getCreateTime()));
// mViewBinding.setSumNum(cs.getCount() + "");
// switch (cs.getCsResultFlag()) {
// case 0:
// mViewBinding.setFinallyResult("相符");
// break;
// case 1:
// mViewBinding.setFinallyResult("不相符");
// break;
// }
// csDetails.clear();
// csDetails.addAll(cs.getCsdetailList());
// mInventoryDetailAdapter.notifyDataSetChanged();
// getDialog().setCanceledOnTouchOutside(false);
//
// }
//
// @Override
// protected boolean isShowTitle() {
// return false;
// }
//
// public InventoryDetailDialog setData(Cs csDetailList) {
// this.cs = csDetailList;
// return this;
// }
//
// private void initLeftRecycler() {
// mViewBinding.replenishmentLeftRecycler.setLayoutManager(new LinearLayoutManager(getActivity()));
// mInventoryDetailAdapter = new InventoryDetailAdapter(csDetails);
// mViewBinding.replenishmentLeftRecycler.setAdapter(mInventoryDetailAdapter);
// }
//
// @Override
// public void onConfirmClick(View view) {
// if ((System.currentTimeMillis() - mExitTime) > 2000) {
// ZX_PrintPOS.getInstance(mContext).printInventory(1,cs);
// } else {
//
// }
// super.onConfirmClick(view);
// }
//}
package com.xingdata.zzdpos.ui.manage.inventory.fragment;
import android.graphics.drawable.Drawable;
import android.support.v7.widget.LinearLayoutManager;
import android.view.KeyEvent;
import android.view.View;
import android.view.inputmethod.EditorInfo;
import android.widget.TextView;
import com.blankj.utilcode.util.KeyboardUtils;
import com.blankj.utilcode.util.TimeUtils;
import com.blankj.utilcode.util.ToastUtils;
import com.xingdata.api.print.ZX_PrintPOS;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseActivity;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentInventoryAddBinding;
import com.xingdata.zzdpos.model.Cs;
import com.xingdata.zzdpos.model.CsDetail;
import com.xingdata.zzdpos.model.Saledetail;
import com.xingdata.zzdpos.model.Sssku;
import com.xingdata.zzdpos.ui.dialog.PromptDialog;
import com.xingdata.zzdpos.ui.manage.inventory.InventoryPresenter;
import com.xingdata.zzdpos.ui.manage.inventory.adpter.InventoryGoodsAdapter;
import com.xingdata.zzdpos.ui.manage.inventory.dialog.CsCartDialog;
import com.xingdata.zzdpos.util.OnClickListener;
import com.xingdata.zzdpos.util.RecyclerViewUtil;
import java.util.ArrayList;
......@@ -56,7 +56,7 @@ public class InventoryAddFragment extends BaseFragment<InventoryPresenter, Fragm
initRecycler();
mViewBinding.setCartCount(0);
mViewBinding.icTitle.edTitle.setHint(R.string.inventory_add_et_hint);
mViewBinding.icTitle.edTitle.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView textView, int i, KeyEvent keyEvent) {
......@@ -73,25 +73,24 @@ public class InventoryAddFragment extends BaseFragment<InventoryPresenter, Fragm
if (bottomCsList.size() == 0) {
return;
}
mCartDialog.setSaledetails(bottomCsList).show((BaseActivity) getActivity());
mCartDialog.setCsDetails(bottomCsList).show((BaseActivity) getActivity());
}
});
mViewBinding.btnEnd.setOnClickListener(view -> {
mPresenter.exitInventoryAdd();
});
mViewBinding.icTitle.setOnClickListener(new OnClickListener() {
@Override
protected void myOnClickListener(View v) {
PromptDialog promptDialog = new PromptDialog();
promptDialog.setDialogType(PromptDialog.PROMPTDIALOG_SELECT, "退出前是否删除本次盘库记录").setClick(view1 -> {
mPresenter.cancelInventoryAdd(mCs);
promptDialog.dismiss();
}, view1 -> {
promptDialog.dismiss();
}).setCancelables(false).show((BaseActivity) mContext);
}
});
// mViewBinding.btnEnd.setOnClickListener(view -> {
// mPresenter.exitInventoryAdd();
// });
// mViewBinding.btnDel.setOnClickListener(view -> {
// {
// PromptDialog promptDialog = new PromptDialog();
// promptDialog.setDialogType(PromptDialog.PROMPTDIALOG_SELECT, "请确认删除本次盘库记录").setClick(view1 -> {
// mPresenter.cancelInventoryAdd(mCs);
// promptDialog.dismiss();
// }, view1 -> {
// promptDialog.dismiss();
// }).setCancelables(false).show((BaseActivity) mContext);
//
// }
//
// });
// mViewBinding.btnPrint.setOnClickListener(new OnClickListener() {
// @Override
// protected void myOnClickListener(View v) {
......@@ -138,6 +137,8 @@ public class InventoryAddFragment extends BaseFragment<InventoryPresenter, Fragm
}
});
Drawable drawable = getResources().getDrawable(R.drawable.singleline_zhouyu_huanggai);
mViewBinding.recyclerView.addItemDecoration(new RecyclerViewUtil.ListCardItemDecoration(getActivity(), 50, drawable));
mViewBinding.recyclerView.setAdapter(mInventoryGoodsAdapter);
}
......@@ -186,8 +187,10 @@ public class InventoryAddFragment extends BaseFragment<InventoryPresenter, Fragm
mInventoryGoodsAdapter.notifyDataSetChanged();
if (isResult) {
mViewBinding.setResult("相符");
mCartDialog.setResult("相符");
} else {
mViewBinding.setResult("不相符");
mCartDialog.setResult("不相符");
}
}
......@@ -204,6 +207,20 @@ public class InventoryAddFragment extends BaseFragment<InventoryPresenter, Fragm
mCs.setCsdetailList(bottomCsList);
}
@Override
public boolean onBackPressedSupport() {
PromptDialog promptDialog = new PromptDialog();
promptDialog.setDialogType(PromptDialog.PROMPTDIALOG_SELECT, "退出前是否删除本次盘库记录").setClick(view1 -> {
mPresenter.cancelInventoryAdd(mCs);
promptDialog.dismiss();
}, view1 -> {
promptDialog.dismiss();
pop();
}).setCancelables(false).show((BaseActivity) mContext);
return true;
}
public void searchGoodsSuc() {
// mViewBinding.etKeyword.setText("");
......
......@@ -2,6 +2,7 @@ package com.xingdata.zzdpos.ui.manage.inventory.fragment;
import android.databinding.DataBindingUtil;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.text.Html;
......@@ -26,7 +27,9 @@ import com.xingdata.zzdpos.ui.dialog.LoadingDialog;
import com.xingdata.zzdpos.ui.dialog.PromptDialog;
import com.xingdata.zzdpos.ui.manage.inventory.InventoryPresenter;
import com.xingdata.zzdpos.ui.manage.inventory.adpter.InventoryAdapter;
import com.xingdata.zzdpos.util.MyMenuItemDecoration;
import com.xingdata.zzdpos.util.OnClickListener;
import com.xingdata.zzdpos.util.RecyclerViewUtil;
import com.xingdata.zzdpos.util.StringUtil;
......@@ -46,7 +49,6 @@ public class InventoryFragment extends BaseFragment<InventoryPresenter, Fragment
private Long end;
@Override
public int getLayoutId() {
return R.layout.fragment_inventory;
......@@ -67,7 +69,11 @@ public class InventoryFragment extends BaseFragment<InventoryPresenter, Fragment
mViewBinding.recyclerInventory.setLayoutManager(new LinearLayoutManager(getActivity()));
mInventoryAdapter = new InventoryAdapter(new ArrayList<>());
mInventoryAdapter.setEmptyView(getEmptyView());
mViewBinding.recyclerInventory.setAdapter(mInventoryAdapter);
Drawable drawable = getResources().getDrawable(R.drawable.singleline_zhouyu_huanggai);
mInventoryAdapter.bindToRecyclerView( mViewBinding.recyclerInventory);
mViewBinding.recyclerInventory.addItemDecoration(new RecyclerViewUtil.ListCardItemDecoration(getActivity(), 50, drawable));
mViewBinding.srlProduct.setOnRefreshListener(this::onRefresh);
mInventoryAdapter.setOnLoadMoreListener(this::onLoadMore, mViewBinding.recyclerInventory);
mInventoryAdapter.setOnItemClickListener((adapter, view, position) -> {
......@@ -121,7 +127,7 @@ public class InventoryFragment extends BaseFragment<InventoryPresenter, Fragment
mViewBinding.tvCount.setText(count);
}
private void onRefresh() {
public void onRefresh() {
start = null;
end = null;
pageNum = 1;
......@@ -156,6 +162,12 @@ public class InventoryFragment extends BaseFragment<InventoryPresenter, Fragment
if (pager.isLastPage()) mInventoryAdapter.loadMoreEnd(isRefresh);
else mInventoryAdapter.loadMoreComplete();
if (mInventoryAdapter.getData().size() == 0) {
mViewBinding.tvCount.setVisibility(View.GONE);
} else {
mViewBinding.tvCount.setVisibility(View.VISIBLE);
}
}
......@@ -167,8 +179,6 @@ public class InventoryFragment extends BaseFragment<InventoryPresenter, Fragment
}
public void setDate(long start, long end) {
this.start = start;
this.end = end;
......
package com.xingdata.zzdpos.ui.manage.otherselect;
import android.text.InputType;
import android.view.KeyEvent;
import android.view.View;
......@@ -30,6 +31,7 @@ public class OtherSelectActivity extends BaseActivity<OtherSelectPresenter, Acti
@Override
public void initView() {
mViewBinding.lyTitle.ivRight.setVisibility(View.GONE);
mViewBinding.lyTitle.edTitle.setInputType(InputType.TYPE_CLASS_TEXT);
FragmentUtils.add(getSupportFragmentManager(), mOtherListFragment, mViewBinding.fragmentContainer.getId(), false, true);
mViewBinding.lyTitle.edTitle.setOnKeyListener((v, keyCode, event) -> {
if (keyCode == KeyEvent.KEYCODE_ENTER)
......
......@@ -2,6 +2,7 @@ package com.xingdata.zzdpos.ui.manage.otherselect.fragment;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.KeyEvent;
......@@ -20,6 +21,7 @@ import com.xingdata.zzdpos.model.Ossku;
import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.ui.manage.otherselect.OtherSelectPresenter;
import com.xingdata.zzdpos.ui.manage.otherselect.adpter.OtherSelectAdapter;
import com.xingdata.zzdpos.util.RecyclerViewUtil;
import java.util.ArrayList;
......@@ -46,7 +48,8 @@ public class OtherListFragment extends BaseFragment<OtherSelectPresenter, Fragme
mOtherSelectAdapter.setEmptyView(getEmptyView(R.string.empty_other_select));
mViewBinding.recyclerOtherSelcet.setLayoutManager(new LinearLayoutManager(getActivity()));
mViewBinding.recyclerOtherSelcet.setAdapter(mOtherSelectAdapter);
Drawable drawable = getResources().getDrawable(R.drawable.singleline_zhouyu_huanggai);
mViewBinding.recyclerOtherSelcet.addItemDecoration(new RecyclerViewUtil.ListCardItemDecoration(getActivity(), 50, drawable));
mOtherSelectAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override
......@@ -84,12 +87,16 @@ public class OtherListFragment extends BaseFragment<OtherSelectPresenter, Fragme
else if (pager.getList().size() > 0) mOtherSelectAdapter.addData(pager.getList());
if (pager.isLastPage()) mOtherSelectAdapter.loadMoreEnd(isRefresh);
else mOtherSelectAdapter.loadMoreComplete();
if (mOtherSelectAdapter.getData().size() == 0) {
mViewBinding.viewLine.setVisibility(View.GONE);
} else {
mViewBinding.viewLine.setVisibility(View.VISIBLE);
}
}
private View getEmptyView(int resHint) {
View view = getLayoutInflater().inflate(R.layout.view_empty, null);
view.setBackgroundResource(R.color.white_caocao);
((TextView) view.findViewById(R.id.tv_empty)).setText(resHint);
return view;
}
......
......@@ -55,13 +55,19 @@ public class ReplenishmentDetailFragment extends BaseFragment<ReplenishmentPrese
public void initView() {
mViewBinding.lyTitle.edTitle.setHint(R.string.inventory_add_et_hint);
mViewBinding.lyTitle.edTitle.setText("");
Drawable drawableTop = getResources().getDrawable(R.mipmap.but_up);
Drawable drawableBottom = getResources().getDrawable(R.mipmap.but_unfurled);
Drawable drawableTop = getResources().getDrawable(R.mipmap.but_unfurled);
Drawable drawableBottom = getResources().getDrawable(R.mipmap.but_up);
drawableTop.setBounds(0, 0, (int) mViewBinding.tvShopTitle.getTextSize() - 10, (int) mViewBinding.tvShopTitle.getTextSize() - 10);
drawableBottom.setBounds(0, 0, (int) mViewBinding.tvShopTitle.getTextSize() - 10, (int) mViewBinding.tvShopTitle.getTextSize() - 10);
mViewBinding.tvShopTitle.setCompoundDrawables(null, null, drawableTop, null);
mViewBinding.tvSupplierTitle.setCompoundDrawables(null, null, drawableTop, null);
initRecycycler();
mViewBinding.lyTitle.setOnClickListener(new OnClickListener() {
@Override
protected void myOnClickListener(View v) {
pop();
}
});
mViewBinding.tvShopTitle.setOnClickListener(new OnClickListener() {
@Override
protected void myOnClickListener(View v) {
......
......@@ -2,6 +2,7 @@ package com.xingdata.zzdpos.ui.manage.replenishment.fragment;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.support.v7.widget.LinearLayoutManager;
import android.view.View;
......@@ -23,6 +24,7 @@ import com.xingdata.zzdpos.ui.manage.replenishment.ReplenishmentPresenter;
import com.xingdata.zzdpos.ui.manage.replenishment.adpter.ReplenishmentAdapter;
import com.xingdata.zzdpos.ui.statistics.StatisticsDetailActivity;
import com.xingdata.zzdpos.ui.statistics.adapter.StatisticsOrderGroupAdapter;
import com.xingdata.zzdpos.util.RecyclerViewUtil;
import java.util.ArrayList;
import java.util.List;
......@@ -42,15 +44,17 @@ public class ReplenishmentListFragment extends BaseFragment<ReplenishmentPresent
@Override
public void initView() {
Drawable drawable = getResources().getDrawable(R.drawable.singleline_zhouyu_huanggai);
if (mReplenishmentAdapter == null) {
mReplenishmentAdapter = new ReplenishmentAdapter(new ArrayList<>());
mViewBinding.recycler.setLayoutManager(new LinearLayoutManager(getActivity()));
mViewBinding.recycler.setAdapter(mReplenishmentAdapter);
mViewBinding.recycler.addItemDecoration(new RecyclerViewUtil.ListCardItemDecoration(getActivity(), 50, drawable));
} else {
mViewBinding.recycler.setLayoutManager(new LinearLayoutManager(getActivity()));
mViewBinding.recycler.setAdapter(mReplenishmentAdapter);
mViewBinding.recycler.addItemDecoration(new RecyclerViewUtil.ListCardItemDecoration(getActivity(), 50, drawable));
}
mReplenishmentAdapter.setOnItemClickListener((adapter, view, position) -> {
......@@ -63,7 +67,7 @@ public class ReplenishmentListFragment extends BaseFragment<ReplenishmentPresent
});
mViewBinding.srlProduct.setOnRefreshListener(this::onRefresh);
setData(psbArrayList,true);
setData(psbArrayList, true);
}
private void onRefresh() {
......@@ -85,8 +89,8 @@ public class ReplenishmentListFragment extends BaseFragment<ReplenishmentPresent
* @param isRefresh 是否刷新
*/
public void setData(List<Psb> psbList, boolean isRefresh) {
if (mReplenishmentAdapter==null){
this.psbArrayList=psbList;
if (mReplenishmentAdapter == null) {
this.psbArrayList = psbList;
return;
}
......@@ -106,13 +110,14 @@ public class ReplenishmentListFragment extends BaseFragment<ReplenishmentPresent
}
public void setData(List<Psb> psbList){
this.psbArrayList=psbList;
public void setData(List<Psb> psbList) {
this.psbArrayList = psbList;
}
public void searchSucc(String wd) {
List<Psb> psbs = new ArrayList<>();
if (psbArrayList .size()==0) {
if (psbArrayList.size() == 0) {
return;
}
for (Psb psb : psbArrayList) {
......
......@@ -2,15 +2,20 @@ package com.xingdata.zzdpos.ui.manage.sssku;
import android.view.inputmethod.EditorInfo;
import com.blankj.utilcode.util.ActivityUtils;
import com.blankj.utilcode.util.KeyboardUtils;
import com.blankj.utilcode.util.StringUtils;
import com.blankj.utilcode.util.ToastUtils;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseActivity;
import com.xingdata.zzdpos.databinding.ActivitySsskuBinding;
import com.xingdata.zzdpos.model.Cor;
import com.xingdata.zzdpos.model.Sskugrp;
import com.xingdata.zzdpos.model.Sssku;
import com.xingdata.zzdpos.ui.dialog.LoadingDialog;
import com.xingdata.zzdpos.ui.manage.replenishment.ReplenishmentActivity;
import com.xingdata.zzdpos.ui.manage.sssku.fragment.AddFragment;
import com.xingdata.zzdpos.ui.manage.sssku.fragment.DetailFragment;
import com.xingdata.zzdpos.ui.manage.sssku.fragment.EditorFragment;
import com.xingdata.zzdpos.ui.manage.sssku.fragment.ManagerFragment;
......@@ -25,6 +30,7 @@ public class SsskuActivity extends BaseActivity<SsskuPresenter, ActivitySsskuBin
private SearchFragment mSearchFragment = new SearchFragment();
private SkugrpFragment mSkugrpFragment = new SkugrpFragment();
private AddFragment mAddFragment = new AddFragment();
private EditorFragment mEditorFragment = new EditorFragment();
private DetailFragment mDetailFragment = new DetailFragment();
......@@ -51,10 +57,21 @@ public class SsskuActivity extends BaseActivity<SsskuPresenter, ActivitySsskuBin
return false;
});
mViewBinding.etSearch.setOnFocusChangeListener((view, b) -> {
mPresenter.searchBarFocusChanged(b);
mPresenter.searchBarFocusChanged(b, C.TITLE_MODE.SKU);
});
mViewBinding.btnMenu.setOnClickListener(view -> {
mPresenter.clickSkuMenu();
});
}
@Override
public void onBackPressedSupport() {
}
@Override
public void showMsg(String msg) {
ToastUtils.showShort(msg);
}
@Override
public void loadSkus(List<Sssku> skus, boolean isRefresh) {
......@@ -64,6 +81,9 @@ public class SsskuActivity extends BaseActivity<SsskuPresenter, ActivitySsskuBin
@Override
public void loadSkugrps(List<Sskugrp> sskugrps) {
mManagerFragment.loadSkugrps(sskugrps);
mSkugrpFragment.loadSkugrps(sskugrps);
mDetailFragment.loadSkugrps(sskugrps);
mEditorFragment.loadSkugrps(sskugrps);
}
@Override
......@@ -86,32 +106,62 @@ public class SsskuActivity extends BaseActivity<SsskuPresenter, ActivitySsskuBin
mSearchFragment.loadSkus(skus, isRefresh);
}
@Override
public void loadCors(List<Cor> cors) {
mDetailFragment.loadCors(cors);
mEditorFragment.loadCors(cors);
}
@Override
public void loadPkgSku(Sssku pkgSku) {
mEditorFragment.loadPkgSku(pkgSku);
}
@Override
public void loadCheckSkus(List<Sssku> ssskus) {
mAddFragment.loadCheckSkus(ssskus);
}
@Override
public void showSearchFragment(int searchType) {
if (mSearchFragment.isAdded()) return;
mViewBinding.etSearch.requestFocus();
this.showTitleBarByTitleMode(searchType);
this.start(mSearchFragment.setSearchType(searchType));
}
@Override
public void showEditorFragment(Sssku sku) {
public void showAddFragment() {
this.showTitleBarByTitleMode(C.TITLE_MODE.TEXT);
mViewBinding.tvTitle.setText(R.string.sssku_update);
this.start(mEditorFragment);
mViewBinding.tvTitle.setText(R.string.sssku_add);
this.start(mAddFragment);
}
@Override
public void showEditorFragment() {
public void showEditorFragment(Sssku sku, int editMode) {
this.showTitleBarByTitleMode(C.TITLE_MODE.TEXT);
switch (editMode) {
case C.SKU_EDITOR_MODE.ADD:
mViewBinding.tvTitle.setText(R.string.sssku_add);
this.start(mEditorFragment);
this.start(mEditorFragment.setSssku(sku).setEditMode(C.SKU_EDITOR_MODE.ADD));
break;
case C.SKU_EDITOR_MODE.UNKNOWN:
mViewBinding.tvTitle.setText(R.string.sssku_add);
this.start(mEditorFragment.setSssku(sku).setEditMode(C.SKU_EDITOR_MODE.UNKNOWN));
break;
case C.SKU_EDITOR_MODE.UPDATE:
mViewBinding.tvTitle.setText(R.string.sssku_update);
this.start(mEditorFragment.setSssku(sku).setEditMode(C.SKU_EDITOR_MODE.UPDATE));
break;
}
}
@Override
public void showDetailFragment(Sssku sku) {
this.showTitleBarByTitleMode(C.TITLE_MODE.SKU_DETAIL);
mViewBinding.tvTitle.setText(R.string.sssku_detail);
this.start(mDetailFragment);
this.start(mDetailFragment.setSssku(sku));
}
@Override
......@@ -121,15 +171,40 @@ public class SsskuActivity extends BaseActivity<SsskuPresenter, ActivitySsskuBin
this.start(mSkugrpFragment);
}
@Override
public void showSkuMenuDialog() {
mDetailFragment.showSkuMenuDialog();
}
@Override
public void backToEditFragment() {
this.showTitleBarByTitleMode(C.TITLE_MODE.TEXT);
mViewBinding.tvTitle.setText(R.string.sssku_update);
this.pop();
}
@Override
public void backToManagerFragment() {
this.showTitleBarByTitleMode(C.TITLE_MODE.SKU);
this.resetSearchBar();
this.pop();
}
@Override
public void backToDetailFragment() {
this.showTitleBarByTitleMode(C.TITLE_MODE.SKU_DETAIL);
mViewBinding.tvTitle.setText(R.string.sssku_detail);
this.pop();
}
@Override
public void addSku(Sssku sssku) {
mManagerFragment.addSku(sssku);
}
@Override
public void updateSku(Sssku sssku) {
mManagerFragment.updateSku(sssku);
}
@Override
......@@ -142,6 +217,11 @@ public class SsskuActivity extends BaseActivity<SsskuPresenter, ActivitySsskuBin
mLoadingDialog.dismiss();
}
@Override
public void startReplenishmentActivity() {
ActivityUtils.startActivity(this, ReplenishmentActivity.class);
}
/**
* 根据titleMode显示TitleBar
*
......@@ -169,7 +249,5 @@ public class SsskuActivity extends BaseActivity<SsskuPresenter, ActivitySsskuBin
private void resetSearchBar() {
mViewBinding.etSearch.setText("");
mViewBinding.clTitle.requestFocus();
mViewBinding.clTitle.requestFocusFromTouch();
}
}
......@@ -3,6 +3,7 @@ package com.xingdata.zzdpos.ui.manage.sssku;
import com.xingdata.zzdpos.base.BasePresenter;
import com.xingdata.zzdpos.base.BaseView;
import com.xingdata.zzdpos.model.Cor;
import com.xingdata.zzdpos.model.Sskugrp;
import com.xingdata.zzdpos.model.Sssku;
......@@ -11,6 +12,14 @@ import java.util.List;
public interface SsskuContract {
interface View extends BaseView {
/**
* 显示文字内容
*
* @param msg 要显示的内容
*/
void showMsg(String msg);
/**
* 加载商品
*
......@@ -53,22 +62,44 @@ public interface SsskuContract {
*/
void loadSearchResult(List<Sssku> skus, boolean isRefresh);
/**
* 加载供应商列表
*
* @param cors 供应商列表
*/
void loadCors(List<Cor> cors);
/**
* 加载包装内的商品
*
* @param pkgSku 包装内商品
*/
void loadPkgSku(Sssku pkgSku);
/**
* 加载检查出来的商品列表
*
* @param ssskus 商品信息
*/
void loadCheckSkus(List<Sssku> ssskus);
/**
* 显示搜索页面
*/
void showSearchFragment(int searchType);
/**
* 显示编辑页面
*
* @param sku 要编辑的商品
* 显示添加检查页面
*/
void showEditorFragment(Sssku sku);
void showAddFragment();
/**
* 显示编辑页面
*
* @param sku 要编辑的商品
* @param editMode 编辑模式
*/
void showEditorFragment();
void showEditorFragment(Sssku sku, int editMode);
/**
* 显示详情页面
......@@ -82,6 +113,11 @@ public interface SsskuContract {
*/
void showSkugrpFragment();
/**
* 显示商品菜单对话框
*/
void showSkuMenuDialog();
/**
* 返回编辑页面
*/
......@@ -92,6 +128,25 @@ public interface SsskuContract {
*/
void backToManagerFragment();
/**
* 返回详情页面
*/
void backToDetailFragment();
/**
* 添加商品
*
* @param sssku 要添加的商品
*/
void addSku(Sssku sssku);
/**
* 更新商品
*
* @param sssku 更新商品
*/
void updateSku(Sssku sssku);
/**
* 显示读取对话框
*/
......@@ -102,6 +157,15 @@ public interface SsskuContract {
*/
void dismissLoadingDialog();
/**
* 关闭所有对话框
*/
void dismissAllDialog();
/**
* 跳转到补货界面
*/
void startReplenishmentActivity();
}
abstract class Presenter extends BasePresenter<View> {
......@@ -140,6 +204,7 @@ public interface SsskuContract {
*/
public abstract void clickAddSku();
/**
* 管理页面 - 点击添加分组
*/
......@@ -150,6 +215,11 @@ public interface SsskuContract {
*/
public abstract void clickReplenish();
/**
* 添加页面 - 检查条码
*/
public abstract void clickCheck(String barcode);
/**
* 搜索页面 - 点击搜索
*/
......@@ -175,6 +245,27 @@ public interface SsskuContract {
*/
public abstract void clickEditSku(Sssku sssku);
/**
* 详情页面 - 编辑商品价格
*
* @param sssku 要编辑的商品
*/
public abstract void clickEditPriceSku(Sssku sssku);
/**
* 详情页面 - 编辑商品会员信息
*
* @param sssku 要编辑的商品
*/
public abstract void clickEditVipSku(Sssku sssku);
/**
* 分组页面 - 添加分组
*
* @param skugrpName 分组名
*/
public abstract void clickAddSkugrp(String skugrpName);
/**
* 分组页面 - 删除分组.
*
......@@ -189,11 +280,25 @@ public interface SsskuContract {
*/
public abstract void clickEditSkugrp(Sskugrp sskugrp);
/**
* 编辑页面 - 点击提交按钮
*
* @param sssku 商品
* @param editorMode 编辑模式
*/
public abstract void clickConfirm(Sssku sssku, int editorMode);
/**
* 主页面 - 搜索框焦点改变
*
* @param b 获取焦点
* @param searchMode 搜索模式
*/
public abstract void searchBarFocusChanged(boolean b, int searchMode);
/**
* 主页面 - 点击菜单按钮
*/
public abstract void searchBarFocusChanged(boolean b);
public abstract void clickSkuMenu();
}
}
package com.xingdata.zzdpos.ui.manage.sssku;
import com.blankj.utilcode.util.StringUtils;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.api.ApiFactory;
import com.xingdata.zzdpos.model.Sskugrp;
import com.xingdata.zzdpos.model.Sssku;
import com.xingdata.zzdpos.util.ConvertUtil;
public class SsskuPresenter extends SsskuContract.Presenter {
......@@ -15,6 +17,7 @@ public class SsskuPresenter extends SsskuContract.Presenter {
@Override
public void onAttached() {
getCor();
}
@Override
......@@ -40,11 +43,12 @@ public class SsskuPresenter extends SsskuContract.Presenter {
@Override
public void clickSku(Sssku sssku) {
mView.showDetailFragment(sssku);
clickSku(sssku, C.TITLE_MODE.SKU);
}
@Override
public void clickSkugrp(Sskugrp sskugrp) {
//点击商品管理里的分组
this.mPageNum = 0;
this.mSkuGrpId = sskugrp.getSkuGrpId();
mView.loadSkugrpState(mSkuGrpId);
......@@ -53,7 +57,7 @@ public class SsskuPresenter extends SsskuContract.Presenter {
@Override
public void clickAddSku() {
mView.showEditorFragment();
mView.showAddFragment();
}
@Override
......@@ -63,7 +67,29 @@ public class SsskuPresenter extends SsskuContract.Presenter {
@Override
public void clickReplenish() {
//TODO 跳转到补货界面
mView.startReplenishmentActivity();
}
@Override
public void clickCheck(String barcode) {
if (StringUtils.isEmpty(barcode)) return;
mView.showLoadingDialog();
mCompositeDisposable.add(
ApiFactory.Scsku.queryScsku(barcode)
.doFinally(() -> mView.dismissLoadingDialog())
.subscribe(
ssskuPager -> {
if (ssskuPager.getList().size() > 1) {
mView.loadCheckSkus(ssskuPager.getList());
} else if (ssskuPager.getList().size() == 1) {
mView.showEditorFragment(ssskuPager.getList().get(0), C.SKU_EDITOR_MODE.ADD);
} else {
Sssku sssku = new Sssku();
sssku.setSpuBarcode(ConvertUtil.stringToLong(barcode));
mView.showEditorFragment(sssku, C.SKU_EDITOR_MODE.UNKNOWN);
}
})
);
}
@Override
......@@ -83,31 +109,137 @@ public class SsskuPresenter extends SsskuContract.Presenter {
public void clickSku(Sssku sssku, int searchType) {
switch (searchType) {
case C.TITLE_MODE.SKU:
mView.showDetailFragment(sssku);
mView.showLoadingDialog();
mCompositeDisposable.add(
ApiFactory.Sssku.detailSssku(sssku.getId())
.doFinally(() -> mView.dismissLoadingDialog())
.subscribe(
sssku1 -> {
mView.showDetailFragment(sssku1);
},
throwable -> {
})
);
break;
case C.TITLE_MODE.PKG:
mView.loadPkgSku(sssku);
break;
case C.TITLE_MODE.ADD_SKU:
mView.showEditorFragment(sssku, C.SKU_EDITOR_MODE.ADD);
break;
}
}
@Override
public void clickEditSku(Sssku sssku) {
mView.showEditorFragment(sssku);
mView.showEditorFragment(sssku, C.SKU_EDITOR_MODE.UPDATE);
}
@Override
public void clickDeleteSkugrp(Sskugrp sskugrp) {
public void clickEditPriceSku(Sssku sssku) {
//TODO
}
@Override
public void clickEditVipSku(Sssku sssku) {
//TODO
}
@Override
public void clickAddSkugrp(String skugrpName) {
mView.showLoadingDialog();
Sskugrp sskugrp = new Sskugrp();
sskugrp.setSkuGrpName(skugrpName);
mCompositeDisposable.add(
ApiFactory.Sskugrp.add(sskugrp)
.doOnSubscribe(subscription -> mView.dismissLoadingDialog())
.subscribe(s -> {
mView.dismissAllDialog();
this.getSkugrp();
}, throwable -> {
})
);
}
@Override
public void clickDeleteSkugrp(Sskugrp sskugrp) {
mView.showLoadingDialog();
mCompositeDisposable.add(
ApiFactory.Sskugrp.delete(sskugrp.getSkuGrpId())
.doOnSubscribe(subscription -> mView.dismissLoadingDialog())
.subscribe(s -> {
mView.dismissAllDialog();
this.getSkugrp();
}, throwable -> {
})
);
}
@Override
public void clickEditSkugrp(Sskugrp sskugrp) {
mView.showLoadingDialog();
sskugrp.setCreateTime(null);
sskugrp.setUpdateTime(null);
mCompositeDisposable.add(
ApiFactory.Sskugrp.update(sskugrp)
.doOnSubscribe(subscription -> mView.dismissLoadingDialog())
.subscribe(s -> {
mView.dismissAllDialog();
this.getSkugrp();
}, throwable -> {
})
);
}
@Override
public void clickConfirm(Sssku sssku, int editorMode) {
switch (editorMode) {
case C.SKU_EDITOR_MODE.ADD:
ApiFactory.Sssku.addSssku(sssku).subscribe(
sssku1 -> {
mView.showMsg("添加成功");
mView.backToEditFragment();
mView.backToManagerFragment();
if (sssku1.getSkuGrpId().longValue() == mSkuGrpId) {
mView.addSku(sssku1);
}
},
throwable -> mView.showMsg(throwable.getMessage()));
break;
case C.SKU_EDITOR_MODE.UPDATE:
ApiFactory.Sssku.update(sssku).subscribe(
sssku1 -> {
mView.showMsg("修改成功");
mView.backToEditFragment();
mView.backToManagerFragment();
if (sssku1.getSkuGrpId().longValue() == mSkuGrpId) {
mView.updateSku(sssku1);
}
}, throwable -> mView.showMsg(throwable.getMessage()));
break;
case C.SKU_EDITOR_MODE.UNKNOWN:
ApiFactory.Sssku.addSssku(sssku).subscribe(
sssku1 -> {
mView.showMsg("添加成功");
mView.backToEditFragment();
mView.backToManagerFragment();
if (sssku1.getSkuGrpId().longValue() == mSkuGrpId) {
mView.addSku(sssku1);
}
}, throwable -> mView.showMsg(throwable.getMessage()));
break;
}
}
@Override
public void searchBarFocusChanged(boolean b, int searchMode) {
if (b) mView.showSearchFragment(searchMode);
}
@Override
public void searchBarFocusChanged(boolean b) {
if (b) mView.showSearchFragment(C.TITLE_MODE.SKU);
public void clickSkuMenu() {
mView.showSkuMenuDialog();
}
/**
......@@ -119,7 +251,8 @@ public class SsskuPresenter extends SsskuContract.Presenter {
ApiFactory.Sssku.querySssku(mPageNum, "", mSkuGrpId)
.doOnSubscribe(subscription -> mView.dismissLoadingDialog())
.subscribe(ssskuPager -> {
if (mPageNum == 0) mView.loadSsskuCount(ssskuPager.getTotalRow());
if (mPageNum == 0 && mSkuGrpId == 0L)
mView.loadSsskuCount(ssskuPager.getTotalRow());
mView.loadSkus(ssskuPager.getList(), mPageNum == 0);
})
);
......@@ -143,11 +276,6 @@ public class SsskuPresenter extends SsskuContract.Presenter {
private void getSkugrp() {
mCompositeDisposable.add(
ApiFactory.Sskugrp.querySskugrp().subscribe(sskugrpPager -> {
Sskugrp sskugrp = new Sskugrp();
sskugrp.setSkuGrpId(0L);
sskugrp.setSkuGrpName("全部分组");
sskugrp.setSelected(true);
sskugrpPager.getList().add(0, sskugrp);
mView.loadSkugrps(sskugrpPager.getList());
}
)
......@@ -162,4 +290,13 @@ public class SsskuPresenter extends SsskuContract.Presenter {
ApiFactory.Psb.preOrder().subscribe(ssskuPager -> mView.loadReplenishCount(ssskuPager.getTotalRow()))
);
}
/**
* 获取供货商
*/
private void getCor() {
mCompositeDisposable.add(
ApiFactory.Cor.queryAll().subscribe(cors -> mView.loadCors(cors))
);
}
}
package com.xingdata.zzdpos.ui.manage.sssku.dialog;
import android.view.View;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseDialog;
import com.xingdata.zzdpos.databinding.DialogSkugrpEditorBinding;
......@@ -27,6 +29,17 @@ public class SkugrpEditorDialog extends BaseDialog<SsskuPresenter, DialogSkugrpE
@Override
public void initView() {
if (mSskugrp != null) mViewBinding.etName.setText(mSskugrp.getSkuGrpName());
}
@Override
public void onConfirmClick(View view) {
super.onConfirmClick(view);
if (mSskugrp == null) {
mPresenter.clickAddSkugrp(mViewBinding.etName.getText().toString());
} else {
mSskugrp.setSkuGrpName(mViewBinding.etName.getText().toString());
mPresenter.clickEditSkugrp(mSskugrp);
}
}
}
......@@ -4,11 +4,18 @@ import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseSheetDialog;
import com.xingdata.zzdpos.databinding.DialogSkugrpMenuBinding;
import com.xingdata.zzdpos.model.Sskugrp;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuActivity;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuPresenter;
public class SkugrpMenuDialog extends BaseSheetDialog<SsskuPresenter, DialogSkugrpMenuBinding> {
private Sskugrp mSskugrp;
@Override
protected boolean isTransparentBackground() {
return true;
}
public SkugrpMenuDialog setSskugrp(Sskugrp sskugrp) {
this.mSskugrp = sskugrp;
return this;
......@@ -21,6 +28,16 @@ public class SkugrpMenuDialog extends BaseSheetDialog<SsskuPresenter, DialogSkug
@Override
public void initView() {
mViewBinding.tvCancel.setOnClickListener(view -> {
this.dismiss();
});
mViewBinding.tvDelete.setOnClickListener(view -> {
this.dismiss();
new SkugrpDeleteDialog().setSskugrp(mSskugrp).show(((SsskuActivity) getActivity()));
});
mViewBinding.tvUpdate.setOnClickListener(view -> {
this.dismiss();
new SkugrpEditorDialog().setSskugrp(mSskugrp).show(((SsskuActivity) getActivity()));
});
}
}
package com.xingdata.zzdpos.ui.manage.sssku.dialog;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseSheetDialog;
import com.xingdata.zzdpos.databinding.DialogSsskuMenuBinding;
import com.xingdata.zzdpos.model.Sssku;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuPresenter;
public class SsskuMenuDialog extends BaseSheetDialog<SsskuPresenter, DialogSsskuMenuBinding> {
private Sssku mSssku;
@Override
protected boolean isTransparentBackground() {
return true;
}
public SsskuMenuDialog setSssku(Sssku sssku) {
this.mSssku = sssku;
return this;
}
@Override
public int getLayoutId() {
return R.layout.dialog_sssku_menu;
}
@Override
public void initView() {
mViewBinding.tvCancel.setOnClickListener(view -> {
this.dismiss();
});
mViewBinding.tvUpdate.setOnClickListener(view -> {
this.dismiss();
mPresenter.clickEditSku(mSssku);
});
mViewBinding.tvUpdatePrice.setOnClickListener(view -> {
this.dismiss();
mPresenter.clickEditPriceSku(mSssku);
});
mViewBinding.tvUpdateVip.setOnClickListener(view -> {
this.dismiss();
mPresenter.clickEditVipSku(mSssku);
});
}
}
package com.xingdata.zzdpos.ui.manage.sssku.fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.view.inputmethod.EditorInfo;
import com.blankj.utilcode.util.KeyboardUtils;
import com.blankj.utilcode.util.StringUtils;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentSsskuAddBinding;
import com.xingdata.zzdpos.model.Sssku;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuActivity;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuPresenter;
import com.xingdata.zzdpos.ui.marketing.ms.adapter.SkuAdapter;
import java.util.List;
public class AddFragment extends BaseFragment<SsskuPresenter, FragmentSsskuAddBinding> {
private SkuAdapter<Sssku> mSkuAdapter;
@Override
public int getLayoutId() {
return R.layout.fragment_sssku_add;
}
@Override
public void initView() {
mViewBinding.etBarcode.requestFocus();
mViewBinding.etBarcode.setOnEditorActionListener((textView, i, keyEvent) -> {
if ((i == EditorInfo.IME_ACTION_SEARCH || i == EditorInfo.IME_ACTION_UNSPECIFIED) && !StringUtils.isEmpty(textView.getText())) {
KeyboardUtils.hideSoftInput(textView);
mPresenter.clickCheck(mViewBinding.etBarcode.getText().toString());
}
return false;
});
mViewBinding.tvCheck.setOnClickListener(view -> {
mPresenter.clickCheck(mViewBinding.etBarcode.getText().toString());
});
// init sku
mSkuAdapter = new SkuAdapter<>();
mViewBinding.rlSku.setAdapter(mSkuAdapter);
mViewBinding.rlSku.setLayoutManager(new LinearLayoutManager(mContext));
// set sku listener
mSkuAdapter.setOnItemClickListener((adapter, view, position) -> {
((SsskuActivity) getActivity()).backToManagerFragment();
mPresenter.clickSku(mSkuAdapter.getData().get(position), C.TITLE_MODE.ADD_SKU);
});
}
public void loadCheckSkus(List<Sssku> ssskus) {
mSkuAdapter.setNewData(ssskus);
}
@Override
public boolean onBackPressedSupport() {
((SsskuActivity) getActivity()).backToManagerFragment();
return super.onBackPressedSupport();
}
}
......@@ -4,13 +4,21 @@ package com.xingdata.zzdpos.ui.manage.sssku.fragment;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentSsskuDetailBinding;
import com.xingdata.zzdpos.model.Cor;
import com.xingdata.zzdpos.model.Sskugrp;
import com.xingdata.zzdpos.model.Sssku;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuActivity;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuPresenter;
import com.xingdata.zzdpos.ui.manage.sssku.dialog.SsskuMenuDialog;
import java.util.ArrayList;
import java.util.List;
public class DetailFragment extends BaseFragment<SsskuPresenter, FragmentSsskuDetailBinding> {
private Sssku mSssku;
private List<Sskugrp> mSskugrps;
private List<Cor> mCors;
@Override
public int getLayoutId() {
......@@ -19,10 +27,48 @@ public class DetailFragment extends BaseFragment<SsskuPresenter, FragmentSsskuDe
@Override
public void initView() {
mViewBinding.tvEdit.setOnClickListener(view -> {
this.pop();
mPresenter.clickEditSku(mSssku);
});
mViewBinding.ivPic.setImageURI(mSssku.getSpuImg());
mViewBinding.setSku(mSssku);
for (int i = 0; i < mSskugrps.size(); i++) {
if (mSskugrps.get(i).getSkuGrpId().longValue() == mSssku.getSkuGrpId()) {
mViewBinding.setSkugrpName(mSskugrps.get(i).getSkuGrpName());
break;
}
}
for (int i = 0; i < mCors.size(); i++) {
if (mCors.get(i).getChannelMapId().longValue() == mSssku.getChannelMapId()) {
mViewBinding.setChannelName(mCors.get(i).getChannelName());
break;
}
}
}
/**
* 加载商品分组
*
* @param sskugrps 分组信息
*/
public void loadSkugrps(List<Sskugrp> sskugrps) {
mSskugrps = new ArrayList<>();
mSskugrps.addAll(sskugrps);
}
/**
* 加载供应商
*
* @param cors 供应商
*/
public void loadCors(List<Cor> cors) {
this.mCors = cors;
}
/**
* 显示菜单
*/
public void showSkuMenuDialog() {
new SsskuMenuDialog().setSssku(mSssku).show((SsskuActivity) getActivity());
}
/**
......
......@@ -16,6 +16,7 @@ import com.xingdata.zzdpos.ui.manage.sssku.SsskuPresenter;
import com.xingdata.zzdpos.ui.manage.sssku.adapter.SkuAdapter;
import com.xingdata.zzdpos.ui.manage.sssku.adapter.SkugrpAdapter;
import java.util.ArrayList;
import java.util.List;
public class ManagerFragment extends BaseFragment<SsskuPresenter, FragmentSsskuManagerBinding> {
......@@ -86,7 +87,14 @@ public class ManagerFragment extends BaseFragment<SsskuPresenter, FragmentSsskuM
* @param sskugrps 分组信息
*/
public void loadSkugrps(List<Sskugrp> sskugrps) {
mSkugrpAdapter.setNewData(sskugrps);
Sskugrp sskugrp = new Sskugrp();
sskugrp.setSkuGrpId(0L);
sskugrp.setSkuGrpName("全部分组");
sskugrp.setSelected(true);
List<Sskugrp> _sskugrps = new ArrayList<>();
_sskugrps.addAll(sskugrps);
_sskugrps.add(0, sskugrp);
mSkugrpAdapter.setNewData(_sskugrps);
}
/**
......@@ -121,6 +129,31 @@ public class ManagerFragment extends BaseFragment<SsskuPresenter, FragmentSsskuM
mViewBinding.tvTotalCount.setText(String.valueOf(count));
}
/**
* 添加商品
*
* @param sssku 要添加的商品
*/
public void addSku(Sssku sssku) {
mSkuAdapter.setEnableLoadMore(false);
mViewBinding.rlSku.scrollToPosition(0);
mSkuAdapter.addData(0, sssku);
}
/**
* 更新商品
*
* @param sssku 要更新的商品
*/
public void updateSku(Sssku sssku) {
for (int i = 0; i < mSkuAdapter.getData().size(); i++) {
if (mSkuAdapter.getData().get(i).getSkuId().longValue() == sssku.getSkuId().longValue()) {
mSkuAdapter.setData(i, sssku);
return;
}
}
}
/**
* 刷新商品
*/
......
......@@ -35,7 +35,14 @@ public class SearchFragment extends BaseFragment<SsskuPresenter, FragmentSsskuSe
// set sku listener
mSkuAdapter.setOnLoadMoreListener(this::loadMoreSku, mViewBinding.rlSku);
mSkuAdapter.setOnItemClickListener((adapter, view, position) -> {
this.pop();
switch (mSearchType) {
case C.TITLE_MODE.SKU:
((SsskuActivity) getActivity()).backToManagerFragment();
break;
case C.TITLE_MODE.PKG:
((SsskuActivity) getActivity()).backToEditFragment();
break;
}
mPresenter.clickSku(mSkuAdapter.getData().get(position), mSearchType);
});
......
package com.xingdata.zzdpos.ui.manage.sssku.fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.view.View;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
import com.xingdata.zzdpos.databinding.FragmentSsskuSkugrpBinding;
import com.xingdata.zzdpos.model.Sskugrp;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuActivity;
import com.xingdata.zzdpos.ui.manage.sssku.SsskuPresenter;
import com.xingdata.zzdpos.ui.manage.sssku.adapter.SkugrpAdapter;
import com.xingdata.zzdpos.ui.manage.sssku.dialog.SkugrpEditorDialog;
import com.xingdata.zzdpos.ui.manage.sssku.dialog.SkugrpMenuDialog;
import java.util.List;
public class SkugrpFragment extends BaseFragment<SsskuPresenter, FragmentSsskuSkugrpBinding> {
private List<Sskugrp> mSskugrps;
private SkugrpAdapter mSkugrpAdapter;
@Override
public int getLayoutId() {
......@@ -20,11 +28,32 @@ public class SkugrpFragment extends BaseFragment<SsskuPresenter, FragmentSsskuSk
@Override
public void initView() {
mViewBinding.setVisibility(View.GONE);
mSkugrpAdapter = new SkugrpAdapter();
mSkugrpAdapter.setNewData(mSskugrps);
mViewBinding.rlSkugrp.setAdapter(mSkugrpAdapter);
mViewBinding.rlSkugrp.setLayoutManager(new LinearLayoutManager(mContext));
mViewBinding.setVisibility(View.INVISIBLE);
mViewBinding.llSkugrpAdd.setOnClickListener(view -> {
new SkugrpEditorDialog().show(((SsskuActivity) getActivity()));
});
mSkugrpAdapter.setOnItemClickListener((adapter, view, position) -> {
new SkugrpMenuDialog().setSskugrp(mSkugrpAdapter.getData().get(position)).show(((SsskuActivity) getActivity()));
});
}
/**
* 加载商品分组
*
* @param sskugrps 分组信息
*/
public void loadSkugrps(List<Sskugrp> sskugrps) {
mSskugrps = sskugrps;
if (mSkugrpAdapter == null) return;
mSkugrpAdapter.notifyDataSetChanged();
mViewBinding.setVisibility(sskugrps.size() > 0 ? View.VISIBLE : View.INVISIBLE);
}
@Override
......
......@@ -5,6 +5,7 @@ import android.app.AlertDialog;
import android.content.DialogInterface;
import android.databinding.DataBindingUtil;
import android.graphics.Paint;
import android.support.v7.widget.LinearLayoutManager;
import android.util.TimeUtils;
import android.view.LayoutInflater;
import android.view.View;
......@@ -13,19 +14,23 @@ import com.alibaba.fastjson.JSON;
import com.blankj.utilcode.util.ToastUtils;
import com.google.gson.Gson;
import com.xingdata.api.print.ZX_PrintPOS;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseActivity;
import com.xingdata.zzdpos.databinding.ActivityStatisticsDetailBinding;
import com.xingdata.zzdpos.databinding.ItemSettleSaledetailBinding;
import com.xingdata.zzdpos.databinding.ViewInventoryDetailBinding;
import com.xingdata.zzdpos.databinding.ViewOrderDetailBinding;
import com.xingdata.zzdpos.databinding.ViewTicketBinding;
import com.xingdata.zzdpos.databinding.ViewVipRechargeBinding;
import com.xingdata.zzdpos.model.Cs;
import com.xingdata.zzdpos.model.Saledetail;
import com.xingdata.zzdpos.model.Saleorder;
import com.xingdata.zzdpos.model.Ticket;
import com.xingdata.zzdpos.model.VipRechargeOrder;
import com.xingdata.zzdpos.ui.dialog.LoadingDialog;
import com.xingdata.zzdpos.ui.main.MainActivity;
import com.xingdata.zzdpos.ui.manage.inventory.adpter.InventoryDetailAdapter;
import com.xingdata.zzdpos.util.ConvertUtil;
import com.xingdata.zzdpos.util.OnClickListener;
......@@ -57,6 +62,7 @@ public class StatisticsDetailActivity extends BaseActivity<StatisticsDetailPrese
Long data = getIntent().getLongExtra(Saleorder.class.getName(), -1);
VipRechargeOrder vipRechargeOrder = (VipRechargeOrder) getIntent().getSerializableExtra(VipRechargeOrder.class.getName());
Ticket ticket = (Ticket) getIntent().getSerializableExtra(Ticket.class.getName());
Cs cs = (Cs) getIntent().getSerializableExtra(Cs.class.getName());
if (data > 0) {
mPresenter.getOrderDetail(String.valueOf(data));
mViewBinding.icTitle.tvTitle.setText(R.string.statistics_order_detail_hint);
......@@ -69,6 +75,10 @@ public class StatisticsDetailActivity extends BaseActivity<StatisticsDetailPrese
mViewBinding.icTitle.tvTitle.setText(R.string.statistics_used_ticket_hint);
getTicketSuss(ticket);
}
if (cs != null) {
mViewBinding.icTitle.tvTitle.setText(R.string.statistics_inventory_detail_hint);
getCsSuss(cs);
}
}
}
......@@ -88,6 +98,44 @@ public class StatisticsDetailActivity extends BaseActivity<StatisticsDetailPrese
}
private void getCsSuss(Cs cs) {
mViewBinding.viewCs.getViewStub().inflate();
ViewInventoryDetailBinding viewInventoryDetailBinding = DataBindingUtil.bind(mViewBinding.viewCs.getRoot());
viewInventoryDetailBinding.replenishmentLeftRecycler.setLayoutManager(new LinearLayoutManager(this));
InventoryDetailAdapter mInventoryDetailAdapter = new InventoryDetailAdapter(cs.getCsdetailList());
viewInventoryDetailBinding.replenishmentLeftRecycler.setAdapter(mInventoryDetailAdapter);
mViewBinding.btnPrint.setText("取消");
mViewBinding.btnReturn.setText("打印清单");
viewInventoryDetailBinding.setOperName(cs.getOperName());
viewInventoryDetailBinding.setDate(com.blankj.utilcode.util.TimeUtils.millis2String(cs.getCreateTime()));
viewInventoryDetailBinding.setSumNum(cs.getCount() + "");
switch (cs.getCsResultFlag()) {
case 0:
viewInventoryDetailBinding.setFinallyResult("相符");
break;
case 1:
viewInventoryDetailBinding.setFinallyResult("不相符");
break;
}
mViewBinding.btnReturn.setOnClickListener(new OnClickListener() {
@Override
protected void myOnClickListener(View v) {
ZX_PrintPOS.getInstance(MainActivity.mainActivity).print(1, cs);
mViewBinding.btnReturn.setEnabled(false);
mViewBinding.btnReturn.setText("已打印");
}
});
mViewBinding.btnPrint.setOnClickListener(new OnClickListener() {
@Override
protected void myOnClickListener(View v) {
finish();
}
});
}
private void getVipRechargeOrderSuss(VipRechargeOrder vipRechargeOrder) {
mViewBinding.btnReturn.setVisibility(View.GONE);
mViewBinding.viewVipRecharge.getViewStub().inflate();
......@@ -145,6 +193,7 @@ public class StatisticsDetailActivity extends BaseActivity<StatisticsDetailPrese
for (Saledetail saledetail : mSaleorder.getSaledetailList()) {
View view = LayoutInflater.from(this).inflate(R.layout.item_settle_saledetail, null);
view.setPadding(20, 20, 20, 20);
ItemSettleSaledetailBinding itemSettleSaledetailBinding = DataBindingUtil.bind(view);
itemSettleSaledetailBinding.tvAmt.setText("¥" + saledetail.getSubtotal());
itemSettleSaledetailBinding.tvCount.setText(saledetail.getCnt());
......
......@@ -39,9 +39,10 @@ public class StatisticsTitleFragment extends BaseFragment<StatisticsPresenter, F
@Override
public void initView() {
mViewBinding.viewLine.setVisibility(View.VISIBLE);
switch (fragmentMenu) {
case C.MENU.MENU_STATISTICS_ORDER:
mViewBinding.viewLine.setVisibility(View.GONE);
FragmentUtils.add(getChildFragmentManager(), mOrderMainFragment, mViewBinding.mainFrame.getId(), false, true);
mViewBinding.icTitle.edTitle.setOnFocusChangeListener(new View.OnFocusChangeListener() {
......@@ -105,6 +106,7 @@ public class StatisticsTitleFragment extends BaseFragment<StatisticsPresenter, F
break;
case C.MENU.MENU_STATISTICS_MS:
mViewBinding.viewLine.setVisibility(View.GONE);
FragmentUtils.add(getChildFragmentManager(), mMsMainFragment, mViewBinding.mainFrame.getId(), false, true);
mViewBinding.icTitle.edTitle.setVisibility(View.GONE);
mViewBinding.icTitle.tvTitle.setText(R.string.menu_ms);
......@@ -123,6 +125,7 @@ public class StatisticsTitleFragment extends BaseFragment<StatisticsPresenter, F
mViewBinding.icTitle.setOnClickListener(new OnClickListener() {
@Override
protected void myOnClickListener(View v) {
mViewBinding.viewLine.setVisibility(View.GONE);
if (mViewBinding.icTitle.edTitle.isFocused()) {
mViewBinding.icTitle.edTitle.clearFocus();
return;
......@@ -150,6 +153,7 @@ public class StatisticsTitleFragment extends BaseFragment<StatisticsPresenter, F
}
public void searchSuc(Pager<Saleorder> saleorderPager, int payType) {
mViewBinding.viewLine.setVisibility(View.VISIBLE);
if (mViewBinding.icTitle.edTitle.isFocused()) {
mViewBinding.icTitle.edTitle.clearFocus();
}
......@@ -158,11 +162,12 @@ public class StatisticsTitleFragment extends BaseFragment<StatisticsPresenter, F
FragmentUtils.add(getChildFragmentManager(), mOrderSearchFragment, mViewBinding.mainFrame.getId(), false, true);
} else {
mOrderSearchFragment.setType(OrderSearchFragment.PAYTYPE);
mOrderSearchFragment.setData(saleorderPager, saleorderPager.isFirstPage());
mOrderSearchFragment.setData(saleorderPager);
}
}
public void searchSuc(Pager<Saleorder> saleorderPager, String wd) {
mViewBinding.viewLine.setVisibility(View.VISIBLE);
if (mViewBinding.icTitle.edTitle.isFocused()) {
mViewBinding.icTitle.edTitle.clearFocus();
}
......@@ -171,12 +176,13 @@ public class StatisticsTitleFragment extends BaseFragment<StatisticsPresenter, F
FragmentUtils.add(getChildFragmentManager(), mOrderSearchFragment, mViewBinding.mainFrame.getId(), false, true);
} else {
mOrderSearchFragment.setType(OrderSearchFragment.WD);
mOrderSearchFragment.setData(saleorderPager, saleorderPager.isFirstPage());
mOrderSearchFragment.setData(saleorderPager);
}
}
public void searchSuc(Pager<Saleorder> saleorderPager, long start, long end) {
mViewBinding.viewLine.setVisibility(View.VISIBLE);
if (mViewBinding.icTitle.edTitle.isFocused()) {
mViewBinding.icTitle.edTitle.clearFocus();
}
......@@ -185,33 +191,36 @@ public class StatisticsTitleFragment extends BaseFragment<StatisticsPresenter, F
FragmentUtils.add(getChildFragmentManager(), mOrderSearchFragment, mViewBinding.mainFrame.getId(), false, true);
} else {
mOrderSearchFragment.setType(OrderSearchFragment.DATE);
mOrderSearchFragment.setData(saleorderPager, saleorderPager.isFirstPage());
mOrderSearchFragment.setData(saleorderPager);
}
}
public void searchRechargeSuc(Pager<VipRechargeOrder> vipRechargeOrderPager, long start, long end) {
mViewBinding.viewLine.setVisibility(View.VISIBLE);
if (!mRechargeSearchFragment.isAdded()) {
mRechargeSearchFragment.setCreateData(vipRechargeOrderPager, start, end);
FragmentUtils.add(getChildFragmentManager(), mRechargeSearchFragment, mViewBinding.mainFrame.getId(), false, true);
} else {
mRechargeSearchFragment.setType(OrderSearchFragment.DATE);
mRechargeSearchFragment.setData(vipRechargeOrderPager, vipRechargeOrderPager.isFirstPage());
mRechargeSearchFragment.setData(vipRechargeOrderPager);
}
}
public void searchTicketSuc(Pager<Ticket> ticketPager, long start, long end) {
mViewBinding.viewLine.setVisibility(View.VISIBLE);
if (!mTicketSearchFragment.isAdded()) {
mTicketSearchFragment.setCreateData(ticketPager, start, end);
FragmentUtils.add(getChildFragmentManager(), mTicketSearchFragment, mViewBinding.mainFrame.getId(), false, true);
} else {
mTicketSearchFragment.setType(OrderSearchFragment.DATE);
mTicketSearchFragment.setData(ticketPager, ticketPager.isFirstPage());
mTicketSearchFragment.setData(ticketPager);
}
}
@Override
public boolean onBackPressedSupport() {
mViewBinding.viewLine.setVisibility(View.GONE);
if (mViewBinding.icTitle.edTitle.isFocused()) {
mViewBinding.icTitle.edTitle.clearFocus();
return true;
......
......@@ -6,6 +6,7 @@ import android.support.v7.widget.LinearLayoutManager;
import android.view.View;
import com.blankj.utilcode.util.ActivityUtils;
import com.blankj.utilcode.util.TimeUtils;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
......@@ -15,13 +16,23 @@ import com.xingdata.zzdpos.model.VipRechargeOrder;
import com.xingdata.zzdpos.ui.statistics.StatisticsDetailActivity;
import com.xingdata.zzdpos.ui.statistics.StatisticsPresenter;
import com.xingdata.zzdpos.ui.statistics.adapter.StatisticsOrderAdapter;
import com.xingdata.zzdpos.ui.statistics.adapter.StatisticsOrderGroupAdapter;
import com.xingdata.zzdpos.ui.statistics.adapter.StatisticsRechargeAdapter;
import com.xingdata.zzdpos.ui.statistics.adapter.StatisticsRechargeGroupAdapter;
import com.xingdata.zzdpos.util.StringUtil;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import io.reactivex.ObservableEmitter;
import io.reactivex.ObservableOnSubscribe;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.functions.Action;
import io.reactivex.schedulers.Schedulers;
public class RechargeSearchFragment extends BaseFragment<StatisticsPresenter, FragmentOrderSearchBinding> {
private StatisticsRechargeAdapter mStatisticsAdapter;
private StatisticsRechargeGroupAdapter mStatisticsAdapter;
private Pager<VipRechargeOrder> VipRechargeOrders;
private int pagerNum;
private String wd = "";
......@@ -30,7 +41,7 @@ public class RechargeSearchFragment extends BaseFragment<StatisticsPresenter, Fr
public static final int DATE = 100;
private Long startDate;
private Long endDate;
private String monthDate;
@Override
public int getLayoutId() {
......@@ -41,7 +52,7 @@ public class RechargeSearchFragment extends BaseFragment<StatisticsPresenter, Fr
public void initView() {
if (mStatisticsAdapter == null) {
mStatisticsAdapter = new StatisticsRechargeAdapter(new ArrayList<>());
mStatisticsAdapter = new StatisticsRechargeGroupAdapter(new ArrayList<>());
mViewBinding.statisticsRecycler.setLayoutManager(new LinearLayoutManager(getActivity()));
mViewBinding.statisticsRecycler.setAdapter(mStatisticsAdapter);
} else {
......@@ -51,15 +62,18 @@ public class RechargeSearchFragment extends BaseFragment<StatisticsPresenter, Fr
mViewBinding.srlProduct.setOnRefreshListener(this::onRefresh);
mStatisticsAdapter.setOnLoadMoreListener(this::onLoadMore, mViewBinding.statisticsRecycler);
if (VipRechargeOrders != null) {
setData(VipRechargeOrders, VipRechargeOrders.isFirstPage());
setData(VipRechargeOrders);
}
mStatisticsAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
if (!mStatisticsAdapter.getData().get(position).isHeader) {
Intent intent = new Intent(getActivity(), StatisticsDetailActivity.class);
intent.putExtra(VipRechargeOrder.class.getName(), mStatisticsAdapter.getData().get(position));
ActivityUtils.startActivity(intent);
}
}
});
}
......@@ -96,7 +110,7 @@ public class RechargeSearchFragment extends BaseFragment<StatisticsPresenter, Fr
* @param pager 数据
* @param isRefresh 是否刷新
*/
public void setData(Pager<VipRechargeOrder> pager, boolean isRefresh) {
private void setData(Pager<VipRechargeOrder> pager, boolean isRefresh) {
if (isRefresh) {
mStatisticsAdapter.setEnableLoadMore(true);
mViewBinding.srlProduct.setRefreshing(false);
......@@ -109,6 +123,37 @@ public class RechargeSearchFragment extends BaseFragment<StatisticsPresenter, Fr
}
public void setData(Pager<VipRechargeOrder> pager) {
if (pager.isFirstPage()) {
monthDate = "";
}
io.reactivex.Observable.create(new ObservableOnSubscribe<Pager<VipRechargeOrder>>() {
@Override
public void subscribe(ObservableEmitter<Pager<VipRechargeOrder>> e) throws Exception {
for (int i = 0; i < pager.getList().size(); i++) {
String m = TimeUtils.millis2String(pager.getList().get(i).getCreateTime(), new SimpleDateFormat(StringUtil.defaultDatePattern));
if (!m.equals(monthDate)) {
monthDate = m;
pager.getList().add(i, new VipRechargeOrder(true, monthDate + ""));
i++;
}
}
e.onComplete();
}
}).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()).doOnComplete(new Action() {
@Override
public void run() throws Exception {
setData(pager, pager.isFirstPage());
}
}).subscribe();
}
public void setCreateData(Pager<VipRechargeOrder> list, String wd) {
this.VipRechargeOrders = list;
this.wd = wd;
......
......@@ -6,6 +6,7 @@ import android.support.v7.widget.LinearLayoutManager;
import android.view.View;
import com.blankj.utilcode.util.ActivityUtils;
import com.blankj.utilcode.util.TimeUtils;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
......@@ -16,12 +17,21 @@ import com.xingdata.zzdpos.ui.statistics.StatisticsDetailActivity;
import com.xingdata.zzdpos.ui.statistics.StatisticsPresenter;
import com.xingdata.zzdpos.ui.statistics.adapter.StatisticsRechargeAdapter;
import com.xingdata.zzdpos.ui.statistics.adapter.StatisticsTicketAdapter;
import com.xingdata.zzdpos.ui.statistics.adapter.StatisticsTicketGroupAdapter;
import com.xingdata.zzdpos.util.StringUtil;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import io.reactivex.ObservableEmitter;
import io.reactivex.ObservableOnSubscribe;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.functions.Action;
import io.reactivex.schedulers.Schedulers;
public class TicketSearchFragment extends BaseFragment<StatisticsPresenter, FragmentOrderSearchBinding> {
private StatisticsTicketAdapter mStatisticsAdapter;
private StatisticsTicketGroupAdapter mStatisticsAdapter;
private Pager<Ticket> Tickets;
private int pagerNum;
private String wd = "";
......@@ -30,6 +40,7 @@ public class TicketSearchFragment extends BaseFragment<StatisticsPresenter, Frag
public static final int DATE = 100;
private Long startDate;
private Long endDate;
private String monthDate;
@Override
......@@ -41,7 +52,7 @@ public class TicketSearchFragment extends BaseFragment<StatisticsPresenter, Frag
public void initView() {
if (mStatisticsAdapter == null) {
mStatisticsAdapter = new StatisticsTicketAdapter(new ArrayList<>());
mStatisticsAdapter = new StatisticsTicketGroupAdapter(new ArrayList<>());
mViewBinding.statisticsRecycler.setLayoutManager(new LinearLayoutManager(getActivity()));
mViewBinding.statisticsRecycler.setAdapter(mStatisticsAdapter);
} else {
......@@ -51,7 +62,7 @@ public class TicketSearchFragment extends BaseFragment<StatisticsPresenter, Frag
mViewBinding.srlProduct.setOnRefreshListener(this::onRefresh);
mStatisticsAdapter.setOnLoadMoreListener(this::onLoadMore, mViewBinding.statisticsRecycler);
if (Tickets != null) {
setData(Tickets, Tickets.isFirstPage());
setData(Tickets);
}
mStatisticsAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override
......@@ -97,7 +108,7 @@ public class TicketSearchFragment extends BaseFragment<StatisticsPresenter, Frag
* @param pager 数据
* @param isRefresh 是否刷新
*/
public void setData(Pager<Ticket> pager, boolean isRefresh) {
private void setData(Pager<Ticket> pager, boolean isRefresh) {
if (isRefresh) {
mStatisticsAdapter.setEnableLoadMore(true);
mViewBinding.srlProduct.setRefreshing(false);
......@@ -110,6 +121,37 @@ public class TicketSearchFragment extends BaseFragment<StatisticsPresenter, Frag
}
public void setData(Pager<Ticket> pager) {
if (pager.isFirstPage()) {
monthDate = "";
}
io.reactivex.Observable.create(new ObservableOnSubscribe<Pager<Ticket>>() {
@Override
public void subscribe(ObservableEmitter<Pager<Ticket>> e) throws Exception {
for (int i = 0; i < pager.getList().size(); i++) {
String m = TimeUtils.date2String(pager.getList().get(i).getCreateTime(), new SimpleDateFormat(StringUtil.defaultDatePattern));
if (!m.equals(monthDate)) {
monthDate = m;
pager.getList().add(i, new Ticket(true, monthDate + ""));
i++;
}
}
e.onComplete();
}
}).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()).doOnComplete(new Action() {
@Override
public void run() throws Exception {
setData(pager, pager.isFirstPage());
}
}).subscribe();
}
public void setCreateData(Pager<Ticket> list, String wd) {
this.Tickets = list;
this.wd = wd;
......
......@@ -93,10 +93,13 @@ public class OrderListFragment extends BaseFragment<StatisticsPresenter, Fragmen
mStatisticsAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
if (!mStatisticsAdapter.getData().get(position).isHeader) {
Intent intent = new Intent(getActivity(), StatisticsDetailActivity.class);
intent.putExtra(Saleorder.class.getName(), mStatisticsAdapter.getData().get(position).getId());
ActivityUtils.startActivity(intent);
}
}
});
mViewBinding.srlProduct.setOnRefreshListener(this::onRefresh);
......@@ -122,7 +125,7 @@ public class OrderListFragment extends BaseFragment<StatisticsPresenter, Fragmen
* @param pager 数据
* @param isRefresh 是否刷新
*/
public void setData(Pager<Saleorder> pager, boolean isRefresh) {
private void setData(Pager<Saleorder> pager, boolean isRefresh) {
if (isRefresh) {
mStatisticsAdapter.setEnableLoadMore(true);
mViewBinding.srlProduct.setRefreshing(false);
......
......@@ -6,6 +6,7 @@ import android.support.v7.widget.LinearLayoutManager;
import android.view.View;
import com.blankj.utilcode.util.ActivityUtils;
import com.blankj.utilcode.util.TimeUtils;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
......@@ -17,14 +18,23 @@ import com.xingdata.zzdpos.model.Saleorder;
import com.xingdata.zzdpos.ui.statistics.StatisticsDetailActivity;
import com.xingdata.zzdpos.ui.statistics.StatisticsPresenter;
import com.xingdata.zzdpos.ui.statistics.adapter.StatisticsOrderAdapter;
import com.xingdata.zzdpos.ui.statistics.adapter.StatisticsOrderGroupAdapter;
import com.xingdata.zzdpos.util.StringUtil;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import io.reactivex.ObservableEmitter;
import io.reactivex.ObservableOnSubscribe;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.functions.Action;
import io.reactivex.schedulers.Schedulers;
public class OrderSearchFragment extends BaseFragment<StatisticsPresenter, FragmentOrderSearchBinding> {
private StatisticsOrderAdapter mStatisticsAdapter;
private StatisticsOrderGroupAdapter mStatisticsAdapter;
private Pager<Saleorder> saleorders;
private int pagerNum;
private String wd = "";
......@@ -35,7 +45,7 @@ public class OrderSearchFragment extends BaseFragment<StatisticsPresenter, Fragm
public static final int PAYTYPE = 101;
private Long startDate;
private Long endDate;
private String monthDate;
@Override
public int getLayoutId() {
......@@ -46,7 +56,7 @@ public class OrderSearchFragment extends BaseFragment<StatisticsPresenter, Fragm
public void initView() {
if (mStatisticsAdapter == null) {
mStatisticsAdapter = new StatisticsOrderAdapter(new ArrayList<>());
mStatisticsAdapter = new StatisticsOrderGroupAdapter(new ArrayList<>());
mViewBinding.statisticsRecycler.setLayoutManager(new LinearLayoutManager(getActivity()));
mViewBinding.statisticsRecycler.setAdapter(mStatisticsAdapter);
} else {
......@@ -56,15 +66,18 @@ public class OrderSearchFragment extends BaseFragment<StatisticsPresenter, Fragm
mViewBinding.srlProduct.setOnRefreshListener(this::onRefresh);
mStatisticsAdapter.setOnLoadMoreListener(this::onLoadMore, mViewBinding.statisticsRecycler);
if (saleorders != null) {
setData(saleorders, saleorders.isFirstPage());
setData(saleorders);
}
mStatisticsAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
if (!mStatisticsAdapter.getData().get(position).isHeader) {
Intent intent = new Intent(getActivity(), StatisticsDetailActivity.class);
intent.putExtra(Saleorder.class.getName(), mStatisticsAdapter.getData().get(position).getId());
ActivityUtils.startActivity(intent);
}
}
});
}
......@@ -107,7 +120,7 @@ public class OrderSearchFragment extends BaseFragment<StatisticsPresenter, Fragm
* @param pager 数据
* @param isRefresh 是否刷新
*/
public void setData(Pager<Saleorder> pager, boolean isRefresh) {
private void setData(Pager<Saleorder> pager, boolean isRefresh) {
if (isRefresh) {
mStatisticsAdapter.setEnableLoadMore(true);
mViewBinding.srlProduct.setRefreshing(false);
......@@ -120,6 +133,38 @@ public class OrderSearchFragment extends BaseFragment<StatisticsPresenter, Fragm
}
public void setData(Pager<Saleorder> pager) {
if (pager.isFirstPage()) {
monthDate = "";
}
io.reactivex.Observable.create(new ObservableOnSubscribe<Pager<Saleorder>>() {
@Override
public void subscribe(ObservableEmitter<Pager<Saleorder>> e) throws Exception {
for (int i = 0; i < pager.getList().size(); i++) {
String m = TimeUtils.millis2String(pager.getList().get(i).getCreateTime(), new SimpleDateFormat(StringUtil.defaultDatePattern));
if (!m.equals(monthDate)) {
monthDate = m;
pager.getList().add(i, new Saleorder(true, monthDate + ""));
i++;
}
}
e.onComplete();
}
}).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()).doOnComplete(new Action() {
@Override
public void run() throws Exception {
setData(pager, pager.isFirstPage());
}
}).subscribe();
}
public void setCreateData(Pager<Saleorder> list, int patType) {
this.saleorders = list;
this.payType = patType;
......
package com.xingdata.zzdpos.util;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.support.v7.widget.RecyclerView;
import android.view.View;
......@@ -40,4 +45,81 @@ public class RecyclerViewUtil {
}
}
}
public static class ListCardItemDecoration extends RecyclerView.ItemDecoration {
private Drawable mDividerDarwable;
private int mDividerHight = 1;
private Paint mColorPaint;
public final int[] ATRRS = new int[]{android.R.attr.listDivider};
public ListCardItemDecoration(Context context) {
final TypedArray ta = context.obtainStyledAttributes(ATRRS);
this.mDividerDarwable = ta.getDrawable(0);
ta.recycle();
}
/*
int dividerHight 分割线的线宽
int dividerColor 分割线的颜色
*/
public ListCardItemDecoration(Context context, int dividerHight, int dividerColor) {
this(context);
mDividerHight = dividerHight;
mColorPaint = new Paint();
mColorPaint.setColor(dividerColor);
}
/*
int dividerHight 分割线的线宽
Drawable dividerDrawable 图片分割线
*/
public ListCardItemDecoration(Context context, int dividerHight, Drawable dividerDrawable) {
this(context);
mDividerHight = dividerHight;
mDividerDarwable = dividerDrawable;
}
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
super.getItemOffsets(outRect, view, parent, state);
outRect.bottom = mDividerHight + 1;
}
@Override
public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {
super.onDraw(c, parent, state);
//画水平和垂直分割线
drawHorizontalDivider(c, parent);
}
public void drawHorizontalDivider(Canvas c, RecyclerView parent) {
final int childCount = parent.getChildCount();
for (int i = 0; i < childCount - 1; i++) {
final View child = parent.getChildAt(i);
RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams();
final int left = child.getLeft() - params.leftMargin - mDividerHight;
final int right = child.getRight() + params.rightMargin;
int top = 0;
int bottom = 0;
top = child.getBottom() + params.bottomMargin;
bottom = top + mDividerHight;
//画分割线
mDividerDarwable.setBounds(left, top, right, bottom);
mDividerDarwable.draw(c);
if (mColorPaint != null) {
c.drawRect(left, top, right, bottom, mColorPaint);
}
}
}
}
}
\ No newline at end of file
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- This is the main color -->
<item>
<shape>
<!-- 边框颜色 -->
<solid android:color="@color/black_baozheng"/>
</shape>
</item>
<!-- 给View的上 左 右设置8dp的边框 -->
<item android:bottom="@dimen/view_line_L050" android:top="@dimen/view_line_L050"
android:start="@dimen/view_line_L050" android:end="@dimen/view_line_L050">
<shape>
<!-- View填充颜色 -->
<solid android:color="@color/gray_zhouyu" />
</shape>
</item>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
</layer-list>
\ No newline at end of file
<corners android:radius="@dimen/all_shape_radius"/>
<stroke
android:width="@dimen/edit_border"
android:color="@color/black_baozheng"/>
<solid android:color="@color/gray_zhouyu"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="@dimen/all_shape_radius" />
<solid android:color="@color/white_caocao" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<solid android:color="@color/gray_huanggai"/>
</shape>
</item>
<item android:bottom="@dimen/view_line_L050" android:top="@dimen/view_line_L050">
<shape>
<solid android:color="@color/gray_zhouyu"/>
</shape>
</item>
</layer-list>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<corners android:radius="20dp" />
<stroke
android:width="1dp"
android:color="@color/yellow_bg" />
<solid android:color="@color/yellow_bg" />
</shape>
\ No newline at end of file
......@@ -16,24 +16,19 @@
android:background="@color/white_caocao"
android:gravity="center_vertical|center_horizontal"
android:orientation="horizontal"
android:paddingTop="@dimen/all_padding"
app:layout_constraintBottom_toBottomOf="parent"
app:tabIndicatorHeight="0dp"
app:tabPaddingTop="0dp"
app:tabPaddingBottom="0dp"
app:tabPaddingEnd="0dp"
app:tabPaddingStart="0dp"
android:paddingTop="@dimen/all_padding"
app:tabPaddingTop="0dp"
app:tabSelectedTextColor="@color/red_guanyu"
app:tabTextAppearance="@android:style/TextAppearance.Holo.Small"
app:tabTextColor="@color/black_likui">
</android.support.design.widget.TabLayout>
<TextView
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L1"
android:background="@color/gray_zhouyu"
app:layout_constraintTop_toTopOf="@id/tab_layout" />
<android.support.v4.view.ViewPager
android:id="@+id/fragment_container"
......@@ -47,7 +42,14 @@
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="1.0">
</android.support.v4.view.ViewPager>
<TextView
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:background="@color/gray_huanggai"
app:layout_constraintTop_toTopOf="@id/tab_layout" />
</android.support.constraint.ConstraintLayout>
</layout>
\ No newline at end of file
......@@ -12,11 +12,15 @@
android:id="@+id/ly_title"
layout="@layout/title_order" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:background="@color/gray_huanggai" />
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/all_padding_left_right"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
......
......@@ -52,7 +52,6 @@
android:textColor="@color/black_likui"
android:textColorHint="@color/gray_huanggai"
android:textSize="@dimen/all_text_size" />
</LinearLayout>
<TextView
......
......@@ -51,7 +51,7 @@
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:inputType="number"
android:inputType="text"
android:labelFor="@+id/et_search"
android:textColor="@color/black_likui"
android:textColorHint="@color/gray_huanggai"
......@@ -71,6 +71,20 @@
app:layout_constraintLeft_toRightOf="parent"
app:layout_constraintRight_toLeftOf="parent" />
<ImageButton
android:id="@+id/btn_menu"
android:layout_width="?attr/actionBarSize"
android:layout_height="match_parent"
android:background="?attr/actionBarItemBackground"
android:contentDescription="@string/all_go_back"
android:gravity="center"
android:padding="@dimen/all_margin"
android:src="@mipmap/click_down"
android:visibility="@{titleMode==6?0:8}"
app:layout_constraintRight_toRightOf="parent" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
......
......@@ -40,25 +40,31 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout="@layout/view_ticket" />
<ViewStub
android:id="@+id/view_cs"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout="@layout/view_inventory_detail" />
</FrameLayout>
<LinearLayout
<android.support.constraint.ConstraintLayout
android:id="@+id/ll_bottom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="@dimen/layout_statistics_bottom_height"
android:layout_marginTop="@dimen/all_padding"
android:background="@color/white_caocao"
android:elevation="@dimen/view_line_L2"
android:gravity="center"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent">
<Button
android:id="@+id/btn_print"
style="@style/button_passive"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="@dimen/all_padding"
android:layout_weight="1"
android:layout_width="@dimen/layout_statistics_bottom_button_width"
android:layout_height="@dimen/layout_statistics_bottom_button_height"
android:layout_marginStart="@dimen/all_margin_big_big"
android:stateListAnimator="@null"
android:text="@string/settle_print_receipt"
android:textSize="@dimen/all_text_size"
......@@ -71,10 +77,9 @@
<Button
android:id="@+id/btn_return"
style="@style/button_positive"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="@dimen/all_padding"
android:layout_weight="1"
android:layout_width="@dimen/layout_statistics_bottom_button_width"
android:layout_height="@dimen/layout_statistics_bottom_button_height"
android:layout_marginEnd="@dimen/all_margin_big_big"
android:stateListAnimator="@null"
android:text="@string/pay_return"
android:textSize="@dimen/all_text_size"
......@@ -82,8 +87,9 @@
app:layout_constraintLeft_toRightOf="@id/btn_cancel"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_goneMarginStart="@dimen/all_margin_big_big"
tools:targetApi="lollipop" />
</LinearLayout>
</android.support.constraint.ConstraintLayout>
</android.support.constraint.ConstraintLayout>
</layout>
\ No newline at end of file
......@@ -6,17 +6,13 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/lyt_main_bg"
android:orientation="vertical">
<TextView
android:id="@+id/tv_title"
style="@style/dialog_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/all_padding" />
android:layout_height="wrap_content" />
<ViewStub
android:id="@+id/vs_center"
......@@ -25,22 +21,25 @@
android:layout_weight="1"
android:inflatedId="@+id/panel_import" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:background="@color/gray_kongming" />
<LinearLayout
android:layout_marginTop="@dimen/all_padding"
android:orientation="horizontal"
android:weightSum="2"
android:background="@color/white_caocao"
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="wrap_content"
android:background="@color/white_caocao"
android:orientation="horizontal"
android:weightSum="2">
<Button
android:layout_margin="@dimen/all_padding"
android:id="@+id/btn_cancel"
style="@style/button_passive"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_margin="@dimen/all_padding"
android:layout_weight="1"
android:stateListAnimator="@null"
android:text="@string/all_cancel"
android:textSize="@dimen/all_text_size"
......@@ -51,12 +50,12 @@
tools:targetApi="lollipop" />
<Button
android:layout_margin="@dimen/all_padding"
android:id="@+id/btn_confirm"
style="@style/button_positive"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_margin="@dimen/all_padding"
android:layout_weight="1"
android:stateListAnimator="@null"
android:text="@string/all_confirm"
android:textSize="@dimen/all_text_size"
......@@ -68,7 +67,6 @@
</LinearLayout>
</LinearLayout>
</layout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="cartCount"
type="int" />
<variable
name="result"
type="String" />
</data>
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical">
<View
android:id="@+id/ll_title"
android:layout_width="0dp"
android:layout_height="?attr/actionBarSize"
android:layout_marginTop="@dimen/all_margin"
android:background="@color/white_caocao"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent">
</View>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:background="@color/gray_huanggai"
app:layout_constraintBottom_toTopOf="@id/rl_cart" />
<android.support.v7.widget.RecyclerView
android:id="@+id/rl_cart"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white_caocao"
app:layout_constraintBottom_toTopOf="@id/ll_info"
app:layout_constraintTop_toBottomOf="@id/ll_title" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:background="@color/gray_huanggai"
app:layout_constraintBottom_toTopOf="@id/ll_info" />
<LinearLayout
android:id="@+id/ll_info"
android:layout_width="0dp"
android:layout_height="?attr/actionBarSize"
android:background="@color/white_caocao"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingEnd="@dimen/all_margin"
android:paddingStart="@dimen/all_margin"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="结果:"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text='@{result}'
android:textColor="@color/red_guanyu"
android:textSize="@dimen/all_sub_title_size"
android:textStyle="bold" />
<TextView
android:id="@+id/tv_ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/shape_red_round_rectangle_more_round"
android:foreground="?android:attr/actionBarItemBackground"
android:paddingBottom="@dimen/all_spacing"
android:paddingEnd="@dimen/all_margin_big"
android:paddingStart="@dimen/all_margin_big"
android:paddingTop="@dimen/all_spacing"
android:text="@string/inventory_add_btn_end"
android:textColor="@color/white_caocao" />
</LinearLayout>
<FrameLayout
android:id="@+id/fl_logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/all_margin"
android:layout_marginStart="@dimen/all_margin"
android:animateLayoutChanges="true"
app:layout_constraintBottom_toBottomOf="@id/ll_title"
app:layout_constraintLeft_toLeftOf="parent">
<ImageView
android:id="@+id/iv_cart"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/all_spacing"
android:contentDescription="@string/store_cart"
android:foreground="?attr/actionBarItemBackground"
android:src="@mipmap/shopping_cart" />
<TextView
android:layout_width="@dimen/store_cart_count"
android:layout_height="@dimen/store_cart_count"
android:layout_gravity="end"
android:background="@drawable/shape_white_oval"
android:gravity="center"
android:text='@{cartCount+""}'
android:textColor="@color/red_guanyu"
android:textSize="@{cartCount &lt; 100?@dimen/all_caption_size:@dimen/all_tiny_size}"
android:textStyle="bold" />
</FrameLayout>
</android.support.constraint.ConstraintLayout>
</layout>
\ No newline at end of file
......@@ -5,6 +5,7 @@
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/white_caocao"
android:orientation="vertical">
<TextView
......@@ -21,10 +22,11 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/all_margin"
android:layout_marginStart="@dimen/all_margin"
android:layout_marginTop="@dimen/all_margin"
android:text="确定删除吗?"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_body_size" />
android:textSize="@dimen/all_text_size" />
</LinearLayout>
......
......@@ -3,26 +3,27 @@
xmlns:app="http://schemas.android.com/apk/res-auto">
<LinearLayout
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white_caocao"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/all_margin"
android:layout_marginTop="@dimen/all_margin"
android:gravity="center"
android:text="提示"
android:text="@string/skugrp_add_hint"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_sub_title_size"
android:textStyle="bold" />
android:textSize="@dimen/all_text_size" />
<EditText
android:id="@+id/et_pwd"
android:id="@+id/et_name"
style="@style/editText_new"
android:layout_marginBottom="@dimen/all_margin"
android:layout_marginTop="@dimen/et_margin_edittext"
android:hint="@string/skugrp_add_hint"
android:layout_marginTop="@dimen/all_margin"
android:inputType="text"
android:labelFor="@+id/et_name"
android:maxLength="16" />
</LinearLayout>
......
......@@ -3,10 +3,59 @@
xmlns:app="http://schemas.android.com/apk/res-auto">
<LinearLayout
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/transparent">
android:orientation="vertical"
android:paddingBottom="@dimen/all_margin"
android:paddingEnd="@dimen/all_margin"
android:paddingStart="@dimen/all_margin">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/shape_white_r1"
android:orientation="vertical">
<TextView
android:id="@+id/tv_update"
android:layout_width="match_parent"
android:layout_height="@dimen/button3_height"
android:foreground="?android:attr/selectableItemBackground"
android:gravity="center"
android:text="@string/all_update"
android:textColor="@color/blue_mawu"
android:textSize="@dimen/all_text_size" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:layout_marginEnd="@dimen/all_margin"
android:layout_marginStart="@dimen/all_margin"
android:background="@color/gray_kongming" />
<TextView
android:id="@+id/tv_delete"
android:layout_width="match_parent"
android:layout_height="@dimen/button3_height"
android:foreground="?android:attr/selectableItemBackground"
android:gravity="center"
android:text="@string/all_delete"
android:textColor="@color/red_guanyu"
android:textSize="@dimen/all_text_size" />
</LinearLayout>
<TextView
android:id="@+id/tv_cancel"
android:layout_width="match_parent"
android:layout_height="@dimen/button3_height"
android:layout_marginTop="@dimen/all_margin"
android:background="@drawable/shape_white_r1"
android:foreground="?android:attr/selectableItemBackground"
android:gravity="center"
android:padding="@dimen/all_spacing"
android:text="@string/all_cancel"
android:textColor="@color/black_likui"
android:textSize="@dimen/all_text_size" />
</LinearLayout>
</layout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingBottom="@dimen/all_margin"
android:paddingEnd="@dimen/all_margin"
android:paddingStart="@dimen/all_margin">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/shape_white_r1"
android:orientation="vertical">
<TextView
android:id="@+id/tv_update"
android:layout_width="match_parent"
android:layout_height="@dimen/button3_height"
android:foreground="?android:attr/selectableItemBackground"
android:gravity="center"
android:text="@string/sku_update"
android:textColor="@color/blue_mawu"
android:textSize="@dimen/all_text_size" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:layout_marginEnd="@dimen/all_margin"
android:layout_marginStart="@dimen/all_margin"
android:background="@color/gray_kongming"
android:visibility="gone" />
<TextView
android:id="@+id/tv_update_price"
android:layout_width="match_parent"
android:layout_height="@dimen/button3_height"
android:foreground="?android:attr/selectableItemBackground"
android:gravity="center"
android:text="@string/sku_update_price"
android:textColor="@color/blue_mawu"
android:textSize="@dimen/all_text_size"
android:visibility="gone" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:layout_marginEnd="@dimen/all_margin"
android:layout_marginStart="@dimen/all_margin"
android:background="@color/gray_kongming"
android:visibility="gone" />
<TextView
android:id="@+id/tv_update_vip"
android:layout_width="match_parent"
android:layout_height="@dimen/button3_height"
android:foreground="?android:attr/selectableItemBackground"
android:gravity="center"
android:text="@string/sku_update_vip"
android:textColor="@color/blue_mawu"
android:textSize="@dimen/all_text_size"
android:visibility="gone" />
</LinearLayout>
<TextView
android:id="@+id/tv_cancel"
android:layout_width="match_parent"
android:layout_height="@dimen/button3_height"
android:layout_marginTop="@dimen/all_margin"
android:background="@drawable/shape_white_r1"
android:foreground="?android:attr/selectableItemBackground"
android:gravity="center"
android:padding="@dimen/all_spacing"
android:text="@string/all_cancel"
android:textColor="@color/black_likui"
android:textSize="@dimen/all_text_size" />
</LinearLayout>
</layout>
\ No newline at end of file
......@@ -37,9 +37,9 @@
android:layout_weight="1"
android:drawableTop="@mipmap/icon_receivables"
android:gravity="center"
android:textSize="@dimen/all_sub_title_size"
android:text="@string/menu_receivables"
android:textColor="#FFF" />
android:textColor="#FFF"
android:textSize="@dimen/all_sub_title_size" />
<TextView
android:id="@+id/tv_store"
......@@ -49,8 +49,8 @@
android:drawableTop="@mipmap/icon_billing"
android:gravity="center"
android:text="@string/menu_billing"
android:textSize="@dimen/all_sub_title_size"
android:textColor="#FFF" />
android:textColor="#FFF"
android:textSize="@dimen/all_sub_title_size" />
</LinearLayout>
......@@ -76,11 +76,21 @@
android:layout_height="0dp"
android:layout_marginBottom="@dimen/all_padding"
android:layout_marginTop="@dimen/all_padding"
android:background="@color/white_caocao"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/guideline" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:background="@color/gray_kongming"
app:layout_constraintTop_toTopOf="@id/fragment_casher_recycler" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:background="@color/gray_kongming"
app:layout_constraintBottom_toBottomOf="@id/fragment_casher_recycler" />
</android.support.constraint.ConstraintLayout>
</layout>
\ No newline at end of file
......@@ -21,7 +21,7 @@
<View
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:background="@color/gray_kongming" />
android:background="@color/gray_huanggai" />
<LinearLayout
android:id="@+id/btn_add"
......@@ -44,17 +44,12 @@
android:textSize="@dimen/big_text_size" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:background="@color/gray_kongming" />
<TextView
android:id="@+id/tv_count"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/gray_zhouyu"
android:background="@drawable/singleline_zhouyu_huanggai"
android:paddingBottom="@dimen/all_padding"
android:paddingStart="@dimen/all_padding_left_right"
android:paddingTop="@dimen/all_padding"
......@@ -63,6 +58,7 @@
android:textSize="@dimen/all_text_size_low"
android:textStyle="bold" />
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/srl_product"
android:layout_width="match_parent"
......@@ -71,9 +67,9 @@
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_inventory"
android:background="@color/gray_zhouyu"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="match_parent"
android:background="@color/gray_zhouyu">
</android.support.v7.widget.RecyclerView>
</android.support.v4.widget.SwipeRefreshLayout>
......
......@@ -18,6 +18,7 @@
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_zhouyu"
android:orientation="vertical">
<include
......@@ -25,11 +26,17 @@
layout="@layout/title_order"
app:layout_constraintTop_toTopOf="parent" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:background="@color/gray_huanggai"
app:layout_constraintTop_toBottomOf="@id/ic_title" />
<TextView
android:id="@+id/tv_title_small"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/gray_zhouyu"
android:background="@drawable/singleline_zhouyu_huanggai"
android:paddingBottom="@dimen/all_padding"
android:paddingStart="@dimen/all_padding_left_right"
android:paddingTop="@dimen/all_padding"
......@@ -39,16 +46,24 @@
android:textStyle="bold"
app:layout_constraintTop_toBottomOf="@id/ic_title" />
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
<LinearLayout
android:layout_width="0dp"
android:layout_height="0dp"
android:orientation="vertical"
app:layout_constraintBottom_toTopOf="@id/fl_cart"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_title_small">
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/singleline_white_gray">
</android.support.v7.widget.RecyclerView>
</LinearLayout>
<FrameLayout
android:id="@+id/fl_cart"
......@@ -81,15 +96,15 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textColor="@color/red_guanyu"
android:text="@{result}"
android:textColor="@color/red_guanyu"
android:textSize="@dimen/all_sub_title_size"
android:textStyle="bold" />
</LinearLayout>
<TextView
android:id="@+id/tv_settle"
android:id="@+id/btn_end"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/all_margin"
......@@ -106,13 +121,19 @@
app:layout_constraintTop_toBottomOf="@id/fl_cart" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:background="@color/gray_huanggai"
app:layout_constraintTop_toTopOf="@id/fl_cart" />
<FrameLayout
android:id="@+id/fl_logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/all_margin_big"
android:animateLayoutChanges="true"
app:layout_constraintBottom_toBottomOf="@id/tv_settle"
app:layout_constraintBottom_toBottomOf="@id/btn_end"
app:layout_constraintLeft_toLeftOf="@id/fl_cart">
......
......@@ -5,7 +5,6 @@
<import type="android.view.View" />
</data>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
......@@ -16,6 +15,11 @@
android:background="@color/gray_zhouyu"
tools:context="com.example.administrator.tangkupos.CasherFragment">
<View
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:background="@color/gray_huanggai"
app:layout_constraintTop_toTopOf="parent" />
<!-- TODO: Update blank fragmfragment_integral_indexyout -->
<android.support.constraint.Guideline
android:id="@+id/guideline"
......
......@@ -41,5 +41,10 @@
</android.support.v4.view.ViewPager>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:background="@color/gray_huanggai"
app:layout_constraintBottom_toBottomOf="@id/tab_layout" />
</android.support.constraint.ConstraintLayout>
</layout>
\ No newline at end of file
......@@ -23,6 +23,11 @@
<!-- TODO: Update blank fragmfragment_integral_indexyout -->
<View
android:layout_alignParentTop="true"
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:background="@color/gray_huanggai" />
<!--<LinearLayout-->
<!--android:id="@+id/ll_title"-->
......@@ -75,7 +80,6 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/ll_title"
android:background="@color/white_caocao"
android:gravity="center"
android:orientation="vertical"
android:visibility="gone">
......
......@@ -21,7 +21,7 @@
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="30dp"
android:background="@color/white_caocao"
android:background="@drawable/singleline_white_gray"
app:layout_constraintTop_toTopOf="parent"
app:tabIndicatorHeight="0dp"
app:tabMinWidth="100dp"
......
......@@ -15,7 +15,6 @@
android:id="@+id/srl_product"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="@dimen/all_padding"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
......
......@@ -28,6 +28,11 @@
android:background="@color/gray_zhouyu"
android:orientation="vertical">
<View
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:layout_marginTop="@dimen/all_padding_left_right"
android:background="@color/gray_huanggai" />
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
......@@ -36,11 +41,7 @@
android:background="@drawable/singleline_white_gray"
android:paddingBottom="@dimen/all_padding">
<View
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:background="@color/gray_kongming"
app:layout_constraintTop_toTopOf="parent" />
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/img_goods"
......@@ -100,13 +101,12 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="¥"
android:layout_marginBottom="@dimen/view_line_L2"
android:text="¥"
android:textColor="@color/red_lvzhi"
android:textSize="@dimen/all_text_size_small"
app:layout_constraintBottom_toBottomOf="@id/tv_price"
app:layout_constraintEnd_toStartOf="@id/tv_price"
/>
app:layout_constraintEnd_toStartOf="@id/tv_price" />
<TextView
android:id="@+id/tv_price"
......@@ -119,6 +119,11 @@
app:layout_constraintTop_toBottomOf="@id/tv_goods_code_hint" />
</android.support.constraint.ConstraintLayout>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:background="@color/gray_huanggai" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
......@@ -150,8 +155,8 @@
android:background="@color/white_caocao"
android:drawablePadding="@dimen/all_padding"
android:drawableStart="@mipmap/icon_stores"
android:paddingStart="@dimen/all_padding_left_right"
android:paddingEnd="@dimen/all_padding_left_right"
android:paddingStart="@dimen/all_padding_left_right"
android:paddingTop="@dimen/all_padding_left_right"
android:text="@{shopName}"
android:textSize="@dimen/all_text_size_low" />
......@@ -159,11 +164,11 @@
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawablePadding="@dimen/all_padding"
android:background="@color/white_caocao"
android:drawablePadding="@dimen/all_padding"
android:drawableStart="@mipmap/icon_address"
android:paddingStart="@dimen/all_padding_left_right"
android:paddingEnd="@dimen/all_padding_left_right"
android:paddingStart="@dimen/all_padding_left_right"
android:paddingTop="@dimen/all_padding_left_right"
android:text="@{address}"
android:textSize="@dimen/all_text_size_low" />
......@@ -171,16 +176,20 @@
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawablePadding="@dimen/all_padding"
android:background="@color/white_caocao"
android:drawablePadding="@dimen/all_padding"
android:drawableStart="@mipmap/icon_telephone"
android:paddingStart="@dimen/all_padding_left_right"
android:paddingBottom="@dimen/all_padding_left_right"
android:paddingEnd="@dimen/all_padding_left_right"
android:paddingStart="@dimen/all_padding_left_right"
android:paddingTop="@dimen/all_padding_left_right"
android:paddingBottom="@dimen/all_padding_left_right"
android:text="@{phone}"
android:textSize="@dimen/all_text_size_low" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:background="@color/gray_huanggai" />
</LinearLayout>
......
......@@ -10,15 +10,20 @@
android:background="@color/gray_zhouyu"
android:orientation="vertical">
<View
android:id="@+id/view_line"
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:layout_marginTop="@dimen/padding_small"
android:background="@color/gray_huanggai"
android:visibility="gone" />
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/srl_product"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/ll_title"
>
android:layout_below="@id/ll_title">
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_other_selcet"
......
......@@ -21,7 +21,7 @@
<View
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:background="@color/gray_kongming" />
android:background="@color/gray_huanggai" />
<LinearLayout
android:id="@+id/btn_add"
......@@ -47,7 +47,7 @@
<View
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:background="@color/gray_kongming" />
android:background="@color/gray_huanggai" />
<android.support.design.widget.TabLayout
android:id="@+id/tab"
......@@ -63,8 +63,7 @@
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_margin"
android:background="@color/gray_zhouyu"
/>
android:background="@drawable/singleline_zhouyu_huanggai" />
<android.support.v4.view.ViewPager
android:id="@+id/fragment_container"
......
......@@ -67,12 +67,13 @@
layout="@layout/title_order"
app:layout_constraintTop_toTopOf="parent" />
<android.support.constraint.ConstraintLayout
android:id="@+id/cl_default"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/ly_title"
android:layout_marginTop="@dimen/all_margin"
android:layout_marginTop="@dimen/all_padding_left_right"
android:background="@color/white_caocao">
<TextView
......@@ -220,8 +221,7 @@
android:textColor="@color/black"
android:textSize="@dimen/all_text_size"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/ll_supplier"
/>
app:layout_constraintTop_toBottomOf="@id/ll_supplier" />
<TextView
android:id="@+id/tv_shop_name"
......@@ -493,7 +493,7 @@
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/gray_zhouyu"
android:background="@drawable/singleline_zhouyu_huanggai"
android:padding="@dimen/all_padding_left_right"
android:text="定货明细"
android:textColor="@color/black_baozheng"
......@@ -503,6 +503,19 @@
</android.support.constraint.ConstraintLayout>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:layout_below="@id/ly_title"
android:background="@color/gray_huanggai" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:layout_below="@id/ly_title"
android:layout_marginTop="@dimen/all_padding_left_right"
android:background="@color/gray_huanggai" />
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
......@@ -554,5 +567,11 @@
app:layout_constraintTop_toTopOf="parent" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:layout_above="@id/ll_bottom"
android:background="@color/gray_huanggai" />
</RelativeLayout>
</layout>
\ No newline at end of file
......@@ -15,6 +15,7 @@
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler"
android:background="@color/gray_zhouyu"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="visible">
......@@ -29,7 +30,6 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/ll_title"
android:background="@color/white_caocao"
android:gravity="center"
android:orientation="vertical"
android:visibility="gone">
......
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<import type="android.view.View" />
<variable
name="dataCount"
type="int" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_zhouyu"
android:orientation="vertical">
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:layout_marginTop="@dimen/all_spacing"
android:background="@color/gray_huanggai" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/white_caocao"
android:gravity="center_vertical">
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center_vertical"
android:paddingEnd="@null"
android:paddingStart="@dimen/all_margin"
android:text="@string/sku_barcode"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="3">
<EditText
android:id="@+id/et_barcode"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@color/transparent"
android:gravity="center_vertical"
android:inputType="number"
android:labelFor="@+id/et_barcode"
android:saveEnabled="false"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size" />
<TextView
android:id="@+id/tv_check"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/all_margin"
android:layout_marginStart="@dimen/all_margin"
android:background="@drawable/shape_red_round_rectangle_more_round"
android:foreground="?android:attr/actionBarItemBackground"
android:paddingBottom="@dimen/all_spacing"
android:paddingEnd="@dimen/all_margin_big"
android:paddingStart="@dimen/all_margin_big"
android:paddingTop="@dimen/all_spacing"
android:text="@string/sku_check"
android:textColor="@color/white_caocao" />
</LinearLayout>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:background="@color/gray_huanggai" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
android:layout_marginTop="@dimen/all_margin"
android:background="@color/gray_huanggai"
android:visibility="@{dataCount>0?View.VISIBLE:View.GONE}" />
<android.support.v7.widget.RecyclerView
android:id="@+id/rl_sku"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
</layout>
\ No newline at end of file
......@@ -159,5 +159,17 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/guideline" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:background="@color/gray_kongming"
app:layout_constraintTop_toTopOf="@id/fragment_casher_recycler" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:background="@color/gray_kongming"
app:layout_constraintBottom_toBottomOf="@id/fragment_casher_recycler" />
</android.support.constraint.ConstraintLayout>
</layout>
\ No newline at end of file
......@@ -53,7 +53,7 @@
<View
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L1"
android:background="@color/gray_zhouyu"
android:background="@color/gray_huanggai"
app:layout_constraintBottom_toBottomOf="parent"/>
</android.support.constraint.ConstraintLayout>
......
......@@ -22,6 +22,12 @@
layout="@layout/title_order"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_line"
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:background="@color/gray_huanggai"
app:layout_constraintBottom_toBottomOf="@id/ic_title" />
<FrameLayout
android:id="@+id/main_frame"
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -40,7 +40,7 @@
android:hint="@string/statistics_order_edit_hint"
android:inputType="number"
android:textColor="@color/black_likui"
android:textColorHint="@color/gray_huanggai"
android:textColorHint="@color/gray_kongming"
android:textSize="@dimen/all_text_size"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/iv_right"
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment