Commit e136398a by 宁斌

1、外賣自取訂單詳情頁閃退 2、送單打印上菜紙失敗

parent b5ccc516
......@@ -169,7 +169,7 @@ public class TableBean {
}
}
public static TableBean.DataBean splitTableTransformTable(TableExtBean.DataBean dataBean) {
public static TableBean.DataBean splitTableTransformTable(TableBean.DataBean mainTable,TableExtBean.DataBean dataBean) {
TableBean.DataBean tableBean = new TableBean.DataBean();
tableBean.setId(dataBean.getId());
tableBean.setTableName(dataBean.getTableName() + "-" + dataBean.getTableNumber());
......@@ -179,7 +179,8 @@ public class TableBean {
// tableBean.setQrCode();
// tableBean.setQrCodeImg();
tableBean.setSeatCount(dataBean.getSeatCount());
// tableBean.setMaxSeatCount();
tableBean.setMaxSeatCount(mainTable.getMaxSeatCount());
tableBean.setMinSeatCount(mainTable.getMinSeatCount());
tableBean.setStatus(dataBean.getTableStatus());
tableBean.setUseStatus(dataBean.getInUse());
tableBean.setTableNumber(dataBean.getTableNumber());
......@@ -197,7 +198,8 @@ public class TableBean {
// tableBean.setQrCode();
// tableBean.setQrCodeImg();
tableBean.setSeatCount(dataBean.getSeatCount());
// tableBean.setMaxSeatCount();
tableBean.setMaxSeatCount(mainTable.getMaxSeatCount());
tableBean.setMinSeatCount(mainTable.getMinSeatCount());
tableBean.setStatus(dataBean.getTableStatus());
tableBean.setUseStatus(dataBean.getInUse());
tableBean.setTableNumber(dataBean.getTableNumber());
......
......@@ -30,10 +30,13 @@ public class BillMethodAdapter extends BaseQuickAdapter<PayMethod, BaseViewHolde
} else {
tv_bill_method_name.setText(item.getPayName());
}
tv_bill_method_name.setTextSize(item.getPayModeSize());
if(!TextUtils.isEmpty(item.getFont_color())){
tv_bill_method_name.setTextColor(Color.parseColor(item.getFont_color()));
}
if(!TextUtils.isEmpty(item.getColor())) {
tv_bill_method_name.setBackgroundColor(Color.parseColor(item.getColor()));
}
}
}
......@@ -101,11 +101,7 @@ public class SectionTextItem3 {
}
sectionTextItem3.setLeftText(foodName);
sectionTextItem3.setCenterText(String.valueOf(orderDetail.getNumber()));
if (orderDetail.getType() == OrderDetail.DISCOUNT_TYPE) {
sectionTextItem3.setRightText(String.valueOf(orderDetail.getPrice()));
} else {
sectionTextItem3.setRightText(String.valueOf(orderDetail.getPrice() * orderDetail.getNumber()));
}
sectionTextItem3List.add(sectionTextItem3);
}
return sectionTextItem3List;
......
......@@ -7,8 +7,8 @@ ext {
targetSdkVersion : 28,
//正式版: 1.0.3 3
//內部測試版:1.2.0 20
versionCode : 7,
versionName : "1.0.72"
versionCode : 8,
versionName : "1.0.8"
]
version = [
......
......@@ -250,7 +250,9 @@ class OrderDetailsActivity : BaseActivity() {
var spanCount = 3
val gridLayoutManager =
if (btnList.size <= spanCount) {
if(btnList.size != 0){
spanCount = btnList.size
}
GridLayoutManager(this@OrderDetailsActivity, spanCount)
} else {
GridLayoutManager(this@OrderDetailsActivity, spanCount)
......
......@@ -106,8 +106,10 @@
android:layout_height="wrap_content"
app:backgroundColor="@color/theme_white_color"
app:corner="rightBottom"
app:primaryText="堂"
app:primaryTextColor="#249B65"
app:primaryTextSize="10sp" />
app:primaryTextSize="10sp"
app:isRestoreText="false"/>
<TextView
android:id="@+id/tv_type_labe"
......
......@@ -111,14 +111,13 @@ public class PrintBill extends PrinterRoot {
private OrderDetails.DataBean getOrderDetail() {
OrderDetails.DataBean dataBean = new OrderDetails.DataBean();
dataBean.setNowPoints(MyOrderManage.getInstance().getNowPoint());
dataBean.setAddPoints(MyOrderManage.getInstance().getAddPoints());
dataBean.setOldPoints(MyOrderManage.getInstance().getOldPoints());
MemberInfo memberInfo = MyOrderManage.getInstance().getMemberInfo();
if (memberInfo != null) {
dataBean.setMEMBER_NAME(memberInfo.getMemberName());
dataBean.setPHONE(memberInfo.getPhone());
dataBean.setNowPoints(MyOrderManage.getInstance().getNowPoint());
dataBean.setAddPoints(MyOrderManage.getInstance().getAddPoints());
dataBean.setOldPoints(MyOrderManage.getInstance().getOldPoints());
}
return dataBean;
}
......
......@@ -570,6 +570,7 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
protected View getTableMealMemberIntegerView(Context mContext, OrderDetails.DataBean data, String integralQrcode) {
View view = View.inflate(mContext, R.layout.print_model_meal_member_integer_info, null);
LinearLayout ll_member_info = view.findViewById(R.id.ll_member_info);
TextView tvMemberNum = view.findViewById(R.id.tv_print_model_member_number);//會員號碼
TextView tvMemberName = view.findViewById(R.id.tv_print_model_member_name);//會員名稱
TextView tvMemberPhone = view.findViewById(R.id.tv_print_model_member_phone);//會員電話
......@@ -591,6 +592,9 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
if (data.getPHONE() != null && data.getPHONE().length() > 0) {
tvMemberPhone.setText("會員電話:" + getReplaceAfter(data.getPHONE()));
}
ll_member_info.setVisibility(View.VISIBLE);
}else {
ll_member_info.setVisibility(View.GONE);
}
//生成積分QRCode碼(飯糰APP掃碼獲得積分)
if (TextUtils.isEmpty(integralQrcode)) {
......
......@@ -4,6 +4,12 @@
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/ll_member_info"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/tv_print_model_member_number"
style="@style/print_other_order_twenty_six_style"
......@@ -51,7 +57,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_5"
android:text="結餘積分:" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_integral_qrcode"
......
......@@ -76,21 +76,6 @@ public class OrderDetailItem implements Serializable {
private String billNo;
/**取餐碼*/
private String takeFoodCode;
// private String payName;
// private String orderPayType;
// private double tipsPrice;
// private byte linePayType;
// /**折扣ID*/
// private Long discountId;
// /**折扣金額*/
// private double discountAmount;
// /**折扣比例*/
// private int discountValue;
// /**折扣名稱*/
// private String remark;
// /**折扣類型*/
// private int type;
/**生成訂單時間*/
private String createTime;
......@@ -109,6 +94,8 @@ public class OrderDetailItem implements Serializable {
private MemberInfo memberInfo;
/**會員積分碼*/
private String verifyCode;
/**會員積分相关实体*/
private OrderPayRespose integralInfo;
/**
......
......@@ -280,6 +280,18 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
if (mSelectMealAdapter.getSelect_position() == -1) {
return false;
}
if (myOrderManage.getOrderFoodList().size() <= 0) {
return false;
}
if (myOrderManage.getSelmainstartpositon() > myOrderManage.getOrderFoodList().size()) {
return false;
}
OrderDetail orderMainFood = myOrderManage.getOrderFoodList().get(myOrderManage.getSelmainstartpositon());
if (mMealStandPresenter != null && orderMainFood != null) {
if (!mMealStandPresenter.memberPointsCondition(orderMainFood.getPointsRedeem() * i, orderMainFood.getProductName())) {
return false;
}
}
return true;
}
......@@ -712,9 +724,10 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
*/
public double getDiscountableFoodTotal(int discountType, boolean add) {
double total = 0.0;
int orderSize = myOrderManage.getOrderFoodList().size();
List<OrderDetail> orderFoodList = myOrderManage.getOrderFoodList();
int orderSize = orderFoodList.size();
for (int i = 0; i < orderSize; i++) {
OrderDetail food = myOrderManage.getOrderFoodList().get(i);
OrderDetail food = orderFoodList.get(i);
if (food.getNumber() == 0)
continue;
if (food.getItemType() == 1) {
......@@ -722,12 +735,12 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
total = MoneyUtil.sum(total, food.getPrice());
}
} else {
int parentIndex = food.getParentIndex() - 1;
if (orderSize > parentIndex && orderFoodList.get(parentIndex).getAblediscount() == 1) {
if (food.getType() == OrderDetail.DISCOUNT_TYPE) {
//折扣金额直接减掉
//主食品参与折扣,折扣金额直接减掉
total = MoneyUtil.sub(total, Math.abs(food.getPrice()));
} else {
int parentIndex = food.getParentIndex() - 1;
if (orderSize > parentIndex && myOrderManage.getOrderFoodList().get(parentIndex).getAblediscount() == 1) {
//主食品可參與折扣 子食品才能參與折扣
if (food.getAblediscount() == 1) {
total = MoneyUtil.sum(total, food.getPrice());
......@@ -788,9 +801,10 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
*/
public double getScAbleFoodTotal() {
double total = 0.0;
int orderSize = myOrderManage.getOrderFoodList().size();
List<OrderDetail> orderFoodList = myOrderManage.getOrderFoodList();
int orderSize = orderFoodList.size();
for (int i = 0; i < orderSize; i++) {
OrderDetail food = myOrderManage.getOrderFoodList().get(i);
OrderDetail food = orderFoodList.get(i);
if (food.getNumber() == 0)
continue;
if (food.getItemType() == 1) {
......@@ -798,12 +812,12 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
total = MoneyUtil.sum(total, food.getPrice());
}
} else {
int parentIndex = food.getParentIndex() - 1;
if (orderSize > parentIndex && orderFoodList.get(parentIndex).getScAble() == 1) {
if (food.getType() == OrderDetail.DISCOUNT_TYPE) {
//折扣金额直接减掉
//主食品参与服务费,折扣金额直接减掉
total = MoneyUtil.sub(total, Math.abs(food.getPrice()));
} else {
int parentIndex = food.getParentIndex() - 1;
if (orderSize > parentIndex && myOrderManage.getOrderFoodList().get(parentIndex).getScAble() == 1) {
//主食品可參與服务费 子食品才能參與服务费
if (food.getScAble() == 1) {
total = MoneyUtil.sum(total, food.getPrice());
......
......@@ -795,7 +795,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
if (GsaCloudApplication.androidSetting.isAutoPrinterParper()) {
CC.obtainBuilder("Component.Print")
.setActionName("printActivity")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_KITCHEN)
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_SERVE)
.build()
.callAsyncCallbackOnMainThread((cc, result) -> {
if (result.isSuccess()) {
......@@ -968,66 +968,6 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
});
}
// public void memeberUse(int tableId, String tableNumber, long memberId, Button btn_table) {
// mModel.memeberUse(tableId, tableNumber, memberId)
// .subscribeOn(Schedulers.io())
// .doOnSubscribe(disposable -> mRootView.showLoading(null))
// .subscribeOn(AndroidSchedulers.mainThread())
// .observeOn(AndroidSchedulers.mainThread())
// .doAfterTerminate(() -> mRootView.hideLoading())
// .compose(RxLifecycleUtils.bindToLifecycle(mRootView))
// .subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
//
// @Override
// public void onNext(@NonNull BaseResult info) {
// if (info != null && info.isSuccess()) {
// if (info.getData() != null) {
// MyOrderManage.getInstance().setMemberInfo(mMemberInfo);
// btn_table.setBackgroundResource(R.color.pink_300);
// //添加会员折扣行
// addMemberDiscount(mMemberInfo.getId(),mMemberInfo.getMemberDiscount(),mMemberInfo.getLevelName1());
// } else {
// mRootView.showMessage("使用失敗!");
// }
// } else {
// mRootView.showMessage(info.getErrMsg());
// }
// }
// });
// }
// public void memeberUseCancel(int tableId, String tableNumber, long memberId, Button btn_table) {
// mModel.memeberUseCancel(tableId, tableNumber, memberId)
// .subscribeOn(Schedulers.io())
// .doOnSubscribe(disposable -> mRootView.showLoading(null))
// .subscribeOn(AndroidSchedulers.mainThread())
// .observeOn(AndroidSchedulers.mainThread())
// .doAfterTerminate(() -> mRootView.hideLoading())
// .compose(RxLifecycleUtils.bindToLifecycle(mRootView))
// .subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
//
// @Override
// public void onNext(@NonNull BaseResult info) {
// if (info != null && info.isSuccess()) {
// if (info.getData() != null) {
// btn_table.setBackgroundColor(Color.parseColor("#336699"));
// MyOrderManage.getInstance().setMemberInfo(null);
// //刪除會員折扣行
// removeMemberDiscountItem();
// //更新會員信息
// mRootView.memberUseCancelSuccess();
// } else {
// mRootView.showMessage("清除失敗!");
// }
// } else {
// mRootView.showMessage(info.getErrMsg());
// }
// }
//
// });
// }
public void getRestaurantFoodReason() {
int brandId = GsaCloudApplication.getBrandId(mApplication);
int restaurantId = GsaCloudApplication.getRestaurantId(mApplication);
......@@ -1610,7 +1550,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
* @param pointsRedeem
* @return
*/
private boolean memberPointsCondition(double pointsRedeem, String foodName) {
public boolean memberPointsCondition(double pointsRedeem, String foodName) {
MemberInfo memberInfo = myOrderManage.getMemberInfo();
if (memberInfo == null) {
//当前食品需要会员积分
......
......@@ -361,13 +361,13 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
}
/**
* 送單
* 送單打印上菜纸
*/
private void printSendOrder(List<OrderDetail> newFoods) {
if (GsaCloudApplication.androidSetting.isAutoPrinterParper()) {
CC.obtainBuilder("Component.Print")
.setActionName("printActivity")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_KITCHEN)
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_SERVE)
.build()
.callAsyncCallbackOnMainThread((cc, result) -> {
if (result.isSuccess()) {
......
......@@ -276,6 +276,7 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
payRequest.setPointsAdd(getPointsAdd());
payRequest.setPointsUse(getPointsRedeem());
int whetherFreeService = 0;
for (int i = 0; i < payMethodList.size(); i++) {
PayMethod payMethod = payMethodList.get(i);
OrderPayRequest.orderPay orderPay = new OrderPayRequest.orderPay();
......@@ -288,9 +289,12 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
} else {
orderPay.setTipsPrice(orderPayView.getTipsPrice());
}
whetherFreeService = payMethod.getWhetherFreeService();
orderPay.setAmount(payMethod.getPayMoney());
payRequest.getOrderPays().add(orderPay);
}
payRequest.setWhetherFreeService(whetherFreeService);
return payRequest;
}
......
......@@ -711,9 +711,8 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
});
}
public void splitTable(int tableId) {
mModel.splitTable(tableId)
public void splitTable(TableBean.DataBean tableBean) {
mModel.splitTable(tableBean.getId())
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
......@@ -729,7 +728,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
TableExtBean.DataBean tableExtBean = JsonUtils.parseObject(result.getData(), TableExtBean.DataBean.class);
long tableExtId = tableExtBean.getId();
//分檯开檯
openTable(tableExtId, TableBean.splitTableTransformTable(tableExtBean));
openTable(tableExtId, TableBean.splitTableTransformTable(tableBean,tableExtBean));
}
} else {
mRootView.showMessage(result.getErrMsg());
......
......@@ -7,6 +7,7 @@ import android.text.TextUtils;
import android.util.Log;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BillOrderMoney;
import com.gingersoft.gsa.cloud.base.common.bean.OrderBean;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
......@@ -99,7 +100,7 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
mOrderCenterAdapter.setOnItemClickListener(new OrderCenterAdapter.OnItemClickListener() {
@Override
public void onItemClick(OrderDetailItem datasBean, int position) {
Intent intent = new Intent(IActivity, OrderDetailActivity.class);
Intent intent = new Intent(GsaCloudApplication.getAppContext(), OrderDetailActivity.class);
intent.putExtra("orderDetailItem", datasBean);
mRootView.launchActivity(intent);
}
......@@ -184,9 +185,16 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
dataBean.setCreateTime(TimeUtil.getStringByFormat(new Date(orderDetailItem.getCreateTime()), TimeUtil.dateFormatYMDHM));
OpenTableManage.getDefault().setTableBean(dataBean);
if (orderDetailItem.getMemberInfo() != null) {
MyOrderManage.getInstance().setMemberInfo(orderDetailItem.getMemberInfo());
}else {
MyOrderManage.getInstance().setIntegralQrcode(orderDetailItem.getVerifyCode());
}
List<PayMethod> payMethodList = getPayMethodList(orderDetailItem.getOrderPays());
if (payMethodList != null) {
//設置打印所需支付方式
MyOrderManage.getInstance().setBillMoney(payMethodList);
}
CC.obtainBuilder("Component.Print")
.setActionName("printActivity")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_BILL)
......
......@@ -53,6 +53,7 @@ import com.gingersoft.gsa.cloud.database.utils.FoodDaoUtils;
import com.gingersoft.gsa.cloud.database.utils.FoodModifierDaoUtils;
import com.gingersoft.gsa.cloud.print.PrinterUtils;
import com.gingersoft.gsa.cloud.print.bean.OrderDetails;
import com.gingersoft.gsa.cloud.table.BuildConfig;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.constans.GoldConstants;
......@@ -731,12 +732,14 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
case 3:
case 4:
case 5:
if (BuildConfig.DEBUG) {
if (i == 1) {
OrderBean order = MyOrderManage.getInstance().getOrderBean();
if (order != null) {
ArmsUtils.snackbarText("訂單ID:" + order.getId());
}
}
}
mPresenter.changeNumber(i);
break;
case 99:
......
......@@ -482,13 +482,11 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
}
}
if (openInstruction) {
printBill();
CC.obtainBuilder("Component.Print")
.setActionName("printActivity")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_INSTRUCTION)
.build()
.callAsync((cc, result) -> {
});
printBill();
.build();
} else {
printBill();
}
......
......@@ -307,7 +307,7 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
switch (mPresenter.getCurrentChooseOperatType()) {
case TableOperatTypeConstant.splite_table_1:
setOperatContentText(dataBean.getTableName());
mPresenter.splitTable(dataBean.getId());
mPresenter.splitTable(dataBean);
break;
case TableOperatTypeConstant.print_parper_2:
case TableOperatTypeConstant.init_table_3:
......
......@@ -447,6 +447,16 @@ public class OrderDetailActivity extends BaseActivity<OrderDetailPresenter> impl
dataBean.setCreateTime(TimeUtil.getStringByFormat(new Date(orderDetailItem.getCreateTime()), TimeUtil.dateFormatYMDHM));
OpenTableManage.getDefault().setTableBean(dataBean);
List<PayMethod> payMethodList = getPayMethodList(orderDetailItem.getOrderPays());
if (payMethodList != null) {
//設置打印所需支付方式
MyOrderManage.getInstance().setBillMoney(payMethodList);
}
if (orderDetailItem.getMemberInfo() != null) {
MyOrderManage.getInstance().setMemberInfo(orderDetailItem.getMemberInfo());
}else {
MyOrderManage.getInstance().setIntegralQrcode(orderDetailItem.getVerifyCode());
}
CC.obtainBuilder("Component.Print")
.setActionName("printActivity")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_BILL)
......@@ -460,6 +470,7 @@ public class OrderDetailActivity extends BaseActivity<OrderDetailPresenter> impl
});
}
private List<BillOrderMoney> getOrderMoneyList() {
List<BillOrderMoney> billOrderMoneyList = new ArrayList<>();
if (mOrderCenterMoneyList != null) {
......
......@@ -138,12 +138,12 @@ public class DiscountDialog extends Dialog {
mTopBar.setBackgroundColor(ContextCompat.getColor(mContext, R.color.theme_color));
}
if (canScan) {
mTopBar.addRightImageButton(R.mipmap.table_white_scan, R.id.topbar_right_change_button)
.setOnClickListener(v -> {
if (onClickListener != null) {
onClickListener.onScan();
}
});
// mTopBar.addRightImageButton(R.mipmap.table_white_scan, R.id.topbar_right_change_button)
// .setOnClickListener(v -> {
// if (onClickListener != null) {
// onClickListener.onScan();
// }
// });
}
mTopBar.setTitle("折扣");
}
......
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