Commit 036909d4 by 宁斌

1、N5相關細節調整

parent 66c18f25
......@@ -289,13 +289,10 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl
}
List<Function> managerFuncations = FunctionManager.getDefault().getFunctionByResModule(this, ComponentMain.main.class, ComponentMain.main.manager, "manager");
managerFuncations.add(new Function(171, 163, 5, "二維碼", R.drawable.ic_qr_code, 0));
// managerFuncations.add(new Function(171, 163, 5, "二維碼", R.drawable.ic_qr_code, 0));
managerFuncations.add(new Function(171, 163, 5, "配置列表", R.drawable.ic_expand_list, 0));
// managerFuncations.add(new Function(171, 163, 5, "廚房打印查詢", R.drawable.ic_kitchen_print_query, 0));
managerFuncations.add(new Function(171, 163, 5, "餐牌管理", R.drawable.ic_food_menu_manger, 0));
managerFuncations.add(new Function(171, 163, 5, "採購", R.drawable.ic_purchase, 0));
// managerFuncations.add(new Function(171, 163, 5, "餐牌管理", R.drawable.ic_food_menu_manger, 0));
// managerFuncations.add(new Function(171, 163, 5, "採購", R.drawable.ic_purchase, 0));
if (managerFuncations.size() > 0) {
functions.addAll(managerFuncations);
......
package com.gingersoft.gsa.cloud.pay.mvp.ui.activity;
import android.app.Activity;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.TextView;
......@@ -17,9 +18,8 @@ import androidx.core.content.ContextCompat;
import com.billy.cc.core.component.CC;
import com.billy.cc.core.component.CCUtil;
import com.gingersoft.gsa.cloud.common.constans.AppConstans;
import com.gingersoft.gsa.cloud.common.constans.PrintConstans;
import com.gingersoft.gsa.cloud.common.core.table.TableBean;
import com.gingersoft.gsa.cloud.common.loadsir.EmptyCallback;
import com.gingersoft.gsa.cloud.common.loadsir.ErrorCallback;
import com.gingersoft.gsa.cloud.common.loadsir.pos.BasePosCallback;
import com.gingersoft.gsa.cloud.common.loadsir.pos.PosPayStatusExceptionCallback;
import com.gingersoft.gsa.cloud.common.utils.MoneyUtil;
......@@ -44,10 +44,12 @@ import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.RetrievalReque
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.AdjustTipRespose;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.HywebPosResponse;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.SaleRespose;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.constant.PayStatusCode;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.constant.HywebActionStatusCode;
import com.gingersoft.gsa.cloud.pay.util.PayMethodUtils;
import com.gingersoft.gsa.cloud.print.bean.PrintContent;
import com.gingersoft.gsa.cloud.print.bean.adapter.PrintContentAdapter;
import com.gingersoft.gsa.cloud.ui.widget.dialog.KeyboardDialog;
import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog;
import com.google.android.material.snackbar.BaseTransientBottomBar;
import com.jess.arms.base.BaseFragmentActivity;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils;
......@@ -152,7 +154,7 @@ public class PayResultActivity extends BaseFragmentActivity<PayResultPresenter>
callback1.showFinalStrategy(true);
}
//支付状态异常 重试查询
retrievalStatus();
retrievalStatus(PosAction.SALE);
retryCount--;
}
});
......@@ -180,25 +182,33 @@ public class PayResultActivity extends BaseFragmentActivity<PayResultPresenter>
tvPaymethod.setText(mPayMehodNames);
tvTableName.setText("檯號: " + mMealPayResultParam.getTableBean().getTableName());
tvOrderNum.setText("單號: " + mMealPayResultParam.getMealOrderPayRequest().getOrderId());
PayMethod payMethod = PayMethodUtils.filterPaymentMethodById(mMealPayResultParam.getPayMethodList(), PayMethod.HYWEB_POS_TYPE_CC);
if (payMethod != null) {
//只有卡片支付才支持補小費
tvTips.setVisibility(View.VISIBLE);
} else {
tvTips.setVisibility(View.GONE);
}
}
private void showPaymentStatus() {
if (PayStatusCode.withSuccess(mSaleRespose.getSTATUS())) {
if (HywebActionStatusCode.withSuccess(mSaleRespose.getSTATUS())) {
loadService.showSuccess();
llBottom.setVisibility(View.VISIBLE);
btnComplate.setVisibility(View.VISIBLE);
} else if (PayStatusCode.withException(mSaleRespose.getSTATUS())) {
} else if (HywebActionStatusCode.withException(mSaleRespose.getSTATUS())) {
loadService.showCallback(PosPayStatusExceptionCallback.class);
llBottom.setVisibility(View.INVISIBLE);
btnComplate.setVisibility(View.INVISIBLE);
}
tvPayStatus.setCompoundDrawables(null, getPaymentDrawableByStatus(mSaleRespose.getSTATUS()), null, null);
tvPayStatus.setText(PayStatusCode.getHywebRequestTextByCode(mSaleRespose.getSTATUS()));
tvPayStatus.setText(HywebActionStatusCode.getHywebRequestTextByCode(mSaleRespose.getSTATUS()));
}
private Drawable getPaymentDrawableByStatus(String status) {
Drawable drawable;
if (PayStatusCode.withSuccess(status)) {
if (HywebActionStatusCode.withSuccess(status)) {
drawable = getResources().getDrawable(R.mipmap.pay_status_success);
drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());
} else {
......@@ -208,10 +218,10 @@ public class PayResultActivity extends BaseFragmentActivity<PayResultPresenter>
return drawable;
}
private void retrievalStatus() {
private void retrievalStatus(PosAction posAction) {
RetrievalRequest retrievalRequest = new RetrievalRequest();
retrievalRequest.setTXN_ID(mMealPayResultParam.getTxnId());
PosPay.retrieval(mContext, this, mMealPayResultParam.getMealOrderPayRequest().getOrderId(), retrievalRequest, new OnPosActionListener() {
PosPay.retrieval(mContext, this, mMealPayResultParam.getMealOrderPayRequest().getOrderId(), posAction, retrievalRequest, new OnPosActionListener() {
@Override
public void onPosSuccess(HywebPosResponse response) {
......@@ -322,7 +332,7 @@ public class PayResultActivity extends BaseFragmentActivity<PayResultPresenter>
if (view.getId() == R.id.tv_tips) {
showKeyboardDialog();
} else if (view.getId() == R.id.tv_printer) {
printBill();
} else if (view.getId() == R.id.btn_complate) {
//返回餐檯頁面
CC.obtainBuilder(ComponentName.COMPONENT_TABLE)
......@@ -333,6 +343,22 @@ public class PayResultActivity extends BaseFragmentActivity<PayResultPresenter>
}
}
private void printBill() {
PrintContent printContent = new PrintContentAdapter().adaptationBillContent(DoshokuOrder.getInstance(),mMealPayResultParam.getTableBean());
CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.setActionName("printActivity")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_BILL)
.addParam(PrintConstans.PRINT_CONTENT, printContent)
.build()
.callAsyncCallbackOnMainThread((cc, result) -> {
Log.e("error", "是否成功打印:" + result.isSuccess());
//清空開檯數據
DoshokuOrder.getInstance().initialization();
setResult(Activity.RESULT_OK, null);
killMyself();
});
}
private void showKeyboardDialog() {
new KeyboardDialog(this)
.build()
......
......@@ -19,6 +19,7 @@ import com.gingersoft.gsa.cloud.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.print.bean.PrintBillContent;
import com.gingersoft.gsa.cloud.print.bean.base.PrintBillItem;
import com.gingersoft.gsa.cloud.print.bean.base.PrintFoodItem;
import com.joe.print.mvp.model.bean.BillingBean;
import com.joe.print.mvp.model.bean.HtmlLable;
import com.joe.print.mvp.print.common.HtmlContract;
......@@ -235,13 +236,6 @@ public class PrintBill extends PrinterRoot<PrintBillContent> {
private Bitmap getBitmap(Context mContext, PrinterDeviceBean deviceBean) {
DoshokuOrder doshokuOrder = DoshokuOrder.getInstance();
ShoppingCart shoppingCart = doshokuOrder.getShoppingCart();
List<OrderDetail> foodList = shoppingCart.getOrderCommodityList();
TableBean.DataBean tableBean = doshokuOrder.getOpenTableInfo();
LinearLayout layout = new LinearLayout(mContext);
layout.setOrientation(LinearLayout.VERTICAL);
......@@ -250,28 +244,28 @@ public class PrintBill extends PrinterRoot<PrintBillContent> {
layout.addView(getLine(mContext));
//訂單信息
String tableName = "餐檯:" + tableBean.getTableName();
String peopleNum = "人數:" + doshokuOrder.getOpenTableInfo().getPerson();
String tableName = "餐檯:" + mPrintBillContent.getTableName();
String peopleNum = "人數:" + mPrintBillContent.getPerson();
String orderNum = "單號:";
if (TextUtil.isNotEmptyOrNullOrUndefined(doshokuOrder.getOrderNo())) {
orderNum = "單號:" + doshokuOrder.getOrderNo();
if (TextUtil.isNotEmptyOrNullOrUndefined(mPrintBillContent.getOrderNo())) {
orderNum = "單號:" + mPrintBillContent.getOrderNo();
}
String createTime = "日期:" + TimeUtils.parseTimeRepeat(tableBean.getCreateTime(), TimeUtils.DEFAULT_DATE_FORMAT);
String createTime = "日期:" + TimeUtils.parseTimeRepeat(mPrintBillContent.getCreateTime(), TimeUtils.DEFAULT_DATE_FORMAT);
layout.addView(getDiningTableOrderInfo(mContext, tableName, peopleNum, orderNum, createTime));
layout.addView(getLine(mContext));
//食品信息
layout.addView(getDiningFoodList(mContext, foodList, deviceBean, 1, true));
layout.addView(getDiningFoodList(mContext, mPrintBillContent.getFoodItemList(), deviceBean, 1, true));
layout.addView(getHalfLine(mContext));
//訂單金額信息
List<BillingBean> billingBeans = new ArrayList<>();
//添加合計項
billingBeans.add(new BillingBean("合計", shoppingCart.getWholeAmount()));
billingBeans.add(new BillingBean("合計", mPrintBillContent.getWholeAmount()));
//添加其他金額項
if (shoppingCart.getBillItemList().size() > 0) {
for (BillItem item : shoppingCart.getBillItemList()) {
billingBeans.add(new BillingBean(item.getName(), item.getMoney()));
if (mPrintBillContent.getBillItemList().size() > 0) {
for (PrintBillItem item : mPrintBillContent.getBillItemList()) {
billingBeans.add(new BillingBean(item.getBillName(), Double.parseDouble(item.getBillAmount())));
}
}
layout.addView(getDiningBillInfo(mContext, billingBeans));
......@@ -281,12 +275,12 @@ public class PrintBill extends PrinterRoot<PrintBillContent> {
// for (OrderDetail OrderDetail : MyOrderManage.getInstance().getOrderFoodList()) {
// totalAmount = MoneyUtil.sum(totalAmount, OrderDetail.getPrice());
// }
layout.addView(getAmountText(mContext, "總金額:" + shoppingCart.getTotalAmount()));
layout.addView(getAmountText(mContext, "總金額:" + mPrintBillContent.getTotalAmount()));
layout.addView(getLine(mContext));
layout.addView(getDiningBillPayMethod(mContext, doshokuOrder.getBillMoney()));
layout.addView(getDiningBillPayMethod(mContext, mPrintBillContent.getPayMethodItemList()));
layout.addView(getLine(mContext));
layout.addView(getTableMealMemberIntegerView(mContext, getOrderMemberInfo(), doshokuOrder.getIntegralQrcode()));
layout.addView(getTableMealMemberIntegerView(mContext, getOrderMemberInfo(), mPrintBillContent.getIntegralQrCode()));
return zoomBitmap(deviceBean, viewToBitmap(mContext, layout));
}
......
......@@ -85,7 +85,7 @@ public class PrintOtherOrder extends PrinterRoot<PrintTakeawayFormContent> {
layout.addView(getTakeawayOrderInfo(mContext, data));
//食品
layout.addView(getTextLine(mContext, "項目"));
layout.addView(getDiningFoodList(mContext, OrderDetail.productMameBeanToOrderDetail(0, data.getPRODUCT_NAME()), deviceBean, 1, true));
layout.addView(getDiningFoodList(mContext, orderDetailCastPrintFoodItem(OrderDetail.productMameBeanToOrderDetail(0, data.getPRODUCT_NAME())), deviceBean, 1, true));
layout.addView(getLine(mContext));
//訂單金額信息
List<PrintBillItem> billData = new ArrayList<>();
......
......@@ -216,7 +216,7 @@ public class PrintOtherOrderClosing extends PrinterRoot<PrintTakeawayCheckoutCon
layout.addView(getTakeawayOrderInfo(mContext, data));
//食品
layout.addView(getTextLine(mContext, "項目"));
layout.addView(getDiningFoodList(mContext, OrderDetail.productMameBeanToOrderDetail(1, data.getPRODUCT_NAME()), deviceBean, 1, true));
layout.addView(getDiningFoodList(mContext, orderDetailCastPrintFoodItem(OrderDetail.productMameBeanToOrderDetail(1, data.getPRODUCT_NAME())), deviceBean, 1, true));
layout.addView(getLine(mContext));
//訂單金額信息
List<PrintBillItem> billData = new ArrayList<>();
......
......@@ -12,6 +12,7 @@ import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import com.gingersoft.gsa.cloud.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.print.bean.PrintServingPaperContent;
import com.gingersoft.gsa.cloud.print.bean.base.PrintFoodItem;
import com.joe.print.R;
import com.joe.print.mvp.model.bean.HtmlLable;
import com.joe.print.mvp.print.common.HtmlContract;
......@@ -131,11 +132,11 @@ public class PrintServe extends PrinterRoot<PrintServingPaperContent> {
}
private Bitmap getBitmap(Context mContext, PrinterDeviceBean printerDeviceBean) {
List<OrderDetail> foodList = DoshokuOrder.getInstance().getShoppingCart().getOrderCommodityList();
if (foodList == null || foodList.size() <= 0) {
List<PrintFoodItem> foodItemList = mPrintServingPaperContent.getFoodItemList();
if (foodItemList == null || foodItemList.size() <= 0) {
return null;
}
TableBean.DataBean tableBean = DoshokuOrder.getInstance().getOpenTableInfo();
LinearLayout layout = new LinearLayout(mContext);
layout.setOrientation(LinearLayout.VERTICAL);
......@@ -144,14 +145,14 @@ public class PrintServe extends PrinterRoot<PrintServingPaperContent> {
layout.addView(getHeader(mContext));
layout.addView(getLine(mContext));
String orderNo = "單號:";
if (TextUtil.isNotEmptyOrNullOrUndefined(DoshokuOrder.getInstance().getOrderNo())) {
orderNo = "單號:" + DoshokuOrder.getInstance().getOrderNo();
if (TextUtil.isNotEmptyOrNullOrUndefined(mPrintServingPaperContent.getOrderNo())) {
orderNo = "單號:" + mPrintServingPaperContent.getOrderNo();
}
//訂單信息
layout.addView(getDiningTableOrderInfo(mContext, "餐檯:" + tableBean.getTableName(), "人數:" + DoshokuOrder.getInstance().getOpenTableInfo().getPerson(), orderNo, "日期:" + TimeUtils.getCurrentTimeInString(TimeUtils.DEFAULT_DATE_FORMAT)));
layout.addView(getDiningTableOrderInfo(mContext, "餐檯:" + mPrintServingPaperContent.getTableName(), "人數:" + mPrintServingPaperContent.getPerson(), orderNo, "日期:" + TimeUtils.getCurrentTimeInString(TimeUtils.DEFAULT_DATE_FORMAT)));
layout.addView(getLine(mContext));
layout.addView(getDiningFoodList(mContext, foodList, printerDeviceBean, 0, false));
layout.addView(getDiningFoodList(mContext, foodItemList, printerDeviceBean, 0, false));
layout.addView(getLine(mContext));
layout.addView(getTextView(mContext, "Thank you!", Gravity.CENTER_HORIZONTAL, getDimensionPixelSize(mContext, R.dimen.dp_8)));
layout.addView(getTextView(mContext, TimeUtils.getCurrentTimeInString(TimeUtils.DEFAULT_DATE_FORMAT), Gravity.CENTER_HORIZONTAL, getDimensionPixelSize(mContext, R.dimen.dp_8)));
......
......@@ -17,6 +17,7 @@ import com.gingersoft.gsa.cloud.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.print.bean.PrintSlipContent;
import com.gingersoft.gsa.cloud.print.bean.base.PrintBillItem;
import com.gingersoft.gsa.cloud.print.bean.base.PrintFoodItem;
import com.joe.print.R;
import com.joe.print.mvp.model.bean.BillingBean;
import com.joe.print.mvp.model.bean.HtmlLable;
......@@ -66,10 +67,9 @@ public class PrintSlip extends PrinterRoot<PrintSlipContent> {
return new String[]{"<html><body></body></html>"};
}
List<OrderDetail> foodList = DoshokuOrder.getInstance().getShoppingCart().getOrderCommodityList();
TableBean.DataBean tableBean = DoshokuOrder.getInstance().getOpenTableInfo();
List<PrintFoodItem> foodList = mPrintSlipContent.getFoodItemList();
if (foodList.size() == 0 || tableBean == null) {
if (foodList.size() == 0 ) {
return new String[]{"<html><body></body></html>"};
}
......@@ -109,8 +109,8 @@ public class PrintSlip extends PrinterRoot<PrintSlipContent> {
* 訂單
*/
String orderNum = "單號:";
if (TextUtil.isNotEmptyOrNullOrUndefined(DoshokuOrder.getInstance().getOrderNo())) {
orderNum = "單號:" + DoshokuOrder.getInstance().getOrderNo();
if (TextUtil.isNotEmptyOrNullOrUndefined(mPrintSlipContent.getOrderNo())) {
orderNum = "單號:" + mPrintSlipContent.getOrderNo();
}
htmlLables.addAll(getRowInformation(new HtmlLable[]{new HtmlLable(LABLE_COLUMN, "餐檯:" + mPrintSlipContent.getTableName())}, 24));
htmlLables.addAll(getRowInformation(new HtmlLable[]{new HtmlLable(LABLE_COLUMN, "人數:" + mPrintSlipContent.getPerson())}, 24));
......@@ -173,14 +173,10 @@ public class PrintSlip extends PrinterRoot<PrintSlipContent> {
private Bitmap getBitmap(Context mContext, PrinterDeviceBean printerDeviceBean) {
DoshokuOrder doshokuOrder = DoshokuOrder.getInstance();
ShoppingCart shoppingCart = doshokuOrder.getShoppingCart();
List<OrderDetail> foodList = shoppingCart.getOrderCommodityList();
List<PrintFoodItem> foodList = mPrintSlipContent.getFoodItemList();
if (foodList == null || foodList.size() <= 0) {
return null;
}
TableBean.DataBean tableBean = doshokuOrder.getOpenTableInfo();
LinearLayout layout = new LinearLayout(mContext);
layout.setOrientation(LinearLayout.VERTICAL);
......@@ -190,23 +186,23 @@ public class PrintSlip extends PrinterRoot<PrintSlipContent> {
layout.addView(getLine(mContext));
//訂單信息
layout.addView(getDiningTableOrderInfo(mContext, "餐檯:" + tableBean.getTableName(), "人數:" + doshokuOrder.getOpenTableInfo().getPerson(), "單號:" + doshokuOrder.getOrderNo(), "日期:" + TimeUtils.getCurrentTimeInString(TimeUtils.DEFAULT_DATE_FORMAT)));
layout.addView(getDiningTableOrderInfo(mContext, "餐檯:" + mPrintSlipContent.getTableName(), "人數:" + mPrintSlipContent.getPerson(), "單號:" + mPrintSlipContent.getOrderNo(), "日期:" + TimeUtils.getCurrentTimeInString(TimeUtils.DEFAULT_DATE_FORMAT)));
layout.addView(getLine(mContext));
layout.addView(getDiningFoodList(mContext, foodList, printerDeviceBean, 0, true));
layout.addView(getHalfLine(mContext));
List<BillingBean> billingBeans = new ArrayList<>();
//添加合計項
billingBeans.add(new BillingBean("合計", shoppingCart.getWholeAmount()));
billingBeans.add(new BillingBean("合計", mPrintSlipContent.getWholeAmount()));
//添加其他金額項
if (shoppingCart.getBillItemList().size() > 0) {
for (BillItem item : shoppingCart.getBillItemList()) {
billingBeans.add(new BillingBean(item.getName(), item.getMoney()));
if (mPrintSlipContent.getBillItemList().size() > 0) {
for (PrintBillItem item : mPrintSlipContent.getBillItemList()) {
billingBeans.add(new BillingBean(item.getBillName(), Double.parseDouble(item.getBillAmount())));
}
}
layout.addView(getDiningBillInfo(mContext, billingBeans));
layout.addView(getHalfLine(mContext));
layout.addView(getAmountText(mContext, "總金額:" + shoppingCart.getTotalAmount()));
layout.addView(getAmountText(mContext, "總金額:" + mPrintSlipContent.getTotalAmount()));
layout.addView(getLine(mContext));
layout.addView(getTextView(mContext, "Thank you!", Gravity.CENTER_HORIZONTAL, getDimensionPixelSize(mContext, R.dimen.dp_8)));
layout.addView(getTextView(mContext, TimeUtils.getCurrentTimeInString(TimeUtils.DEFAULT_DATE_FORMAT), Gravity.CENTER_HORIZONTAL, getDimensionPixelSize(mContext, R.dimen.dp_8)));
......
......@@ -798,6 +798,17 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
return view;
}
protected List<PrintFoodItem> orderDetailCastPrintFoodItem(List<OrderDetail> orderDetailList) {
List<PrintFoodItem> foodItemList = new ArrayList<>();
if (orderDetailList != null && orderDetailList.size() > 0) {
for (int i = 0; i < orderDetailList.size(); i++) {
OrderDetail orderDetail = orderDetailList.get(i);
foodItemList.add(new PrintFoodItem(orderDetail.getProductName(), orderDetail.getNumber(), orderDetail.getPrice(), orderDetail.getItemType()));
}
}
return foodItemList;
}
/**
* @param mContext
* @param foodList
......@@ -806,7 +817,7 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
* @param showPrice 是否顯示價格
* @return
*/
public View getDiningFoodList(Context mContext, List<OrderDetail> foodList, PrinterDeviceBean deviceBean, int type, boolean showPrice) {
public View getDiningFoodList(Context mContext, List<PrintFoodItem> foodList, PrinterDeviceBean deviceBean, int type, boolean showPrice) {
// List<OrderDetail> newsFoodList = new ArrayList<>();
// for (OrderDetail orderDetail : foodList) {
// //如果食品設置了0元不打印並且食品等於0元,或者設置了不打印到單,就不打印
......@@ -818,13 +829,12 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
return getVerticalRecyclerView(mContext, new FoodAdapter(foodList, deviceBean, showPrice));
}
public View getDiningBillInfo(Context mContext, List<BillingBean> billingBeans) {
return getVerticalRecyclerView(mContext, new BillAdapter(billingBeans));
}
public View getDiningBillPayMethod(Context mContext, List<PayMethod> payBillMoneys) {
public View getDiningBillPayMethod(Context mContext, List<PrintBillItem> payBillMoneys) {
return getVerticalRecyclerView(mContext, new BillTypeAdapter(payBillMoneys));
}
......
......@@ -4,6 +4,7 @@ import androidx.annotation.Nullable;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.viewholder.BaseViewHolder;
import com.gingersoft.gsa.cloud.pay.bean.PayMethod;
import com.gingersoft.gsa.cloud.print.bean.base.PrintBillItem;
import com.joe.print.R;
import java.util.List;
......@@ -11,15 +12,15 @@ import java.util.List;
* Created by Wyh on 2020/1/9.
* 結賬方式
*/
public class BillTypeAdapter extends BaseQuickAdapter<PayMethod, BaseViewHolder> {
public class BillTypeAdapter extends BaseQuickAdapter<PrintBillItem, BaseViewHolder> {
public BillTypeAdapter(@Nullable List<PayMethod> data) {
public BillTypeAdapter(@Nullable List<PrintBillItem> data) {
super(R.layout.base_print_item_bill_type, data);
}
@Override
protected void convert(BaseViewHolder helper, PayMethod item) {
helper.setText(R.id.tv_total_amount_text, item.getPayName());
helper.setText(R.id.tv_total_amount, "$" + item.getPayMoney());
protected void convert(BaseViewHolder helper, PrintBillItem item) {
helper.setText(R.id.tv_total_amount_text, item.getBillName());
helper.setText(R.id.tv_total_amount, "$" + item.getBillAmount());
}
}
......@@ -7,7 +7,7 @@ import androidx.annotation.Nullable;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.viewholder.BaseViewHolder;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import com.gingersoft.gsa.cloud.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.print.bean.base.PrintFoodItem;
import com.joe.print.R;
import java.util.List;
......@@ -15,7 +15,7 @@ import java.util.List;
/**
* Created by Wyh on 2020/1/9.
*/
public class FoodAdapter extends BaseQuickAdapter<OrderDetail, BaseViewHolder> {
public class FoodAdapter extends BaseQuickAdapter<PrintFoodItem, BaseViewHolder> {
private int foodFontSize = 24;
private int modifierFontSize = 24;
......@@ -27,7 +27,7 @@ public class FoodAdapter extends BaseQuickAdapter<OrderDetail, BaseViewHolder> {
private boolean showPrice = true;
public FoodAdapter(@Nullable List<OrderDetail> data, PrinterDeviceBean deviceBean, boolean showPrice) {
public FoodAdapter(@Nullable List<PrintFoodItem> data, PrinterDeviceBean deviceBean, boolean showPrice) {
super(R.layout.print_item_food, data);
try {
this.foodFontSize = Integer.parseInt(deviceBean.getFoodFont()) * 2;//36
......@@ -47,7 +47,7 @@ public class FoodAdapter extends BaseQuickAdapter<OrderDetail, BaseViewHolder> {
* @param data
* @param deviceBean 打印機信息
*/
public FoodAdapter(@Nullable List<OrderDetail> data, PrinterDeviceBean deviceBean) {
public FoodAdapter(@Nullable List<PrintFoodItem> data, PrinterDeviceBean deviceBean) {
super(R.layout.print_item_food, data);
try {
this.foodFontSize = Integer.parseInt(deviceBean.getFoodFont()) * 2;
......@@ -62,13 +62,13 @@ public class FoodAdapter extends BaseQuickAdapter<OrderDetail, BaseViewHolder> {
this.numberIsFlip = deviceBean.getNumberIsFlip();
}
public FoodAdapter(@Nullable List<OrderDetail> data) {
public FoodAdapter(@Nullable List<PrintFoodItem> data) {
super(R.layout.print_item_food, data);
}
@Override
protected void convert(BaseViewHolder helper, OrderDetail item) {
protected void convert(BaseViewHolder helper, PrintFoodItem item) {
TextView tvFoodName = helper.getView(R.id.tv_food_name);
TextView tvNum = helper.getView(R.id.tv_food_quantity);
TextView tvPrice = helper.getView(R.id.tv_food_price);
......@@ -80,7 +80,7 @@ public class FoodAdapter extends BaseQuickAdapter<OrderDetail, BaseViewHolder> {
boolean isBold, isItalic;
if (item.getItemType() == 2) {
//細項,縮進
helper.setText(R.id.tv_food_name, "\u3000" + item.getProductName());
helper.setText(R.id.tv_food_name, "\u3000" + item.getName());
tvFoodName.setTextSize(modifierFontSize);
tvNum.setTextSize(modifierFontSize);
tvPrice.setTextSize(modifierFontSize);
......@@ -89,14 +89,14 @@ public class FoodAdapter extends BaseQuickAdapter<OrderDetail, BaseViewHolder> {
isItalic = modifierIsItalic == 1;
} else if (item.getItemType() == 3) {
//細項,縮進
helper.setText(R.id.tv_food_name, "\u3000\u3000" + item.getProductName());
helper.setText(R.id.tv_food_name, "\u3000\u3000" + item.getName());
tvFoodName.setTextSize(modifierFontSize);
tvNum.setTextSize(modifierFontSize);
tvPrice.setTextSize(modifierFontSize);
isBold = modifierIsBold == 1;
isItalic = modifierIsItalic == 1;
} else {
helper.setText(R.id.tv_food_name, item.getProductName());
helper.setText(R.id.tv_food_name, item.getName());
tvFoodName.setTextSize(foodFontSize);
tvNum.setTextSize(foodFontSize);
tvPrice.setTextSize(foodFontSize);
......@@ -125,7 +125,7 @@ public class FoodAdapter extends BaseQuickAdapter<OrderDetail, BaseViewHolder> {
// tvFoodName.setTypeface(null, Typeface.BOLD);
// tvFoodName.setTypeface(null, Typeface.ITALIC);
// tvFoodName.setTypeface(null, Typeface.NORMAL);
tvNum.setText("X" + item.getNumber());
tvNum.setText("X" + item.getNum());
tvPrice.setText("$" + item.getPrice());
}
}
......@@ -141,6 +141,11 @@ public class OrderManagerResponse implements Serializable {
private String refundTxnId;
/**
* 設備ID,用來區分每台N5設備支付的訂單
*/
private String deviceId;
/**
* 訂單狀態:0:未支付;1:待確認(已支付, 待餐廳確認);2:制作中(餐厅确认);3:派送中;4:确认收货(完成);5:是否评论;6:取消;
*/
public static final byte STATUS_UNPAID = 0;
......@@ -176,7 +181,12 @@ public class OrderManagerResponse implements Serializable {
private double tipsPrice;
private int status;
private int linePayType;
private double paySales;
/**
* 0=非營業額(非收入)
* 1=營業額(收入)
* 2=非項目銷售(Non gross item, 獨佔的支付方式)
*/
private int paySales;
private String payName;
public boolean withHywebPay() {
......@@ -186,7 +196,6 @@ public class OrderManagerResponse implements Serializable {
return false;
}
@Nullable
public String getHywebPayMethodByType() {
if (payType == PayMethod.HYWEB_POS_TYPE_CC) {
return PayMethodConstant.PAY_TYPE_CC;
......@@ -194,7 +203,7 @@ public class OrderManagerResponse implements Serializable {
if (payType == PayMethod.HYWEB_POS_TYPE_QRC) {
return PayMethodConstant.PAY_TYPE_QRC;
}
return null;
return "";
}
}
}
......@@ -100,7 +100,7 @@ public class PrintServingPaperAction extends TableAction {
}
doshokuOrder.setOpenTableInfo(tableBean);
printParper();
printParper(tableBean);
} else {
CommonTipDialog.showSurpisedDialog(mContext, respose.getErrMsg(), null, null, null, null, null);
}
......@@ -133,8 +133,8 @@ public class PrintServingPaperAction extends TableAction {
/**
* 打印上菜紙
*/
private void printParper() {
PrintContent printContent = new PrintContentAdapter().adaptationServingPaperContent(DoshokuOrder.getInstance());
private void printParper(TableBean.DataBean tableBean) {
PrintContent printContent = new PrintContentAdapter().adaptationServingPaperContent(DoshokuOrder.getInstance(),tableBean);
CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.setActionName("printActivity")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_SERVE)
......
......@@ -884,7 +884,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
mergeMainFoodNumber(mOrderMealList);
}
PrintContent printContent = new PrintContentAdapter().adaptationServingPaperContent(DoshokuOrder.getInstance());
PrintContent printContent = new PrintContentAdapter().adaptationServingPaperContent(DoshokuOrder.getInstance(),mTableInfo);
CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.setActionName("printActivity")
......
......@@ -383,7 +383,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
mergeMainFoodNumber(mOrderMealList);
}
PrintContent printContent = new PrintContentAdapter().adaptationServingPaperContent(DoshokuOrder.getInstance());
PrintContent printContent = new PrintContentAdapter().adaptationServingPaperContent(DoshokuOrder.getInstance(),mTableInfo);
CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.setActionName("printActivity")
......@@ -430,7 +430,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
mergeMainFoodNumber(mOrderMealList);
}
PrintContent printContent = new PrintContentAdapter().adaptationPrintSlipContent(DoshokuOrder.getInstance());
PrintContent printContent = new PrintContentAdapter().adaptationPrintSlipContent(DoshokuOrder.getInstance(),mTableInfo);
CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_SLIP)//印單
......
......@@ -180,6 +180,7 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
}
}
}
mRootView.showMessage("支付成功");
//結賬成功
mRootView.paySuccess();
} else {
......
......@@ -22,6 +22,7 @@ import com.gingersoft.gsa.cloud.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.pay.bean.PayMethod;
import com.gingersoft.gsa.cloud.pay.bean.PosActionStatusExceptionParam;
import com.gingersoft.gsa.cloud.pay.contract.PayTypeContract;
import com.gingersoft.gsa.cloud.pay.pos.OnPosActionListener;
import com.gingersoft.gsa.cloud.pay.pos.PosAction;
import com.gingersoft.gsa.cloud.pay.pos.PosPay;
......@@ -34,6 +35,8 @@ import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.AdjustTipResp
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.HywebPosResponse;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.RefundRespose;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.VoidRespose;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.constant.PayMethodConstant;
import com.gingersoft.gsa.cloud.pay.util.PayMethodUtils;
import com.gingersoft.gsa.cloud.print.bean.PrintContent;
import com.gingersoft.gsa.cloud.print.bean.adapter.PrintContentAdapter;
import com.gingersoft.gsa.cloud.table.R;
......@@ -91,17 +94,12 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
private OrderCenterAdapter mOrderCenterAdapter;
private List<OrderManagerResponse> mOrderItemList = new ArrayList<>();
private DoshokuOrder doshokuOrder;
private ShoppingCart shoppingCart;
@Inject
public AllOrderPresenter(AllOrderContract.Model model, AllOrderContract.View rootView) {
super(model, rootView);
AllOrderFragment allOrderFragment = (AllOrderFragment) rootView;
this.IActivity = (OrderCenterActivity) allOrderFragment.getCurrentActivity();
doshokuOrder = DoshokuOrder.getInstance();
shoppingCart = doshokuOrder.getShoppingCart();
}
@Override
......@@ -139,6 +137,7 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
return;
}
DoshokuOrder doshokuOrder = DoshokuOrder.getInstance();
//設置為修改訂單操作
doshokuOrder.setModifyOrder(true);
/**
......@@ -390,7 +389,14 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
txnIdRequest.setAmount(datasBean.getAmount());
VoidRequest voidRequest = new VoidRequest();
// if (datasBean.getOrderPays() != null && datasBean.getOrderPays().size() > 0) {
// for (OrderManagerResponse.OrderPayBean orderPayBean : datasBean.getOrderPays()) {
// if (orderPayBean.withHywebPay()) {
// voidRequest.setPAYMENT_APP_ID(orderPayBean.getHywebPayMethodByType());
// break;
// }
// }
// }
PosPay.voidO(IActivity, IActivity, voidRequest, txnIdRequest, new OnPosActionListener<VoidRespose>() {
@Override
......@@ -442,10 +448,15 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
}
private void startPrintOrder(OrderManagerResponse orderDetailItem, List<OrderDetail> orderDetailList) {
DoshokuOrder doshokuOrder = DoshokuOrder.getInstance();
ShoppingCart shoppingCart = doshokuOrder.getShoppingCart();
double wholeAmount = getWholeAmount(orderDetailList);
doshokuOrder.setOrderId(orderDetailItem.getId());
doshokuOrder.setOrderNo(orderDetailItem.getOrderNo());
doshokuOrder.setNewFoodList(orderDetailList);
shoppingCart.setOrderCommodityList(orderDetailList);
shoppingCart.setBillItemList(getOrderMoneyList(orderDetailItem, wholeAmount));
shoppingCart.setWholeAmount(wholeAmount);
......@@ -453,10 +464,10 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
TableBean.DataBean dataBean = new TableBean.DataBean();
dataBean.setTableName(orderDetailItem.getTableName());
dataBean.setPerson(orderDetailItem.getPerson());
if (!TextUtils.isEmpty(orderDetailItem.getCreateTime())) {
dataBean.setCreateTime(TimeUtils.getStringByFormat(new Date(orderDetailItem.getCreateTime()), TimeUtils.DEFAULT_DATE_FORMAT_YMDHM));
}
dataBean.setPerson(orderDetailItem.getPerson());
doshokuOrder.setOpenTableInfo(dataBean);
if (orderDetailItem.getMemberInfo() != null) {
......@@ -470,7 +481,7 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
doshokuOrder.setBillMoney(payMethodList);
}
PrintContent printContent = new PrintContentAdapter().adaptationBillContent(doshokuOrder);
PrintContent printContent = new PrintContentAdapter().adaptationBillContent(doshokuOrder, dataBean);
CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.setActionName("printActivity")
......
......@@ -30,9 +30,12 @@ import com.gingersoft.gsa.cloud.order.billItem.BillItem;
import com.gingersoft.gsa.cloud.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.pay.bean.PayMethod;
import com.gingersoft.gsa.cloud.pay.contract.PayTypeContract;
import com.gingersoft.gsa.cloud.pay.pos.OnPosActionListener;
import com.gingersoft.gsa.cloud.pay.pos.PosPay;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.bg.GetTxnIdRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.SaleRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.SaleRespose;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.constant.HywebActionStatusCode;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.constant.PayMethodConstant;
import com.gingersoft.gsa.cloud.pay.util.PayMethodUtils;
import com.gingersoft.gsa.cloud.print.PrinterUtils;
......@@ -420,7 +423,6 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
//通知更新餐台状态
EventBus.getDefault().post(new InitTableEvent(tableInfo.getId(), tableInfo.getTableNumber()), "initTable_status_event");
}
showMessage("支付成功");
//開錢箱
boolean openInstruction = false;
......@@ -432,39 +434,36 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
}
}
if (openInstruction) {
printBillAndOpenInstruction();
printOpenInstructionAndBill();
} else {
printBill();
}
}
private void printBillAndOpenInstruction() {
printBill();
private void printOpenInstructionAndBill() {
CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.setActionName("printActivity")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_INSTRUCTION)
.addParam(PrintConstans.PRINT_LOADING, mPrintShowLoading)
.build()
.call();
.callAsyncCallbackOnMainThread((cc, result) -> {
printBill();
});
}
private void printBill() {
//打印結賬單
PrintContent printContent = new PrintContentAdapter().adaptationBillContent(DoshokuOrder.getInstance());
PrintContent printContent = new PrintContentAdapter().adaptationBillContent(DoshokuOrder.getInstance(), DoshokuOrder.getInstance().getOpenTableInfo());
CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.setActionName("printActivity")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_BILL)
.addParam(PrintConstans.PRINT_CONTENT, printContent)
.addParam(PrintConstans.PRINT_LOADING, mPrintShowLoading)
.build()
.callAsyncCallbackOnMainThread((cc, result) -> {
Log.e("error", "是否成功打印:" + result.isSuccess());
// if (result.isSuccess()) {
// //打印成功
// }
//清空開檯數據
DoshokuOrder.getInstance().initialization();
setResult(Activity.RESULT_OK, null);
killMyself();
});
......@@ -489,11 +488,15 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
rv_order_detail.setAdapter(adapter);
}
private boolean mPrintShowLoading = true;
@Override
public void loadPayMethodsSuccess(List<PayMethod> payMethods) {
gsaPayView.loadInfo(this, payMethods, mPresenter.getTotalAmount(), mPresenter.getFoodCount());
gsaPayView.setmOnSureClickLisenter(mBillMoneyList -> {
mPresenter.setBillMoneyList(mBillMoneyList);
if (AppDevices.isHywebPos()) {
int hywebPayMethodIndex = PayMethodUtils.hasHywebPayMethod(mBillMoneyList);
......@@ -502,13 +505,13 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
PayMethod hywebPayMethod = mBillMoneyList.get(hywebPayMethodIndex);
SaleRequest saleRequest = new SaleRequest();
if (hywebPayMethod.getPayType() == PayTypeContract.PAY_METHOD_ID_1030) {
//卡片支付
saleRequest.setPAYMENT_APP_ID(PayMethodConstant.PAY_TYPE_CC);
} else {
//掃碼支付
saleRequest.setPAYMENT_APP_ID(PayMethodConstant.PAY_TYPE_QRC);
}
// if (hywebPayMethod.getPayType() == PayTypeContract.PAY_METHOD_ID_1030) {
// //卡片支付
saleRequest.setPAYMENT_APP_ID(PayMethodConstant.PAY_TYPE_EPS);
// } else {
// //掃碼支付
// saleRequest.setPAYMENT_APP_ID(PayMethodConstant.PAY_TYPE_QRC);
// }
saleRequest.setTXN_AMT(DoshokuOrder.getInstance().getShoppingCart().getTotalAmount());
saleRequest.setTIPS(0);
......@@ -525,13 +528,40 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
MealOrderPayRequest orderPayRequest = mPresenter.getOrderPayRequest(gsaPayView);
List<BillItem> billItemList = DoshokuOrder.getInstance().getShoppingCart().getBillItemList();
PosPay.pay(mContext, OrderPayActivity.this, saleRequest, txnIdRequest, DoshokuOrder.getInstance().getOpenTableInfo(), orderPayRequest, billItemList, mBillMoneyList);
PosPay.pay(mContext, OrderPayActivity.this, saleRequest, txnIdRequest, DoshokuOrder.getInstance().getOpenTableInfo(), orderPayRequest, billItemList, mBillMoneyList, new OnPosActionListener<SaleRespose>() {
@Override
public void onPosSuccess(SaleRespose response) {
}
@Override
public void onPosException(Exception e) {
}
@Override
public void onPosInvalid(String e) {
}
@Override
public void onUpdateStatusSuccess(SaleRespose response) {
if (HywebActionStatusCode.withSuccess(response.getSTATUS())) {
mPrintShowLoading = false;
paySuccess();
}
}
@Override
public void onUpdateStatusError(Throwable e) {
}
});
} else {
mPresenter.setBillMoneyList(mBillMoneyList);
mPresenter.sendOrderBefore();
}
} else {
mPresenter.setBillMoneyList(mBillMoneyList);
mPresenter.sendOrderBefore();
}
});
......
......@@ -88,7 +88,7 @@ public class OrderCenterActivity extends BaseFragmentActivity<OrderCenterPresent
public void initData(@Nullable Bundle savedInstanceState) {
initTabAndPager();
mPresenter.loadOrderList(OrderManagerResponse.ORDER_TYPE_DOSHOKU+"", 0, 10, null, false);
mPresenter.loadOrderList(OrderManagerResponse.ORDER_TYPE_DOSHOKU + "", 0, 10, null, false);
}
@Override
......@@ -96,7 +96,8 @@ public class OrderCenterActivity extends BaseFragmentActivity<OrderCenterPresent
super.onNewIntent(intent);
}
@Subscriber(tag = "updateOrderListEvent")
@Subscriber(tag = "update" +
"OrderListEvent")
private void updateOrderList(boolean update) {
refeshOrderList();
}
......
......@@ -7,8 +7,11 @@ import android.widget.LinearLayout;
import android.widget.TextView;
import com.gingersoft.gsa.cloud.common.constans.OrderTypeConstans;
import com.gingersoft.gsa.cloud.common.utils.AppDevices;
import com.gingersoft.gsa.cloud.common.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.pay.bean.PayMethod;
import com.gingersoft.gsa.cloud.pay.util.PayMethodUtils;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.response.OrderManagerResponse;
......@@ -16,6 +19,7 @@ import com.jess.arms.base.BaseHolder;
import com.jess.arms.base.DefaultAdapter;
import com.qmuiteam.qmui.alpha.QMUIAlphaButton;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
......@@ -94,8 +98,9 @@ public class OrderCenterAdapter extends DefaultAdapter<OrderManagerResponse> {
public void setData(OrderManagerResponse item, int position) {
setOrderItemDetail(item);
setBtnVisibilityByOrderType(item.getOrderType());
setBtnVisibilityByOrderStatus(item, position);
setBtnVisibility(item, position);
setBtnListener(item, position);
btn_refund.setVisibility(View.GONE);
ll_root_container.setOnClickListener(new View.OnClickListener() {
@Override
......@@ -139,7 +144,25 @@ public class OrderCenterAdapter extends DefaultAdapter<OrderManagerResponse> {
}
}
private void setBtnVisibilityByOrderStatus(OrderManagerResponse item, int position) {
private void setBtnVisibility(OrderManagerResponse item, int position) {
List<OrderManagerResponse.OrderPayBean> orderPays = item.getOrderPays();
if (orderPays != null && orderPays.size() > 0) {
List<PayMethod> payMethods = new ArrayList<>();
for (OrderManagerResponse.OrderPayBean orderPayBean : orderPays) {
PayMethod payMethod = new PayMethod();
payMethod.setPayType(orderPayBean.getPayType());
payMethod.setPayMoney(orderPayBean.getAmount());
payMethod.setTipsPrice(orderPayBean.getTipsPrice());
payMethods.add(payMethod);
}
PayMethod payMethod = PayMethodUtils.filterPaymentMethodById(payMethods, PayMethod.HYWEB_POS_TYPE_CC);
if (payMethod != null) {
//只有卡片支付才支持補小費
btn_tips.setVisibility(View.VISIBLE);
} else {
btn_tips.setVisibility(View.GONE);
}
}
if (item.getStatus() == 6) {
btn_print_order.setVisibility(View.GONE);
btn_modify_order.setVisibility(View.GONE);
......@@ -151,12 +174,23 @@ public class OrderCenterAdapter extends DefaultAdapter<OrderManagerResponse> {
btn_modify_order.setVisibility(View.VISIBLE);
btn_cancel_order.setVisibility(View.VISIBLE);
btn_order_status.setVisibility(View.GONE);
if (item.withHywebPay()) {
if (AppDevices.isHywebPos() && item.withHywebPay()) {
setOrderStatusByTxnId(item.getPayTxnId(), item.getCancelTxnId(), item.getRefundTxnId());
ll_pos_bottom.setVisibility(View.VISIBLE);
} else {
ll_pos_bottom.setVisibility(View.GONE);
}
}
int orderType = item.getOrderType();
if (orderType == OrderTypeConstans.order_type_2 || orderType == OrderTypeConstans.order_type_7) {
//外賣自取 不可以修改訂單 取消訂單
btn_modify_order.setVisibility(View.GONE);
btn_cancel_order.setVisibility(View.GONE);
}
}
private void setBtnListener(OrderManagerResponse item, int position) {
if (item.getStatus() != 6) {
btn_print_order.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
......@@ -216,7 +250,6 @@ public class OrderCenterAdapter extends DefaultAdapter<OrderManagerResponse> {
if (!TextUtils.isEmpty(payTxnId)) {
btn_print_order.setVisibility(View.VISIBLE);
btn_refund.setVisibility(View.VISIBLE);
btn_tips.setVisibility(View.VISIBLE);
btn_cancel_order.setVisibility(View.VISIBLE);
btn_modify_order.setVisibility(View.VISIBLE);
}
......@@ -225,20 +258,12 @@ public class OrderCenterAdapter extends DefaultAdapter<OrderManagerResponse> {
private void setOrderCancelVisbility() {
btn_print_order.setVisibility(View.GONE);
btn_modify_order.setVisibility(View.GONE);
btn_cancel_order.setVisibility(View.GONE);
btn_refund.setVisibility(View.GONE);
btn_tips.setVisibility(View.GONE);
}
private void setBtnVisibilityByOrderType(int orderType) {
if (orderType == OrderTypeConstans.order_type_2 || orderType == OrderTypeConstans.order_type_7) {
//外賣自取 不可以修改訂單 取消訂單
btn_modify_order.setVisibility(View.GONE);
btn_cancel_order.setVisibility(View.GONE);
}
}
}
private OnItemClickListener mOnItemClickListener;
public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
......
......@@ -108,7 +108,6 @@
android:id="@+id/btn_print_order"
android:layout_width="@dimen/dp_65"
android:layout_height="@dimen/dp_35"
android:layout_marginRight="@dimen/dp_10"
android:background="@color/orange_400"
android:text="打印訂單"
android:textColor="@color/theme_white_color"
......@@ -118,8 +117,8 @@
android:id="@+id/btn_modify_order"
android:layout_width="@dimen/dp_65"
android:layout_height="@dimen/dp_35"
android:layout_marginRight="@dimen/dp_10"
android:background="@color/blue_300"
android:layout_marginLeft="@dimen/dp_10"
android:text="修改訂單"
android:textColor="@color/theme_white_color"
android:textSize="@dimen/sp_13"
......@@ -129,7 +128,7 @@
android:id="@+id/btn_order_status"
android:layout_width="@dimen/dp_65"
android:layout_height="@dimen/dp_35"
android:layout_marginRight="@dimen/dp_10"
android:layout_marginLeft="@dimen/dp_10"
android:background="@color/gray"
android:clickable="false"
android:text="已取消"
......@@ -142,6 +141,7 @@
android:layout_width="@dimen/dp_65"
android:layout_height="@dimen/dp_35"
android:background="@color/red_400"
android:layout_marginLeft="@dimen/dp_10"
android:text="取消訂單"
android:textColor="@color/theme_white_color"
android:textSize="@dimen/sp_13"
......@@ -161,7 +161,6 @@
android:id="@+id/btn_refund"
android:layout_width="@dimen/dp_65"
android:layout_height="@dimen/dp_35"
android:layout_marginRight="@dimen/dp_10"
android:background="@color/red_500"
android:text="退款"
android:textColor="@color/theme_white_color"
......@@ -171,6 +170,7 @@
android:id="@+id/btn_tips"
android:layout_width="@dimen/dp_65"
android:layout_height="@dimen/dp_35"
android:layout_marginLeft="@dimen/dp_10"
android:background="@color/green_400"
android:text="貼士"
android:textColor="@color/theme_white_color"
......
66c18f257 (HEAD -> dev) HEAD@{0}: commit: 1、N5支付,小費,退款,取消完善 2、餐檯模式送單第三層細項消失
0cb22cb86 HEAD@{1}: merge origin/dev: Merge made by the 'recursive' strategy.
367cd0b3d HEAD@{2}: reset: moving to HEAD
367cd0b3d HEAD@{3}: commit (merge): Merge remote-tracking branch 'origin/dev' into dev
bf82ac4d1 HEAD@{4}: reset: moving to HEAD
bf82ac4d1 HEAD@{5}: commit: 修改訂單刪除食品-》結賬 沒有提示先送單問題
4b0e819ff HEAD@{6}: commit (merge): Merge remote-tracking branch 'origin/dev' into dev
d3cc4b0fd HEAD@{7}: reset: moving to HEAD
d3cc4b0fd HEAD@{8}: commit: 賬單管理功能button調整,N5支付取消,退款,補小費
b4efd6e3a HEAD@{9}: commit: 完事N5支付,退款,取消,補消費,重查詢實現類編寫;N5支付,補小費調用
1c9b187e3 HEAD@{10}: commit: 1、項目結構整理,2、添加獲取deviceId方案
69346e659 HEAD@{11}: commit: 1、項目結構整理,2、添加獲取deviceId方案
5d2696f18 HEAD@{12}: checkout: moving from recoder to dev
493bcad80 (recoder) HEAD@{13}: checkout: moving from dev to recoder
5d2696f18 HEAD@{14}: commit (merge): 代碼整合
493bcad80 (recoder) HEAD@{15}: checkout: moving from recoder to dev
493bcad80 (recoder) HEAD@{16}: checkout: moving from dev to recoder
493bcad80 (recoder) HEAD@{17}: commit: 1、項目模塊整理;2、餐檯模式送單新增成本價
ab94d949f (master) HEAD@{18}: merge master: Fast-forward
e84ec8853 HEAD@{19}: checkout: moving from master to dev
ab94d949f (master) HEAD@{20}: commit: 堂食打印實體適配類
a64b7e94e (origin/master, origin/HEAD) HEAD@{21}: commit (merge): Merge branch 'dev' into master
80c5981ff HEAD@{22}: checkout: moving from dev to master
e84ec8853 HEAD@{23}: checkout: moving from master to dev
80c5981ff HEAD@{24}: commit: 1.1.2,1.1.3正式版
6597cebe6 HEAD@{25}: checkout: moving from dev to master
e84ec8853 HEAD@{26}: reset: moving to HEAD
e84ec8853 HEAD@{27}: commit: bbpos打印堂食印單,結賬單調整
9029ddf26 HEAD@{28}: commit: bbpos打印細節調整,新增擴展自動(點選支付方式是否彈出輸入框,餐檯模式開檯自動彈出輸入人數彈窗)
70d850240 HEAD@{29}: commit: bbpos打印調整
fb2f2dca6 HEAD@{30}: commit: 外賣接單 結賬單,外賣接單 印單
922cde776 HEAD@{31}: commit: bbpos結賬單,qrcode打印處理
d7c21e361 HEAD@{32}: commit: Compontent統一到base模塊下,xfunction相關處理
02ccf7deb HEAD@{33}: merge origin/dev: Fast-forward
17ab71e19 HEAD@{34}: reset: moving to HEAD
17ab71e19 HEAD@{35}: commit (merge): Merge remote-tracking branch 'origin/dev' into dev
117ee1004 HEAD@{36}: merge youhuajiegou: Fast-forward
f99df214f HEAD@{37}: checkout: moving from youhuajiegou to dev
117ee1004 HEAD@{38}: commit: 1、新增功能管理相關類 2、Logan相關類調整
c4e6855da HEAD@{39}: commit: 1、統一網絡請求頭HeadersInterceptor 2、加入美團日誌框架logan對(網絡請求,頁面生命週期)進行埋點 3、增加user狀態管理類
f99df214f HEAD@{40}: checkout: moving from dev to youhuajiegou
f99df214f HEAD@{41}: commit: 餐檯輪訓調整
2abd64bd2 HEAD@{42}: commit (merge): Merge remote-tracking branch 'origin/dev' into dev
1d233a8d7 HEAD@{43}: commit: 食品支持多个折扣 接口结构调整
bd5562ed3 HEAD@{44}: commit: 部分javabean名稱修改,打印skyorder流程處理
c6a57b395 HEAD@{45}: merge origin/dev: Fast-forward
c9d2faed9 HEAD@{46}: reset: moving to HEAD
c9d2faed9 HEAD@{47}: commit: 添加哆啦A夢插件,skorder模式長按鎖定
90a3fc052 HEAD@{48}: checkout: moving from master to dev
6597cebe6 HEAD@{49}: commit: 1.1.1正式版
547e42b57 HEAD@{50}: checkout: moving from dev to master
90a3fc052 HEAD@{51}: commit: 添加skyorder打印類
7a38c978d HEAD@{52}: merge skyorder: Fast-forward
9ca88b207 HEAD@{53}: checkout: moving from skyorder to dev
7a38c978d HEAD@{54}: commit: 添加滴滴 哆啦A夢框架,skyorder打印二維碼
9ca88b207 HEAD@{55}: checkout: moving from dev to skyorder
9ca88b207 HEAD@{56}: merge skyorder: Fast-forward
fa4a065df HEAD@{57}: checkout: moving from skyorder to dev
9ca88b207 HEAD@{58}: commit: skyorder打印處理 新增哆啦A夢:滴滴開源工具(辅助开发工具、测试效率工具、视觉辅助工具)
654437d80 HEAD@{59}: commit: 修改餐廳操作相關類
fa4a065df HEAD@{60}: checkout: moving from dev to skyorder
fa4a065df HEAD@{61}: checkout: moving from skyorder to dev
fa4a065df HEAD@{62}: checkout: moving from dev to skyorder
fa4a065df HEAD@{63}: commit: 增加skyorder打印頁
a18674719 HEAD@{64}: commit: 添加skyokrder打印頁面UI
6e91dc543 HEAD@{65}: commit (merge): Merge branch 'youhua' into dev
8366fd1e1 HEAD@{66}: merge master: Merge made by the 'recursive' strategy.
4cce725c1 HEAD@{67}: checkout: moving from youhua to dev
ce4cd6d7f HEAD@{68}: checkout: moving from dev to youhua
4cce725c1 HEAD@{69}: merge origin/dev: Fast-forward
e75ec7a39 HEAD@{70}: checkout: moving from master to dev
547e42b57 HEAD@{71}: pull --progress --no-stat -v --progress origin master: Fast-forward
5c281d9e8 HEAD@{72}: checkout: moving from youhua to master
ce4cd6d7f HEAD@{73}: commit: 引入rxjava工具類
0d0fc54b6 HEAD@{74}: commit: 1、按返回沒有彈出提示 尚有食物未送單,是否不保存返回 2、修改沒有找到會員提示 3、美化一下,按進細項,這數字建盤飛起來了
525c4defc HEAD@{75}: commit: 折扣增加:上限,獨佔,暫停,只一次,最小賬單金額邏輯
aa04da1b4 HEAD@{76}: commit: 增加折扣邏輯
5dd126084 HEAD@{77}: commit: 添加loadsir頁面反饋管理
a40f7acbe HEAD@{78}: commit: 修改數量調整
f47767b0a HEAD@{79}: commit: 賬單優化處理
1a28da3bc HEAD@{80}: commit: 餐檯下單優化
d67280691 HEAD@{81}: commit: order-base模塊代碼遷移
27732b86d HEAD@{82}: commit: 拆分database模塊
e75ec7a39 HEAD@{83}: checkout: moving from dev to youhua
e75ec7a39 HEAD@{84}: commit: 餐牌默認字體大小調整
aa2672937 HEAD@{85}: checkout: moving from discount to dev
aa2672937 HEAD@{86}: merge dev: Fast-forward
81e309bb8 HEAD@{87}: checkout: moving from dev to discount
aa2672937 HEAD@{88}: commit: 餐廳擴展同步完善
81e309bb8 HEAD@{89}: checkout: moving from discount to dev
81e309bb8 HEAD@{90}: checkout: moving from dev to discount
81e309bb8 HEAD@{91}: checkout: moving from dev to discount
81e309bb8 HEAD@{92}: commit: 餐廳庫擴類拆分
d56efe839 HEAD@{93}: merge origin/dev: Fast-forward
f4ee4cd08 HEAD@{94}: commit: 1、餐檯模式餐種過濾
5064a31bc HEAD@{95}: merge origin/dev: Fast-forward
24b6de236 HEAD@{96}: commit: 1、新增餐檯模式餐種 2、細項/套餐組要可以 一起滑動 3、獲取支付方式接口新增上傳 payType字段
5f1d92195 HEAD@{97}: merge origin/dev: Fast-forward
52ac78556 HEAD@{98}: reset: moving to HEAD
0e7eee97a (origin/pre-master, pre-master) HEAD@{99}: checkout: moving from dev to pre-master
52ac78556 HEAD@{100}: checkout: moving from pre-master to dev
0e7eee97a (origin/pre-master, pre-master) HEAD@{101}: commit: 預發佈分支測試
52ac78556 HEAD@{102}: checkout: moving from dev to pre-master
52ac78556 HEAD@{103}: commit: 解決沽清食品組高度問題
bc78c3840 HEAD@{104}: commit: 1、所有activity默認設置成豎屏 如果是平板根據系統走
02eff0af9 HEAD@{105}: merge origin/dev: Fast-forward
7b53780df HEAD@{106}: reset: moving to HEAD
7b53780df HEAD@{107}: merge origin/dev: Fast-forward
a425afdda HEAD@{108}: reset: moving to HEAD
a425afdda HEAD@{109}: commit: 1、設置手機不可橫屏
9c26422fa HEAD@{110}: commit: 1、餐牌送單信息不跳轉新增訂單頁 2、新增訂單彈出選擇人數框
1ee702079 HEAD@{111}: commit: 修改table-module下包名
750a0147b HEAD@{112}: commit: 增加其他組件跳轉餐牌頁
012c9448d HEAD@{113}: commit: 新增外賣訂單跳轉
cc2bb8ac1 HEAD@{114}: checkout: moving from dev to youhua_order
cc2bb8ac1 HEAD@{115}: commit: 1、食品組 食品 細項 折扣寬高行列字體大小可配置
f142c320a HEAD@{116}: commit: 1、修改餐廳擴展類
a5b63f953 HEAD@{117}: merge origin/dev: Fast-forward
b3a9216f1 HEAD@{118}: reset: moving to HEAD
b3a9216f1 HEAD@{119}: commit: 1、點1個單點食物>正常
d2117b697 HEAD@{120}: checkout: moving from master to dev
5c281d9e8 HEAD@{121}: reset: moving to HEAD
......@@ -4,7 +4,8 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="match_parent"
android:background="@color/theme_white_color">
<TextView
android:id="@+id/tv_order_num"
......@@ -70,17 +71,15 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_amount"/>
<com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
android:id="@+id/btn_reload"
android:layout_width="match_parent"
android:layout_height="@dimen/button_height"
android:background="@color/theme_color"
android:layout_margin="@dimen/dp_10"
android:textSize="@dimen/text_size_default"
android:textColor="@color/theme_white_color"
<TextView
android:id="@+id/tv_reload"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_50"
android:gravity="center"
android:textSize="@dimen/sp_22"
android:textColor="@color/theme_grey_color"
android:text="@string/emptyView_mode_desc_retry_query"
app:qmui_radius="@dimen/dp_5"
app:qmui_backgroundColor="@color/theme_color"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"/>
......
......@@ -4,7 +4,8 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="match_parent"
android:background="@color/theme_white_color">
<TextView
android:id="@+id/tv_order_num"
......@@ -70,17 +71,15 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_amount"/>
<com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
android:id="@+id/btn_reload"
android:layout_width="match_parent"
android:layout_height="@dimen/button_height"
android:background="@color/theme_color"
android:layout_margin="@dimen/dp_10"
android:textSize="@dimen/text_size_default"
android:textColor="@color/theme_white_color"
<TextView
android:id="@+id/tv_reload"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_50"
android:gravity="center"
android:textSize="@dimen/sp_22"
android:textColor="@color/theme_grey_color"
android:text="@string/emptyView_mode_desc_retry_query"
app:qmui_radius="@dimen/dp_5"
app:qmui_backgroundColor="@color/theme_color"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"/>
......
......@@ -4,7 +4,8 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="match_parent"
android:background="@color/theme_white_color">
<TextView
android:id="@+id/tv_order_num"
......@@ -70,17 +71,15 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_amount"/>
<com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
android:id="@+id/btn_reload"
android:layout_width="match_parent"
android:layout_height="@dimen/button_height"
android:background="@color/theme_color"
android:layout_margin="@dimen/dp_10"
android:textSize="@dimen/text_size_default"
android:textColor="@color/theme_white_color"
<TextView
android:id="@+id/tv_reload"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_50"
android:gravity="center"
android:textSize="@dimen/sp_22"
android:textColor="@color/theme_grey_color"
android:text="@string/emptyView_mode_desc_retry_query"
app:qmui_radius="@dimen/dp_5"
app:qmui_backgroundColor="@color/theme_color"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"/>
......
......@@ -4,7 +4,8 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="match_parent"
android:background="@color/theme_white_color">
<TextView
android:id="@+id/tv_order_num"
......@@ -70,17 +71,15 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_amount"/>
<com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
android:id="@+id/btn_reload"
android:layout_width="match_parent"
android:layout_height="@dimen/button_height"
android:background="@color/theme_color"
android:layout_margin="@dimen/dp_10"
android:textSize="@dimen/text_size_default"
android:textColor="@color/theme_white_color"
<TextView
android:id="@+id/tv_reload"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_50"
android:gravity="center"
android:textSize="@dimen/sp_22"
android:textColor="@color/theme_grey_color"
android:text="@string/emptyView_mode_desc_retry_query"
app:qmui_radius="@dimen/dp_5"
app:qmui_backgroundColor="@color/theme_color"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"/>
......
......@@ -4,7 +4,8 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="match_parent"
android:background="@color/theme_white_color">
<TextView
android:id="@+id/tv_order_num"
......@@ -70,17 +71,15 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_amount"/>
<com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
android:id="@+id/btn_reload"
android:layout_width="match_parent"
android:layout_height="@dimen/button_height"
android:background="@color/theme_color"
android:layout_margin="@dimen/dp_10"
android:textSize="@dimen/text_size_default"
android:textColor="@color/theme_white_color"
<TextView
android:id="@+id/tv_reload"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_50"
android:gravity="center"
android:textSize="@dimen/sp_22"
android:textColor="@color/theme_grey_color"
android:text="@string/emptyView_mode_desc_retry_query"
app:qmui_radius="@dimen/dp_5"
app:qmui_backgroundColor="@color/theme_color"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"/>
......
......@@ -130,7 +130,7 @@
<string name="emptyView_mode_desc_timeout_desc">網絡加載超時,請檢查網絡重試</string>
<string name="emptyView_mode_desc_retry">點擊重試</string>
<string name="emptyView_mode_desc_double">未獲取到數據</string>
<string name="emptyView_mode_desc_retry_query">重試查詢</string>
<string name="emptyView_mode_desc_retry_query">點擊重試查詢</string>
<string name="emptyView_mode_desc_pos_pay">支付狀態異常,請嘗試重試查詢</string>
<string name="emptyView_mode_desc_pos_refund">退款狀態異常,請嘗試重試查詢</string>
......
......@@ -166,11 +166,11 @@ public class ComboItemDaoUtils {
// sql = "SELECT c.*,f.FOOD_NAME,f.FOOD_NAME1,f.FOOD_NAME2,f.PRICE,f.FOOD_SUMMARY,f.AUTO_MOD,f.PRINT_SETING,f.ABLE_DISCOUNT,SELECT_QTY,DEF_MODIFIER,INVISIBLE,POINTS_ADD,POINTS_RATIO,POINTS_REDEEM,SERVICE_CHARGE,c.DIFF_AMT FROM COMBO_ITEM c join FOOD f on c.FID=f.FID and f.INVISIBLE!=1 and where FOOD_SUMMARY LIKE %s join FOOD_COMBO r on r.COM_ID=c.COM_ID and r.DELETES!=1";
// sql = String.format(sql, foodSummary);
// } else {
sql = "SELECT c.*,f.FOOD_NAME,f.FOOD_NAME1,f.FOOD_NAME2,f.PRICE,f.FOOD_SUMMARY,f.AUTO_MOD,f.PRINT_SETING,f.ABLE_DISCOUNT,SELECT_QTY,DEF_MODIFIER,INVISIBLE,POINTS_ADD,POINTS_RATIO,POINTS_REDEEM,SERVICE_CHARGE,c.DIFF_AMT FROM COMBO_ITEM c join FOOD f on c.FID=f.FID and f.INVISIBLE!=1 join FOOD_COMBO r on r.COM_ID=c.COM_ID and r.DELETES!=1";
sql = "SELECT c.*,f.FOOD_NAME,f.FOOD_NAME1,f.FOOD_NAME2,f.PRICE,f.FOOD_SUMMARY,f.AUTO_MOD,f.PRINT_SETING,f.ABLE_DISCOUNT,SELECT_QTY,DEF_MODIFIER,INVISIBLE,POINTS_ADD,POINTS_RATIO,POINTS_REDEEM,SERVICE_CHARGE,c.DIFF_AMT,c.SEQ_NO FROM COMBO_ITEM c join FOOD f on c.FID=f.FID and f.INVISIBLE!=1 join FOOD_COMBO r on r.COM_ID=c.COM_ID and r.DELETES!=1";
// }
if (fid > 0) {
sql = sql + " where r.FID='" + fid + "'";
sql = sql + " where r.FID='" + fid + "' order by c.SEQ_NO desc";
}
Cursor c = mManager.getDaoSession().getFoodDao().getDatabase().rawQuery(sql, null);
while (c.moveToNext()) {
......
......@@ -15,8 +15,10 @@ public interface PayTypeContract {
* 1001:現金
* 1023:支付寶HK
*
* 1030:N5卡支付
* 1031:N5掃碼支付
* 1030:N5卡片
* 1031:N5掃碼
* 1032:N5八達通
* 1033:N5美國運通
*/
int PAY_METHOD_ID_1 = 1;
......@@ -31,4 +33,9 @@ public interface PayTypeContract {
int PAY_METHOD_ID_1031 = 1031;
int PAY_METHOD_ID_1032 = 1031;
int PAY_METHOD_ID_1033 = 1031;
}
......@@ -6,7 +6,7 @@ import android.content.Context;
import com.etps.aca.lib.util.CommandUtil;
import com.gingersoft.gsa.cloud.pay.pos.bean.PosMatter;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.HywebPosResponse;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.constant.PayStatusCode;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.constant.HywebActionStatusCode;
import com.gingersoft.gsa.cloud.pay.widget.StatusLoadingDialog;
import com.jess.arms.mvp.IView;
......@@ -18,7 +18,7 @@ import com.jess.arms.mvp.IView;
* 修订历史:2019/6/13
* 描述:
*/
public abstract class IPosAction {
public abstract class IPosAction <T extends HywebPosResponse>{
protected Context mContext;
protected IView mView;
......@@ -45,13 +45,13 @@ public abstract class IPosAction {
/**
* 對POS幾發起操作前的業務處理,如將操作記錄添加到後台日誌表,事項表
*/
protected abstract void onBeforeActionPOS();
protected abstract void onPosActionBefore();
/**
* 向POS發起操作的方法
*/
protected void onActionToPOS(String requestJson) {
protected void onPosToAction(String requestJson) {
CommandUtil.sendRequest(mContext, requestJson);
}
......@@ -72,7 +72,7 @@ public abstract class IPosAction {
*
* @param posResponse
*/
public void onPosSuccess(Context context, HywebPosResponse posResponse, Activity originalActivity) {
public void onPosSuccess(Context context, T posResponse, Activity originalActivity) {
if (mStatusLoadingDialog != null) {
mStatusLoadingDialog.setStatusText(mPosAction.getActionName() + mLoadingActionComplteText);
mStatusLoadingDialog.loadSuccess();
......@@ -114,9 +114,9 @@ public abstract class IPosAction {
*
* @param response
*/
public void onUpdateStatusSuccess(HywebPosResponse response) {
public void onUpdateStatusSuccess(T response) {
if (mStatusLoadingDialog != null) {
mStatusLoadingDialog.setStatusText(mPosAction.getActionName() + PayStatusCode.getHywebRequestTextByCode(response.getSTATUS()));
mStatusLoadingDialog.setStatusText(mPosAction.getActionName() + HywebActionStatusCode.getHywebRequestTextByCode(response.getSTATUS()));
mStatusLoadingDialog.cancel();
}
if (mOnPosActionListener != null) {
......@@ -152,9 +152,9 @@ public abstract class IPosAction {
* @return
*/
protected byte getPosMatterStatus(String status) {
if (PayStatusCode.withSuccess(status)) {
if (HywebActionStatusCode.withSuccess(status)) {
return PosMatter.status_1;
} else if (PayStatusCode.withException(status)) {
} else if (HywebActionStatusCode.withException(status)) {
return PosMatter.status_0;
} else {
return PosMatter.status_2;
......
......@@ -35,15 +35,15 @@ public final class PosPay {
CommandActivity.setCommand(new CommandImpl(action));
// if (AppDevice.isHywebPos()) {
if (action != null) {
action.onBeforeActionPOS();
action.onPosActionBefore();
}
// } else if (AppDevice.isBBPos()) {
// } else {
// }
}
public static void pay(Context context, IView iView, SaleRequest saleRequest, GetTxnIdRequest getTxnIdRequest, TableBean.DataBean tableBean, MealOrderPayRequest orderPayRequest, List<BillItem> billItemList, List<PayMethod> payMethodList) {
PosPay.sendRequest(new SaleActionImpl(context, iView, PosAction.SALE, saleRequest, getTxnIdRequest, tableBean, orderPayRequest, billItemList, payMethodList, true));
public static void pay(Context context, IView iView, SaleRequest saleRequest, GetTxnIdRequest getTxnIdRequest, TableBean.DataBean tableBean, MealOrderPayRequest orderPayRequest, List<BillItem> billItemList, List<PayMethod> payMethodList, OnPosActionListener onPosActionListener) {
PosPay.sendRequest(new SaleActionImpl(context, iView, PosAction.SALE, saleRequest, getTxnIdRequest, tableBean, orderPayRequest, billItemList, payMethodList, onPosActionListener,true));
}
public static void tip(Context context, IView iView, GetTxnIdRequest txnIdRequest, AdjustTipRequest tipRequest, OnPosActionListener onPosActionListener) {
......@@ -58,8 +58,8 @@ public final class PosPay {
PosPay.sendRequest(new VoidActionImpl(context, iView, PosAction.VOID, request, getTxnIdRequest, onPosActionListener, true));
}
public static void retrieval(Context context, IView iView,Long orderId, RetrievalRequest request, OnPosActionListener onPosActionListener) {
PosPay.sendRequest(new RetrievalActionImpl(context, iView, PosAction.RETRIEVAL, orderId, request, onPosActionListener, false));
public static void retrieval(Context context, IView iView,Long orderId, PosAction retrievalAction, RetrievalRequest request, OnPosActionListener onPosActionListener) {
PosPay.sendRequest(new RetrievalActionImpl(context, iView, PosAction.RETRIEVAL,retrievalAction, orderId, request, onPosActionListener, false));
}
}
......@@ -19,7 +19,7 @@ public class BBPosAction extends IPosAction {
}
@Override
protected void onBeforeActionPOS() {
protected void onPosActionBefore() {
}
......
......@@ -8,7 +8,6 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.TextView;
......@@ -16,7 +15,6 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.gingersoft.gsa.cloud.common.constans.AppConstans;
import com.gingersoft.gsa.cloud.common.loadsir.EmptyCallback;
import com.gingersoft.gsa.cloud.common.loadsir.pos.BasePosCallback;
import com.gingersoft.gsa.cloud.common.loadsir.pos.PosPayStatusExceptionCallback;
import com.gingersoft.gsa.cloud.common.loadsir.pos.PosRefundStatusExceptionCallback;
......@@ -27,12 +25,10 @@ import com.gingersoft.gsa.cloud.order.R;
import com.gingersoft.gsa.cloud.order.R2;
import com.gingersoft.gsa.cloud.pay.bean.PosActionStatusExceptionParam;
import com.gingersoft.gsa.cloud.pay.pos.OnPosActionListener;
import com.gingersoft.gsa.cloud.pay.pos.PosAction;
import com.gingersoft.gsa.cloud.pay.pos.PosPay;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.RetrievalRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.HywebPosResponse;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.constant.PayStatusCode;
import com.gingersoft.gsa.cloud.pay.widget.StatusLoadingDialog;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.constant.HywebActionStatusCode;
import com.jess.arms.base.BaseFragment;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.mvp.IView;
......@@ -135,7 +131,12 @@ public class PosActionStatusExceptionFragment extends BaseFragment implements IV
break;
}
if (posCallback != null) {
loadService.setCallBack(PosTipsStatusExceptionCallback.class, new Transport() {
loadService.setCallBack(posCallback.getClass(), new OnTransport());
loadService.showCallback(posCallback.getClass());
}
}
private final class OnTransport implements Transport {
@Override
public void order(Context context, View rootView) {
tv_order_num = rootView.findViewById(com.gingersoft.gsa.cloud.common.R.id.tv_order_num);
......@@ -148,9 +149,6 @@ public class PosActionStatusExceptionFragment extends BaseFragment implements IV
tv_amount.setText(AppConstans.CARSH_STR + mPosStatusExceptionParam.getAmount());
tv_pay_method.setText(mPosStatusExceptionParam.getPayMethodName());
}
});
loadService.showCallback(PosTipsStatusExceptionCallback.class);
}
}
private void initPage() {
......@@ -161,7 +159,7 @@ public class PosActionStatusExceptionFragment extends BaseFragment implements IV
private void setPosActionStatus(String status) {
Drawable drawable;
if (PayStatusCode.withSuccess(status)) {
if (HywebActionStatusCode.withSuccess(status)) {
drawable = getResources().getDrawable(R.mipmap.pay_status_success);
drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());
} else {
......@@ -169,19 +167,17 @@ public class PosActionStatusExceptionFragment extends BaseFragment implements IV
drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());
}
tvPosStatus.setCompoundDrawables(null, drawable, null, null);
tvPosStatus.setText(PayStatusCode.getHywebRequestTextByCode(status));
tvPosStatus.setText(HywebActionStatusCode.getHywebRequestTextByCode(status));
}
private void retrievalStatus() {
RetrievalRequest retrievalRequest = new RetrievalRequest();
retrievalRequest.setTXN_ID(mPosStatusExceptionParam.getTxnId());
PosPay.retrieval(mContext, this, mPosStatusExceptionParam.getOrderId(), retrievalRequest, new OnPosActionListener() {
PosPay.retrieval(mContext, this, mPosStatusExceptionParam.getOrderId(), mPosStatusExceptionParam.getPosAction(),retrievalRequest, new OnPosActionListener() {
@Override
public void onPosSuccess(HywebPosResponse response) {
loadService.showSuccess();
setPosActionStatus(response.getSTATUS());
}
@Override
......@@ -195,6 +191,9 @@ public class PosActionStatusExceptionFragment extends BaseFragment implements IV
@Override
public void onUpdateStatusSuccess(HywebPosResponse response) {
tvPosStatus.setText(mPosStatusExceptionParam.getPosAction().getActionName() + "成功");
loadService.showSuccess();
setPosActionStatus(response.getSTATUS());
}
@Override
......
......@@ -22,6 +22,17 @@ public class HywebPosResponse implements Parcelable {
protected double TIPS = 0.0;
public static final Creator<HywebPosResponse> CREATOR = new Creator<HywebPosResponse>() {
@Override
public HywebPosResponse createFromParcel(Parcel in) {
return new HywebPosResponse(in);
}
@Override
public HywebPosResponse[] newArray(int size) {
return new HywebPosResponse[size];
}
};
@Override
public int describeContents() {
......
......@@ -15,10 +15,16 @@ import lombok.Data;
@Data
public class RetrievalRespose extends HywebPosResponse implements Parcelable {
/**
* SALE/REFUND/PREAUTH/OFFLINE
*/
private String TXN_TYPE;
// private String TXN_ID;
//仅当STATUS = 00时才返回以下字段
/**
* 仅当STATUS = 00时才返回以下字段
* TXN_STATUS:V 訂單已取消
*/
private String TXN_STATUS ;
// private String TXN_AMT ;
// private double TIPS ;
......
package com.gingersoft.gsa.cloud.pay.pos.hywebpos.command;
import android.app.Activity;
import android.app.ActivityManager;
import android.app.Application;
import android.content.Context;
import android.content.Intent;
import android.text.TextUtils;
......@@ -11,10 +9,7 @@ import com.billy.cc.core.component.CC;
import com.etps.aca.lib.action.ICommand;
import com.etps.aca.lib.activity.CommandActivity;
import com.etps.aca.lib.constant.Constant;
import com.gingersoft.gsa.cloud.app.GsaCloudApplication;
import com.gingersoft.gsa.cloud.common.constans.PrintConstans;
import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.utils.ReflectionUtils;
import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.common.utils.log.LogUtil;
import com.gingersoft.gsa.cloud.component.ComponentAction;
......@@ -28,18 +23,13 @@ import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.RetrievalResp
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.SaleRespose;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.SettlementRespose;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.VoidRespose;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.constant.PayStatusCode;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.constant.HywebActionStatusCode;
import com.jess.arms.integration.AppManager;
import com.jess.arms.utils.ArmsUtils;
import org.json.JSONException;
import org.json.JSONObject;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class CommandImpl implements ICommand {
private static final String TAG = CommandImpl.class.getSimpleName();
......@@ -109,9 +99,9 @@ public class CommandImpl implements ICommand {
String eventName = msgObj.getString(Constant.EVENT.ATTR.EVENT_NAME);
HywebPosResponse posResponse = parsePosResponse(response, eventName);
if (posResponse != null) {
if (PayStatusCode.withInvalid(posResponse.getSTATUS())) {
if (HywebActionStatusCode.withInvalid(posResponse.getSTATUS())) {
//調起POS失敗
onPosInvalid(PayStatusCode.getHywebRequestTextByCode(posResponse.getSTATUS()));
onPosInvalid(HywebActionStatusCode.getHywebRequestTextByCode(posResponse.getSTATUS()));
} else {
//回調成功
onPosSuccess(context, posResponse, currentActivity);
......@@ -125,12 +115,12 @@ public class CommandImpl implements ICommand {
try {
JSONObject msgObj = new JSONObject(response);
String status = msgObj.getString("STATUS");
if (PayStatusCode.withInvalid(status)) {
if (HywebActionStatusCode.withInvalid(status)) {
//調起POS失敗
onPosInvalid(PayStatusCode.getHywebRequestTextByCode(status));
onPosInvalid(HywebActionStatusCode.getHywebRequestTextByCode(status));
} else {
//回調異常
onPosException(new Exception(PayStatusCode.getHywebRequestTextByCode(status)));
onPosException(new Exception(HywebActionStatusCode.getHywebRequestTextByCode(status)));
}
} catch (JSONException ex) {
ex.printStackTrace();
......
......@@ -6,9 +6,9 @@ import android.text.TextUtils;
* @作者: bin
* @創建時間: 2020-12-24 9:41
* @更新時間: 2020-12-24 9:41
* @描述:
* @描述:業務操作回調狀態
*/
public class PayStatusCode {
public class HywebActionStatusCode {
/**
* N5異常问题 :
......@@ -23,6 +23,7 @@ public class PayStatusCode {
*/
public static final String PAY_STATUS_00 = "00"; //成功 √
public static final String PAY_STATUS_02 = "02"; //微信、支付宝正在处理这笔退款请求(可认为已成功) √
public static final String PAY_STATUS_03 = "03"; //确认/处理 (支付、清機 同步接口防止N5機器關機未收到結果) √
/**
* 以下狀態認為是无效情況
*/
......@@ -31,19 +32,16 @@ public class PayStatusCode {
public static final String PAY_STATUS_11 = "11"; //用户撤销(应用于仅限微信/支付宝) √
public static final String PAY_STATUS_12 = "12"; //交易有已经作废/已完成
public static final String PAY_STATUS_13 = "13"; //找不到交易
public static final String PAY_STATUS_14 = "14"; //投标不支持
public static final String PAY_STATUS_90 = "90"; //通讯/格式 错误 √
public static final String PAY_STATUS_91 = "91"; //功能或 付款方式没有 支持的 √
public static final String PAY_STATUS_97 = "97"; //N5 POS忙碌 √
/**
* 以下狀態認為是異常情況
*/
public static final String PAY_STATUS_03 = "03"; //确认/处理 (支付、清機 同步接口防止N5機器關機未收到結果) √
public static final String PAY_STATUS_98 = "98"; //超时 √
public static final String PAY_STATUS_99 = "99"; //未知错误 √
public static final String PAY_STATUS_98 = "98"; //超时 √
/**
* 回調成功
*
* @param status
* @return
*/
......@@ -52,38 +50,41 @@ public class PayStatusCode {
return false;
}
//這二种狀態都可認為已成功
if (status.equals(PAY_STATUS_00) || status.equals(PAY_STATUS_02)) {
if (status.equals(PAY_STATUS_00) || status.equals(PAY_STATUS_02) || status.equals(PAY_STATUS_03)) {
return true;
}
return false;
}
/**
* 回調異常,比如突然斷網或關機沒有收到回調
* 本次操作無效
*
* @param status
* @return
*/
public static boolean withException(String status) {
public static boolean withInvalid(String status) {
if (TextUtils.isEmpty(status)) {
return true;
}
if (status.equals(PAY_STATUS_98) || status.equals(PAY_STATUS_99) || status.equals(PAY_STATUS_03)) {
return true;
return false;
}
if (withSuccess(status)) {
return false;
}
return true;
}
/**
* 本次操作無效
* 回調異常
* 三種異常情況:【異常狀態=03,未回調(斷電,網絡問題...),回調返回格式問題或為空】
*
* @param status
* @return
*/
public static boolean withInvalid(String status){
if(withSuccess(status) || withException(status)){
return false;
}
public static boolean withException(String status) {
if (withSuccess(status) || withInvalid(status)) {
return true;
}
return false;
}
public static String getHywebRequestTextByCode(String status) {
switch (status) {
......@@ -103,6 +104,8 @@ public class PayStatusCode {
return "已作廢/已完成";
case PAY_STATUS_13:
return "找不到相關訂單";
case PAY_STATUS_14:
return "投标不支持";
case PAY_STATUS_90:
return "通訊/格式錯誤";
case PAY_STATUS_91:
......@@ -135,6 +138,8 @@ public class PayStatusCode {
return makeType + "已作廢/已完成";
case PAY_STATUS_13:
return makeType + "找不到相關訂單";
case PAY_STATUS_14:
return makeType + "投标不支持";
case PAY_STATUS_90:
return makeType + "通訊/格式錯誤";
case PAY_STATUS_91:
......
......@@ -12,8 +12,10 @@ public interface PayMethodConstant {
* 支付申请清单
*/
String PAY_TYPE_CC = "CC"; //信用卡
String PAY_TYPE_QRC = "QRC";
String PAY_TYPE_AE = "AE";
String PAY_TYPE_QRC = "QRC";//支付寶,微信
String PAY_TYPE_OPS = "OPS";//八達通
String PAY_TYPE_AE = "AE";//美国运通
String PAY_TYPE_EPS = "EPS";
String PAY_TYPE_INTEGRAL = "INTEGRAL";
//扫码支付
......@@ -47,4 +49,27 @@ public interface PayMethodConstant {
String PAY_WAY_QR = "QR"; //QR /条码付款(例如VMJ QR,UP QR)
String PAY_WAY_ALI_WCP = "ALP,WCP"; //微信,支付宝
/**
* 6.6 Settle Type List
* Payment Type Description:
*
* VC -- Visa Card
* MC -- Master Card
* JCB -- JCB
* UP -- Unionpay
* UP-QR -- Unionpay QR
* AE -- AMEX
* ALP -- Alipay
* WCP -- Wechat Pay
* FPS -- Fast Payment Service.
* OPS -- Octopus
* EPS -- EPS
* DCC-VC -- DCC + Visa Card
* DCC-MC -- DCC + Master Card
* LMS-UP -- Loyalty + Unionpay
* LMS-VC -- Loyalty + Visa Card
* UPLAN -- UPLAN
*
*/
}
package com.gingersoft.gsa.cloud.pay.pos.hywebpos.constant;
/**
* @作者: bin
* @創建時間: 2021-01-09 17:54
* @更新時間: 2021-01-09 17:54
* @描述:
*/
public class TransactionStatusCode {
/**
* Approved/Accepted by host
*/
public static final String TXN_STATUS_A = "A";
/**
* Confirming/Processing
*/
public static final String TXN_STATUS_P = "P";
/**
* Voided 已取消
*/
public static final String TXN_STATUS_V = "V";
/**
* Settled (Only A will change to S after settlement)
*/
public static final String TXN_STATUS_S = "S";
/**
* Declined/Cancelled/Reversed/Operational Timeout
*/
public static final String TXN_STATUS_F = "F";
/**
* Octopus read card timeout
*/
public static final String TXN_STATUS_T = "T";
}
......@@ -25,7 +25,7 @@ public class PrintActionImpl extends IPosAction {
}
@Override
protected void onBeforeActionPOS() {
protected void onPosActionBefore() {
}
......
......@@ -16,13 +16,9 @@ import com.gingersoft.gsa.cloud.pay.pos.bean.PosMatter;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.bg.GetTxnIdRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.RefundRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.bg.GetRefundIdResponse;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.bg.GetTxnIdResponse;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.HywebPosResponse;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.RefundRespose;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.constant.PayStatusCode;
import com.jess.arms.integration.AppManager;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.constant.HywebActionStatusCode;
import com.jess.arms.mvp.IView;
import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.RxLifecycleUtils;
import com.xuexiang.rxutil2.rxjava.RxSchedulerUtils;
......@@ -37,7 +33,7 @@ import okhttp3.RequestBody;
* @更新時間: 2020-12-26 10:38
* @描述:
*/
public class RefundActionImpl extends IPosAction {
public class RefundActionImpl extends IPosAction<RefundRespose> {
private GetTxnIdRequest mGetTxnIdRequest;
private GetRefundIdResponse mGetRefundIdResponse;
......@@ -52,7 +48,7 @@ public class RefundActionImpl extends IPosAction {
}
@Override
protected void onBeforeActionPOS() {
protected void onPosActionBefore() {
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(mGetTxnIdRequest));
String json = GsonUtils.GsonString(mGetTxnIdRequest);
......@@ -76,7 +72,7 @@ public class RefundActionImpl extends IPosAction {
if (mRefundRequest != null) {
mRefundRequest.setTXN_ID(mGetRefundIdResponse.getRefundId());
//調起N5退款
onActionToPOS(GsonUtils.GsonString(mRefundRequest));
onPosToAction(GsonUtils.GsonString(mRefundRequest));
// canCelLoadingDialog();
} else {
onBeforeActionPosError(new Exception(error + PayExceptionCode.tips_701));
......@@ -113,9 +109,9 @@ public class RefundActionImpl extends IPosAction {
* @param originalActivity
*/
@Override
public void onPosSuccess(Context context, HywebPosResponse response, Activity originalActivity) {
public void onPosSuccess(Context context, RefundRespose response, Activity originalActivity) {
//1、更新上傳退款狀態
OkHttp3Utils.post(HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL + "orderPay/add", getPosMatterRequest((RefundRespose) response))
OkHttp3Utils.post(HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL + "orderPay/add", getPosMatterRequest(response))
.compose(RxSchedulerUtils._io_main_o())
.compose(RxLifecycleUtils.bindToLifecycle(mView))
.subscribe(new Observer<String>() {
......@@ -131,7 +127,7 @@ public class RefundActionImpl extends IPosAction {
if (!TextUtils.isEmpty(result)) {
BaseResult baseResult = GsonUtils.GsonToBean(result, BaseResult.class);
if (baseResult != null) {
if (baseResult.isSuccess() && baseResult.getData() != null) {
if (baseResult.isSuccess()) {
onUpdateStatusSuccess(response);
} else {
onUpdateStatusError(new Exception(mPosAction.getCallbackExceptionText() + "["+baseResult.getErrMsg()+"]"));
......@@ -163,8 +159,8 @@ public class RefundActionImpl extends IPosAction {
* @param response
* @param originalActivity
*/
private void displayRefundResult(Context context, HywebPosResponse response, Activity originalActivity) {
if (PayStatusCode.withException(response.getSTATUS())) {
private void displayRefundResult(Context context, RefundRespose response, Activity originalActivity) {
if (HywebActionStatusCode.withException(response.getSTATUS())) {
super.onPosException(new Exception(response.getSTATUS()));
} else {
super.onPosSuccess(context,response,originalActivity);
......
......@@ -18,6 +18,7 @@ import com.gingersoft.gsa.cloud.order.billItem.BillItem;
import com.gingersoft.gsa.cloud.pay.bean.PayMethod;
import com.gingersoft.gsa.cloud.pay.contract.PayExceptionCode;
import com.gingersoft.gsa.cloud.pay.pos.IPosAction;
import com.gingersoft.gsa.cloud.pay.pos.OnPosActionListener;
import com.gingersoft.gsa.cloud.pay.pos.PosAction;
import com.gingersoft.gsa.cloud.pay.pos.bean.PosMatter;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.bg.GetTxnIdRequest;
......@@ -25,7 +26,7 @@ import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.SaleRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.bg.GetTxnIdResponse;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.HywebPosResponse;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.SaleRespose;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.constant.PayStatusCode;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.constant.HywebActionStatusCode;
import com.gingersoft.gsa.cloud.pay.widget.StatusLoadingDialog;
import com.jess.arms.mvp.IView;
import com.jess.arms.utils.RxLifecycleUtils;
......@@ -47,7 +48,7 @@ import okhttp3.RequestBody;
* @更新時間: 2020-12-26 10:38
* @描述:
*/
public class SaleActionImpl extends IPosAction {
public class SaleActionImpl extends IPosAction<SaleRespose> {
private SaleRequest mSaleRequest;
private GetTxnIdRequest mTxnIdRequest;
......@@ -58,7 +59,7 @@ public class SaleActionImpl extends IPosAction {
private List<BillItem> mBillItemList;
private List<PayMethod> mPayMethodList;
public SaleActionImpl(Context context, IView iView, PosAction action, SaleRequest saleRequest, GetTxnIdRequest getTxnIdRequest, TableBean.DataBean tableBean, MealOrderPayRequest mealOrderPayRequest, List<BillItem> billItemList, List<PayMethod> payMethodList, boolean showLoading) {
public SaleActionImpl(Context context, IView iView, PosAction action, SaleRequest saleRequest, GetTxnIdRequest getTxnIdRequest, TableBean.DataBean tableBean, MealOrderPayRequest mealOrderPayRequest, List<BillItem> billItemList, List<PayMethod> payMethodList, OnPosActionListener onPosActionListener, boolean showLoading) {
super(context, iView, action, showLoading);
this.mSaleRequest = saleRequest;
this.mTxnIdRequest = getTxnIdRequest;
......@@ -66,6 +67,7 @@ public class SaleActionImpl extends IPosAction {
this.mMealOrderPayRequest = mealOrderPayRequest;
this.mBillItemList = billItemList;
this.mPayMethodList = payMethodList;
this.mOnPosActionListener = onPosActionListener;
if (mStatusLoadingDialog != null) {
mStatusLoadingDialog.setOnLoadStautsListener(new StatusLoadingDialog.OnLoadStautsListener() {
......@@ -83,7 +85,7 @@ public class SaleActionImpl extends IPosAction {
}
@Override
protected void onBeforeActionPOS() {
protected void onPosActionBefore() {
mTxnIdRequest.setContent(mMealOrderPayRequest.toString());
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(mTxnIdRequest));
......@@ -109,7 +111,7 @@ public class SaleActionImpl extends IPosAction {
if (mSaleRequest != null) {
mSaleRequest.setTXN_ID(mTxnIdResponse.getTxnId());
//調起N5支付 936E4F01A0A5473C971503433F78027E
onActionToPOS(GsonUtils.GsonString(mSaleRequest));
onPosToAction(GsonUtils.GsonString(mSaleRequest));
// canCelLoadingDialog();
} else {
onBeforeActionPosError(new Exception(error + PayExceptionCode.sale_401));
......@@ -147,9 +149,9 @@ public class SaleActionImpl extends IPosAction {
* @param originalActivity 原來跳轉到pos的支付頁
*/
@Override
public void onPosSuccess(Context context, HywebPosResponse response, Activity originalActivity) {
public void onPosSuccess(Context context, SaleRespose response, Activity originalActivity) {
//1、更新上傳支付狀態
OkHttp3Utils.post(HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL + "orderPay/add", getPosMatterRequest((SaleRespose) response))
OkHttp3Utils.post(HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL + "orderPay/add", getPosMatterRequest(response))
.compose(RxSchedulerUtils._io_main_o())
.compose(RxLifecycleUtils.bindToLifecycle(mView))
.subscribe(new Observer<String>() {
......@@ -165,11 +167,11 @@ public class SaleActionImpl extends IPosAction {
if (!TextUtils.isEmpty(result)) {
BaseResult baseResult = GsonUtils.GsonToBean(result, BaseResult.class);
if (baseResult != null) {
if (baseResult.isSuccess() && baseResult.getData() != null) {
if (baseResult.isSuccess()) {
onUpdateStatusSuccess(response);
startPaymentDetailActivity(context, response);
} else {
onUpdateStatusError(new Exception(mPosAction.getCallbackExceptionText()+ "["+baseResult.getErrMsg()+"]"));
onUpdateStatusError(new Exception(mPosAction.getCallbackExceptionText() + "[" + baseResult.getErrMsg() + "]"));
}
} else {
onUpdateStatusError(new Exception(mPosAction.getCallbackExceptionText() + PayExceptionCode.sale_413));
......@@ -199,8 +201,8 @@ public class SaleActionImpl extends IPosAction {
* @param response
* @param originalActivity
*/
private void displayPaymentResult(Context context, HywebPosResponse response, Activity originalActivity) {
if (PayStatusCode.withException(response.getSTATUS())) {
private void displayPaymentResult(Context context, SaleRespose response, Activity originalActivity) {
if (HywebActionStatusCode.withException(response.getSTATUS())) {
super.onPosException(new Exception(response.getSTATUS()));
} else {
super.onPosSuccess(context, response, originalActivity);
......
......@@ -8,6 +8,7 @@ import com.gingersoft.gsa.cloud.common.utils.okhttpUtils.OkHttp3Utils;
import com.gingersoft.gsa.cloud.pay.pos.IPosAction;
import com.gingersoft.gsa.cloud.pay.pos.PosAction;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.HywebPosResponse;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.SettlementRespose;
import com.jess.arms.mvp.IView;
import com.jess.arms.utils.RxLifecycleUtils;
import com.xuexiang.rxutil2.rxjava.RxSchedulerUtils;
......@@ -25,7 +26,7 @@ import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber;
* @更新時間: 2020-12-26 10:38
* @描述:
*/
public class SettlementActionImpl extends IPosAction {
public class SettlementActionImpl extends IPosAction<SettlementRespose> {
public SettlementActionImpl(Context context, IView iView, PosAction action, boolean showLoading) {
......@@ -33,11 +34,11 @@ public class SettlementActionImpl extends IPosAction {
}
@Override
protected void onBeforeActionPOS() {
protected void onPosActionBefore() {
}
@Override
public void onPosSuccess(Context context,HywebPosResponse result, Activity actionActivity) {
public void onPosSuccess(Context context,SettlementRespose result, Activity actionActivity) {
}
......
......@@ -17,11 +17,8 @@ import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.bg.GetTxnIdRequest
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.AdjustTipRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.bg.GetTipTxnIdResponse;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.AdjustTipRespose;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.HywebPosResponse;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.constant.PayStatusCode;
import com.jess.arms.integration.AppManager;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.constant.HywebActionStatusCode;
import com.jess.arms.mvp.IView;
import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.RxLifecycleUtils;
import com.xuexiang.rxutil2.rxjava.RxSchedulerUtils;
......@@ -36,7 +33,7 @@ import okhttp3.RequestBody;
* @更新時間: 2020-12-26 10:38
* @描述:
*/
public class TipsActionImpl extends IPosAction {
public class TipsActionImpl extends IPosAction<AdjustTipRespose> {
private AdjustTipRequest mAdjustTipRequest;
......@@ -52,7 +49,7 @@ public class TipsActionImpl extends IPosAction {
}
@Override
protected void onBeforeActionPOS() {
protected void onPosActionBefore() {
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(mTxnIdRequest));
String json = GsonUtils.GsonString(mTxnIdRequest);
......@@ -77,7 +74,7 @@ public class TipsActionImpl extends IPosAction {
if (mAdjustTipRequest != null) {
mAdjustTipRequest.setTXN_ID(mTxnIdResponse.getTipTxnId());
//調起N5補小費
onActionToPOS(GsonUtils.GsonString(mAdjustTipRequest));
onPosToAction(GsonUtils.GsonString(mAdjustTipRequest));
// canCelLoadingDialog();
} else {
onBeforeActionPosError(new Exception(error + baseResult.getErrMsg()));
......@@ -119,9 +116,9 @@ public class TipsActionImpl extends IPosAction {
* @param originalActivity
*/
@Override
public void onPosSuccess(Context context, HywebPosResponse response, Activity originalActivity) {
public void onPosSuccess(Context context, AdjustTipRespose response, Activity originalActivity) {
//1、更新上傳小費狀態
OkHttp3Utils.post(HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL + "posPay/updatePosTip", getPosMatterRequest((AdjustTipRespose) response))
OkHttp3Utils.post(HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL + "posPay/updatePosTip", getPosMatterRequest(response))
.compose(RxSchedulerUtils._io_main_o())
.compose(RxLifecycleUtils.bindToLifecycle(mView))
.subscribe(new Observer<String>() {
......@@ -170,8 +167,8 @@ public class TipsActionImpl extends IPosAction {
* @param response
* @param originalActivity
*/
private void displayTipsResult(Context context, HywebPosResponse response, Activity originalActivity) {
if (PayStatusCode.withException(response.getSTATUS())) {
private void displayTipsResult(Context context, AdjustTipRespose response, Activity originalActivity) {
if (HywebActionStatusCode.withException(response.getSTATUS())) {
super.onPosException(new Exception(response.getSTATUS()));
} else {
super.onPosSuccess(context,response,originalActivity);
......@@ -183,7 +180,7 @@ public class TipsActionImpl extends IPosAction {
PosMatter posMatter = new PosMatter();
posMatter.setOrderId(mTxnIdRequest.getOrderId());
posMatter.setTipsPrice(response.getTIPS());
// posMatter.setPayId(response.getTXN_ID());
posMatter.setPayId(response.getTXN_ID());
posMatter.setContent(GsonUtils.GsonString(response));
posMatter.setStatus(getPosMatterStatus(response.getSTATUS()));
......
......@@ -16,13 +16,9 @@ import com.gingersoft.gsa.cloud.pay.pos.bean.PosMatter;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.bg.GetTxnIdRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.VoidRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.bg.GetCancelTxnIdResponse;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.bg.GetTxnIdResponse;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.HywebPosResponse;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.VoidRespose;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.constant.PayStatusCode;
import com.jess.arms.integration.AppManager;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.constant.HywebActionStatusCode;
import com.jess.arms.mvp.IView;
import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.RxLifecycleUtils;
import com.xuexiang.rxutil2.rxjava.RxSchedulerUtils;
......@@ -37,7 +33,7 @@ import okhttp3.RequestBody;
* @更新時間: 2020-12-26 10:38
* @描述:
*/
public class VoidActionImpl extends IPosAction {
public class VoidActionImpl extends IPosAction<VoidRespose> {
private VoidRequest mVoidRequest;
......@@ -52,7 +48,7 @@ public class VoidActionImpl extends IPosAction {
}
@Override
protected void onBeforeActionPOS() {
protected void onPosActionBefore() {
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(mTxnIdRequest));
String json = GsonUtils.GsonString(mTxnIdRequest);
......@@ -76,7 +72,7 @@ public class VoidActionImpl extends IPosAction {
if (mVoidRequest != null) {
mVoidRequest.setTXN_ID(mTxnIdResponse.getCancelTxnId());
//調起N5取消訂單
onActionToPOS(GsonUtils.GsonString(mVoidRequest));
onPosToAction(GsonUtils.GsonString(mVoidRequest));
// canCelLoadingDialog();
} else {
onBeforeActionPosError(new Exception(error + PayExceptionCode.void_801));
......@@ -116,9 +112,9 @@ public class VoidActionImpl extends IPosAction {
* @param originalActivity
*/
@Override
public void onPosSuccess(Context context, HywebPosResponse response, Activity originalActivity) {
public void onPosSuccess(Context context, VoidRespose response, Activity originalActivity) {
//1、更新上傳取消狀態
OkHttp3Utils.post(HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL + "orderPay/updatePosCancel", getPosMatterRequest((VoidRespose) response))
OkHttp3Utils.post(HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL + "posPay/updatePosCancel", getPosMatterRequest(response))
.compose(RxSchedulerUtils._io_main_o())
.compose(RxLifecycleUtils.bindToLifecycle(mView))
.subscribe(new Observer<String>() {
......@@ -134,7 +130,7 @@ public class VoidActionImpl extends IPosAction {
if (!TextUtils.isEmpty(result)) {
BaseResult baseResult = GsonUtils.GsonToBean(result, BaseResult.class);
if (baseResult != null) {
if (baseResult.isSuccess() && baseResult.getData() != null) {
if (baseResult.isSuccess()) {
onUpdateStatusSuccess(response);
} else {
onUpdateStatusError(new Exception(mPosAction.getCallbackExceptionText() + baseResult.getErrMsg()));
......@@ -165,8 +161,8 @@ public class VoidActionImpl extends IPosAction {
* @param response
* @param originalActivity
*/
private void displayVoidResult(Context context, HywebPosResponse response, Activity originalActivity) {
if (PayStatusCode.withException(response.getSTATUS())) {
private void displayVoidResult(Context context, VoidRespose response, Activity originalActivity) {
if (HywebActionStatusCode.withException(response.getSTATUS())) {
super.onPosException(new Exception(response.getSTATUS()));
} else {
super.onPosSuccess(context,response,originalActivity);
......
......@@ -59,11 +59,30 @@ public class PayMethodUtils {
return -1;
}
public static boolean hasHywebPayMethod(PayMethod payMethod) {
public static boolean withHywebPayMethod(PayMethod payMethod) {
int[] payTypes = {PayTypeContract.PAY_METHOD_ID_1030, PayTypeContract.PAY_METHOD_ID_1031};
if (payMethod.getPayType() == payTypes[0] || payMethod.getPayType() == payTypes[1]) {
return true;
}
return false;
}
/**
* 獲取Hyweb支付
* @param payMethods
* @return
*/
public static PayMethod getHywebPayMethod(List<PayMethod> payMethods) {
if (payMethods != null && payMethods.size() > 0) {
int[] payTypes = {PayTypeContract.PAY_METHOD_ID_1030, PayTypeContract.PAY_METHOD_ID_1031};
for (int i = 0; i < payMethods.size(); i++) {
PayMethod payMethod = payMethods.get(i);
if (payMethod.getPayType() == payTypes[0] || payMethod.getPayType() == payTypes[1]) {
return payMethod;
}
}
}
return null;
}
}
......@@ -2,6 +2,7 @@ package com.gingersoft.gsa.cloud.print.bean.adapter;
import com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails;
import com.gingersoft.gsa.cloud.common.core.settlement.SettlementReport;
import com.gingersoft.gsa.cloud.common.core.table.TableBean;
import com.gingersoft.gsa.cloud.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.print.bean.PrintContent;
......@@ -21,9 +22,9 @@ public interface AdaptationContent {
PrintContent adaptationPrintCleanMachineContent(SettlementReport settlementReport);
PrintContent adaptationPrintSlipContent(DoshokuOrder doshokuOrder);
PrintContent adaptationPrintSlipContent(DoshokuOrder doshokuOrder, TableBean.DataBean tableBean);
PrintContent adaptationServingPaperContent(DoshokuOrder doshokuOrder);
PrintContent adaptationServingPaperContent(DoshokuOrder doshokuOrder, TableBean.DataBean tableBean);
PrintContent adaptationBillContent(DoshokuOrder doshokuOrder);
PrintContent adaptationBillContent(DoshokuOrder doshokuOrder, TableBean.DataBean tableBean);
}
......@@ -4,32 +4,39 @@ import com.gingersoft.gsa.cloud.common.constans.AppConstans;
import com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails;
import com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager;
import com.gingersoft.gsa.cloud.common.core.settlement.SettlementReport;
import com.gingersoft.gsa.cloud.common.core.table.TableBean;
import com.gingersoft.gsa.cloud.common.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.common.utils.other.TextUtil;
import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.order.billItem.BillItem;
import com.gingersoft.gsa.cloud.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.pay.bean.PayMethod;
import com.gingersoft.gsa.cloud.print.bean.PrintBillContent;
import com.gingersoft.gsa.cloud.print.bean.PrintCleanMachineContent;
import com.gingersoft.gsa.cloud.print.bean.PrintContent;
import com.gingersoft.gsa.cloud.print.bean.PrintServingPaperContent;
import com.gingersoft.gsa.cloud.print.bean.PrintSlipContent;
import com.gingersoft.gsa.cloud.print.bean.PrintTakeawayCheckoutContent;
import com.gingersoft.gsa.cloud.print.bean.PrintTakeawayFormContent;
import com.gingersoft.gsa.cloud.print.bean.base.PrintBillItem;
import com.gingersoft.gsa.cloud.print.bean.base.PrintFoodItem;
import com.gingersoft.gsa.cloud.print.bean.base.PrintPayTypeItem;
import java.util.ArrayList;
import java.util.List;
import lombok.Data;
/**
* @author : bin
* @create date: 2020-12-01
* @update date: 2020-12-01
* @description:打印內容適配類,打印類拿到自身需要打印的實體信息
* @description:打印內容適配類,打印類只需要拿到自身需要的實體信息
*/
@Data
public class PrintContentAdapter implements AdaptationContent {
public PrintContentAdapter() {
}
......@@ -62,18 +69,89 @@ public class PrintContentAdapter implements AdaptationContent {
}
@Override
public PrintContent adaptationPrintSlipContent(DoshokuOrder doshokuOrder) {
return null;
public PrintContent adaptationPrintSlipContent(DoshokuOrder doshokuOrder, TableBean.DataBean tableBean) {
PrintSlipContent slipContent = new PrintSlipContent();
slipContent.setBrand(RestaurantInfoManager.newInstance().getBrandName());
slipContent.setResturantName(RestaurantInfoManager.newInstance().getRestaurantName());
slipContent.setTableName(tableBean.getTableName());
slipContent.setPerson(tableBean.getPerson());
slipContent.setCreateTime(tableBean.getCreateTime());
slipContent.setOrderNo(doshokuOrder.getOrderNo());
slipContent.setFoodItemList(orderDetailItemCastPrintFoodItemList(doshokuOrder.getNewFoodList()));
slipContent.setBillItemList(billItemCastPrintBillItemList(doshokuOrder.getShoppingCart().getBillItemList()));
slipContent.setWholeAmount(doshokuOrder.getShoppingCart().getWholeAmount());
slipContent.setPoliteLanguage("歡迎光臨!");
return slipContent;
}
@Override
public PrintContent adaptationServingPaperContent(DoshokuOrder doshokuOrder) {
return null;
public PrintContent adaptationServingPaperContent(DoshokuOrder doshokuOrder, TableBean.DataBean tableBean) {
PrintServingPaperContent servingPaperContent = new PrintServingPaperContent();
servingPaperContent.setBrand(RestaurantInfoManager.newInstance().getBrandName());
servingPaperContent.setResturantName(RestaurantInfoManager.newInstance().getRestaurantName());
servingPaperContent.setTableName(tableBean.getTableName());
servingPaperContent.setPerson(tableBean.getPerson());
servingPaperContent.setCreateTime(tableBean.getCreateTime());
servingPaperContent.setOrderNo(doshokuOrder.getOrderNo());
servingPaperContent.setFoodItemList(orderDetailItemCastPrintFoodItemList(doshokuOrder.getNewFoodList()));
servingPaperContent.setPoliteLanguage("歡迎光臨!");
return servingPaperContent;
}
@Override
public PrintContent adaptationBillContent(DoshokuOrder doshokuOrder) {
return null;
public PrintContent adaptationBillContent(DoshokuOrder doshokuOrder, TableBean.DataBean tableBean) {
PrintBillContent billContent = new PrintBillContent();
billContent.setBrand(RestaurantInfoManager.newInstance().getBrandName());
billContent.setResturantName(RestaurantInfoManager.newInstance().getRestaurantName());
billContent.setTableName(tableBean.getTableName());
billContent.setPerson(tableBean.getPerson());
billContent.setCreateTime(tableBean.getCreateTime());
billContent.setOrderNo(doshokuOrder.getOrderNo());
billContent.setFoodItemList(orderDetailItemCastPrintFoodItemList(doshokuOrder.getNewFoodList()));
billContent.setBillItemList(billItemCastPrintBillItemList(doshokuOrder.getShoppingCart().getBillItemList()));
billContent.setPayMethodItemList(payMethodItemCastPrintBillItemList(doshokuOrder.getBillMoney()));
billContent.setWholeAmount(doshokuOrder.getShoppingCart().getWholeAmount());
billContent.setTotalAmount(doshokuOrder.getShoppingCart().getTotalAmount());
if (doshokuOrder.getMemberInfo() != null) {
billContent.setMemberName(doshokuOrder.getMemberInfo().getMemberName());
billContent.setPhone(doshokuOrder.getMemberInfo().getPhone());
}
billContent.setAddPoints(doshokuOrder.getAddPoints());
billContent.setOldPoints(doshokuOrder.getOldPoints());
billContent.setNowPoints(doshokuOrder.getNowPoints());
billContent.setIntegralQrCode(doshokuOrder.getIntegralQrcode());
billContent.setPoliteLanguage("謝謝光臨!");
return billContent;
}
private List<PrintFoodItem> orderDetailItemCastPrintFoodItemList(List<OrderDetail> newFoodList) {
List<PrintFoodItem> printFoodItems = new ArrayList<>();
if (newFoodList != null) {
for (OrderDetail orderDetail : newFoodList) {
printFoodItems.add(new PrintFoodItem(orderDetail.getProductName(), orderDetail.getNumber(), orderDetail.getPrice(), orderDetail.getItemType()));
}
}
return printFoodItems;
}
private List<PrintBillItem> billItemCastPrintBillItemList(List<BillItem> billItems) {
List<PrintBillItem> printBillItems = new ArrayList<>();
if (billItems != null) {
for (BillItem billItem : billItems) {
printBillItems.add(new PrintBillItem(billItem.getName(), String.valueOf(billItem.getMoney())));
}
}
return printBillItems;
}
private List<PrintBillItem> payMethodItemCastPrintBillItemList(List<PayMethod> payMethods) {
List<PrintBillItem> printBillItems = new ArrayList<>();
if (payMethods != null) {
for (PayMethod payMethod : payMethods) {
printBillItems.add(new PrintBillItem(payMethod.getPayName(), String.valueOf(payMethod.getPayMoney())));
}
}
return printBillItems;
}
public PrintTakeawayFormContent getPrintTakeawayFormContent(OrderDetails.DataBean data, int type) {
......
......@@ -179,7 +179,7 @@ public class OrderPayView extends LinearLayout {
}
}
}
if (mBillMoneyList.size() > 0 && PayMethodUtils.hasHywebPayMethod(method)) {
if (mBillMoneyList.size() > 0 && PayMethodUtils.withHywebPayMethod(method)) {
int hywebPayMethodIndex = PayMethodUtils.hasHywebPayMethod(mBillMoneyList);
if (hywebPayMethodIndex != -1) {
//只允許存在一個hyweb支付
......
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