Commit 036909d4 by 宁斌

1、N5相關細節調整

parent 66c18f25
...@@ -289,13 +289,10 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl ...@@ -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"); 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_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_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_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_purchase, 0));
if (managerFuncations.size() > 0) { if (managerFuncations.size() > 0) {
functions.addAll(managerFuncations); functions.addAll(managerFuncations);
......
package com.gingersoft.gsa.cloud.pay.mvp.ui.activity; package com.gingersoft.gsa.cloud.pay.mvp.ui.activity;
import android.app.Activity;
import android.content.Intent; import android.content.Intent;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.os.Bundle; import android.os.Bundle;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log;
import android.view.View; import android.view.View;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
...@@ -17,9 +18,8 @@ import androidx.core.content.ContextCompat; ...@@ -17,9 +18,8 @@ import androidx.core.content.ContextCompat;
import com.billy.cc.core.component.CC; import com.billy.cc.core.component.CC;
import com.billy.cc.core.component.CCUtil; import com.billy.cc.core.component.CCUtil;
import com.gingersoft.gsa.cloud.common.constans.AppConstans; 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.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.BasePosCallback;
import com.gingersoft.gsa.cloud.common.loadsir.pos.PosPayStatusExceptionCallback; import com.gingersoft.gsa.cloud.common.loadsir.pos.PosPayStatusExceptionCallback;
import com.gingersoft.gsa.cloud.common.utils.MoneyUtil; import com.gingersoft.gsa.cloud.common.utils.MoneyUtil;
...@@ -44,10 +44,12 @@ import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.RetrievalReque ...@@ -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.AdjustTipRespose;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.HywebPosResponse; 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.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.KeyboardDialog;
import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog; 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.base.BaseFragmentActivity;
import com.jess.arms.di.component.AppComponent; import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
...@@ -152,7 +154,7 @@ public class PayResultActivity extends BaseFragmentActivity<PayResultPresenter> ...@@ -152,7 +154,7 @@ public class PayResultActivity extends BaseFragmentActivity<PayResultPresenter>
callback1.showFinalStrategy(true); callback1.showFinalStrategy(true);
} }
//支付状态异常 重试查询 //支付状态异常 重试查询
retrievalStatus(); retrievalStatus(PosAction.SALE);
retryCount--; retryCount--;
} }
}); });
...@@ -180,25 +182,33 @@ public class PayResultActivity extends BaseFragmentActivity<PayResultPresenter> ...@@ -180,25 +182,33 @@ public class PayResultActivity extends BaseFragmentActivity<PayResultPresenter>
tvPaymethod.setText(mPayMehodNames); tvPaymethod.setText(mPayMehodNames);
tvTableName.setText("檯號: " + mMealPayResultParam.getTableBean().getTableName()); tvTableName.setText("檯號: " + mMealPayResultParam.getTableBean().getTableName());
tvOrderNum.setText("單號: " + mMealPayResultParam.getMealOrderPayRequest().getOrderId()); 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() { private void showPaymentStatus() {
if (PayStatusCode.withSuccess(mSaleRespose.getSTATUS())) { if (HywebActionStatusCode.withSuccess(mSaleRespose.getSTATUS())) {
loadService.showSuccess(); loadService.showSuccess();
llBottom.setVisibility(View.VISIBLE); llBottom.setVisibility(View.VISIBLE);
btnComplate.setVisibility(View.VISIBLE); btnComplate.setVisibility(View.VISIBLE);
} else if (PayStatusCode.withException(mSaleRespose.getSTATUS())) { } else if (HywebActionStatusCode.withException(mSaleRespose.getSTATUS())) {
loadService.showCallback(PosPayStatusExceptionCallback.class); loadService.showCallback(PosPayStatusExceptionCallback.class);
llBottom.setVisibility(View.INVISIBLE); llBottom.setVisibility(View.INVISIBLE);
btnComplate.setVisibility(View.INVISIBLE); btnComplate.setVisibility(View.INVISIBLE);
} }
tvPayStatus.setCompoundDrawables(null, getPaymentDrawableByStatus(mSaleRespose.getSTATUS()), null, null); 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) { private Drawable getPaymentDrawableByStatus(String status) {
Drawable drawable; Drawable drawable;
if (PayStatusCode.withSuccess(status)) { if (HywebActionStatusCode.withSuccess(status)) {
drawable = getResources().getDrawable(R.mipmap.pay_status_success); drawable = getResources().getDrawable(R.mipmap.pay_status_success);
drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight()); drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());
} else { } else {
...@@ -208,10 +218,10 @@ public class PayResultActivity extends BaseFragmentActivity<PayResultPresenter> ...@@ -208,10 +218,10 @@ public class PayResultActivity extends BaseFragmentActivity<PayResultPresenter>
return drawable; return drawable;
} }
private void retrievalStatus() { private void retrievalStatus(PosAction posAction) {
RetrievalRequest retrievalRequest = new RetrievalRequest(); RetrievalRequest retrievalRequest = new RetrievalRequest();
retrievalRequest.setTXN_ID(mMealPayResultParam.getTxnId()); 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 @Override
public void onPosSuccess(HywebPosResponse response) { public void onPosSuccess(HywebPosResponse response) {
...@@ -322,7 +332,7 @@ public class PayResultActivity extends BaseFragmentActivity<PayResultPresenter> ...@@ -322,7 +332,7 @@ public class PayResultActivity extends BaseFragmentActivity<PayResultPresenter>
if (view.getId() == R.id.tv_tips) { if (view.getId() == R.id.tv_tips) {
showKeyboardDialog(); showKeyboardDialog();
} else if (view.getId() == R.id.tv_printer) { } else if (view.getId() == R.id.tv_printer) {
printBill();
} else if (view.getId() == R.id.btn_complate) { } else if (view.getId() == R.id.btn_complate) {
//返回餐檯頁面 //返回餐檯頁面
CC.obtainBuilder(ComponentName.COMPONENT_TABLE) CC.obtainBuilder(ComponentName.COMPONENT_TABLE)
...@@ -333,6 +343,22 @@ public class PayResultActivity extends BaseFragmentActivity<PayResultPresenter> ...@@ -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() { private void showKeyboardDialog() {
new KeyboardDialog(this) new KeyboardDialog(this)
.build() .build()
......
...@@ -19,6 +19,7 @@ import com.gingersoft.gsa.cloud.order.commodity.OrderDetail; ...@@ -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.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.print.bean.PrintBillContent; 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.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.BillingBean;
import com.joe.print.mvp.model.bean.HtmlLable; import com.joe.print.mvp.model.bean.HtmlLable;
import com.joe.print.mvp.print.common.HtmlContract; import com.joe.print.mvp.print.common.HtmlContract;
...@@ -235,13 +236,6 @@ public class PrintBill extends PrinterRoot<PrintBillContent> { ...@@ -235,13 +236,6 @@ public class PrintBill extends PrinterRoot<PrintBillContent> {
private Bitmap getBitmap(Context mContext, PrinterDeviceBean deviceBean) { 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); LinearLayout layout = new LinearLayout(mContext);
layout.setOrientation(LinearLayout.VERTICAL); layout.setOrientation(LinearLayout.VERTICAL);
...@@ -250,28 +244,28 @@ public class PrintBill extends PrinterRoot<PrintBillContent> { ...@@ -250,28 +244,28 @@ public class PrintBill extends PrinterRoot<PrintBillContent> {
layout.addView(getLine(mContext)); layout.addView(getLine(mContext));
//訂單信息 //訂單信息
String tableName = "餐檯:" + tableBean.getTableName(); String tableName = "餐檯:" + mPrintBillContent.getTableName();
String peopleNum = "人數:" + doshokuOrder.getOpenTableInfo().getPerson(); String peopleNum = "人數:" + mPrintBillContent.getPerson();
String orderNum = "單號:"; String orderNum = "單號:";
if (TextUtil.isNotEmptyOrNullOrUndefined(doshokuOrder.getOrderNo())) { if (TextUtil.isNotEmptyOrNullOrUndefined(mPrintBillContent.getOrderNo())) {
orderNum = "單號:" + doshokuOrder.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(getDiningTableOrderInfo(mContext, tableName, peopleNum, orderNum, createTime));
layout.addView(getLine(mContext)); 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)); layout.addView(getHalfLine(mContext));
//訂單金額信息 //訂單金額信息
List<BillingBean> billingBeans = new ArrayList<>(); List<BillingBean> billingBeans = new ArrayList<>();
//添加合計項 //添加合計項
billingBeans.add(new BillingBean("合計", shoppingCart.getWholeAmount())); billingBeans.add(new BillingBean("合計", mPrintBillContent.getWholeAmount()));
//添加其他金額項 //添加其他金額項
if (shoppingCart.getBillItemList().size() > 0) { if (mPrintBillContent.getBillItemList().size() > 0) {
for (BillItem item : shoppingCart.getBillItemList()) { for (PrintBillItem item : mPrintBillContent.getBillItemList()) {
billingBeans.add(new BillingBean(item.getName(), item.getMoney())); billingBeans.add(new BillingBean(item.getBillName(), Double.parseDouble(item.getBillAmount())));
} }
} }
layout.addView(getDiningBillInfo(mContext, billingBeans)); layout.addView(getDiningBillInfo(mContext, billingBeans));
...@@ -281,12 +275,12 @@ public class PrintBill extends PrinterRoot<PrintBillContent> { ...@@ -281,12 +275,12 @@ public class PrintBill extends PrinterRoot<PrintBillContent> {
// for (OrderDetail OrderDetail : MyOrderManage.getInstance().getOrderFoodList()) { // for (OrderDetail OrderDetail : MyOrderManage.getInstance().getOrderFoodList()) {
// totalAmount = MoneyUtil.sum(totalAmount, OrderDetail.getPrice()); // totalAmount = MoneyUtil.sum(totalAmount, OrderDetail.getPrice());
// } // }
layout.addView(getAmountText(mContext, "總金額:" + shoppingCart.getTotalAmount())); layout.addView(getAmountText(mContext, "總金額:" + mPrintBillContent.getTotalAmount()));
layout.addView(getLine(mContext)); layout.addView(getLine(mContext));
layout.addView(getDiningBillPayMethod(mContext, doshokuOrder.getBillMoney())); layout.addView(getDiningBillPayMethod(mContext, mPrintBillContent.getPayMethodItemList()));
layout.addView(getLine(mContext)); layout.addView(getLine(mContext));
layout.addView(getTableMealMemberIntegerView(mContext, getOrderMemberInfo(), doshokuOrder.getIntegralQrcode())); layout.addView(getTableMealMemberIntegerView(mContext, getOrderMemberInfo(), mPrintBillContent.getIntegralQrCode()));
return zoomBitmap(deviceBean, viewToBitmap(mContext, layout)); return zoomBitmap(deviceBean, viewToBitmap(mContext, layout));
} }
......
...@@ -85,7 +85,7 @@ public class PrintOtherOrder extends PrinterRoot<PrintTakeawayFormContent> { ...@@ -85,7 +85,7 @@ public class PrintOtherOrder extends PrinterRoot<PrintTakeawayFormContent> {
layout.addView(getTakeawayOrderInfo(mContext, data)); layout.addView(getTakeawayOrderInfo(mContext, data));
//食品 //食品
layout.addView(getTextLine(mContext, "項目")); 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)); layout.addView(getLine(mContext));
//訂單金額信息 //訂單金額信息
List<PrintBillItem> billData = new ArrayList<>(); List<PrintBillItem> billData = new ArrayList<>();
......
...@@ -216,7 +216,7 @@ public class PrintOtherOrderClosing extends PrinterRoot<PrintTakeawayCheckoutCon ...@@ -216,7 +216,7 @@ public class PrintOtherOrderClosing extends PrinterRoot<PrintTakeawayCheckoutCon
layout.addView(getTakeawayOrderInfo(mContext, data)); layout.addView(getTakeawayOrderInfo(mContext, data));
//食品 //食品
layout.addView(getTextLine(mContext, "項目")); 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)); layout.addView(getLine(mContext));
//訂單金額信息 //訂單金額信息
List<PrintBillItem> billData = new ArrayList<>(); List<PrintBillItem> billData = new ArrayList<>();
......
...@@ -12,6 +12,7 @@ import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean; ...@@ -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.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.order.order.DoshokuOrder; import com.gingersoft.gsa.cloud.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.print.bean.PrintServingPaperContent; 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.R;
import com.joe.print.mvp.model.bean.HtmlLable; import com.joe.print.mvp.model.bean.HtmlLable;
import com.joe.print.mvp.print.common.HtmlContract; import com.joe.print.mvp.print.common.HtmlContract;
...@@ -131,11 +132,11 @@ public class PrintServe extends PrinterRoot<PrintServingPaperContent> { ...@@ -131,11 +132,11 @@ public class PrintServe extends PrinterRoot<PrintServingPaperContent> {
} }
private Bitmap getBitmap(Context mContext, PrinterDeviceBean printerDeviceBean) { 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; return null;
} }
TableBean.DataBean tableBean = DoshokuOrder.getInstance().getOpenTableInfo();
LinearLayout layout = new LinearLayout(mContext); LinearLayout layout = new LinearLayout(mContext);
layout.setOrientation(LinearLayout.VERTICAL); layout.setOrientation(LinearLayout.VERTICAL);
...@@ -144,14 +145,14 @@ public class PrintServe extends PrinterRoot<PrintServingPaperContent> { ...@@ -144,14 +145,14 @@ public class PrintServe extends PrinterRoot<PrintServingPaperContent> {
layout.addView(getHeader(mContext)); layout.addView(getHeader(mContext));
layout.addView(getLine(mContext)); layout.addView(getLine(mContext));
String orderNo = "單號:"; String orderNo = "單號:";
if (TextUtil.isNotEmptyOrNullOrUndefined(DoshokuOrder.getInstance().getOrderNo())) { if (TextUtil.isNotEmptyOrNullOrUndefined(mPrintServingPaperContent.getOrderNo())) {
orderNo = "單號:" + DoshokuOrder.getInstance().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(getLine(mContext));
layout.addView(getDiningFoodList(mContext, foodList, printerDeviceBean, 0, false)); layout.addView(getDiningFoodList(mContext, foodItemList, printerDeviceBean, 0, false));
layout.addView(getLine(mContext)); layout.addView(getLine(mContext));
layout.addView(getTextView(mContext, "Thank you!", Gravity.CENTER_HORIZONTAL, getDimensionPixelSize(mContext, R.dimen.dp_8))); 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))); 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; ...@@ -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.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.print.bean.PrintSlipContent; 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.PrintBillItem;
import com.gingersoft.gsa.cloud.print.bean.base.PrintFoodItem;
import com.joe.print.R; import com.joe.print.R;
import com.joe.print.mvp.model.bean.BillingBean; import com.joe.print.mvp.model.bean.BillingBean;
import com.joe.print.mvp.model.bean.HtmlLable; import com.joe.print.mvp.model.bean.HtmlLable;
...@@ -66,10 +67,9 @@ public class PrintSlip extends PrinterRoot<PrintSlipContent> { ...@@ -66,10 +67,9 @@ public class PrintSlip extends PrinterRoot<PrintSlipContent> {
return new String[]{"<html><body></body></html>"}; return new String[]{"<html><body></body></html>"};
} }
List<OrderDetail> foodList = DoshokuOrder.getInstance().getShoppingCart().getOrderCommodityList(); List<PrintFoodItem> foodList = mPrintSlipContent.getFoodItemList();
TableBean.DataBean tableBean = DoshokuOrder.getInstance().getOpenTableInfo();
if (foodList.size() == 0 || tableBean == null) { if (foodList.size() == 0 ) {
return new String[]{"<html><body></body></html>"}; return new String[]{"<html><body></body></html>"};
} }
...@@ -109,8 +109,8 @@ public class PrintSlip extends PrinterRoot<PrintSlipContent> { ...@@ -109,8 +109,8 @@ public class PrintSlip extends PrinterRoot<PrintSlipContent> {
* 訂單 * 訂單
*/ */
String orderNum = "單號:"; String orderNum = "單號:";
if (TextUtil.isNotEmptyOrNullOrUndefined(DoshokuOrder.getInstance().getOrderNo())) { if (TextUtil.isNotEmptyOrNullOrUndefined(mPrintSlipContent.getOrderNo())) {
orderNum = "單號:" + DoshokuOrder.getInstance().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.getTableName())}, 24));
htmlLables.addAll(getRowInformation(new HtmlLable[]{new HtmlLable(LABLE_COLUMN, "人數:" + mPrintSlipContent.getPerson())}, 24)); htmlLables.addAll(getRowInformation(new HtmlLable[]{new HtmlLable(LABLE_COLUMN, "人數:" + mPrintSlipContent.getPerson())}, 24));
...@@ -173,14 +173,10 @@ public class PrintSlip extends PrinterRoot<PrintSlipContent> { ...@@ -173,14 +173,10 @@ public class PrintSlip extends PrinterRoot<PrintSlipContent> {
private Bitmap getBitmap(Context mContext, PrinterDeviceBean printerDeviceBean) { private Bitmap getBitmap(Context mContext, PrinterDeviceBean printerDeviceBean) {
DoshokuOrder doshokuOrder = DoshokuOrder.getInstance(); List<PrintFoodItem> foodList = mPrintSlipContent.getFoodItemList();
ShoppingCart shoppingCart = doshokuOrder.getShoppingCart();
List<OrderDetail> foodList = shoppingCart.getOrderCommodityList();
if (foodList == null || foodList.size() <= 0) { if (foodList == null || foodList.size() <= 0) {
return null; return null;
} }
TableBean.DataBean tableBean = doshokuOrder.getOpenTableInfo();
LinearLayout layout = new LinearLayout(mContext); LinearLayout layout = new LinearLayout(mContext);
layout.setOrientation(LinearLayout.VERTICAL); layout.setOrientation(LinearLayout.VERTICAL);
...@@ -190,23 +186,23 @@ public class PrintSlip extends PrinterRoot<PrintSlipContent> { ...@@ -190,23 +186,23 @@ public class PrintSlip extends PrinterRoot<PrintSlipContent> {
layout.addView(getLine(mContext)); 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(getLine(mContext));
layout.addView(getDiningFoodList(mContext, foodList, printerDeviceBean, 0, true)); layout.addView(getDiningFoodList(mContext, foodList, printerDeviceBean, 0, true));
layout.addView(getHalfLine(mContext)); layout.addView(getHalfLine(mContext));
List<BillingBean> billingBeans = new ArrayList<>(); List<BillingBean> billingBeans = new ArrayList<>();
//添加合計項 //添加合計項
billingBeans.add(new BillingBean("合計", shoppingCart.getWholeAmount())); billingBeans.add(new BillingBean("合計", mPrintSlipContent.getWholeAmount()));
//添加其他金額項 //添加其他金額項
if (shoppingCart.getBillItemList().size() > 0) { if (mPrintSlipContent.getBillItemList().size() > 0) {
for (BillItem item : shoppingCart.getBillItemList()) { for (PrintBillItem item : mPrintSlipContent.getBillItemList()) {
billingBeans.add(new BillingBean(item.getName(), item.getMoney())); billingBeans.add(new BillingBean(item.getBillName(), Double.parseDouble(item.getBillAmount())));
} }
} }
layout.addView(getDiningBillInfo(mContext, billingBeans)); layout.addView(getDiningBillInfo(mContext, billingBeans));
layout.addView(getHalfLine(mContext)); layout.addView(getHalfLine(mContext));
layout.addView(getAmountText(mContext, "總金額:" + shoppingCart.getTotalAmount())); layout.addView(getAmountText(mContext, "總金額:" + mPrintSlipContent.getTotalAmount()));
layout.addView(getLine(mContext)); layout.addView(getLine(mContext));
layout.addView(getTextView(mContext, "Thank you!", Gravity.CENTER_HORIZONTAL, getDimensionPixelSize(mContext, R.dimen.dp_8))); 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))); 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 ...@@ -798,6 +798,17 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
return view; 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 mContext
* @param foodList * @param foodList
...@@ -806,7 +817,7 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket ...@@ -806,7 +817,7 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
* @param showPrice 是否顯示價格 * @param showPrice 是否顯示價格
* @return * @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<>(); // List<OrderDetail> newsFoodList = new ArrayList<>();
// for (OrderDetail orderDetail : foodList) { // for (OrderDetail orderDetail : foodList) {
// //如果食品設置了0元不打印並且食品等於0元,或者設置了不打印到單,就不打印 // //如果食品設置了0元不打印並且食品等於0元,或者設置了不打印到單,就不打印
...@@ -818,13 +829,12 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket ...@@ -818,13 +829,12 @@ public abstract class PrinterRoot<T extends PrintContent> implements PrintSocket
return getVerticalRecyclerView(mContext, new FoodAdapter(foodList, deviceBean, showPrice)); return getVerticalRecyclerView(mContext, new FoodAdapter(foodList, deviceBean, showPrice));
} }
public View getDiningBillInfo(Context mContext, List<BillingBean> billingBeans) { public View getDiningBillInfo(Context mContext, List<BillingBean> billingBeans) {
return getVerticalRecyclerView(mContext, new BillAdapter(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)); return getVerticalRecyclerView(mContext, new BillTypeAdapter(payBillMoneys));
} }
......
...@@ -4,6 +4,7 @@ import androidx.annotation.Nullable; ...@@ -4,6 +4,7 @@ import androidx.annotation.Nullable;
import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.viewholder.BaseViewHolder; import com.chad.library.adapter.base.viewholder.BaseViewHolder;
import com.gingersoft.gsa.cloud.pay.bean.PayMethod; import com.gingersoft.gsa.cloud.pay.bean.PayMethod;
import com.gingersoft.gsa.cloud.print.bean.base.PrintBillItem;
import com.joe.print.R; import com.joe.print.R;
import java.util.List; import java.util.List;
...@@ -11,15 +12,15 @@ import java.util.List; ...@@ -11,15 +12,15 @@ import java.util.List;
* Created by Wyh on 2020/1/9. * 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); super(R.layout.base_print_item_bill_type, data);
} }
@Override @Override
protected void convert(BaseViewHolder helper, PayMethod item) { protected void convert(BaseViewHolder helper, PrintBillItem item) {
helper.setText(R.id.tv_total_amount_text, item.getPayName()); helper.setText(R.id.tv_total_amount_text, item.getBillName());
helper.setText(R.id.tv_total_amount, "$" + item.getPayMoney()); helper.setText(R.id.tv_total_amount, "$" + item.getBillAmount());
} }
} }
...@@ -7,7 +7,7 @@ import androidx.annotation.Nullable; ...@@ -7,7 +7,7 @@ import androidx.annotation.Nullable;
import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.viewholder.BaseViewHolder; import com.chad.library.adapter.base.viewholder.BaseViewHolder;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean; 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 com.joe.print.R;
import java.util.List; import java.util.List;
...@@ -15,7 +15,7 @@ import java.util.List; ...@@ -15,7 +15,7 @@ import java.util.List;
/** /**
* Created by Wyh on 2020/1/9. * 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 foodFontSize = 24;
private int modifierFontSize = 24; private int modifierFontSize = 24;
...@@ -27,7 +27,7 @@ public class FoodAdapter extends BaseQuickAdapter<OrderDetail, BaseViewHolder> { ...@@ -27,7 +27,7 @@ public class FoodAdapter extends BaseQuickAdapter<OrderDetail, BaseViewHolder> {
private boolean showPrice = true; 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); super(R.layout.print_item_food, data);
try { try {
this.foodFontSize = Integer.parseInt(deviceBean.getFoodFont()) * 2;//36 this.foodFontSize = Integer.parseInt(deviceBean.getFoodFont()) * 2;//36
...@@ -47,7 +47,7 @@ public class FoodAdapter extends BaseQuickAdapter<OrderDetail, BaseViewHolder> { ...@@ -47,7 +47,7 @@ public class FoodAdapter extends BaseQuickAdapter<OrderDetail, BaseViewHolder> {
* @param data * @param data
* @param deviceBean 打印機信息 * @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); super(R.layout.print_item_food, data);
try { try {
this.foodFontSize = Integer.parseInt(deviceBean.getFoodFont()) * 2; this.foodFontSize = Integer.parseInt(deviceBean.getFoodFont()) * 2;
...@@ -62,13 +62,13 @@ public class FoodAdapter extends BaseQuickAdapter<OrderDetail, BaseViewHolder> { ...@@ -62,13 +62,13 @@ public class FoodAdapter extends BaseQuickAdapter<OrderDetail, BaseViewHolder> {
this.numberIsFlip = deviceBean.getNumberIsFlip(); this.numberIsFlip = deviceBean.getNumberIsFlip();
} }
public FoodAdapter(@Nullable List<OrderDetail> data) { public FoodAdapter(@Nullable List<PrintFoodItem> data) {
super(R.layout.print_item_food, data); super(R.layout.print_item_food, data);
} }
@Override @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 tvFoodName = helper.getView(R.id.tv_food_name);
TextView tvNum = helper.getView(R.id.tv_food_quantity); TextView tvNum = helper.getView(R.id.tv_food_quantity);
TextView tvPrice = helper.getView(R.id.tv_food_price); TextView tvPrice = helper.getView(R.id.tv_food_price);
...@@ -80,7 +80,7 @@ public class FoodAdapter extends BaseQuickAdapter<OrderDetail, BaseViewHolder> { ...@@ -80,7 +80,7 @@ public class FoodAdapter extends BaseQuickAdapter<OrderDetail, BaseViewHolder> {
boolean isBold, isItalic; boolean isBold, isItalic;
if (item.getItemType() == 2) { 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); tvFoodName.setTextSize(modifierFontSize);
tvNum.setTextSize(modifierFontSize); tvNum.setTextSize(modifierFontSize);
tvPrice.setTextSize(modifierFontSize); tvPrice.setTextSize(modifierFontSize);
...@@ -89,14 +89,14 @@ public class FoodAdapter extends BaseQuickAdapter<OrderDetail, BaseViewHolder> { ...@@ -89,14 +89,14 @@ public class FoodAdapter extends BaseQuickAdapter<OrderDetail, BaseViewHolder> {
isItalic = modifierIsItalic == 1; isItalic = modifierIsItalic == 1;
} else if (item.getItemType() == 3) { } 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); tvFoodName.setTextSize(modifierFontSize);
tvNum.setTextSize(modifierFontSize); tvNum.setTextSize(modifierFontSize);
tvPrice.setTextSize(modifierFontSize); tvPrice.setTextSize(modifierFontSize);
isBold = modifierIsBold == 1; isBold = modifierIsBold == 1;
isItalic = modifierIsItalic == 1; isItalic = modifierIsItalic == 1;
} else { } else {
helper.setText(R.id.tv_food_name, item.getProductName()); helper.setText(R.id.tv_food_name, item.getName());
tvFoodName.setTextSize(foodFontSize); tvFoodName.setTextSize(foodFontSize);
tvNum.setTextSize(foodFontSize); tvNum.setTextSize(foodFontSize);
tvPrice.setTextSize(foodFontSize); tvPrice.setTextSize(foodFontSize);
...@@ -125,7 +125,7 @@ public class FoodAdapter extends BaseQuickAdapter<OrderDetail, BaseViewHolder> { ...@@ -125,7 +125,7 @@ public class FoodAdapter extends BaseQuickAdapter<OrderDetail, BaseViewHolder> {
// tvFoodName.setTypeface(null, Typeface.BOLD); // tvFoodName.setTypeface(null, Typeface.BOLD);
// tvFoodName.setTypeface(null, Typeface.ITALIC); // tvFoodName.setTypeface(null, Typeface.ITALIC);
// tvFoodName.setTypeface(null, Typeface.NORMAL); // tvFoodName.setTypeface(null, Typeface.NORMAL);
tvNum.setText("X" + item.getNumber()); tvNum.setText("X" + item.getNum());
tvPrice.setText("$" + item.getPrice()); tvPrice.setText("$" + item.getPrice());
} }
} }
...@@ -141,6 +141,11 @@ public class OrderManagerResponse implements Serializable { ...@@ -141,6 +141,11 @@ public class OrderManagerResponse implements Serializable {
private String refundTxnId; private String refundTxnId;
/** /**
* 設備ID,用來區分每台N5設備支付的訂單
*/
private String deviceId;
/**
* 訂單狀態:0:未支付;1:待確認(已支付, 待餐廳確認);2:制作中(餐厅确认);3:派送中;4:确认收货(完成);5:是否评论;6:取消; * 訂單狀態:0:未支付;1:待確認(已支付, 待餐廳確認);2:制作中(餐厅确认);3:派送中;4:确认收货(完成);5:是否评论;6:取消;
*/ */
public static final byte STATUS_UNPAID = 0; public static final byte STATUS_UNPAID = 0;
...@@ -176,7 +181,12 @@ public class OrderManagerResponse implements Serializable { ...@@ -176,7 +181,12 @@ public class OrderManagerResponse implements Serializable {
private double tipsPrice; private double tipsPrice;
private int status; private int status;
private int linePayType; private int linePayType;
private double paySales; /**
* 0=非營業額(非收入)
* 1=營業額(收入)
* 2=非項目銷售(Non gross item, 獨佔的支付方式)
*/
private int paySales;
private String payName; private String payName;
public boolean withHywebPay() { public boolean withHywebPay() {
...@@ -186,7 +196,6 @@ public class OrderManagerResponse implements Serializable { ...@@ -186,7 +196,6 @@ public class OrderManagerResponse implements Serializable {
return false; return false;
} }
@Nullable
public String getHywebPayMethodByType() { public String getHywebPayMethodByType() {
if (payType == PayMethod.HYWEB_POS_TYPE_CC) { if (payType == PayMethod.HYWEB_POS_TYPE_CC) {
return PayMethodConstant.PAY_TYPE_CC; return PayMethodConstant.PAY_TYPE_CC;
...@@ -194,7 +203,7 @@ public class OrderManagerResponse implements Serializable { ...@@ -194,7 +203,7 @@ public class OrderManagerResponse implements Serializable {
if (payType == PayMethod.HYWEB_POS_TYPE_QRC) { if (payType == PayMethod.HYWEB_POS_TYPE_QRC) {
return PayMethodConstant.PAY_TYPE_QRC; return PayMethodConstant.PAY_TYPE_QRC;
} }
return null; return "";
} }
} }
} }
...@@ -100,7 +100,7 @@ public class PrintServingPaperAction extends TableAction { ...@@ -100,7 +100,7 @@ public class PrintServingPaperAction extends TableAction {
} }
doshokuOrder.setOpenTableInfo(tableBean); doshokuOrder.setOpenTableInfo(tableBean);
printParper(); printParper(tableBean);
} else { } else {
CommonTipDialog.showSurpisedDialog(mContext, respose.getErrMsg(), null, null, null, null, null); CommonTipDialog.showSurpisedDialog(mContext, respose.getErrMsg(), null, null, null, null, null);
} }
...@@ -133,8 +133,8 @@ public class PrintServingPaperAction extends TableAction { ...@@ -133,8 +133,8 @@ public class PrintServingPaperAction extends TableAction {
/** /**
* 打印上菜紙 * 打印上菜紙
*/ */
private void printParper() { private void printParper(TableBean.DataBean tableBean) {
PrintContent printContent = new PrintContentAdapter().adaptationServingPaperContent(DoshokuOrder.getInstance()); PrintContent printContent = new PrintContentAdapter().adaptationServingPaperContent(DoshokuOrder.getInstance(),tableBean);
CC.obtainBuilder(ComponentName.COMPONENT_PRINT) CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.setActionName("printActivity") .setActionName("printActivity")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_SERVE) .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_SERVE)
......
...@@ -884,7 +884,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod ...@@ -884,7 +884,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
mergeMainFoodNumber(mOrderMealList); mergeMainFoodNumber(mOrderMealList);
} }
PrintContent printContent = new PrintContentAdapter().adaptationServingPaperContent(DoshokuOrder.getInstance()); PrintContent printContent = new PrintContentAdapter().adaptationServingPaperContent(DoshokuOrder.getInstance(),mTableInfo);
CC.obtainBuilder(ComponentName.COMPONENT_PRINT) CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.setActionName("printActivity") .setActionName("printActivity")
......
...@@ -383,7 +383,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -383,7 +383,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
mergeMainFoodNumber(mOrderMealList); mergeMainFoodNumber(mOrderMealList);
} }
PrintContent printContent = new PrintContentAdapter().adaptationServingPaperContent(DoshokuOrder.getInstance()); PrintContent printContent = new PrintContentAdapter().adaptationServingPaperContent(DoshokuOrder.getInstance(),mTableInfo);
CC.obtainBuilder(ComponentName.COMPONENT_PRINT) CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.setActionName("printActivity") .setActionName("printActivity")
...@@ -430,7 +430,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -430,7 +430,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
mergeMainFoodNumber(mOrderMealList); mergeMainFoodNumber(mOrderMealList);
} }
PrintContent printContent = new PrintContentAdapter().adaptationPrintSlipContent(DoshokuOrder.getInstance()); PrintContent printContent = new PrintContentAdapter().adaptationPrintSlipContent(DoshokuOrder.getInstance(),mTableInfo);
CC.obtainBuilder(ComponentName.COMPONENT_PRINT) CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_SLIP)//印單 .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_SLIP)//印單
......
...@@ -180,6 +180,7 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model ...@@ -180,6 +180,7 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
} }
} }
} }
mRootView.showMessage("支付成功");
//結賬成功 //結賬成功
mRootView.paySuccess(); mRootView.paySuccess();
} else { } else {
......
...@@ -22,6 +22,7 @@ import com.gingersoft.gsa.cloud.order.commodity.OrderDetail; ...@@ -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.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.pay.bean.PayMethod; import com.gingersoft.gsa.cloud.pay.bean.PayMethod;
import com.gingersoft.gsa.cloud.pay.bean.PosActionStatusExceptionParam; 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.OnPosActionListener;
import com.gingersoft.gsa.cloud.pay.pos.PosAction; import com.gingersoft.gsa.cloud.pay.pos.PosAction;
import com.gingersoft.gsa.cloud.pay.pos.PosPay; import com.gingersoft.gsa.cloud.pay.pos.PosPay;
...@@ -34,6 +35,8 @@ import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.AdjustTipResp ...@@ -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.HywebPosResponse;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.RefundRespose; 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.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.PrintContent;
import com.gingersoft.gsa.cloud.print.bean.adapter.PrintContentAdapter; import com.gingersoft.gsa.cloud.print.bean.adapter.PrintContentAdapter;
import com.gingersoft.gsa.cloud.table.R; import com.gingersoft.gsa.cloud.table.R;
...@@ -91,17 +94,12 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All ...@@ -91,17 +94,12 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
private OrderCenterAdapter mOrderCenterAdapter; private OrderCenterAdapter mOrderCenterAdapter;
private List<OrderManagerResponse> mOrderItemList = new ArrayList<>(); private List<OrderManagerResponse> mOrderItemList = new ArrayList<>();
private DoshokuOrder doshokuOrder;
private ShoppingCart shoppingCart;
@Inject @Inject
public AllOrderPresenter(AllOrderContract.Model model, AllOrderContract.View rootView) { public AllOrderPresenter(AllOrderContract.Model model, AllOrderContract.View rootView) {
super(model, rootView); super(model, rootView);
AllOrderFragment allOrderFragment = (AllOrderFragment) rootView; AllOrderFragment allOrderFragment = (AllOrderFragment) rootView;
this.IActivity = (OrderCenterActivity) allOrderFragment.getCurrentActivity(); this.IActivity = (OrderCenterActivity) allOrderFragment.getCurrentActivity();
doshokuOrder = DoshokuOrder.getInstance();
shoppingCart = doshokuOrder.getShoppingCart();
} }
@Override @Override
...@@ -139,6 +137,7 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All ...@@ -139,6 +137,7 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
return; return;
} }
DoshokuOrder doshokuOrder = DoshokuOrder.getInstance();
//設置為修改訂單操作 //設置為修改訂單操作
doshokuOrder.setModifyOrder(true); doshokuOrder.setModifyOrder(true);
/** /**
...@@ -390,7 +389,14 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All ...@@ -390,7 +389,14 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
txnIdRequest.setAmount(datasBean.getAmount()); txnIdRequest.setAmount(datasBean.getAmount());
VoidRequest voidRequest = new VoidRequest(); 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>() { PosPay.voidO(IActivity, IActivity, voidRequest, txnIdRequest, new OnPosActionListener<VoidRespose>() {
@Override @Override
...@@ -442,10 +448,15 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All ...@@ -442,10 +448,15 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
} }
private void startPrintOrder(OrderManagerResponse orderDetailItem, List<OrderDetail> orderDetailList) { private void startPrintOrder(OrderManagerResponse orderDetailItem, List<OrderDetail> orderDetailList) {
DoshokuOrder doshokuOrder = DoshokuOrder.getInstance();
ShoppingCart shoppingCart = doshokuOrder.getShoppingCart();
double wholeAmount = getWholeAmount(orderDetailList); double wholeAmount = getWholeAmount(orderDetailList);
doshokuOrder.setOrderId(orderDetailItem.getId()); doshokuOrder.setOrderId(orderDetailItem.getId());
doshokuOrder.setOrderNo(orderDetailItem.getOrderNo()); doshokuOrder.setOrderNo(orderDetailItem.getOrderNo());
doshokuOrder.setNewFoodList(orderDetailList);
shoppingCart.setOrderCommodityList(orderDetailList); shoppingCart.setOrderCommodityList(orderDetailList);
shoppingCart.setBillItemList(getOrderMoneyList(orderDetailItem, wholeAmount)); shoppingCart.setBillItemList(getOrderMoneyList(orderDetailItem, wholeAmount));
shoppingCart.setWholeAmount(wholeAmount); shoppingCart.setWholeAmount(wholeAmount);
...@@ -453,10 +464,10 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All ...@@ -453,10 +464,10 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
TableBean.DataBean dataBean = new TableBean.DataBean(); TableBean.DataBean dataBean = new TableBean.DataBean();
dataBean.setTableName(orderDetailItem.getTableName()); dataBean.setTableName(orderDetailItem.getTableName());
dataBean.setPerson(orderDetailItem.getPerson());
if (!TextUtils.isEmpty(orderDetailItem.getCreateTime())) { if (!TextUtils.isEmpty(orderDetailItem.getCreateTime())) {
dataBean.setCreateTime(TimeUtils.getStringByFormat(new Date(orderDetailItem.getCreateTime()), TimeUtils.DEFAULT_DATE_FORMAT_YMDHM)); dataBean.setCreateTime(TimeUtils.getStringByFormat(new Date(orderDetailItem.getCreateTime()), TimeUtils.DEFAULT_DATE_FORMAT_YMDHM));
} }
dataBean.setPerson(orderDetailItem.getPerson());
doshokuOrder.setOpenTableInfo(dataBean); doshokuOrder.setOpenTableInfo(dataBean);
if (orderDetailItem.getMemberInfo() != null) { if (orderDetailItem.getMemberInfo() != null) {
...@@ -470,7 +481,7 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All ...@@ -470,7 +481,7 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
doshokuOrder.setBillMoney(payMethodList); doshokuOrder.setBillMoney(payMethodList);
} }
PrintContent printContent = new PrintContentAdapter().adaptationBillContent(doshokuOrder); PrintContent printContent = new PrintContentAdapter().adaptationBillContent(doshokuOrder, dataBean);
CC.obtainBuilder(ComponentName.COMPONENT_PRINT) CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.setActionName("printActivity") .setActionName("printActivity")
......
...@@ -30,9 +30,12 @@ import com.gingersoft.gsa.cloud.order.billItem.BillItem; ...@@ -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.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.pay.bean.PayMethod; import com.gingersoft.gsa.cloud.pay.bean.PayMethod;
import com.gingersoft.gsa.cloud.pay.contract.PayTypeContract; 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.PosPay;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.bg.GetTxnIdRequest; 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.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.pos.hywebpos.constant.PayMethodConstant;
import com.gingersoft.gsa.cloud.pay.util.PayMethodUtils; import com.gingersoft.gsa.cloud.pay.util.PayMethodUtils;
import com.gingersoft.gsa.cloud.print.PrinterUtils; import com.gingersoft.gsa.cloud.print.PrinterUtils;
...@@ -420,7 +423,6 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements ...@@ -420,7 +423,6 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
//通知更新餐台状态 //通知更新餐台状态
EventBus.getDefault().post(new InitTableEvent(tableInfo.getId(), tableInfo.getTableNumber()), "initTable_status_event"); EventBus.getDefault().post(new InitTableEvent(tableInfo.getId(), tableInfo.getTableNumber()), "initTable_status_event");
} }
showMessage("支付成功");
//開錢箱 //開錢箱
boolean openInstruction = false; boolean openInstruction = false;
...@@ -432,39 +434,36 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements ...@@ -432,39 +434,36 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
} }
} }
if (openInstruction) { if (openInstruction) {
printBillAndOpenInstruction(); printOpenInstructionAndBill();
} else { } else {
printBill(); printBill();
} }
} }
private void printBillAndOpenInstruction() { private void printOpenInstructionAndBill() {
printBill();
CC.obtainBuilder(ComponentName.COMPONENT_PRINT) CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.setActionName("printActivity") .setActionName("printActivity")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_INSTRUCTION) .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_INSTRUCTION)
.addParam(PrintConstans.PRINT_LOADING, mPrintShowLoading)
.build() .build()
.call(); .callAsyncCallbackOnMainThread((cc, result) -> {
printBill();
});
} }
private void 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) CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.setActionName("printActivity") .setActionName("printActivity")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_BILL) .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_BILL)
.addParam(PrintConstans.PRINT_CONTENT, printContent) .addParam(PrintConstans.PRINT_CONTENT, printContent)
.addParam(PrintConstans.PRINT_LOADING, mPrintShowLoading)
.build() .build()
.callAsyncCallbackOnMainThread((cc, result) -> { .callAsyncCallbackOnMainThread((cc, result) -> {
Log.e("error", "是否成功打印:" + result.isSuccess()); Log.e("error", "是否成功打印:" + result.isSuccess());
// if (result.isSuccess()) {
// //打印成功
// }
//清空開檯數據
DoshokuOrder.getInstance().initialization();
setResult(Activity.RESULT_OK, null); setResult(Activity.RESULT_OK, null);
killMyself(); killMyself();
}); });
...@@ -489,11 +488,15 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements ...@@ -489,11 +488,15 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
rv_order_detail.setAdapter(adapter); rv_order_detail.setAdapter(adapter);
} }
private boolean mPrintShowLoading = true;
@Override @Override
public void loadPayMethodsSuccess(List<PayMethod> payMethods) { public void loadPayMethodsSuccess(List<PayMethod> payMethods) {
gsaPayView.loadInfo(this, payMethods, mPresenter.getTotalAmount(), mPresenter.getFoodCount()); gsaPayView.loadInfo(this, payMethods, mPresenter.getTotalAmount(), mPresenter.getFoodCount());
gsaPayView.setmOnSureClickLisenter(mBillMoneyList -> { gsaPayView.setmOnSureClickLisenter(mBillMoneyList -> {
mPresenter.setBillMoneyList(mBillMoneyList);
if (AppDevices.isHywebPos()) { if (AppDevices.isHywebPos()) {
int hywebPayMethodIndex = PayMethodUtils.hasHywebPayMethod(mBillMoneyList); int hywebPayMethodIndex = PayMethodUtils.hasHywebPayMethod(mBillMoneyList);
...@@ -502,13 +505,13 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements ...@@ -502,13 +505,13 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
PayMethod hywebPayMethod = mBillMoneyList.get(hywebPayMethodIndex); PayMethod hywebPayMethod = mBillMoneyList.get(hywebPayMethodIndex);
SaleRequest saleRequest = new SaleRequest(); SaleRequest saleRequest = new SaleRequest();
if (hywebPayMethod.getPayType() == PayTypeContract.PAY_METHOD_ID_1030) { // if (hywebPayMethod.getPayType() == PayTypeContract.PAY_METHOD_ID_1030) {
//卡片支付 // //卡片支付
saleRequest.setPAYMENT_APP_ID(PayMethodConstant.PAY_TYPE_CC); saleRequest.setPAYMENT_APP_ID(PayMethodConstant.PAY_TYPE_EPS);
} else { // } else {
//掃碼支付 // //掃碼支付
saleRequest.setPAYMENT_APP_ID(PayMethodConstant.PAY_TYPE_QRC); // saleRequest.setPAYMENT_APP_ID(PayMethodConstant.PAY_TYPE_QRC);
} // }
saleRequest.setTXN_AMT(DoshokuOrder.getInstance().getShoppingCart().getTotalAmount()); saleRequest.setTXN_AMT(DoshokuOrder.getInstance().getShoppingCart().getTotalAmount());
saleRequest.setTIPS(0); saleRequest.setTIPS(0);
...@@ -525,13 +528,40 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements ...@@ -525,13 +528,40 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
MealOrderPayRequest orderPayRequest = mPresenter.getOrderPayRequest(gsaPayView); MealOrderPayRequest orderPayRequest = mPresenter.getOrderPayRequest(gsaPayView);
List<BillItem> billItemList = DoshokuOrder.getInstance().getShoppingCart().getBillItemList(); 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 { } else {
mPresenter.setBillMoneyList(mBillMoneyList);
mPresenter.sendOrderBefore(); mPresenter.sendOrderBefore();
} }
} else { } else {
mPresenter.setBillMoneyList(mBillMoneyList);
mPresenter.sendOrderBefore(); mPresenter.sendOrderBefore();
} }
}); });
......
...@@ -88,7 +88,7 @@ public class OrderCenterActivity extends BaseFragmentActivity<OrderCenterPresent ...@@ -88,7 +88,7 @@ public class OrderCenterActivity extends BaseFragmentActivity<OrderCenterPresent
public void initData(@Nullable Bundle savedInstanceState) { public void initData(@Nullable Bundle savedInstanceState) {
initTabAndPager(); initTabAndPager();
mPresenter.loadOrderList(OrderManagerResponse.ORDER_TYPE_DOSHOKU+"", 0, 10, null, false); mPresenter.loadOrderList(OrderManagerResponse.ORDER_TYPE_DOSHOKU + "", 0, 10, null, false);
} }
@Override @Override
...@@ -96,7 +96,8 @@ public class OrderCenterActivity extends BaseFragmentActivity<OrderCenterPresent ...@@ -96,7 +96,8 @@ public class OrderCenterActivity extends BaseFragmentActivity<OrderCenterPresent
super.onNewIntent(intent); super.onNewIntent(intent);
} }
@Subscriber(tag = "updateOrderListEvent") @Subscriber(tag = "update" +
"OrderListEvent")
private void updateOrderList(boolean update) { private void updateOrderList(boolean update) {
refeshOrderList(); refeshOrderList();
} }
......
...@@ -22,6 +22,7 @@ import com.gingersoft.gsa.cloud.common.constans.OrderTypeConstans; ...@@ -22,6 +22,7 @@ import com.gingersoft.gsa.cloud.common.constans.OrderTypeConstans;
import com.gingersoft.gsa.cloud.common.constans.PrintConstans; import com.gingersoft.gsa.cloud.common.constans.PrintConstans;
import com.gingersoft.gsa.cloud.common.core.table.TableBean; import com.gingersoft.gsa.cloud.common.core.table.TableBean;
import com.gingersoft.gsa.cloud.common.logan.LoganManager; import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.utils.AppDevices;
import com.gingersoft.gsa.cloud.common.utils.LanguageUtils; import com.gingersoft.gsa.cloud.common.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.common.utils.MoneyUtil; import com.gingersoft.gsa.cloud.common.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils; import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils;
...@@ -35,6 +36,7 @@ import com.gingersoft.gsa.cloud.order.commodity.OrderDetail; ...@@ -35,6 +36,7 @@ import com.gingersoft.gsa.cloud.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.order.order.DoshokuOrder; import com.gingersoft.gsa.cloud.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.pay.bean.PayMethod; import com.gingersoft.gsa.cloud.pay.bean.PayMethod;
import com.gingersoft.gsa.cloud.pay.bean.PosActionStatusExceptionParam; 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.OnPosActionListener;
import com.gingersoft.gsa.cloud.pay.pos.PosAction; import com.gingersoft.gsa.cloud.pay.pos.PosAction;
import com.gingersoft.gsa.cloud.pay.pos.PosPay; import com.gingersoft.gsa.cloud.pay.pos.PosPay;
...@@ -42,11 +44,14 @@ import com.gingersoft.gsa.cloud.pay.pos.fragment.PosActionStatusExceptionFragmen ...@@ -42,11 +44,14 @@ import com.gingersoft.gsa.cloud.pay.pos.fragment.PosActionStatusExceptionFragmen
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.bg.GetTxnIdRequest; 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.request.pos.AdjustTipRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.RefundRequest; import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.RefundRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.SaleRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.VoidRequest; import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.VoidRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.AdjustTipRespose; 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.HywebPosResponse;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.RefundRespose; 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.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.PrintContent;
import com.gingersoft.gsa.cloud.print.bean.adapter.PrintContentAdapter; import com.gingersoft.gsa.cloud.print.bean.adapter.PrintContentAdapter;
import com.gingersoft.gsa.cloud.table.R; import com.gingersoft.gsa.cloud.table.R;
...@@ -162,9 +167,6 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent ...@@ -162,9 +167,6 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent
private OrderCenterMoneyAdapter mOrderDetailPayMethodAdapter; private OrderCenterMoneyAdapter mOrderDetailPayMethodAdapter;
private List<SectionTextItem3> mOrderCenterPayMethodList = new ArrayList<>(); private List<SectionTextItem3> mOrderCenterPayMethodList = new ArrayList<>();
private DoshokuOrder mDoshokuOrder;
private ShoppingCart mShoppingCart;
@Override @Override
public void setupActivityComponent(@NonNull AppComponent appComponent) { public void setupActivityComponent(@NonNull AppComponent appComponent) {
DaggerOrderDetailComponent //如找不到该类,请编译一下项目 DaggerOrderDetailComponent //如找不到该类,请编译一下项目
...@@ -181,13 +183,6 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent ...@@ -181,13 +183,6 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent
} }
@Override @Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
mDoshokuOrder = DoshokuOrder.getInstance();
mShoppingCart = mDoshokuOrder.getShoppingCart();
super.onCreate(savedInstanceState);
}
@Override
public void initData(@Nullable Bundle savedInstanceState) { public void initData(@Nullable Bundle savedInstanceState) {
scrollview.post(new Runnable() { scrollview.post(new Runnable() {
@Override @Override
...@@ -195,12 +190,14 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent ...@@ -195,12 +190,14 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent
scrollview.scrollTo(0, 0); scrollview.scrollTo(0, 0);
} }
}); });
initAdapter();
mOrderDetailList = OrderAssemblyUtil.assemblyOrder(OrderDetail.orderTransOrderDetails(mOrderDetailItem.getOrderDetails()));
initOrderItemAdapter();
updateOrderItems(mOrderDetailItem, mOrderDetailList);
initOrderDetail(mOrderDetailItem); initOrderDetail(mOrderDetailItem);
setTitleByOrderType(mOrderDetailItem); setBtnVisibility();
setBtnVisibilityByOrderType(mOrderDetailItem.getOrderType()); btn_refund.setVisibility(View.GONE);
setBtnVisibilityByOrderStatus(mOrderDetailItem);
updateOrderItems(mOrderDetailItem,mOrderDetailList);
} }
@Override @Override
...@@ -209,42 +206,36 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent ...@@ -209,42 +206,36 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent
} }
private void initOrderDetail(OrderManagerResponse orderDetailItem) { private void initOrderDetail(OrderManagerResponse orderDetailItem) {
String payBill = LanguageUtils.get_language_system(this, "opentable.paybill", "結賬") + ":" + TimeUtils.getStringByFormat(new Date(orderDetailItem.getEndTime()), TimeUtils.DEFAULT_DATE_FORMAT_YMDHM);
mOrderDetailList = OrderAssemblyUtil.assemblyOrder(OrderDetail.orderTransOrderDetails(orderDetailItem.getOrderDetails())); String pax = LanguageUtils.get_language_system(this, "Meal.Mannumber", "人數") + ":" + orderDetailItem.getPerson();
String openTable = LanguageUtils.get_language_system(this, "open.table", "開台") + ":" + TimeUtils.getStringByFormat(new Date(orderDetailItem.getCreateTime()), TimeUtils.DEFAULT_DATE_FORMAT_YMDHM);
String payBill = LanguageUtils.get_language_system(this, "opentable.paybill", "結賬") + ":";
String pax = LanguageUtils.get_language_system(this, "Meal.Mannumber", "人數") + ":";
String openTable = LanguageUtils.get_language_system(this, "open.table", "開台") + ":";
tv_people_num.setText(pax + orderDetailItem.getPerson());
tv_open_time.setText(openTable + TimeUtils.getStringByFormat(new Date(orderDetailItem.getCreateTime()), TimeUtils.DEFAULT_DATE_FORMAT_YMDHM));
if (!TextUtils.isEmpty(orderDetailItem.getEndTime())) {
tv_pay_time.setText(payBill + TimeUtils.getStringByFormat(new Date(orderDetailItem.getEndTime()), TimeUtils.DEFAULT_DATE_FORMAT_YMDHM));
}
tv_total_money.setText("$" + orderDetailItem.getTotalAmount());
double totalMoney = getTotalMoney();
tv_total.setText("$" + totalMoney);
}
private void setTitleByOrderType(OrderManagerResponse item) {
String orderCode = LanguageUtils.get_language_system(mContext, "order.code", "訂單碼") + ": "; String orderCode = LanguageUtils.get_language_system(mContext, "order.code", "訂單碼") + ": ";
String mealCode = LanguageUtils.get_language_system(mContext, "meal.code", "取餐碼") + ": "; String mealCode = LanguageUtils.get_language_system(mContext, "meal.code", "取餐碼") + ": ";
if (item.getOrderType() == OrderTypeConstans.order_type_2) {
if (orderDetailItem.getOrderType() == OrderTypeConstans.order_type_2) {
tv_table_name.setText("外賣"); tv_table_name.setText("外賣");
tv_order_num.setText(orderCode + item.getTakeFoodCode()); tv_order_num.setText(orderCode + orderDetailItem.getTakeFoodCode());
} else if (item.getOrderType() == OrderTypeConstans.order_type_7) { } else if (orderDetailItem.getOrderType() == OrderTypeConstans.order_type_7) {
tv_table_name.setText("自取"); tv_table_name.setText("自取");
tv_order_num.setText(orderCode + item.getBillNo() + " " + mealCode + item.getTakeFoodCode()); tv_order_num.setText(orderCode + orderDetailItem.getBillNo() + " " + mealCode + orderDetailItem.getTakeFoodCode());
} else { } else {
String tableName = LanguageUtils.get_language_system(this, "table.number", "檯號") + ": "; String tableName = LanguageUtils.get_language_system(this, "table.number", "檯號") + ": ";
String orderNumber = LanguageUtils.get_language_system(this, "order.number", "訂單號") + ": "; String orderNumber = LanguageUtils.get_language_system(this, "order.number", "訂單號") + ": ";
tv_table_name.setText(tableName + item.getTableName()); tv_table_name.setText(tableName + orderDetailItem.getTableName());
tv_order_num.setText(orderNumber + item.getId()); tv_order_num.setText(orderNumber + orderDetailItem.getId());
}
tv_people_num.setText(pax);
tv_open_time.setText(openTable);
if (!TextUtils.isEmpty(orderDetailItem.getEndTime())) {
tv_pay_time.setText(payBill);
} }
tv_total_money.setText("$" + orderDetailItem.getTotalAmount());
double totalMoney = getTotalMoney();
tv_total.setText("$" + totalMoney);
} }
private void initAdapter() { private void initOrderItemAdapter() {
if (mOrderCenterDetailFoodAdapter == null) { if (mOrderCenterDetailFoodAdapter == null) {
mOrderCenterDetailFoodAdapter = new OrderCenterDetailFoodAdapter(mOrderCenterDetailFoodList); mOrderCenterDetailFoodAdapter = new OrderCenterDetailFoodAdapter(mOrderCenterDetailFoodList);
recycler_food.setAdapter(mOrderCenterDetailFoodAdapter); recycler_food.setAdapter(mOrderCenterDetailFoodAdapter);
...@@ -265,14 +256,14 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent ...@@ -265,14 +256,14 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent
} }
} }
public void updateOrderItems(OrderManagerResponse orderDetailItem,List<OrderDetail> orderDetailList){ public void updateOrderItems(OrderManagerResponse orderDetailItem, List<OrderDetail> orderDetailList) {
if(mOrderCenterDetailFoodList.size() > 0){ if (mOrderCenterDetailFoodList.size() > 0) {
mOrderCenterDetailFoodList.clear(); mOrderCenterDetailFoodList.clear();
} }
if(mOrderCenterMoneyList.size() > 0){ if (mOrderCenterMoneyList.size() > 0) {
mOrderCenterMoneyList.clear(); mOrderCenterMoneyList.clear();
} }
if(mOrderCenterPayMethodList.size() > 0){ if (mOrderCenterPayMethodList.size() > 0) {
mOrderCenterPayMethodList.clear(); mOrderCenterPayMethodList.clear();
} }
SectionTextItem3 serviceAmountSection = getOrderServiceAmountSection(orderDetailItem); SectionTextItem3 serviceAmountSection = getOrderServiceAmountSection(orderDetailItem);
...@@ -295,12 +286,28 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent ...@@ -295,12 +286,28 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent
mOrderCenterDetailFoodAdapter.notifyDataSetChanged(); mOrderCenterDetailFoodAdapter.notifyDataSetChanged();
mOrderCenterMoneyAdapter.notifyDataSetChanged(); mOrderCenterMoneyAdapter.notifyDataSetChanged();
mOrderDetailPayMethodAdapter.notifyDataSetChanged(); mOrderDetailPayMethodAdapter.notifyDataSetChanged();
//設置打印所需支付方式
mDoshokuOrder.setBillMoney(payMethodList);
} }
private void setBtnVisibilityByOrderStatus(OrderManagerResponse orderDetailItem) { private void setBtnVisibility() {
if (orderDetailItem.getStatus() == 6) { List<OrderManagerResponse.OrderPayBean> orderPays = mOrderDetailItem.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 (mOrderDetailItem.getStatus() == 6) {
//訂單已取消 //訂單已取消
btn_print_order.setVisibility(View.GONE); btn_print_order.setVisibility(View.GONE);
btn_modify_order.setVisibility(View.GONE); btn_modify_order.setVisibility(View.GONE);
...@@ -311,13 +318,11 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent ...@@ -311,13 +318,11 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent
btn_modify_order.setVisibility(View.VISIBLE); btn_modify_order.setVisibility(View.VISIBLE);
btn_cancel_order.setVisibility(View.VISIBLE); btn_cancel_order.setVisibility(View.VISIBLE);
tv_order_status.setVisibility(View.GONE); tv_order_status.setVisibility(View.GONE);
if (orderDetailItem.withHywebPay()) { if (AppDevices.isHywebPos() && mOrderDetailItem.withHywebPay()) {
setOrderBtnVisbilityByTxnId(orderDetailItem.getPayTxnId(), orderDetailItem.getCancelTxnId(), orderDetailItem.getRefundTxnId()); setOrderBtnVisbilityByTxnId(mOrderDetailItem.getPayTxnId(), mOrderDetailItem.getCancelTxnId(), mOrderDetailItem.getRefundTxnId());
} }
} }
} int orderType = mOrderDetailItem.getOrderType();
private void setBtnVisibilityByOrderType(int orderType) {
if (orderType == OrderTypeConstans.order_type_2 || orderType == OrderTypeConstans.order_type_7) { if (orderType == OrderTypeConstans.order_type_2 || orderType == OrderTypeConstans.order_type_7) {
//外賣自取 不可以修改訂單 取消訂單 //外賣自取 不可以修改訂單 取消訂單
btn_modify_order.setVisibility(View.GONE); btn_modify_order.setVisibility(View.GONE);
...@@ -341,7 +346,6 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent ...@@ -341,7 +346,6 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent
if (!TextUtils.isEmpty(payTxnId)) { if (!TextUtils.isEmpty(payTxnId)) {
btn_print_order.setVisibility(View.VISIBLE); btn_print_order.setVisibility(View.VISIBLE);
btn_refund.setVisibility(View.VISIBLE); btn_refund.setVisibility(View.VISIBLE);
btn_tips.setVisibility(View.VISIBLE);
btn_cancel_order.setVisibility(View.VISIBLE); btn_cancel_order.setVisibility(View.VISIBLE);
btn_modify_order.setVisibility(View.VISIBLE); btn_modify_order.setVisibility(View.VISIBLE);
} }
...@@ -350,7 +354,6 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent ...@@ -350,7 +354,6 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent
private void setOrderCancelVisbility() { private void setOrderCancelVisbility() {
btn_print_order.setVisibility(View.GONE); btn_print_order.setVisibility(View.GONE);
btn_refund.setVisibility(View.GONE); btn_refund.setVisibility(View.GONE);
btn_tips.setVisibility(View.GONE);
btn_cancel_order.setVisibility(View.GONE); btn_cancel_order.setVisibility(View.GONE);
btn_modify_order.setVisibility(View.GONE); btn_modify_order.setVisibility(View.GONE);
} }
...@@ -485,11 +488,10 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent ...@@ -485,11 +488,10 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent
for (SectionTextItem3 item : mOrderCenterDetailFoodList) { for (SectionTextItem3 item : mOrderCenterDetailFoodList) {
otherMoney = MoneyUtil.sum(otherMoney, Double.parseDouble(item.getRightText())); otherMoney = MoneyUtil.sum(otherMoney, Double.parseDouble(item.getRightText()));
} }
return otherMoney; return MoneyUtil.get_ItemDecimals_money(otherMoney);
} }
@OnClick({R2.id.btn_print_order, R2.id.btn_cancel_order, R2.id.btn_modify_order, R2.id.btn_tips, R2.id.btn_refund}) @OnClick({R2.id.btn_print_order, R2.id.btn_cancel_order, R2.id.btn_modify_order, R2.id.btn_tips, R2.id.btn_refund})
public void onClick(View v) { public void onClick(View v) {
int id = v.getId(); int id = v.getId();
...@@ -619,7 +621,14 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent ...@@ -619,7 +621,14 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent
txnIdRequest.setAmount(mOrderDetailItem.getTotalAmount()); txnIdRequest.setAmount(mOrderDetailItem.getTotalAmount());
VoidRequest voidRequest = new VoidRequest(); 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(mContext, this, voidRequest, txnIdRequest, new OnPosActionListener<VoidRespose>() { PosPay.voidO(mContext, this, voidRequest, txnIdRequest, new OnPosActionListener<VoidRespose>() {
@Override @Override
...@@ -687,55 +696,54 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent ...@@ -687,55 +696,54 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent
} }
txnIdRequest.setAmount(mOrderDetailItem.getTotalAmount()); txnIdRequest.setAmount(mOrderDetailItem.getTotalAmount());
PosPay.tip(mContext, OrderDetailActivity.this, txnIdRequest, PosPay.tip(mContext, OrderDetailActivity.this, txnIdRequest, getTipsRequest(mOrderDetailItem.getPayTxnId(), mOrderDetailItem.getTotalAmount(), Double.parseDouble(number)), new OnPosActionListener<AdjustTipRespose>() {
getTipsRequest(mOrderDetailItem.getPayTxnId(), mOrderDetailItem.getTotalAmount(), Double.parseDouble(number)), new OnPosActionListener<AdjustTipRespose>() {
@Override
@Override public void onPosSuccess(AdjustTipRespose response) {
public void onPosSuccess(AdjustTipRespose response) { LoganManager.w_code(TAG, "onPosSuccess: " + response.toString());
LoganManager.w_code(TAG, "onPosSuccess: " + response.toString()); refreafshOrderDetail();
refreafshOrderDetail(); }
}
@Override
@Override public void onPosException(Exception e) {
public void onPosException(Exception e) { LoganManager.w_code(TAG, "onPosException: " + e.getMessage());
LoganManager.w_code(TAG, "onPosException: " + e.getMessage()); if (findFragment(PosActionStatusExceptionFragment.class) == null) {
if (findFragment(PosActionStatusExceptionFragment.class) == null) { PosActionStatusExceptionParam statusExceptionParam = new PosActionStatusExceptionParam();
PosActionStatusExceptionParam statusExceptionParam = new PosActionStatusExceptionParam(); statusExceptionParam.setTxnId(mOrderDetailItem.getPayTxnId());
statusExceptionParam.setTxnId(mOrderDetailItem.getPayTxnId()); statusExceptionParam.setAmount(mOrderDetailItem.getTotalAmount());
statusExceptionParam.setAmount(mOrderDetailItem.getTotalAmount()); statusExceptionParam.setOrderId(mOrderDetailItem.getId());
statusExceptionParam.setOrderId(mOrderDetailItem.getId()); statusExceptionParam.setOrderNo(mOrderDetailItem.getOrderNo());
statusExceptionParam.setOrderNo(mOrderDetailItem.getOrderNo()); statusExceptionParam.setPayMethodName("VISA測試");
statusExceptionParam.setPayMethodName("VISA測試"); statusExceptionParam.setPosAction(PosAction.TIP);
statusExceptionParam.setPosAction(PosAction.TIP); loadRootFragment(R.id.rl_container, PosActionStatusExceptionFragment.newInstance(statusExceptionParam));
loadRootFragment(R.id.rl_container, PosActionStatusExceptionFragment.newInstance(statusExceptionParam)); }
} }
}
@Override
@Override public void onPosInvalid(String e) {
public void onPosInvalid(String e) { LoganManager.w_code(TAG, "onPosInvalid: " + e.toString());
LoganManager.w_code(TAG, "onPosInvalid: " + e.toString()); }
}
@Override
@Override public void onUpdateStatusSuccess(AdjustTipRespose response) {
public void onUpdateStatusSuccess(AdjustTipRespose response) { LoganManager.w_code(TAG, "onUpdateStatusSuccess: " + response.toString());
LoganManager.w_code(TAG, "onUpdateStatusSuccess: " + response.toString()); }
}
@Override
@Override public void onUpdateStatusError(Throwable e) {
public void onUpdateStatusError(Throwable e) { LoganManager.w_code(TAG, "onUpdateStatusError: " + e.getMessage());
LoganManager.w_code(TAG, "onUpdateStatusError: " + e.getMessage()); if (findFragment(PosActionStatusExceptionFragment.class) == null) {
if (findFragment(PosActionStatusExceptionFragment.class) == null) { PosActionStatusExceptionParam statusExceptionParam = new PosActionStatusExceptionParam();
PosActionStatusExceptionParam statusExceptionParam = new PosActionStatusExceptionParam(); statusExceptionParam.setTxnId(mOrderDetailItem.getPayTxnId());
statusExceptionParam.setTxnId(mOrderDetailItem.getPayTxnId()); statusExceptionParam.setAmount(mOrderDetailItem.getTotalAmount());
statusExceptionParam.setAmount(mOrderDetailItem.getTotalAmount()); statusExceptionParam.setOrderId(mOrderDetailItem.getId());
statusExceptionParam.setOrderId(mOrderDetailItem.getId()); statusExceptionParam.setOrderNo(mOrderDetailItem.getOrderNo());
statusExceptionParam.setOrderNo(mOrderDetailItem.getOrderNo()); statusExceptionParam.setPayMethodName("VISA測試");
statusExceptionParam.setPayMethodName("VISA測試"); statusExceptionParam.setPosAction(PosAction.TIP);
statusExceptionParam.setPosAction(PosAction.TIP); loadRootFragment(R.id.rl_container, PosActionStatusExceptionFragment.newInstance(statusExceptionParam));
loadRootFragment(R.id.rl_container, PosActionStatusExceptionFragment.newInstance(statusExceptionParam)); }
} }
} });
});
} }
} }
}) })
...@@ -754,8 +762,11 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent ...@@ -754,8 +762,11 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent
showMessage("餐檯不存在,無法修改訂單"); showMessage("餐檯不存在,無法修改訂單");
return; return;
} }
DoshokuOrder doshokuOrder = DoshokuOrder.getInstance();
//設置為修改訂單操作 //設置為修改訂單操作
mDoshokuOrder.setModifyOrder(true); doshokuOrder.setModifyOrder(true);
/** /**
* 緩存訂單信息 * 緩存訂單信息
*/ */
...@@ -769,8 +780,8 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent ...@@ -769,8 +780,8 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent
if (datasBean.getDiscountDetails() != null) { if (datasBean.getDiscountDetails() != null) {
orderBean.setDiscountDetails(datasBean.getDiscountDetails()); orderBean.setDiscountDetails(datasBean.getDiscountDetails());
} }
mDoshokuOrder.setOrderId(datasBean.getId()); doshokuOrder.setOrderId(datasBean.getId());
mDoshokuOrder.setOrderPlaced(orderBean); doshokuOrder.setOrderPlaced(orderBean);
TableBean.DataBean tableBean = new TableBean.DataBean(datasBean.getRestaurantTable()); TableBean.DataBean tableBean = new TableBean.DataBean(datasBean.getRestaurantTable());
if (!TextUtils.isEmpty(tableBean.getTableNumber())) { if (!TextUtils.isEmpty(tableBean.getTableNumber())) {
...@@ -779,14 +790,14 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent ...@@ -779,14 +790,14 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent
tableBean.setTableName(tableBean.getTableName()); tableBean.setTableName(tableBean.getTableName());
} }
tableBean.setPerson(datasBean.getPerson()); tableBean.setPerson(datasBean.getPerson());
mDoshokuOrder.setOpenTableInfo(tableBean); doshokuOrder.setOpenTableInfo(tableBean);
List<OrderResponse.OrderDetailsBean> orderDetailsBeans = datasBean.getOrderDetails(); List<OrderResponse.OrderDetailsBean> orderDetailsBeans = datasBean.getOrderDetails();
List<OrderDetail> orderDetailList = OrderAssemblyUtil.assemblyOrder(OrderDetail.orderTransOrderDetails(orderDetailsBeans)); List<OrderDetail> orderDetailList = OrderAssemblyUtil.assemblyOrder(OrderDetail.orderTransOrderDetails(orderDetailsBeans));
mDoshokuOrder.getShoppingCart().setOrderCommodityList(orderDetailList); doshokuOrder.getShoppingCart().setOrderCommodityList(orderDetailList);
if (datasBean.getMemberInfo() != null) { if (datasBean.getMemberInfo() != null) {
mDoshokuOrder.setMemberInfo(datasBean.getMemberInfo()); doshokuOrder.setMemberInfo(datasBean.getMemberInfo());
} }
Intent intent = new Intent(this, MealStandActivity.class); Intent intent = new Intent(this, MealStandActivity.class);
...@@ -800,33 +811,39 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent ...@@ -800,33 +811,39 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent
* @param orderDetailList * @param orderDetailList
*/ */
private void startPrintOrder(OrderManagerResponse orderDetailItem, List<OrderDetail> orderDetailList) { private void startPrintOrder(OrderManagerResponse orderDetailItem, List<OrderDetail> orderDetailList) {
mDoshokuOrder.setOrderId(orderDetailItem.getId());
mDoshokuOrder.setOrderNo(orderDetailItem.getOrderNo()); DoshokuOrder doshokuOrder = DoshokuOrder.getInstance();
mShoppingCart.setOrderCommodityList(orderDetailList); ShoppingCart shoppingCart = doshokuOrder.getShoppingCart();
mShoppingCart.setBillItemList(getOrderMoneyList());
mShoppingCart.setWholeAmount(getTotalMoney()); doshokuOrder.setOrderId(orderDetailItem.getId());
mShoppingCart.setTotalAmount(orderDetailItem.getTotalAmount()); doshokuOrder.setOrderNo(orderDetailItem.getOrderNo());
doshokuOrder.setNewFoodList(orderDetailList);
shoppingCart.setOrderCommodityList(orderDetailList);
shoppingCart.setBillItemList(getOrderMoneyList());
shoppingCart.setWholeAmount(getTotalMoney());
shoppingCart.setTotalAmount(orderDetailItem.getTotalAmount());
TableBean.DataBean dataBean = new TableBean.DataBean(); TableBean.DataBean dataBean = new TableBean.DataBean();
dataBean.setTableName(orderDetailItem.getTableName()); dataBean.setTableName(orderDetailItem.getTableName());
dataBean.setPerson(orderDetailItem.getPerson());
if (!TextUtils.isEmpty(orderDetailItem.getCreateTime())) { if (!TextUtils.isEmpty(orderDetailItem.getCreateTime())) {
dataBean.setCreateTime(TimeUtils.getStringByFormat(new Date(orderDetailItem.getCreateTime()), TimeUtils.DEFAULT_DATE_FORMAT_YMDHM)); dataBean.setCreateTime(TimeUtils.getStringByFormat(new Date(orderDetailItem.getCreateTime()), TimeUtils.DEFAULT_DATE_FORMAT_YMDHM));
} }
dataBean.setPerson(orderDetailItem.getPerson()); doshokuOrder.setOpenTableInfo(dataBean);
mDoshokuOrder.setOpenTableInfo(dataBean);
List<PayMethod> payMethodList = getPayMethodList(orderDetailItem.getOrderPays()); List<PayMethod> payMethodList = getPayMethodList(orderDetailItem.getOrderPays());
if (payMethodList != null) { if (payMethodList != null) {
//設置打印所需支付方式 //設置打印所需支付方式
mDoshokuOrder.setBillMoney(payMethodList); doshokuOrder.setBillMoney(payMethodList);
} }
if (orderDetailItem.getMemberInfo() != null) { if (orderDetailItem.getMemberInfo() != null) {
mDoshokuOrder.setMemberInfo(orderDetailItem.getMemberInfo()); doshokuOrder.setMemberInfo(orderDetailItem.getMemberInfo());
} else { } else {
mDoshokuOrder.setIntegralQrcode(orderDetailItem.getVerifyCode()); doshokuOrder.setIntegralQrcode(orderDetailItem.getVerifyCode());
} }
PrintContent printContent = new PrintContentAdapter().adaptationBillContent(mDoshokuOrder); PrintContent printContent = new PrintContentAdapter().adaptationBillContent(doshokuOrder, dataBean);
CC.obtainBuilder(ComponentName.COMPONENT_PRINT) CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.setActionName("printActivity") .setActionName("printActivity")
...@@ -835,11 +852,10 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent ...@@ -835,11 +852,10 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent
.build() .build()
.callAsyncCallbackOnMainThread((cc, result) -> { .callAsyncCallbackOnMainThread((cc, result) -> {
Log.e("error", "是否成功打印:" + result.isSuccess()); Log.e("error", "是否成功打印:" + result.isSuccess());
mDoshokuOrder.initialization(); doshokuOrder.initialization();
}); });
} }
private ArrayList<BillItem> getOrderMoneyList() { private ArrayList<BillItem> getOrderMoneyList() {
ArrayList<BillItem> billOrderMoneyList = new ArrayList<>(); ArrayList<BillItem> billOrderMoneyList = new ArrayList<>();
if (mOrderCenterMoneyList != null) { if (mOrderCenterMoneyList != null) {
...@@ -925,15 +941,14 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent ...@@ -925,15 +941,14 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent
finish(); finish();
} }
@Override @Override
public void returnOrderDetail(OrderManagerResponse orderDetailItem) { public void returnOrderDetail(OrderManagerResponse orderDetailItem) {
this.mOrderDetailItem = orderDetailItem; this.mOrderDetailItem = orderDetailItem;
mOrderDetailList = OrderAssemblyUtil.assemblyOrder(OrderDetail.orderTransOrderDetails(orderDetailItem.getOrderDetails()));
initOrderDetail(orderDetailItem); initOrderDetail(orderDetailItem);
setTitleByOrderType(mOrderDetailItem); updateOrderItems(orderDetailItem, mOrderDetailList);
setBtnVisibilityByOrderType(mOrderDetailItem.getOrderType()); setBtnVisibility();
setBtnVisibilityByOrderStatus(mOrderDetailItem); btn_refund.setVisibility(View.GONE);
updateOrderItems(mOrderDetailItem,mOrderDetailList);
} }
@Override @Override
......
...@@ -7,8 +7,11 @@ import android.widget.LinearLayout; ...@@ -7,8 +7,11 @@ import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import com.gingersoft.gsa.cloud.common.constans.OrderTypeConstans; 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.LanguageUtils;
import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils; 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.R;
import com.gingersoft.gsa.cloud.table.R2; import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.response.OrderManagerResponse; import com.gingersoft.gsa.cloud.table.mvp.model.bean.response.OrderManagerResponse;
...@@ -16,6 +19,7 @@ import com.jess.arms.base.BaseHolder; ...@@ -16,6 +19,7 @@ import com.jess.arms.base.BaseHolder;
import com.jess.arms.base.DefaultAdapter; import com.jess.arms.base.DefaultAdapter;
import com.qmuiteam.qmui.alpha.QMUIAlphaButton; import com.qmuiteam.qmui.alpha.QMUIAlphaButton;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
...@@ -94,8 +98,9 @@ public class OrderCenterAdapter extends DefaultAdapter<OrderManagerResponse> { ...@@ -94,8 +98,9 @@ public class OrderCenterAdapter extends DefaultAdapter<OrderManagerResponse> {
public void setData(OrderManagerResponse item, int position) { public void setData(OrderManagerResponse item, int position) {
setOrderItemDetail(item); setOrderItemDetail(item);
setBtnVisibilityByOrderType(item.getOrderType()); setBtnVisibility(item, position);
setBtnVisibilityByOrderStatus(item, position); setBtnListener(item, position);
btn_refund.setVisibility(View.GONE);
ll_root_container.setOnClickListener(new View.OnClickListener() { ll_root_container.setOnClickListener(new View.OnClickListener() {
@Override @Override
...@@ -139,7 +144,25 @@ public class OrderCenterAdapter extends DefaultAdapter<OrderManagerResponse> { ...@@ -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) { if (item.getStatus() == 6) {
btn_print_order.setVisibility(View.GONE); btn_print_order.setVisibility(View.GONE);
btn_modify_order.setVisibility(View.GONE); btn_modify_order.setVisibility(View.GONE);
...@@ -151,12 +174,23 @@ public class OrderCenterAdapter extends DefaultAdapter<OrderManagerResponse> { ...@@ -151,12 +174,23 @@ public class OrderCenterAdapter extends DefaultAdapter<OrderManagerResponse> {
btn_modify_order.setVisibility(View.VISIBLE); btn_modify_order.setVisibility(View.VISIBLE);
btn_cancel_order.setVisibility(View.VISIBLE); btn_cancel_order.setVisibility(View.VISIBLE);
btn_order_status.setVisibility(View.GONE); btn_order_status.setVisibility(View.GONE);
if (item.withHywebPay()) { if (AppDevices.isHywebPos() && item.withHywebPay()) {
setOrderStatusByTxnId(item.getPayTxnId(), item.getCancelTxnId(), item.getRefundTxnId()); setOrderStatusByTxnId(item.getPayTxnId(), item.getCancelTxnId(), item.getRefundTxnId());
ll_pos_bottom.setVisibility(View.VISIBLE); ll_pos_bottom.setVisibility(View.VISIBLE);
} else { } else {
ll_pos_bottom.setVisibility(View.GONE); 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() { btn_print_order.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
...@@ -216,7 +250,6 @@ public class OrderCenterAdapter extends DefaultAdapter<OrderManagerResponse> { ...@@ -216,7 +250,6 @@ public class OrderCenterAdapter extends DefaultAdapter<OrderManagerResponse> {
if (!TextUtils.isEmpty(payTxnId)) { if (!TextUtils.isEmpty(payTxnId)) {
btn_print_order.setVisibility(View.VISIBLE); btn_print_order.setVisibility(View.VISIBLE);
btn_refund.setVisibility(View.VISIBLE); btn_refund.setVisibility(View.VISIBLE);
btn_tips.setVisibility(View.VISIBLE);
btn_cancel_order.setVisibility(View.VISIBLE); btn_cancel_order.setVisibility(View.VISIBLE);
btn_modify_order.setVisibility(View.VISIBLE); btn_modify_order.setVisibility(View.VISIBLE);
} }
...@@ -225,20 +258,12 @@ public class OrderCenterAdapter extends DefaultAdapter<OrderManagerResponse> { ...@@ -225,20 +258,12 @@ public class OrderCenterAdapter extends DefaultAdapter<OrderManagerResponse> {
private void setOrderCancelVisbility() { private void setOrderCancelVisbility() {
btn_print_order.setVisibility(View.GONE); btn_print_order.setVisibility(View.GONE);
btn_modify_order.setVisibility(View.GONE); btn_modify_order.setVisibility(View.GONE);
btn_cancel_order.setVisibility(View.GONE);
btn_refund.setVisibility(View.GONE); btn_refund.setVisibility(View.GONE);
btn_tips.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; private OnItemClickListener mOnItemClickListener;
public void setOnItemClickListener(OnItemClickListener onItemClickListener) { public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
......
...@@ -108,7 +108,6 @@ ...@@ -108,7 +108,6 @@
android:id="@+id/btn_print_order" android:id="@+id/btn_print_order"
android:layout_width="@dimen/dp_65" android:layout_width="@dimen/dp_65"
android:layout_height="@dimen/dp_35" android:layout_height="@dimen/dp_35"
android:layout_marginRight="@dimen/dp_10"
android:background="@color/orange_400" android:background="@color/orange_400"
android:text="打印訂單" android:text="打印訂單"
android:textColor="@color/theme_white_color" android:textColor="@color/theme_white_color"
...@@ -118,8 +117,8 @@ ...@@ -118,8 +117,8 @@
android:id="@+id/btn_modify_order" android:id="@+id/btn_modify_order"
android:layout_width="@dimen/dp_65" android:layout_width="@dimen/dp_65"
android:layout_height="@dimen/dp_35" android:layout_height="@dimen/dp_35"
android:layout_marginRight="@dimen/dp_10"
android:background="@color/blue_300" android:background="@color/blue_300"
android:layout_marginLeft="@dimen/dp_10"
android:text="修改訂單" android:text="修改訂單"
android:textColor="@color/theme_white_color" android:textColor="@color/theme_white_color"
android:textSize="@dimen/sp_13" android:textSize="@dimen/sp_13"
...@@ -129,7 +128,7 @@ ...@@ -129,7 +128,7 @@
android:id="@+id/btn_order_status" android:id="@+id/btn_order_status"
android:layout_width="@dimen/dp_65" android:layout_width="@dimen/dp_65"
android:layout_height="@dimen/dp_35" android:layout_height="@dimen/dp_35"
android:layout_marginRight="@dimen/dp_10" android:layout_marginLeft="@dimen/dp_10"
android:background="@color/gray" android:background="@color/gray"
android:clickable="false" android:clickable="false"
android:text="已取消" android:text="已取消"
...@@ -142,6 +141,7 @@ ...@@ -142,6 +141,7 @@
android:layout_width="@dimen/dp_65" android:layout_width="@dimen/dp_65"
android:layout_height="@dimen/dp_35" android:layout_height="@dimen/dp_35"
android:background="@color/red_400" android:background="@color/red_400"
android:layout_marginLeft="@dimen/dp_10"
android:text="取消訂單" android:text="取消訂單"
android:textColor="@color/theme_white_color" android:textColor="@color/theme_white_color"
android:textSize="@dimen/sp_13" android:textSize="@dimen/sp_13"
...@@ -161,7 +161,6 @@ ...@@ -161,7 +161,6 @@
android:id="@+id/btn_refund" android:id="@+id/btn_refund"
android:layout_width="@dimen/dp_65" android:layout_width="@dimen/dp_65"
android:layout_height="@dimen/dp_35" android:layout_height="@dimen/dp_35"
android:layout_marginRight="@dimen/dp_10"
android:background="@color/red_500" android:background="@color/red_500"
android:text="退款" android:text="退款"
android:textColor="@color/theme_white_color" android:textColor="@color/theme_white_color"
...@@ -171,6 +170,7 @@ ...@@ -171,6 +170,7 @@
android:id="@+id/btn_tips" android:id="@+id/btn_tips"
android:layout_width="@dimen/dp_65" android:layout_width="@dimen/dp_65"
android:layout_height="@dimen/dp_35" android:layout_height="@dimen/dp_35"
android:layout_marginLeft="@dimen/dp_10"
android:background="@color/green_400" android:background="@color/green_400"
android:text="貼士" android:text="貼士"
android:textColor="@color/theme_white_color" 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 @@ ...@@ -4,7 +4,8 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical" android:orientation="vertical"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent"
android:background="@color/theme_white_color">
<TextView <TextView
android:id="@+id/tv_order_num" android:id="@+id/tv_order_num"
...@@ -70,17 +71,15 @@ ...@@ -70,17 +71,15 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_amount"/> app:layout_constraintTop_toBottomOf="@+id/tv_amount"/>
<com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton <TextView
android:id="@+id/btn_reload" android:id="@+id/tv_reload"
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="@dimen/button_height" android:layout_height="wrap_content"
android:background="@color/theme_color" android:layout_marginBottom="@dimen/dp_50"
android:layout_margin="@dimen/dp_10" android:gravity="center"
android:textSize="@dimen/text_size_default" android:textSize="@dimen/sp_22"
android:textColor="@color/theme_white_color" android:textColor="@color/theme_grey_color"
android:text="@string/emptyView_mode_desc_retry_query" 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_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"/> app:layout_constraintStart_toStartOf="parent"/>
......
...@@ -4,7 +4,8 @@ ...@@ -4,7 +4,8 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical" android:orientation="vertical"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent"
android:background="@color/theme_white_color">
<TextView <TextView
android:id="@+id/tv_order_num" android:id="@+id/tv_order_num"
...@@ -70,17 +71,15 @@ ...@@ -70,17 +71,15 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_amount"/> app:layout_constraintTop_toBottomOf="@+id/tv_amount"/>
<com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton <TextView
android:id="@+id/btn_reload" android:id="@+id/tv_reload"
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="@dimen/button_height" android:layout_height="wrap_content"
android:background="@color/theme_color" android:layout_marginBottom="@dimen/dp_50"
android:layout_margin="@dimen/dp_10" android:gravity="center"
android:textSize="@dimen/text_size_default" android:textSize="@dimen/sp_22"
android:textColor="@color/theme_white_color" android:textColor="@color/theme_grey_color"
android:text="@string/emptyView_mode_desc_retry_query" 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_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"/> app:layout_constraintStart_toStartOf="parent"/>
......
...@@ -4,7 +4,8 @@ ...@@ -4,7 +4,8 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical" android:orientation="vertical"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent"
android:background="@color/theme_white_color">
<TextView <TextView
android:id="@+id/tv_order_num" android:id="@+id/tv_order_num"
...@@ -70,17 +71,15 @@ ...@@ -70,17 +71,15 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_amount"/> app:layout_constraintTop_toBottomOf="@+id/tv_amount"/>
<com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton <TextView
android:id="@+id/btn_reload" android:id="@+id/tv_reload"
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="@dimen/button_height" android:layout_height="wrap_content"
android:background="@color/theme_color" android:layout_marginBottom="@dimen/dp_50"
android:layout_margin="@dimen/dp_10" android:gravity="center"
android:textSize="@dimen/text_size_default" android:textSize="@dimen/sp_22"
android:textColor="@color/theme_white_color" android:textColor="@color/theme_grey_color"
android:text="@string/emptyView_mode_desc_retry_query" 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_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"/> app:layout_constraintStart_toStartOf="parent"/>
......
...@@ -4,7 +4,8 @@ ...@@ -4,7 +4,8 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical" android:orientation="vertical"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent"
android:background="@color/theme_white_color">
<TextView <TextView
android:id="@+id/tv_order_num" android:id="@+id/tv_order_num"
...@@ -70,17 +71,15 @@ ...@@ -70,17 +71,15 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_amount"/> app:layout_constraintTop_toBottomOf="@+id/tv_amount"/>
<com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton <TextView
android:id="@+id/btn_reload" android:id="@+id/tv_reload"
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="@dimen/button_height" android:layout_height="wrap_content"
android:background="@color/theme_color" android:layout_marginBottom="@dimen/dp_50"
android:layout_margin="@dimen/dp_10" android:gravity="center"
android:textSize="@dimen/text_size_default" android:textSize="@dimen/sp_22"
android:textColor="@color/theme_white_color" android:textColor="@color/theme_grey_color"
android:text="@string/emptyView_mode_desc_retry_query" 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_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"/> app:layout_constraintStart_toStartOf="parent"/>
......
...@@ -4,7 +4,8 @@ ...@@ -4,7 +4,8 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical" android:orientation="vertical"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent"
android:background="@color/theme_white_color">
<TextView <TextView
android:id="@+id/tv_order_num" android:id="@+id/tv_order_num"
...@@ -70,17 +71,15 @@ ...@@ -70,17 +71,15 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_amount"/> app:layout_constraintTop_toBottomOf="@+id/tv_amount"/>
<com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton <TextView
android:id="@+id/btn_reload" android:id="@+id/tv_reload"
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="@dimen/button_height" android:layout_height="wrap_content"
android:background="@color/theme_color" android:layout_marginBottom="@dimen/dp_50"
android:layout_margin="@dimen/dp_10" android:gravity="center"
android:textSize="@dimen/text_size_default" android:textSize="@dimen/sp_22"
android:textColor="@color/theme_white_color" android:textColor="@color/theme_grey_color"
android:text="@string/emptyView_mode_desc_retry_query" 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_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"/> app:layout_constraintStart_toStartOf="parent"/>
......
...@@ -130,7 +130,7 @@ ...@@ -130,7 +130,7 @@
<string name="emptyView_mode_desc_timeout_desc">網絡加載超時,請檢查網絡重試</string> <string name="emptyView_mode_desc_timeout_desc">網絡加載超時,請檢查網絡重試</string>
<string name="emptyView_mode_desc_retry">點擊重試</string> <string name="emptyView_mode_desc_retry">點擊重試</string>
<string name="emptyView_mode_desc_double">未獲取到數據</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_pay">支付狀態異常,請嘗試重試查詢</string>
<string name="emptyView_mode_desc_pos_refund">退款狀態異常,請嘗試重試查詢</string> <string name="emptyView_mode_desc_pos_refund">退款狀態異常,請嘗試重試查詢</string>
......
...@@ -166,11 +166,11 @@ public class ComboItemDaoUtils { ...@@ -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 = "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); // sql = String.format(sql, foodSummary);
// } else { // } 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) { 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); Cursor c = mManager.getDaoSession().getFoodDao().getDatabase().rawQuery(sql, null);
while (c.moveToNext()) { while (c.moveToNext()) {
......
...@@ -15,8 +15,10 @@ public interface PayTypeContract { ...@@ -15,8 +15,10 @@ public interface PayTypeContract {
* 1001:現金 * 1001:現金
* 1023:支付寶HK * 1023:支付寶HK
* *
* 1030:N5卡支付 * 1030:N5卡片
* 1031:N5掃碼支付 * 1031:N5掃碼
* 1032:N5八達通
* 1033:N5美國運通
*/ */
int PAY_METHOD_ID_1 = 1; int PAY_METHOD_ID_1 = 1;
...@@ -31,4 +33,9 @@ public interface PayTypeContract { ...@@ -31,4 +33,9 @@ public interface PayTypeContract {
int PAY_METHOD_ID_1031 = 1031; 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; ...@@ -6,7 +6,7 @@ import android.content.Context;
import com.etps.aca.lib.util.CommandUtil; import com.etps.aca.lib.util.CommandUtil;
import com.gingersoft.gsa.cloud.pay.pos.bean.PosMatter; 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.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.gingersoft.gsa.cloud.pay.widget.StatusLoadingDialog;
import com.jess.arms.mvp.IView; import com.jess.arms.mvp.IView;
...@@ -18,7 +18,7 @@ import com.jess.arms.mvp.IView; ...@@ -18,7 +18,7 @@ import com.jess.arms.mvp.IView;
* 修订历史:2019/6/13 * 修订历史:2019/6/13
* 描述: * 描述:
*/ */
public abstract class IPosAction { public abstract class IPosAction <T extends HywebPosResponse>{
protected Context mContext; protected Context mContext;
protected IView mView; protected IView mView;
...@@ -45,13 +45,13 @@ public abstract class IPosAction { ...@@ -45,13 +45,13 @@ public abstract class IPosAction {
/** /**
* 對POS幾發起操作前的業務處理,如將操作記錄添加到後台日誌表,事項表 * 對POS幾發起操作前的業務處理,如將操作記錄添加到後台日誌表,事項表
*/ */
protected abstract void onBeforeActionPOS(); protected abstract void onPosActionBefore();
/** /**
* 向POS發起操作的方法 * 向POS發起操作的方法
*/ */
protected void onActionToPOS(String requestJson) { protected void onPosToAction(String requestJson) {
CommandUtil.sendRequest(mContext, requestJson); CommandUtil.sendRequest(mContext, requestJson);
} }
...@@ -72,7 +72,7 @@ public abstract class IPosAction { ...@@ -72,7 +72,7 @@ public abstract class IPosAction {
* *
* @param posResponse * @param posResponse
*/ */
public void onPosSuccess(Context context, HywebPosResponse posResponse, Activity originalActivity) { public void onPosSuccess(Context context, T posResponse, Activity originalActivity) {
if (mStatusLoadingDialog != null) { if (mStatusLoadingDialog != null) {
mStatusLoadingDialog.setStatusText(mPosAction.getActionName() + mLoadingActionComplteText); mStatusLoadingDialog.setStatusText(mPosAction.getActionName() + mLoadingActionComplteText);
mStatusLoadingDialog.loadSuccess(); mStatusLoadingDialog.loadSuccess();
...@@ -114,9 +114,9 @@ public abstract class IPosAction { ...@@ -114,9 +114,9 @@ public abstract class IPosAction {
* *
* @param response * @param response
*/ */
public void onUpdateStatusSuccess(HywebPosResponse response) { public void onUpdateStatusSuccess(T response) {
if (mStatusLoadingDialog != null) { if (mStatusLoadingDialog != null) {
mStatusLoadingDialog.setStatusText(mPosAction.getActionName() + PayStatusCode.getHywebRequestTextByCode(response.getSTATUS())); mStatusLoadingDialog.setStatusText(mPosAction.getActionName() + HywebActionStatusCode.getHywebRequestTextByCode(response.getSTATUS()));
mStatusLoadingDialog.cancel(); mStatusLoadingDialog.cancel();
} }
if (mOnPosActionListener != null) { if (mOnPosActionListener != null) {
...@@ -152,9 +152,9 @@ public abstract class IPosAction { ...@@ -152,9 +152,9 @@ public abstract class IPosAction {
* @return * @return
*/ */
protected byte getPosMatterStatus(String status) { protected byte getPosMatterStatus(String status) {
if (PayStatusCode.withSuccess(status)) { if (HywebActionStatusCode.withSuccess(status)) {
return PosMatter.status_1; return PosMatter.status_1;
} else if (PayStatusCode.withException(status)) { } else if (HywebActionStatusCode.withException(status)) {
return PosMatter.status_0; return PosMatter.status_0;
} else { } else {
return PosMatter.status_2; return PosMatter.status_2;
......
...@@ -35,15 +35,15 @@ public final class PosPay { ...@@ -35,15 +35,15 @@ public final class PosPay {
CommandActivity.setCommand(new CommandImpl(action)); CommandActivity.setCommand(new CommandImpl(action));
// if (AppDevice.isHywebPos()) { // if (AppDevice.isHywebPos()) {
if (action != null) { if (action != null) {
action.onBeforeActionPOS(); action.onPosActionBefore();
} }
// } else if (AppDevice.isBBPos()) { // } else if (AppDevice.isBBPos()) {
// } else { // } else {
// } // }
} }
public static void pay(Context context, IView iView, SaleRequest saleRequest, GetTxnIdRequest getTxnIdRequest, TableBean.DataBean tableBean, MealOrderPayRequest orderPayRequest, List<BillItem> billItemList, List<PayMethod> payMethodList) { 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, true)); 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) { public static void tip(Context context, IView iView, GetTxnIdRequest txnIdRequest, AdjustTipRequest tipRequest, OnPosActionListener onPosActionListener) {
...@@ -58,8 +58,8 @@ public final class PosPay { ...@@ -58,8 +58,8 @@ public final class PosPay {
PosPay.sendRequest(new VoidActionImpl(context, iView, PosAction.VOID, request, getTxnIdRequest, onPosActionListener, true)); 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) { public static void retrieval(Context context, IView iView,Long orderId, PosAction retrievalAction, RetrievalRequest request, OnPosActionListener onPosActionListener) {
PosPay.sendRequest(new RetrievalActionImpl(context, iView, PosAction.RETRIEVAL, orderId, request, onPosActionListener, false)); PosPay.sendRequest(new RetrievalActionImpl(context, iView, PosAction.RETRIEVAL,retrievalAction, orderId, request, onPosActionListener, false));
} }
} }
...@@ -19,7 +19,7 @@ public class BBPosAction extends IPosAction { ...@@ -19,7 +19,7 @@ public class BBPosAction extends IPosAction {
} }
@Override @Override
protected void onBeforeActionPOS() { protected void onPosActionBefore() {
} }
......
...@@ -8,7 +8,6 @@ import android.view.LayoutInflater; ...@@ -8,7 +8,6 @@ import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
...@@ -16,7 +15,6 @@ import androidx.annotation.NonNull; ...@@ -16,7 +15,6 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import com.gingersoft.gsa.cloud.common.constans.AppConstans; 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.BasePosCallback;
import com.gingersoft.gsa.cloud.common.loadsir.pos.PosPayStatusExceptionCallback; import com.gingersoft.gsa.cloud.common.loadsir.pos.PosPayStatusExceptionCallback;
import com.gingersoft.gsa.cloud.common.loadsir.pos.PosRefundStatusExceptionCallback; import com.gingersoft.gsa.cloud.common.loadsir.pos.PosRefundStatusExceptionCallback;
...@@ -27,12 +25,10 @@ import com.gingersoft.gsa.cloud.order.R; ...@@ -27,12 +25,10 @@ import com.gingersoft.gsa.cloud.order.R;
import com.gingersoft.gsa.cloud.order.R2; import com.gingersoft.gsa.cloud.order.R2;
import com.gingersoft.gsa.cloud.pay.bean.PosActionStatusExceptionParam; import com.gingersoft.gsa.cloud.pay.bean.PosActionStatusExceptionParam;
import com.gingersoft.gsa.cloud.pay.pos.OnPosActionListener; 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.PosPay;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.RetrievalRequest; 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.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.base.BaseFragment; import com.jess.arms.base.BaseFragment;
import com.jess.arms.di.component.AppComponent; import com.jess.arms.di.component.AppComponent;
import com.jess.arms.mvp.IView; import com.jess.arms.mvp.IView;
...@@ -135,21 +131,23 @@ public class PosActionStatusExceptionFragment extends BaseFragment implements IV ...@@ -135,21 +131,23 @@ public class PosActionStatusExceptionFragment extends BaseFragment implements IV
break; break;
} }
if (posCallback != null) { if (posCallback != null) {
loadService.setCallBack(PosTipsStatusExceptionCallback.class, new Transport() { loadService.setCallBack(posCallback.getClass(), new OnTransport());
@Override loadService.showCallback(posCallback.getClass());
public void order(Context context, View rootView) { }
tv_order_num = rootView.findViewById(com.gingersoft.gsa.cloud.common.R.id.tv_order_num); }
tv_final_prompt = rootView.findViewById(com.gingersoft.gsa.cloud.common.R.id.tv_final_prompt);
tv_exception = rootView.findViewById(com.gingersoft.gsa.cloud.common.R.id.tv_exception); private final class OnTransport implements Transport {
tv_amount = rootView.findViewById(com.gingersoft.gsa.cloud.common.R.id.tv_amount); @Override
tv_pay_method = rootView.findViewById(com.gingersoft.gsa.cloud.common.R.id.tv_pay_method); public void order(Context context, View rootView) {
tv_order_num = rootView.findViewById(com.gingersoft.gsa.cloud.common.R.id.tv_order_num);
tv_order_num.setText("單號:" + mPosStatusExceptionParam.getOrderId()); tv_final_prompt = rootView.findViewById(com.gingersoft.gsa.cloud.common.R.id.tv_final_prompt);
tv_amount.setText(AppConstans.CARSH_STR + mPosStatusExceptionParam.getAmount()); tv_exception = rootView.findViewById(com.gingersoft.gsa.cloud.common.R.id.tv_exception);
tv_pay_method.setText(mPosStatusExceptionParam.getPayMethodName()); tv_amount = rootView.findViewById(com.gingersoft.gsa.cloud.common.R.id.tv_amount);
} tv_pay_method = rootView.findViewById(com.gingersoft.gsa.cloud.common.R.id.tv_pay_method);
});
loadService.showCallback(PosTipsStatusExceptionCallback.class); tv_order_num.setText("單號:" + mPosStatusExceptionParam.getOrderId());
tv_amount.setText(AppConstans.CARSH_STR + mPosStatusExceptionParam.getAmount());
tv_pay_method.setText(mPosStatusExceptionParam.getPayMethodName());
} }
} }
...@@ -161,7 +159,7 @@ public class PosActionStatusExceptionFragment extends BaseFragment implements IV ...@@ -161,7 +159,7 @@ public class PosActionStatusExceptionFragment extends BaseFragment implements IV
private void setPosActionStatus(String status) { private void setPosActionStatus(String status) {
Drawable drawable; Drawable drawable;
if (PayStatusCode.withSuccess(status)) { if (HywebActionStatusCode.withSuccess(status)) {
drawable = getResources().getDrawable(R.mipmap.pay_status_success); drawable = getResources().getDrawable(R.mipmap.pay_status_success);
drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight()); drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());
} else { } else {
...@@ -169,19 +167,17 @@ public class PosActionStatusExceptionFragment extends BaseFragment implements IV ...@@ -169,19 +167,17 @@ public class PosActionStatusExceptionFragment extends BaseFragment implements IV
drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight()); drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());
} }
tvPosStatus.setCompoundDrawables(null, drawable, null, null); tvPosStatus.setCompoundDrawables(null, drawable, null, null);
tvPosStatus.setText(PayStatusCode.getHywebRequestTextByCode(status)); tvPosStatus.setText(HywebActionStatusCode.getHywebRequestTextByCode(status));
} }
private void retrievalStatus() { private void retrievalStatus() {
RetrievalRequest retrievalRequest = new RetrievalRequest(); RetrievalRequest retrievalRequest = new RetrievalRequest();
retrievalRequest.setTXN_ID(mPosStatusExceptionParam.getTxnId()); 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 @Override
public void onPosSuccess(HywebPosResponse response) { public void onPosSuccess(HywebPosResponse response) {
loadService.showSuccess();
setPosActionStatus(response.getSTATUS());
} }
@Override @Override
...@@ -195,6 +191,9 @@ public class PosActionStatusExceptionFragment extends BaseFragment implements IV ...@@ -195,6 +191,9 @@ public class PosActionStatusExceptionFragment extends BaseFragment implements IV
@Override @Override
public void onUpdateStatusSuccess(HywebPosResponse response) { public void onUpdateStatusSuccess(HywebPosResponse response) {
tvPosStatus.setText(mPosStatusExceptionParam.getPosAction().getActionName() + "成功");
loadService.showSuccess();
setPosActionStatus(response.getSTATUS());
} }
@Override @Override
......
...@@ -22,6 +22,17 @@ public class HywebPosResponse implements Parcelable { ...@@ -22,6 +22,17 @@ public class HywebPosResponse implements Parcelable {
protected double TIPS = 0.0; 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 @Override
public int describeContents() { public int describeContents() {
......
...@@ -15,10 +15,16 @@ import lombok.Data; ...@@ -15,10 +15,16 @@ import lombok.Data;
@Data @Data
public class RetrievalRespose extends HywebPosResponse implements Parcelable { public class RetrievalRespose extends HywebPosResponse implements Parcelable {
/**
* SALE/REFUND/PREAUTH/OFFLINE
*/
private String TXN_TYPE; private String TXN_TYPE;
// private String TXN_ID; // private String TXN_ID;
//仅当STATUS = 00时才返回以下字段 /**
* 仅当STATUS = 00时才返回以下字段
* TXN_STATUS:V 訂單已取消
*/
private String TXN_STATUS ; private String TXN_STATUS ;
// private String TXN_AMT ; // private String TXN_AMT ;
// private double TIPS ; // private double TIPS ;
......
package com.gingersoft.gsa.cloud.pay.pos.hywebpos.command; package com.gingersoft.gsa.cloud.pay.pos.hywebpos.command;
import android.app.Activity; import android.app.Activity;
import android.app.ActivityManager;
import android.app.Application;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.text.TextUtils; import android.text.TextUtils;
...@@ -11,10 +9,7 @@ import com.billy.cc.core.component.CC; ...@@ -11,10 +9,7 @@ import com.billy.cc.core.component.CC;
import com.etps.aca.lib.action.ICommand; import com.etps.aca.lib.action.ICommand;
import com.etps.aca.lib.activity.CommandActivity; import com.etps.aca.lib.activity.CommandActivity;
import com.etps.aca.lib.constant.Constant; 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.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.gson.GsonUtils;
import com.gingersoft.gsa.cloud.common.utils.log.LogUtil; import com.gingersoft.gsa.cloud.common.utils.log.LogUtil;
import com.gingersoft.gsa.cloud.component.ComponentAction; import com.gingersoft.gsa.cloud.component.ComponentAction;
...@@ -28,18 +23,13 @@ import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.RetrievalResp ...@@ -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.SaleRespose;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.SettlementRespose; 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.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.integration.AppManager;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; 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 { public class CommandImpl implements ICommand {
private static final String TAG = CommandImpl.class.getSimpleName(); private static final String TAG = CommandImpl.class.getSimpleName();
...@@ -109,9 +99,9 @@ public class CommandImpl implements ICommand { ...@@ -109,9 +99,9 @@ public class CommandImpl implements ICommand {
String eventName = msgObj.getString(Constant.EVENT.ATTR.EVENT_NAME); String eventName = msgObj.getString(Constant.EVENT.ATTR.EVENT_NAME);
HywebPosResponse posResponse = parsePosResponse(response, eventName); HywebPosResponse posResponse = parsePosResponse(response, eventName);
if (posResponse != null) { if (posResponse != null) {
if (PayStatusCode.withInvalid(posResponse.getSTATUS())) { if (HywebActionStatusCode.withInvalid(posResponse.getSTATUS())) {
//調起POS失敗 //調起POS失敗
onPosInvalid(PayStatusCode.getHywebRequestTextByCode(posResponse.getSTATUS())); onPosInvalid(HywebActionStatusCode.getHywebRequestTextByCode(posResponse.getSTATUS()));
} else { } else {
//回調成功 //回調成功
onPosSuccess(context, posResponse, currentActivity); onPosSuccess(context, posResponse, currentActivity);
...@@ -125,12 +115,12 @@ public class CommandImpl implements ICommand { ...@@ -125,12 +115,12 @@ public class CommandImpl implements ICommand {
try { try {
JSONObject msgObj = new JSONObject(response); JSONObject msgObj = new JSONObject(response);
String status = msgObj.getString("STATUS"); String status = msgObj.getString("STATUS");
if (PayStatusCode.withInvalid(status)) { if (HywebActionStatusCode.withInvalid(status)) {
//調起POS失敗 //調起POS失敗
onPosInvalid(PayStatusCode.getHywebRequestTextByCode(status)); onPosInvalid(HywebActionStatusCode.getHywebRequestTextByCode(status));
} else { } else {
//回調異常 //回調異常
onPosException(new Exception(PayStatusCode.getHywebRequestTextByCode(status))); onPosException(new Exception(HywebActionStatusCode.getHywebRequestTextByCode(status)));
} }
} catch (JSONException ex) { } catch (JSONException ex) {
ex.printStackTrace(); ex.printStackTrace();
......
...@@ -6,9 +6,9 @@ import android.text.TextUtils; ...@@ -6,9 +6,9 @@ import android.text.TextUtils;
* @作者: bin * @作者: bin
* @創建時間: 2020-12-24 9:41 * @創建時間: 2020-12-24 9:41
* @更新時間: 2020-12-24 9:41 * @更新時間: 2020-12-24 9:41
* @描述: * @描述:業務操作回調狀態
*/ */
public class PayStatusCode { public class HywebActionStatusCode {
/** /**
* N5異常问题 : * N5異常问题 :
...@@ -23,6 +23,7 @@ public class PayStatusCode { ...@@ -23,6 +23,7 @@ public class PayStatusCode {
*/ */
public static final String PAY_STATUS_00 = "00"; //成功 √ public static final String PAY_STATUS_00 = "00"; //成功 √
public static final String PAY_STATUS_02 = "02"; //微信、支付宝正在处理这笔退款请求(可认为已成功) √ public static final String PAY_STATUS_02 = "02"; //微信、支付宝正在处理这笔退款请求(可认为已成功) √
public static final String PAY_STATUS_03 = "03"; //确认/处理 (支付、清機 同步接口防止N5機器關機未收到結果) √
/** /**
* 以下狀態認為是无效情況 * 以下狀態認為是无效情況
*/ */
...@@ -31,19 +32,16 @@ public class PayStatusCode { ...@@ -31,19 +32,16 @@ public class PayStatusCode {
public static final String PAY_STATUS_11 = "11"; //用户撤销(应用于仅限微信/支付宝) √ public static final String PAY_STATUS_11 = "11"; //用户撤销(应用于仅限微信/支付宝) √
public static final String PAY_STATUS_12 = "12"; //交易有已经作废/已完成 public static final String PAY_STATUS_12 = "12"; //交易有已经作废/已完成
public static final String PAY_STATUS_13 = "13"; //找不到交易 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_90 = "90"; //通讯/格式 错误 √
public static final String PAY_STATUS_91 = "91"; //功能或 付款方式没有 支持的 √ public static final String PAY_STATUS_91 = "91"; //功能或 付款方式没有 支持的 √
public static final String PAY_STATUS_97 = "97"; //N5 POS忙碌 √ 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_99 = "99"; //未知错误 √
public static final String PAY_STATUS_98 = "98"; //超时 √
/** /**
* 回調成功 * 回調成功
*
* @param status * @param status
* @return * @return
*/ */
...@@ -52,37 +50,40 @@ public class PayStatusCode { ...@@ -52,37 +50,40 @@ public class PayStatusCode {
return false; 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 true;
} }
return false; return false;
} }
/** /**
* 回調異常,比如突然斷網或關機沒有收到回調 * 本次操作無效
*
* @param status * @param status
* @return * @return
*/ */
public static boolean withException(String status) { public static boolean withInvalid(String status) {
if (TextUtils.isEmpty(status)) { if (TextUtils.isEmpty(status)) {
return true; return false;
} }
if (status.equals(PAY_STATUS_98) || status.equals(PAY_STATUS_99) || status.equals(PAY_STATUS_03)) { if (withSuccess(status)) {
return true; return false;
} }
return false; return true;
} }
/** /**
* 本次操作無效 * 回調異常
* 三種異常情況:【異常狀態=03,未回調(斷電,網絡問題...),回調返回格式問題或為空】
*
* @param status * @param status
* @return * @return
*/ */
public static boolean withInvalid(String status){ public static boolean withException(String status) {
if(withSuccess(status) || withException(status)){ if (withSuccess(status) || withInvalid(status)) {
return false; return true;
} }
return true; return false;
} }
public static String getHywebRequestTextByCode(String status) { public static String getHywebRequestTextByCode(String status) {
...@@ -103,6 +104,8 @@ public class PayStatusCode { ...@@ -103,6 +104,8 @@ public class PayStatusCode {
return "已作廢/已完成"; return "已作廢/已完成";
case PAY_STATUS_13: case PAY_STATUS_13:
return "找不到相關訂單"; return "找不到相關訂單";
case PAY_STATUS_14:
return "投标不支持";
case PAY_STATUS_90: case PAY_STATUS_90:
return "通訊/格式錯誤"; return "通訊/格式錯誤";
case PAY_STATUS_91: case PAY_STATUS_91:
...@@ -135,6 +138,8 @@ public class PayStatusCode { ...@@ -135,6 +138,8 @@ public class PayStatusCode {
return makeType + "已作廢/已完成"; return makeType + "已作廢/已完成";
case PAY_STATUS_13: case PAY_STATUS_13:
return makeType + "找不到相關訂單"; return makeType + "找不到相關訂單";
case PAY_STATUS_14:
return makeType + "投标不支持";
case PAY_STATUS_90: case PAY_STATUS_90:
return makeType + "通訊/格式錯誤"; return makeType + "通訊/格式錯誤";
case PAY_STATUS_91: case PAY_STATUS_91:
......
...@@ -12,8 +12,10 @@ public interface PayMethodConstant { ...@@ -12,8 +12,10 @@ public interface PayMethodConstant {
* 支付申请清单 * 支付申请清单
*/ */
String PAY_TYPE_CC = "CC"; //信用卡 String PAY_TYPE_CC = "CC"; //信用卡
String PAY_TYPE_QRC = "QRC"; String PAY_TYPE_QRC = "QRC";//支付寶,微信
String PAY_TYPE_AE = "AE"; String PAY_TYPE_OPS = "OPS";//八達通
String PAY_TYPE_AE = "AE";//美国运通
String PAY_TYPE_EPS = "EPS";
String PAY_TYPE_INTEGRAL = "INTEGRAL"; String PAY_TYPE_INTEGRAL = "INTEGRAL";
//扫码支付 //扫码支付
...@@ -47,4 +49,27 @@ public interface PayMethodConstant { ...@@ -47,4 +49,27 @@ public interface PayMethodConstant {
String PAY_WAY_QR = "QR"; //QR /条码付款(例如VMJ QR,UP QR) String PAY_WAY_QR = "QR"; //QR /条码付款(例如VMJ QR,UP QR)
String PAY_WAY_ALI_WCP = "ALP,WCP"; //微信,支付宝 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 { ...@@ -25,7 +25,7 @@ public class PrintActionImpl extends IPosAction {
} }
@Override @Override
protected void onBeforeActionPOS() { protected void onPosActionBefore() {
} }
......
...@@ -16,13 +16,9 @@ import com.gingersoft.gsa.cloud.pay.pos.bean.PosMatter; ...@@ -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.bg.GetTxnIdRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.RefundRequest; 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.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.bean.response.pos.RefundRespose;
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.mvp.IView; import com.jess.arms.mvp.IView;
import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.RxLifecycleUtils; import com.jess.arms.utils.RxLifecycleUtils;
import com.xuexiang.rxutil2.rxjava.RxSchedulerUtils; import com.xuexiang.rxutil2.rxjava.RxSchedulerUtils;
...@@ -37,7 +33,7 @@ import okhttp3.RequestBody; ...@@ -37,7 +33,7 @@ import okhttp3.RequestBody;
* @更新時間: 2020-12-26 10:38 * @更新時間: 2020-12-26 10:38
* @描述: * @描述:
*/ */
public class RefundActionImpl extends IPosAction { public class RefundActionImpl extends IPosAction<RefundRespose> {
private GetTxnIdRequest mGetTxnIdRequest; private GetTxnIdRequest mGetTxnIdRequest;
private GetRefundIdResponse mGetRefundIdResponse; private GetRefundIdResponse mGetRefundIdResponse;
...@@ -52,7 +48,7 @@ public class RefundActionImpl extends IPosAction { ...@@ -52,7 +48,7 @@ public class RefundActionImpl extends IPosAction {
} }
@Override @Override
protected void onBeforeActionPOS() { protected void onPosActionBefore() {
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(mGetTxnIdRequest)); RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(mGetTxnIdRequest));
String json = GsonUtils.GsonString(mGetTxnIdRequest); String json = GsonUtils.GsonString(mGetTxnIdRequest);
...@@ -76,7 +72,7 @@ public class RefundActionImpl extends IPosAction { ...@@ -76,7 +72,7 @@ public class RefundActionImpl extends IPosAction {
if (mRefundRequest != null) { if (mRefundRequest != null) {
mRefundRequest.setTXN_ID(mGetRefundIdResponse.getRefundId()); mRefundRequest.setTXN_ID(mGetRefundIdResponse.getRefundId());
//調起N5退款 //調起N5退款
onActionToPOS(GsonUtils.GsonString(mRefundRequest)); onPosToAction(GsonUtils.GsonString(mRefundRequest));
// canCelLoadingDialog(); // canCelLoadingDialog();
} else { } else {
onBeforeActionPosError(new Exception(error + PayExceptionCode.tips_701)); onBeforeActionPosError(new Exception(error + PayExceptionCode.tips_701));
...@@ -113,9 +109,9 @@ public class RefundActionImpl extends IPosAction { ...@@ -113,9 +109,9 @@ public class RefundActionImpl extends IPosAction {
* @param originalActivity * @param originalActivity
*/ */
@Override @Override
public void onPosSuccess(Context context, HywebPosResponse response, Activity originalActivity) { public void onPosSuccess(Context context, RefundRespose response, Activity originalActivity) {
//1、更新上傳退款狀態 //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(RxSchedulerUtils._io_main_o())
.compose(RxLifecycleUtils.bindToLifecycle(mView)) .compose(RxLifecycleUtils.bindToLifecycle(mView))
.subscribe(new Observer<String>() { .subscribe(new Observer<String>() {
...@@ -131,7 +127,7 @@ public class RefundActionImpl extends IPosAction { ...@@ -131,7 +127,7 @@ public class RefundActionImpl extends IPosAction {
if (!TextUtils.isEmpty(result)) { if (!TextUtils.isEmpty(result)) {
BaseResult baseResult = GsonUtils.GsonToBean(result, BaseResult.class); BaseResult baseResult = GsonUtils.GsonToBean(result, BaseResult.class);
if (baseResult != null) { if (baseResult != null) {
if (baseResult.isSuccess() && baseResult.getData() != null) { if (baseResult.isSuccess()) {
onUpdateStatusSuccess(response); onUpdateStatusSuccess(response);
} else { } else {
onUpdateStatusError(new Exception(mPosAction.getCallbackExceptionText() + "["+baseResult.getErrMsg()+"]")); onUpdateStatusError(new Exception(mPosAction.getCallbackExceptionText() + "["+baseResult.getErrMsg()+"]"));
...@@ -163,8 +159,8 @@ public class RefundActionImpl extends IPosAction { ...@@ -163,8 +159,8 @@ public class RefundActionImpl extends IPosAction {
* @param response * @param response
* @param originalActivity * @param originalActivity
*/ */
private void displayRefundResult(Context context, HywebPosResponse response, Activity originalActivity) { private void displayRefundResult(Context context, RefundRespose response, Activity originalActivity) {
if (PayStatusCode.withException(response.getSTATUS())) { if (HywebActionStatusCode.withException(response.getSTATUS())) {
super.onPosException(new Exception(response.getSTATUS())); super.onPosException(new Exception(response.getSTATUS()));
} else { } else {
super.onPosSuccess(context,response,originalActivity); super.onPosSuccess(context,response,originalActivity);
......
...@@ -15,15 +15,11 @@ import com.gingersoft.gsa.cloud.pay.pos.OnPosActionListener; ...@@ -15,15 +15,11 @@ import com.gingersoft.gsa.cloud.pay.pos.OnPosActionListener;
import com.gingersoft.gsa.cloud.pay.pos.PosAction; import com.gingersoft.gsa.cloud.pay.pos.PosAction;
import com.gingersoft.gsa.cloud.pay.pos.bean.PosMatter; import com.gingersoft.gsa.cloud.pay.pos.bean.PosMatter;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.RetrievalRequest; import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.RetrievalRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.AdjustTipRespose; import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.RetrievalRespose;
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.SaleRespose;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.SettlementRespose; 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.HywebActionStatusCode;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.constant.PayStatusCode; import com.gingersoft.gsa.cloud.pay.pos.hywebpos.constant.TransactionStatusCode;
import com.jess.arms.mvp.IView; import com.jess.arms.mvp.IView;
import com.jess.arms.utils.RxLifecycleUtils;
import com.xuexiang.rxutil2.rxjava.RxSchedulerUtils; import com.xuexiang.rxutil2.rxjava.RxSchedulerUtils;
import io.reactivex.Observer; import io.reactivex.Observer;
...@@ -35,64 +31,78 @@ import okhttp3.RequestBody; ...@@ -35,64 +31,78 @@ import okhttp3.RequestBody;
* @作者: bin * @作者: bin
* @創建時間: 2020-12-26 10:38 * @創建時間: 2020-12-26 10:38
* @更新時間: 2020-12-26 10:38 * @更新時間: 2020-12-26 10:38
* @描述:查詢狀態,支持(銷售/退款) * @描述:查詢狀態,支持(銷售,小費,退款)
*/ */
public class RetrievalActionImpl extends IPosAction { public class RetrievalActionImpl extends IPosAction<RetrievalRespose> {
private RetrievalRequest mRetrievalRequest; private RetrievalRequest mRetrievalRequest;
private Long mOrderId; private Long mOrderId;
private PosAction mRetrievalAction;
public RetrievalActionImpl(Context context, IView iView, PosAction action, Long orderId,RetrievalRequest request, OnPosActionListener onPosActionListener, boolean showLoading) { public RetrievalActionImpl(Context context, IView iView, PosAction action, PosAction retrievalAction, Long orderId, RetrievalRequest request, OnPosActionListener onPosActionListener, boolean showLoading) {
super(context, iView, action, showLoading); super(context, iView, action, showLoading);
this.mOrderId = orderId; this.mOrderId = orderId;
this.mRetrievalRequest = request; this.mRetrievalRequest = request;
this.mRetrievalAction = retrievalAction;
this.mOnPosActionListener = onPosActionListener; this.mOnPosActionListener = onPosActionListener;
} }
@Override @Override
protected void onBeforeActionPOS() { protected void onPosActionBefore() {
//調起N5狀態查詢 //調起N5狀態查詢
onActionToPOS(GsonUtils.GsonString(mRetrievalRequest)); onPosToAction(GsonUtils.GsonString(mRetrievalRequest));
} }
/** /**
* 查詢回調成功 * 查詢回調成功
* 1、更新上傳狀態 * 1、更新上傳狀態
* 2、顯示查询結果 * 2、顯示查询結果
*
* @param context * @param context
* @param response * @param response
* @param originalActivity * @param originalActivity
*/ */
@Override @Override
public void onPosSuccess(Context context, HywebPosResponse response, Activity originalActivity) { public void onPosSuccess(Context context, RetrievalRespose response, Activity originalActivity) {
String url = null; String url = null;
RequestBody requestBody; RequestBody requestBody;
switch (response.getEVENT_NAME()) { switch (response.getTXN_TYPE()) {
case Constant.EVENT.NAME.SALE_RESP: case Constant.EVENT.NAME.SALE:
url = "posPay/updatePosMatter"; if (mRetrievalAction == PosAction.TIP) {
requestBody = getPosMatterSaleRequest((SaleRespose) response); //查詢補消費狀態
url = "posPay/updatePosTip";
requestBody = getPosMatterTipsRequest(response);
} else if (mRetrievalAction == PosAction.VOID) {
//查詢取消狀態
url = "posPay/updatePosCancel";
requestBody = getPosMatterVoidRequest(response);
} else {
//查詢支付狀態
url = "posPay/updatePosMatter";
requestBody = getPosMatterSaleRequest(response);
}
break; break;
case Constant.EVENT.NAME.REFUND_RESP: case Constant.EVENT.NAME.REFUND:
url = "posPay/updatePosRefund"; url = "posPay/updatePosRefund";
requestBody = getPosMatterRefundRequest((RefundRespose) response); requestBody = getPosMatterRefundRequest(response);
break;
case Constant.EVENT.NAME.VOID_RESP:
requestBody = getPosMatterVoidRequest((VoidRespose) response);
break;
case Constant.EVENT.NAME.ADJUST_RESP:
requestBody = getPosMatterTipsRequest((AdjustTipRespose) response);
break;
case "SETTLE_RESP":
requestBody = getPosMatterSettlementRequest((SettlementRespose) response);
break; break;
// case Constant.EVENT.NAME.VOID_RESP:
// requestBody = getPosMatterVoidRequest((VoidRespose) response);
// break;
// case Constant.EVENT.NAME.ADJUST_RESP:
// requestBody = getPosMatterTipsRequest((AdjustTipRespose) response);
// break;
// case "SETTLE_RESP":
// requestBody = getPosMatterSettlementRequest((SettlementRespose) response);
// break;
default: default:
return; return;
} }
//1、更新上傳支付狀態 //1、更新上傳狀態
OkHttp3Utils.post(HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL + url, requestBody) OkHttp3Utils.post(HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL + url, requestBody)
.compose(RxSchedulerUtils._io_main_o()) .compose(RxSchedulerUtils._io_main_o())
.compose(RxLifecycleUtils.bindToLifecycle(mView)) // .compose(RxLifecycleUtils.bindToLifecycle(mView))
.subscribe(new Observer<String>() { .subscribe(new Observer<String>() {
@Override @Override
public void onSubscribe(Disposable d) { public void onSubscribe(Disposable d) {
...@@ -106,10 +116,10 @@ public class RetrievalActionImpl extends IPosAction { ...@@ -106,10 +116,10 @@ public class RetrievalActionImpl extends IPosAction {
if (!TextUtils.isEmpty(result)) { if (!TextUtils.isEmpty(result)) {
BaseResult baseResult = GsonUtils.GsonToBean(result, BaseResult.class); BaseResult baseResult = GsonUtils.GsonToBean(result, BaseResult.class);
if (baseResult != null) { if (baseResult != null) {
if (baseResult.isSuccess() && baseResult.getData() != null) { if (baseResult.isSuccess()) {
onUpdateStatusSuccess(response); onUpdateStatusSuccess(response);
} else { } else {
onUpdateStatusError(new Exception(mPosAction.getCallbackExceptionText() + "["+baseResult.getErrMsg()+"]")); onUpdateStatusError(new Exception(mPosAction.getCallbackExceptionText() + "[" + baseResult.getErrMsg() + "]"));
} }
} else { } else {
onUpdateStatusError(new Exception(mPosAction.getCallbackExceptionText() + PayExceptionCode.sale_413)); onUpdateStatusError(new Exception(mPosAction.getCallbackExceptionText() + PayExceptionCode.sale_413));
...@@ -137,15 +147,15 @@ public class RetrievalActionImpl extends IPosAction { ...@@ -137,15 +147,15 @@ public class RetrievalActionImpl extends IPosAction {
* @param response * @param response
* @param originalActivity * @param originalActivity
*/ */
private void displayRetrievalResult(Context context, HywebPosResponse response, Activity originalActivity) { private void displayRetrievalResult(Context context, RetrievalRespose response, Activity originalActivity) {
if (PayStatusCode.withException(response.getSTATUS())) { if (HywebActionStatusCode.withException(response.getSTATUS())) {
super.onPosException(new Exception(response.getSTATUS())); super.onPosException(new Exception(response.getSTATUS()));
} else { } else {
super.onPosSuccess(context,response,originalActivity); super.onPosSuccess(context, response, originalActivity);
} }
} }
private RequestBody getPosMatterSaleRequest(SaleRespose response) { private RequestBody getPosMatterSaleRequest(RetrievalRespose response) {
PosMatter posMatter = new PosMatter(); PosMatter posMatter = new PosMatter();
posMatter.setOrderId(mOrderId); posMatter.setOrderId(mOrderId);
...@@ -160,21 +170,44 @@ public class RetrievalActionImpl extends IPosAction { ...@@ -160,21 +170,44 @@ public class RetrievalActionImpl extends IPosAction {
return requestBody; return requestBody;
} }
private RequestBody getPosMatterRefundRequest(RefundRespose response) { private RequestBody getPosMatterRefundRequest(RetrievalRespose response) {
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(response)); PosMatter posMatter = new PosMatter();
String json = GsonUtils.GsonString(response); posMatter.setOrderId(mOrderId);
posMatter.setPayId(response.getTXN_ID());
posMatter.setContent(GsonUtils.GsonString(response));
posMatter.setStatus(getPosMatterStatus(response.getSTATUS()));
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(posMatter));
String json = GsonUtils.GsonString(posMatter);
return requestBody; return requestBody;
} }
private RequestBody getPosMatterVoidRequest(VoidRespose response) { private RequestBody getPosMatterVoidRequest(RetrievalRespose response) {
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(response)); PosMatter posMatter = new PosMatter();
String json = GsonUtils.GsonString(response); posMatter.setOrderId(mOrderId);
posMatter.setPayId(response.getTXN_ID());
posMatter.setContent(GsonUtils.GsonString(response));
if (response.getTXN_STATUS().equals(TransactionStatusCode.TXN_STATUS_V)) {
//TXN_STATUS:V 訂單已取消
posMatter.setStatus(getPosMatterStatus(response.getSTATUS()));
} else {
posMatter.setStatus(getPosMatterStatus(HywebActionStatusCode.PAY_STATUS_99));
}
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(posMatter));
String json = GsonUtils.GsonString(posMatter);
return requestBody; return requestBody;
} }
private RequestBody getPosMatterTipsRequest(AdjustTipRespose response) { private RequestBody getPosMatterTipsRequest(RetrievalRespose response) {
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(response));
String json = GsonUtils.GsonString(response); PosMatter posMatter = new PosMatter();
posMatter.setOrderId(mOrderId);
posMatter.setTipsPrice(response.getTIPS());
posMatter.setContent(GsonUtils.GsonString(response));
posMatter.setStatus(getPosMatterStatus(response.getSTATUS()));
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(posMatter));
String json = GsonUtils.GsonString(posMatter);
return requestBody; return requestBody;
} }
......
...@@ -18,6 +18,7 @@ import com.gingersoft.gsa.cloud.order.billItem.BillItem; ...@@ -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.bean.PayMethod;
import com.gingersoft.gsa.cloud.pay.contract.PayExceptionCode; import com.gingersoft.gsa.cloud.pay.contract.PayExceptionCode;
import com.gingersoft.gsa.cloud.pay.pos.IPosAction; 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.PosAction;
import com.gingersoft.gsa.cloud.pay.pos.bean.PosMatter; 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.bg.GetTxnIdRequest;
...@@ -25,7 +26,7 @@ import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.SaleRequest; ...@@ -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.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.HywebPosResponse;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.SaleRespose; 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.gingersoft.gsa.cloud.pay.widget.StatusLoadingDialog;
import com.jess.arms.mvp.IView; import com.jess.arms.mvp.IView;
import com.jess.arms.utils.RxLifecycleUtils; import com.jess.arms.utils.RxLifecycleUtils;
...@@ -47,7 +48,7 @@ import okhttp3.RequestBody; ...@@ -47,7 +48,7 @@ import okhttp3.RequestBody;
* @更新時間: 2020-12-26 10:38 * @更新時間: 2020-12-26 10:38
* @描述: * @描述:
*/ */
public class SaleActionImpl extends IPosAction { public class SaleActionImpl extends IPosAction<SaleRespose> {
private SaleRequest mSaleRequest; private SaleRequest mSaleRequest;
private GetTxnIdRequest mTxnIdRequest; private GetTxnIdRequest mTxnIdRequest;
...@@ -58,7 +59,7 @@ public class SaleActionImpl extends IPosAction { ...@@ -58,7 +59,7 @@ public class SaleActionImpl extends IPosAction {
private List<BillItem> mBillItemList; private List<BillItem> mBillItemList;
private List<PayMethod> mPayMethodList; 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); super(context, iView, action, showLoading);
this.mSaleRequest = saleRequest; this.mSaleRequest = saleRequest;
this.mTxnIdRequest = getTxnIdRequest; this.mTxnIdRequest = getTxnIdRequest;
...@@ -66,6 +67,7 @@ public class SaleActionImpl extends IPosAction { ...@@ -66,6 +67,7 @@ public class SaleActionImpl extends IPosAction {
this.mMealOrderPayRequest = mealOrderPayRequest; this.mMealOrderPayRequest = mealOrderPayRequest;
this.mBillItemList = billItemList; this.mBillItemList = billItemList;
this.mPayMethodList = payMethodList; this.mPayMethodList = payMethodList;
this.mOnPosActionListener = onPosActionListener;
if (mStatusLoadingDialog != null) { if (mStatusLoadingDialog != null) {
mStatusLoadingDialog.setOnLoadStautsListener(new StatusLoadingDialog.OnLoadStautsListener() { mStatusLoadingDialog.setOnLoadStautsListener(new StatusLoadingDialog.OnLoadStautsListener() {
...@@ -83,7 +85,7 @@ public class SaleActionImpl extends IPosAction { ...@@ -83,7 +85,7 @@ public class SaleActionImpl extends IPosAction {
} }
@Override @Override
protected void onBeforeActionPOS() { protected void onPosActionBefore() {
mTxnIdRequest.setContent(mMealOrderPayRequest.toString()); mTxnIdRequest.setContent(mMealOrderPayRequest.toString());
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(mTxnIdRequest)); RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(mTxnIdRequest));
...@@ -109,7 +111,7 @@ public class SaleActionImpl extends IPosAction { ...@@ -109,7 +111,7 @@ public class SaleActionImpl extends IPosAction {
if (mSaleRequest != null) { if (mSaleRequest != null) {
mSaleRequest.setTXN_ID(mTxnIdResponse.getTxnId()); mSaleRequest.setTXN_ID(mTxnIdResponse.getTxnId());
//調起N5支付 936E4F01A0A5473C971503433F78027E //調起N5支付 936E4F01A0A5473C971503433F78027E
onActionToPOS(GsonUtils.GsonString(mSaleRequest)); onPosToAction(GsonUtils.GsonString(mSaleRequest));
// canCelLoadingDialog(); // canCelLoadingDialog();
} else { } else {
onBeforeActionPosError(new Exception(error + PayExceptionCode.sale_401)); onBeforeActionPosError(new Exception(error + PayExceptionCode.sale_401));
...@@ -147,9 +149,9 @@ public class SaleActionImpl extends IPosAction { ...@@ -147,9 +149,9 @@ public class SaleActionImpl extends IPosAction {
* @param originalActivity 原來跳轉到pos的支付頁 * @param originalActivity 原來跳轉到pos的支付頁
*/ */
@Override @Override
public void onPosSuccess(Context context, HywebPosResponse response, Activity originalActivity) { public void onPosSuccess(Context context, SaleRespose response, Activity originalActivity) {
//1、更新上傳支付狀態 //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(RxSchedulerUtils._io_main_o())
.compose(RxLifecycleUtils.bindToLifecycle(mView)) .compose(RxLifecycleUtils.bindToLifecycle(mView))
.subscribe(new Observer<String>() { .subscribe(new Observer<String>() {
...@@ -165,11 +167,11 @@ public class SaleActionImpl extends IPosAction { ...@@ -165,11 +167,11 @@ public class SaleActionImpl extends IPosAction {
if (!TextUtils.isEmpty(result)) { if (!TextUtils.isEmpty(result)) {
BaseResult baseResult = GsonUtils.GsonToBean(result, BaseResult.class); BaseResult baseResult = GsonUtils.GsonToBean(result, BaseResult.class);
if (baseResult != null) { if (baseResult != null) {
if (baseResult.isSuccess() && baseResult.getData() != null) { if (baseResult.isSuccess()) {
onUpdateStatusSuccess(response); onUpdateStatusSuccess(response);
startPaymentDetailActivity(context, response); startPaymentDetailActivity(context, response);
} else { } else {
onUpdateStatusError(new Exception(mPosAction.getCallbackExceptionText()+ "["+baseResult.getErrMsg()+"]")); onUpdateStatusError(new Exception(mPosAction.getCallbackExceptionText() + "[" + baseResult.getErrMsg() + "]"));
} }
} else { } else {
onUpdateStatusError(new Exception(mPosAction.getCallbackExceptionText() + PayExceptionCode.sale_413)); onUpdateStatusError(new Exception(mPosAction.getCallbackExceptionText() + PayExceptionCode.sale_413));
...@@ -199,8 +201,8 @@ public class SaleActionImpl extends IPosAction { ...@@ -199,8 +201,8 @@ public class SaleActionImpl extends IPosAction {
* @param response * @param response
* @param originalActivity * @param originalActivity
*/ */
private void displayPaymentResult(Context context, HywebPosResponse response, Activity originalActivity) { private void displayPaymentResult(Context context, SaleRespose response, Activity originalActivity) {
if (PayStatusCode.withException(response.getSTATUS())) { if (HywebActionStatusCode.withException(response.getSTATUS())) {
super.onPosException(new Exception(response.getSTATUS())); super.onPosException(new Exception(response.getSTATUS()));
} else { } else {
super.onPosSuccess(context, response, originalActivity); super.onPosSuccess(context, response, originalActivity);
......
...@@ -8,6 +8,7 @@ import com.gingersoft.gsa.cloud.common.utils.okhttpUtils.OkHttp3Utils; ...@@ -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.IPosAction;
import com.gingersoft.gsa.cloud.pay.pos.PosAction; 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.HywebPosResponse;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.SettlementRespose;
import com.jess.arms.mvp.IView; import com.jess.arms.mvp.IView;
import com.jess.arms.utils.RxLifecycleUtils; import com.jess.arms.utils.RxLifecycleUtils;
import com.xuexiang.rxutil2.rxjava.RxSchedulerUtils; import com.xuexiang.rxutil2.rxjava.RxSchedulerUtils;
...@@ -25,7 +26,7 @@ import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber; ...@@ -25,7 +26,7 @@ import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber;
* @更新時間: 2020-12-26 10:38 * @更新時間: 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) { public SettlementActionImpl(Context context, IView iView, PosAction action, boolean showLoading) {
...@@ -33,11 +34,11 @@ public class SettlementActionImpl extends IPosAction { ...@@ -33,11 +34,11 @@ public class SettlementActionImpl extends IPosAction {
} }
@Override @Override
protected void onBeforeActionPOS() { protected void onPosActionBefore() {
} }
@Override @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 ...@@ -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.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.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.AdjustTipRespose;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.HywebPosResponse; import com.gingersoft.gsa.cloud.pay.pos.hywebpos.constant.HywebActionStatusCode;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.constant.PayStatusCode;
import com.jess.arms.integration.AppManager;
import com.jess.arms.mvp.IView; import com.jess.arms.mvp.IView;
import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.RxLifecycleUtils; import com.jess.arms.utils.RxLifecycleUtils;
import com.xuexiang.rxutil2.rxjava.RxSchedulerUtils; import com.xuexiang.rxutil2.rxjava.RxSchedulerUtils;
...@@ -36,7 +33,7 @@ import okhttp3.RequestBody; ...@@ -36,7 +33,7 @@ import okhttp3.RequestBody;
* @更新時間: 2020-12-26 10:38 * @更新時間: 2020-12-26 10:38
* @描述: * @描述:
*/ */
public class TipsActionImpl extends IPosAction { public class TipsActionImpl extends IPosAction<AdjustTipRespose> {
private AdjustTipRequest mAdjustTipRequest; private AdjustTipRequest mAdjustTipRequest;
...@@ -52,7 +49,7 @@ public class TipsActionImpl extends IPosAction { ...@@ -52,7 +49,7 @@ public class TipsActionImpl extends IPosAction {
} }
@Override @Override
protected void onBeforeActionPOS() { protected void onPosActionBefore() {
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(mTxnIdRequest)); RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(mTxnIdRequest));
String json = GsonUtils.GsonString(mTxnIdRequest); String json = GsonUtils.GsonString(mTxnIdRequest);
...@@ -77,7 +74,7 @@ public class TipsActionImpl extends IPosAction { ...@@ -77,7 +74,7 @@ public class TipsActionImpl extends IPosAction {
if (mAdjustTipRequest != null) { if (mAdjustTipRequest != null) {
mAdjustTipRequest.setTXN_ID(mTxnIdResponse.getTipTxnId()); mAdjustTipRequest.setTXN_ID(mTxnIdResponse.getTipTxnId());
//調起N5補小費 //調起N5補小費
onActionToPOS(GsonUtils.GsonString(mAdjustTipRequest)); onPosToAction(GsonUtils.GsonString(mAdjustTipRequest));
// canCelLoadingDialog(); // canCelLoadingDialog();
} else { } else {
onBeforeActionPosError(new Exception(error + baseResult.getErrMsg())); onBeforeActionPosError(new Exception(error + baseResult.getErrMsg()));
...@@ -119,9 +116,9 @@ public class TipsActionImpl extends IPosAction { ...@@ -119,9 +116,9 @@ public class TipsActionImpl extends IPosAction {
* @param originalActivity * @param originalActivity
*/ */
@Override @Override
public void onPosSuccess(Context context, HywebPosResponse response, Activity originalActivity) { public void onPosSuccess(Context context, AdjustTipRespose response, Activity originalActivity) {
//1、更新上傳小費狀態 //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(RxSchedulerUtils._io_main_o())
.compose(RxLifecycleUtils.bindToLifecycle(mView)) .compose(RxLifecycleUtils.bindToLifecycle(mView))
.subscribe(new Observer<String>() { .subscribe(new Observer<String>() {
...@@ -170,8 +167,8 @@ public class TipsActionImpl extends IPosAction { ...@@ -170,8 +167,8 @@ public class TipsActionImpl extends IPosAction {
* @param response * @param response
* @param originalActivity * @param originalActivity
*/ */
private void displayTipsResult(Context context, HywebPosResponse response, Activity originalActivity) { private void displayTipsResult(Context context, AdjustTipRespose response, Activity originalActivity) {
if (PayStatusCode.withException(response.getSTATUS())) { if (HywebActionStatusCode.withException(response.getSTATUS())) {
super.onPosException(new Exception(response.getSTATUS())); super.onPosException(new Exception(response.getSTATUS()));
} else { } else {
super.onPosSuccess(context,response,originalActivity); super.onPosSuccess(context,response,originalActivity);
...@@ -183,7 +180,7 @@ public class TipsActionImpl extends IPosAction { ...@@ -183,7 +180,7 @@ public class TipsActionImpl extends IPosAction {
PosMatter posMatter = new PosMatter(); PosMatter posMatter = new PosMatter();
posMatter.setOrderId(mTxnIdRequest.getOrderId()); posMatter.setOrderId(mTxnIdRequest.getOrderId());
posMatter.setTipsPrice(response.getTIPS()); posMatter.setTipsPrice(response.getTIPS());
// posMatter.setPayId(response.getTXN_ID()); posMatter.setPayId(response.getTXN_ID());
posMatter.setContent(GsonUtils.GsonString(response)); posMatter.setContent(GsonUtils.GsonString(response));
posMatter.setStatus(getPosMatterStatus(response.getSTATUS())); posMatter.setStatus(getPosMatterStatus(response.getSTATUS()));
......
...@@ -16,13 +16,9 @@ import com.gingersoft.gsa.cloud.pay.pos.bean.PosMatter; ...@@ -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.bg.GetTxnIdRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.VoidRequest; 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.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.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.mvp.IView; import com.jess.arms.mvp.IView;
import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.RxLifecycleUtils; import com.jess.arms.utils.RxLifecycleUtils;
import com.xuexiang.rxutil2.rxjava.RxSchedulerUtils; import com.xuexiang.rxutil2.rxjava.RxSchedulerUtils;
...@@ -37,7 +33,7 @@ import okhttp3.RequestBody; ...@@ -37,7 +33,7 @@ import okhttp3.RequestBody;
* @更新時間: 2020-12-26 10:38 * @更新時間: 2020-12-26 10:38
* @描述: * @描述:
*/ */
public class VoidActionImpl extends IPosAction { public class VoidActionImpl extends IPosAction<VoidRespose> {
private VoidRequest mVoidRequest; private VoidRequest mVoidRequest;
...@@ -52,7 +48,7 @@ public class VoidActionImpl extends IPosAction { ...@@ -52,7 +48,7 @@ public class VoidActionImpl extends IPosAction {
} }
@Override @Override
protected void onBeforeActionPOS() { protected void onPosActionBefore() {
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(mTxnIdRequest)); RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(mTxnIdRequest));
String json = GsonUtils.GsonString(mTxnIdRequest); String json = GsonUtils.GsonString(mTxnIdRequest);
...@@ -76,7 +72,7 @@ public class VoidActionImpl extends IPosAction { ...@@ -76,7 +72,7 @@ public class VoidActionImpl extends IPosAction {
if (mVoidRequest != null) { if (mVoidRequest != null) {
mVoidRequest.setTXN_ID(mTxnIdResponse.getCancelTxnId()); mVoidRequest.setTXN_ID(mTxnIdResponse.getCancelTxnId());
//調起N5取消訂單 //調起N5取消訂單
onActionToPOS(GsonUtils.GsonString(mVoidRequest)); onPosToAction(GsonUtils.GsonString(mVoidRequest));
// canCelLoadingDialog(); // canCelLoadingDialog();
} else { } else {
onBeforeActionPosError(new Exception(error + PayExceptionCode.void_801)); onBeforeActionPosError(new Exception(error + PayExceptionCode.void_801));
...@@ -116,9 +112,9 @@ public class VoidActionImpl extends IPosAction { ...@@ -116,9 +112,9 @@ public class VoidActionImpl extends IPosAction {
* @param originalActivity * @param originalActivity
*/ */
@Override @Override
public void onPosSuccess(Context context, HywebPosResponse response, Activity originalActivity) { public void onPosSuccess(Context context, VoidRespose response, Activity originalActivity) {
//1、更新上傳取消狀態 //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(RxSchedulerUtils._io_main_o())
.compose(RxLifecycleUtils.bindToLifecycle(mView)) .compose(RxLifecycleUtils.bindToLifecycle(mView))
.subscribe(new Observer<String>() { .subscribe(new Observer<String>() {
...@@ -134,7 +130,7 @@ public class VoidActionImpl extends IPosAction { ...@@ -134,7 +130,7 @@ public class VoidActionImpl extends IPosAction {
if (!TextUtils.isEmpty(result)) { if (!TextUtils.isEmpty(result)) {
BaseResult baseResult = GsonUtils.GsonToBean(result, BaseResult.class); BaseResult baseResult = GsonUtils.GsonToBean(result, BaseResult.class);
if (baseResult != null) { if (baseResult != null) {
if (baseResult.isSuccess() && baseResult.getData() != null) { if (baseResult.isSuccess()) {
onUpdateStatusSuccess(response); onUpdateStatusSuccess(response);
} else { } else {
onUpdateStatusError(new Exception(mPosAction.getCallbackExceptionText() + baseResult.getErrMsg())); onUpdateStatusError(new Exception(mPosAction.getCallbackExceptionText() + baseResult.getErrMsg()));
...@@ -165,8 +161,8 @@ public class VoidActionImpl extends IPosAction { ...@@ -165,8 +161,8 @@ public class VoidActionImpl extends IPosAction {
* @param response * @param response
* @param originalActivity * @param originalActivity
*/ */
private void displayVoidResult(Context context, HywebPosResponse response, Activity originalActivity) { private void displayVoidResult(Context context, VoidRespose response, Activity originalActivity) {
if (PayStatusCode.withException(response.getSTATUS())) { if (HywebActionStatusCode.withException(response.getSTATUS())) {
super.onPosException(new Exception(response.getSTATUS())); super.onPosException(new Exception(response.getSTATUS()));
} else { } else {
super.onPosSuccess(context,response,originalActivity); super.onPosSuccess(context,response,originalActivity);
......
...@@ -59,11 +59,30 @@ public class PayMethodUtils { ...@@ -59,11 +59,30 @@ public class PayMethodUtils {
return -1; 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}; int[] payTypes = {PayTypeContract.PAY_METHOD_ID_1030, PayTypeContract.PAY_METHOD_ID_1031};
if (payMethod.getPayType() == payTypes[0] || payMethod.getPayType() == payTypes[1]) { if (payMethod.getPayType() == payTypes[0] || payMethod.getPayType() == payTypes[1]) {
return true; return true;
} }
return false; 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; ...@@ -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.delivery.OrderDetails;
import com.gingersoft.gsa.cloud.common.core.settlement.SettlementReport; 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.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.print.bean.PrintContent; import com.gingersoft.gsa.cloud.print.bean.PrintContent;
...@@ -21,9 +22,9 @@ public interface AdaptationContent { ...@@ -21,9 +22,9 @@ public interface AdaptationContent {
PrintContent adaptationPrintCleanMachineContent(SettlementReport settlementReport); 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; ...@@ -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.delivery.OrderDetails;
import com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager; 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.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.MoneyUtil;
import com.gingersoft.gsa.cloud.common.utils.other.TextUtil; import com.gingersoft.gsa.cloud.common.utils.other.TextUtil;
import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils; 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.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.order.order.DoshokuOrder; 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.PrintCleanMachineContent;
import com.gingersoft.gsa.cloud.print.bean.PrintContent; 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.PrintTakeawayCheckoutContent;
import com.gingersoft.gsa.cloud.print.bean.PrintTakeawayFormContent; 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.PrintBillItem;
import com.gingersoft.gsa.cloud.print.bean.base.PrintFoodItem; import com.gingersoft.gsa.cloud.print.bean.base.PrintFoodItem;
import com.gingersoft.gsa.cloud.print.bean.base.PrintPayTypeItem; import com.gingersoft.gsa.cloud.print.bean.base.PrintPayTypeItem;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import lombok.Data; import lombok.Data;
/** /**
* @author : bin * @author : bin
* @create date: 2020-12-01 * @create date: 2020-12-01
* @update date: 2020-12-01 * @update date: 2020-12-01
* @description:打印內容適配類,打印類拿到自身需要打印的實體信息 * @description:打印內容適配類,打印類只需要拿到自身需要的實體信息
*/ */
@Data @Data
public class PrintContentAdapter implements AdaptationContent { public class PrintContentAdapter implements AdaptationContent {
public PrintContentAdapter() { public PrintContentAdapter() {
} }
...@@ -62,18 +69,89 @@ public class PrintContentAdapter implements AdaptationContent { ...@@ -62,18 +69,89 @@ public class PrintContentAdapter implements AdaptationContent {
} }
@Override @Override
public PrintContent adaptationPrintSlipContent(DoshokuOrder doshokuOrder) { public PrintContent adaptationPrintSlipContent(DoshokuOrder doshokuOrder, TableBean.DataBean tableBean) {
return null; 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 @Override
public PrintContent adaptationServingPaperContent(DoshokuOrder doshokuOrder) { public PrintContent adaptationServingPaperContent(DoshokuOrder doshokuOrder, TableBean.DataBean tableBean) {
return null; 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 @Override
public PrintContent adaptationBillContent(DoshokuOrder doshokuOrder) { public PrintContent adaptationBillContent(DoshokuOrder doshokuOrder, TableBean.DataBean tableBean) {
return null; 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) { public PrintTakeawayFormContent getPrintTakeawayFormContent(OrderDetails.DataBean data, int type) {
......
...@@ -179,7 +179,7 @@ public class OrderPayView extends LinearLayout { ...@@ -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); int hywebPayMethodIndex = PayMethodUtils.hasHywebPayMethod(mBillMoneyList);
if (hywebPayMethodIndex != -1) { if (hywebPayMethodIndex != -1) {
//只允許存在一個hyweb支付 //只允許存在一個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