Commit 68af5eba by 宁斌

1、餐台模式支付后黑屏问题,2、账单管理页面调整

parent 036909d4
...@@ -166,7 +166,7 @@ class ComponentManager { ...@@ -166,7 +166,7 @@ class ComponentManager {
//异步调用,放到线程池中运行 //异步调用,放到线程池中运行
if (cc.isAsync()) { if (cc.isAsync()) {
if (CC.VERBOSE_LOG) { if (CC.VERBOSE_LOG) {
CC.verboseLog(callId, "put into thread pool"); CC.verboseLog(callId, "put into thread po ol");
} }
CC_THREAD_POOL.submit(processor); CC_THREAD_POOL.submit(processor);
//异步调用时此方法返回null,CCResult通过callback回调 //异步调用时此方法返回null,CCResult通过callback回调
......
...@@ -289,6 +289,7 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl ...@@ -289,6 +289,7 @@ 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(172, 163, 5, "N5清機", 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_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));
...@@ -371,6 +372,9 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl ...@@ -371,6 +372,9 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl
private void functionClick(String name, int status) { private void functionClick(String name, int status) {
switch (name) { switch (name) {
case "N5清機":
break;
case "餐檯模式": case "餐檯模式":
CC.obtainBuilder(ComponentName.COMPONENT_TABLE) CC.obtainBuilder(ComponentName.COMPONENT_TABLE)
.setActionName("showTableActivity") .setActionName("showTableActivity")
......
...@@ -7,6 +7,7 @@ import com.billy.cc.core.component.CCResult; ...@@ -7,6 +7,7 @@ import com.billy.cc.core.component.CCResult;
import com.billy.cc.core.component.CCUtil; import com.billy.cc.core.component.CCUtil;
import com.billy.cc.core.component.IComponent; import com.billy.cc.core.component.IComponent;
import com.gingersoft.gsa.cloud.component.ComponentName; import com.gingersoft.gsa.cloud.component.ComponentName;
import com.jess.arms.utils.ArmsUtils;
import com.joe.print.mvp.print.service.PrjService; import com.joe.print.mvp.print.service.PrjService;
import com.joe.print.mvp.ui.activity.PrintActivity; import com.joe.print.mvp.ui.activity.PrintActivity;
import com.joe.print.mvp.ui.activity.PrinterListActivity; import com.joe.print.mvp.ui.activity.PrinterListActivity;
...@@ -35,6 +36,9 @@ public class PrintComponent implements IComponent { ...@@ -35,6 +36,9 @@ public class PrintComponent implements IComponent {
public boolean onCall(CC cc) { public boolean onCall(CC cc) {
String actionName = cc.getActionName(); String actionName = cc.getActionName();
switch (actionName) { switch (actionName) {
case "killPrintActivity":
break;
case "showPrintActivity": case "showPrintActivity":
openActivity(cc); openActivity(cc);
break; break;
......
...@@ -73,53 +73,6 @@ public class PrintBill extends PrinterRoot<PrintBillContent> { ...@@ -73,53 +73,6 @@ public class PrintBill extends PrinterRoot<PrintBillContent> {
pritContent[i] = stringBuilder; pritContent[i] = stringBuilder;
} }
return pritContent; return pritContent;
// DoshokuOrder doshokuOrder = DoshokuOrder.getInstance();
// ShoppingCart shoppingCart = doshokuOrder.getShoppingCart();
//
// List<OrderDetail> foodList = shoppingCart.getOrderCommodityList();
// TableBean.DataBean tableBean = doshokuOrder.getOpenTableInfo();
//
// StringBuilder payInfo = new StringBuilder();
// for (PayMethod payMethod : doshokuOrder.getBillMoney()) {
// payInfo.append(payMethod.getPayName() + " ").append(payMethod.getPayMoney());
// }
//
// StringBuilder memberIntegerInfo = new StringBuilder();
// OrderDetails.DataBean data = getOrderMemberInfo();
// if (data.getAddPoints() != 0 || data.getOldPoints() != 0 || data.getAddPoints() != 0) {
// memberIntegerInfo.append(getPLable("本次積分:" + data.getAddPoints(), HTML_PRINT_GRAVITY_LEFT))
// .append(getPLable("結餘積分:" + data.getNowPoints(), HTML_PRINT_GRAVITY_LEFT))
// .append(getPLable("上次積分:" + data.getOldPoints(), HTML_PRINT_GRAVITY_LEFT));
// //名稱中間替換為*號
// if (data.getMEMBER_NAME() != null && data.getMEMBER_NAME().length() > 0) {
// memberIntegerInfo.append(getPLable("會員名稱:" + getReplaceAfter(data.getMEMBER_NAME()), HTML_PRINT_GRAVITY_LEFT));
// }
// if (data.getPHONE() != null && data.getPHONE().length() > 0) {
// memberIntegerInfo.append(getPLable("會員電話:" + getReplaceAfter(data.getPHONE()), HTML_PRINT_GRAVITY_LEFT));
// }
// }
//
// String stringBuilder = "<html><body>" +
// getHtmlPrintHeadInfo() +
// getHtmlPrintHeadOrderInfo(tableBean) +
// generateHtmlFoodInfo(foodList) +
// getHtmlBillInfo() +
// getWholeLine() +
// getPLable(payInfo.toString(), HTML_PRINT_GRAVITY_LEFT) +
// getWholeLine() +
// getPLable(memberIntegerInfo.toString(), HTML_PRINT_GRAVITY_LEFT);
//
// String integralQrCode = doshokuOrder.getIntegralQrcode();
// if (!TextUtils.isEmpty(integralQrCode) && (boolean) RestaurantExpandInfoUtils.getValue(ExpandConstant.ToPrintQRCode, false)) {
// stringBuilder += getPLable("請掃描二維碼", HTML_PRINT_GRAVITY_CENTER) +
// getHtmlQrCode(doshokuOrder.getIntegralQrcode()) +
// getPLable("《追加積分到個人賬戶》", HTML_PRINT_GRAVITY_CENTER);
// }
// stringBuilder += "</body></html>";
// String[] pritContent = new String[1];
// pritContent[0] = stringBuilder;
// return pritContent;
} }
private String getHtmlContent(PrinterDeviceBean deviceBean) { private String getHtmlContent(PrinterDeviceBean deviceBean) {
......
...@@ -14,6 +14,10 @@ import com.joe.print.R; ...@@ -14,6 +14,10 @@ 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;
import java.io.UnsupportedEncodingException;
import java.net.URL;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
...@@ -50,28 +54,18 @@ public class PrintQRCode extends PrinterRoot<PrintQRCodeContent> { ...@@ -50,28 +54,18 @@ public class PrintQRCode extends PrinterRoot<PrintQRCodeContent> {
if (mQRCodeBean == null) { if (mQRCodeBean == null) {
return new String[]{"<html><body></body></html>"}; return new String[]{"<html><body></body></html>"};
} }
//http://m.ricepon.com/member-web/qrcode/qrcode.html?WMP2&?arg={"type":2,"QR":"a7fbc0570c974287a5df7fc149348599"} String qrcode = null;
// String stringBuilder = "<html><body>" + try {
// getHtmlContent() + qrcode = URLEncoder.encode(mQRCodeBean.getPrintQrcode(),"UTF-8") ;
// "</body></html>"; } catch (UnsupportedEncodingException e) {
// int printCount = getPrintCount(mContext); e.printStackTrace();
// String[] pritContent = new String[printCount]; }
// for (int i = 0; i < printCount; i++) { String stringBuilder = "<html><body>" +
// pritContent[i] = stringBuilder; getHtmlContent(qrcode) +
"</body></html>";
// } int printCount = getPrintCount(mContext);
// baseContent = mQRCodeBean.getPrintQrcode(); String[] pritContent = new String[printCount];
return getPrintContent(baseContent + "http://m.ricepon.com/member-web/qrcode/qrcode.html?WMP2&arg={\"type\":2,\"QR\":\"a7fbc0570c974287a5df7fc149348599\"}"); for (int i = 0; i < printCount; i++) {
}
private String baseContent = "Thank you";
private String[] getPrintContent(String... qrcodes) {
String[] pritContent = new String[qrcodes.length];
for (int i = 0; i < qrcodes.length; i++) {
String stringBuilder = "<html><body>" +
getHtmlContent(qrcodes[i]) +
"</body></html>";
pritContent[i] = stringBuilder; pritContent[i] = stringBuilder;
} }
return pritContent; return pritContent;
......
...@@ -10,6 +10,7 @@ import com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails; ...@@ -10,6 +10,7 @@ import com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails;
import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils; import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils;
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.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.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
...@@ -77,22 +78,21 @@ public class PrintTest extends PrinterRoot { ...@@ -77,22 +78,21 @@ public class PrintTest extends PrinterRoot {
layout.addView(getTextView(mContext, "時間:" + TimeUtils.getCurrentDate(TimeUtils.DEFAULT_DATE_FORMAT), Gravity.LEFT, getDimensionPixelSize(mContext, R.dimen.dp_8))); layout.addView(getTextView(mContext, "時間:" + TimeUtils.getCurrentDate(TimeUtils.DEFAULT_DATE_FORMAT), Gravity.LEFT, getDimensionPixelSize(mContext, R.dimen.dp_8)));
layout.addView(getTextLine(mContext, "項目")); layout.addView(getTextLine(mContext, "項目"));
List<OrderDetails.DataBean.PRODUCTNAMEBean> productnameBeans = new ArrayList<>(); List<PrintFoodItem> printFoodItemList = new ArrayList<>();
OrderDetails.DataBean.PRODUCTNAMEBean productnameBean = new OrderDetails.DataBean.PRODUCTNAMEBean(); PrintFoodItem productnameBean = new PrintFoodItem();
productnameBean.setPRODUCT_NAME("測試食品"); productnameBean.setName("測試食品");
productnameBean.setNum("1"); productnameBean.setNum(1);
productnameBean.setPRICE("10.0"); productnameBean.setPrice(10.0);
List<OrderDetails.DataBean.PRODUCTNAMEBean.ChildBeanX> childBeanXES = new ArrayList<>(); PrintFoodItem productnameBean2 = new PrintFoodItem();
OrderDetails.DataBean.PRODUCTNAMEBean.ChildBeanX childBeanX = new OrderDetails.DataBean.PRODUCTNAMEBean.ChildBeanX(); productnameBean.setName("測試食品2");
childBeanX.setPRODUCT_NAME("測試子食品"); productnameBean.setNum(2);
childBeanX.setNum("1"); productnameBean.setPrice(30.0);
childBeanX.setPRICE("10.0");
childBeanXES.add(childBeanX);
productnameBean.setChild(childBeanXES);
productnameBeans.add(productnameBean);
layout.addView(getDiningFoodList(mContext, OrderDetail.productMameBeanToOrderDetail(0, productnameBeans), deviceBean, 0, true)); printFoodItemList.add(productnameBean);
printFoodItemList.add(productnameBean2);
layout.addView(getDiningFoodList(mContext,printFoodItemList, deviceBean, 0, true));
layout.addView(getTextLine(mContext, "Powered by Gingersoft")); layout.addView(getTextLine(mContext, "Powered by Gingersoft"));
// layout.addView(getTextView(mContext, "(USB)", Gravity.CENTER_HORIZONTAL, getDimensionPixelSize(mContext, R.dimen.dp_8))); // layout.addView(getTextView(mContext, "(USB)", Gravity.CENTER_HORIZONTAL, getDimensionPixelSize(mContext, R.dimen.dp_8)));
......
...@@ -256,6 +256,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -256,6 +256,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
//開錢箱 //開錢箱
PrintExecutor executor = new PrintExecutor(defaultPrint); PrintExecutor executor = new PrintExecutor(defaultPrint);
executor.doPrinterRequestAsync(new OpenCashBoxMaker()); executor.doPrinterRequestAsync(new OpenCashBoxMaker());
CC.sendCCResult(callId, CCResult.success());
} else { } else {
if (isShowDialog) { if (isShowDialog) {
initDialog(); initDialog();
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
<activity <activity
android:name=".mvp.ui.activity.TableActivity" android:name=".mvp.ui.activity.TableActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name=".mvp.ui.activity.MealStandActivity" android:name=".mvp.ui.activity.MealStandActivity"
......
...@@ -20,7 +20,9 @@ ...@@ -20,7 +20,9 @@
android:name=".mvp.ui.activity.OrderPayActivity" android:name=".mvp.ui.activity.OrderPayActivity"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity android:name="com.gingersoft.gsa.cloud.table.mvp.ui.activity.SoldoutCtrlActivity" /> <activity android:name="com.gingersoft.gsa.cloud.table.mvp.ui.activity.SoldoutCtrlActivity" />
<activity android:name="com.gingersoft.gsa.cloud.table.mvp.ui.activity.TableActivity">
<activity android:name="com.gingersoft.gsa.cloud.table.mvp.ui.activity.TableActivity"
android:launchMode="singleTop">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.VIEW" /> <action android:name="android.intent.action.VIEW" />
......
package com.gingersoft.gsa.cloud.table.mvp.model.table.action; package com.gingersoft.gsa.cloud.table.mvp.action.table;
import android.app.Activity; import android.app.Activity;
......
package com.gingersoft.gsa.cloud.table.mvp.model.table.action; package com.gingersoft.gsa.cloud.table.mvp.action.table;
import android.app.Activity; import android.app.Activity;
...@@ -12,6 +12,7 @@ import com.gingersoft.gsa.cloud.order.order.DoshokuOrder; ...@@ -12,6 +12,7 @@ import com.gingersoft.gsa.cloud.order.order.DoshokuOrder;
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;
import com.gingersoft.gsa.cloud.table.mvp.action.OnNetworkCallbackListener;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.response.BaseOrderResponse; import com.gingersoft.gsa.cloud.table.mvp.model.bean.response.BaseOrderResponse;
import com.gingersoft.gsa.cloud.table.mvp.model.utils.OrderAssemblyUtil; import com.gingersoft.gsa.cloud.table.mvp.model.utils.OrderAssemblyUtil;
import com.gingersoft.gsa.cloud.table.mvp.presenter.TablePresenter; import com.gingersoft.gsa.cloud.table.mvp.presenter.TablePresenter;
......
package com.gingersoft.gsa.cloud.table.mvp.model.table.action; package com.gingersoft.gsa.cloud.table.mvp.action.table;
import android.app.Activity; import android.app.Activity;
import android.text.TextUtils; import android.text.TextUtils;
import com.billy.cc.core.component.CC; import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.app.GsaCloudApplication; import com.gingersoft.gsa.cloud.app.GsaCloudApplication;
import com.gingersoft.gsa.cloud.common.bean.BaseResult; import com.gingersoft.gsa.cloud.common.bean.BaseResult;
...@@ -14,6 +15,7 @@ import com.gingersoft.gsa.cloud.common.core.user.UserContext; ...@@ -14,6 +15,7 @@ import com.gingersoft.gsa.cloud.common.core.user.UserContext;
import com.gingersoft.gsa.cloud.common.utils.JsonUtils; import com.gingersoft.gsa.cloud.common.utils.JsonUtils;
import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils; import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.component.ComponentName; import com.gingersoft.gsa.cloud.component.ComponentName;
import com.gingersoft.gsa.cloud.table.mvp.action.OnNetworkCallbackListener;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.FoodSummary; import com.gingersoft.gsa.cloud.table.mvp.model.bean.FoodSummary;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.response.PrintQRCodeResponse; import com.gingersoft.gsa.cloud.table.mvp.model.bean.response.PrintQRCodeResponse;
import com.gingersoft.gsa.cloud.table.mvp.presenter.TablePresenter; import com.gingersoft.gsa.cloud.table.mvp.presenter.TablePresenter;
...@@ -21,6 +23,7 @@ import com.gingersoft.gsa.cloud.table.mvp.ui.widget.SkyOrderDialog; ...@@ -21,6 +23,7 @@ import com.gingersoft.gsa.cloud.table.mvp.ui.widget.SkyOrderDialog;
import com.gingersoft.gsa.cloud.ui.widget.dialog.BaseRetryDialog; import com.gingersoft.gsa.cloud.ui.widget.dialog.BaseRetryDialog;
import com.gingersoft.gsa.cloud.ui.widget.dialog.DialogAnimationListener; import com.gingersoft.gsa.cloud.ui.widget.dialog.DialogAnimationListener;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -125,7 +128,11 @@ public class PrintSkyorderAction extends TableAction { ...@@ -125,7 +128,11 @@ public class PrintSkyorderAction extends TableAction {
if (result.isSuccess()) { if (result.isSuccess()) {
printSkyorderSuccess(); printSkyorderSuccess();
} else { } else {
ArmsUtils.makeText(mContext, "打印失敗"); if (!TextUtils.isEmpty(result.getErrorMessage())) {
ArmsUtils.makeText(mContext, result.getErrorMessage());
} else {
ArmsUtils.makeText(mContext, "打印失敗");
}
} }
mSkyOrderDialog.dismiss(); mSkyOrderDialog.dismiss();
}); });
......
package com.gingersoft.gsa.cloud.table.mvp.model.table.action; package com.gingersoft.gsa.cloud.table.mvp.action.table;
import android.app.Activity; import android.app.Activity;
......
package com.gingersoft.gsa.cloud.table.mvp.model.table.action; package com.gingersoft.gsa.cloud.table.mvp.action.table;
import android.app.Activity; import android.app.Activity;
......
package com.gingersoft.gsa.cloud.table.mvp.model.table.action; package com.gingersoft.gsa.cloud.table.mvp.action.table;
import android.app.Activity; import android.app.Activity;
......
package com.gingersoft.gsa.cloud.table.mvp.model.table.action; package com.gingersoft.gsa.cloud.table.mvp.action.table;
import android.app.Activity; import android.app.Activity;
......
...@@ -3,7 +3,7 @@ package com.gingersoft.gsa.cloud.table.mvp.contract; ...@@ -3,7 +3,7 @@ package com.gingersoft.gsa.cloud.table.mvp.contract;
import com.gingersoft.gsa.cloud.common.bean.BaseResult; import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.core.table.TableBean; import com.gingersoft.gsa.cloud.common.core.table.TableBean;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.response.BaseOrderResponse; import com.gingersoft.gsa.cloud.table.mvp.model.bean.response.BaseOrderResponse;
import com.gingersoft.gsa.cloud.table.mvp.model.table.action.TableAction; import com.gingersoft.gsa.cloud.table.mvp.action.table.TableAction;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.AllTableFragment; import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.AllTableFragment;
import com.gingersoft.gsa.cloud.database.bean.Food; import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.bean.Modifier; import com.gingersoft.gsa.cloud.database.bean.Modifier;
......
...@@ -141,6 +141,15 @@ public class OrderManagerResponse implements Serializable { ...@@ -141,6 +141,15 @@ public class OrderManagerResponse implements Serializable {
private String refundTxnId; private String refundTxnId;
/** /**
* 清機ID,已清機則不為null
*/
private Integer restaurantOperationId;
/**
* 事項狀態 0:異常未處理,1: 成功
*/
private int matterStatus = 1;
/**
* 設備ID,用來區分每台N5設備支付的訂單 * 設備ID,用來區分每台N5設備支付的訂單
*/ */
private String deviceId; private String deviceId;
...@@ -163,6 +172,10 @@ public class OrderManagerResponse implements Serializable { ...@@ -163,6 +172,10 @@ public class OrderManagerResponse implements Serializable {
public static final byte ORDER_TYPE_TAKEAWAY = 2; public static final byte ORDER_TYPE_TAKEAWAY = 2;
public static final byte ORDER_TYPE_SELFCOLLECTION = 7; public static final byte ORDER_TYPE_SELFCOLLECTION = 7;
/**
* 是否選中
*/
private boolean checked = false;
public boolean withHywebPay() { public boolean withHywebPay() {
if (!TextUtils.isEmpty(payTxnId) || !TextUtils.isEmpty(cancelTxnId) || !TextUtils.isEmpty(refundTxnId)) { if (!TextUtils.isEmpty(payTxnId) || !TextUtils.isEmpty(cancelTxnId) || !TextUtils.isEmpty(refundTxnId)) {
......
...@@ -35,14 +35,14 @@ import com.gingersoft.gsa.cloud.table.mvp.contract.TableContract; ...@@ -35,14 +35,14 @@ import com.gingersoft.gsa.cloud.table.mvp.contract.TableContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.FoodSummary; import com.gingersoft.gsa.cloud.table.mvp.model.bean.FoodSummary;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.response.BaseOrderResponse; import com.gingersoft.gsa.cloud.table.mvp.model.bean.response.BaseOrderResponse;
import com.gingersoft.gsa.cloud.table.mvp.model.constant.SkyOrderConstant; import com.gingersoft.gsa.cloud.table.mvp.model.constant.SkyOrderConstant;
import com.gingersoft.gsa.cloud.table.mvp.model.table.action.MoveTableAction; import com.gingersoft.gsa.cloud.table.mvp.action.table.MoveTableAction;
import com.gingersoft.gsa.cloud.table.mvp.model.table.action.OnNetworkCallbackListener; import com.gingersoft.gsa.cloud.table.mvp.action.OnNetworkCallbackListener;
import com.gingersoft.gsa.cloud.table.mvp.model.table.action.PrintServingPaperAction; import com.gingersoft.gsa.cloud.table.mvp.action.table.PrintServingPaperAction;
import com.gingersoft.gsa.cloud.table.mvp.model.table.action.PrintSkyorderAction; import com.gingersoft.gsa.cloud.table.mvp.action.table.PrintSkyorderAction;
import com.gingersoft.gsa.cloud.table.mvp.model.table.action.ResetSkyorderAction; import com.gingersoft.gsa.cloud.table.mvp.action.table.ResetSkyorderAction;
import com.gingersoft.gsa.cloud.table.mvp.model.table.action.ResetTableAction; import com.gingersoft.gsa.cloud.table.mvp.action.table.ResetTableAction;
import com.gingersoft.gsa.cloud.table.mvp.model.table.action.SplitTableAction; import com.gingersoft.gsa.cloud.table.mvp.action.table.SplitTableAction;
import com.gingersoft.gsa.cloud.table.mvp.model.table.action.TableAction; import com.gingersoft.gsa.cloud.table.mvp.action.table.TableAction;
import com.gingersoft.gsa.cloud.table.mvp.model.utils.OrderAssemblyUtil; import com.gingersoft.gsa.cloud.table.mvp.model.utils.OrderAssemblyUtil;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.TableActivity; import com.gingersoft.gsa.cloud.table.mvp.ui.activity.TableActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.BottomFunctionAdapter; import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.BottomFunctionAdapter;
......
...@@ -10,6 +10,7 @@ import com.billy.cc.core.component.CC; ...@@ -10,6 +10,7 @@ import com.billy.cc.core.component.CC;
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.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;
import com.gingersoft.gsa.cloud.component.ComponentName; import com.gingersoft.gsa.cloud.component.ComponentName;
...@@ -481,6 +482,43 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All ...@@ -481,6 +482,43 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
doshokuOrder.setBillMoney(payMethodList); doshokuOrder.setBillMoney(payMethodList);
} }
if (orderDetailItem.withHywebPay()) {
if (AppDevices.isHywebPos()) {
PosPay.printStub(IActivity, mRootView, orderDetailItem.getPayTxnId(), new OnPosActionListener() {
@Override
public void onPosSuccess(HywebPosResponse response) {
printBill(doshokuOrder, dataBean);
}
@Override
public void onPosException(Exception e) {
}
@Override
public void onPosInvalid(String e) {
}
@Override
public void onUpdateStatusSuccess(HywebPosResponse response) {
}
@Override
public void onUpdateStatusError(Throwable e) {
}
});
} else {
printBill(doshokuOrder, dataBean);
}
} else {
printBill(doshokuOrder, dataBean);
}
}
private void printBill(DoshokuOrder doshokuOrder, TableBean.DataBean dataBean) {
PrintContent printContent = new PrintContentAdapter().adaptationBillContent(doshokuOrder, dataBean); PrintContent printContent = new PrintContentAdapter().adaptationBillContent(doshokuOrder, dataBean);
CC.obtainBuilder(ComponentName.COMPONENT_PRINT) CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
......
...@@ -16,15 +16,21 @@ import androidx.annotation.Nullable; ...@@ -16,15 +16,21 @@ import androidx.annotation.Nullable;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.billy.cc.core.component.CC; import com.billy.cc.core.component.CC;
import com.billy.cc.core.component.CCResult;
import com.billy.cc.core.component.IComponentCallback;
import com.gingersoft.gsa.cloud.common.constans.PrintConstans; import com.gingersoft.gsa.cloud.common.constans.PrintConstans;
import com.gingersoft.gsa.cloud.common.core.member.MemberInfo; import com.gingersoft.gsa.cloud.common.core.member.MemberInfo;
import com.gingersoft.gsa.cloud.common.core.table.TableBean; import com.gingersoft.gsa.cloud.common.core.table.TableBean;
import com.gingersoft.gsa.cloud.common.core.user.UserContext; import com.gingersoft.gsa.cloud.common.core.user.UserContext;
import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.utils.AppDevices; import com.gingersoft.gsa.cloud.common.utils.AppDevices;
import com.gingersoft.gsa.cloud.common.utils.BigDecimalUtils; import com.gingersoft.gsa.cloud.common.utils.BigDecimalUtils;
import com.gingersoft.gsa.cloud.common.utils.JsonUtils;
import com.gingersoft.gsa.cloud.common.utils.LanguageUtils; import com.gingersoft.gsa.cloud.common.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.common.utils.VibratorUtils; import com.gingersoft.gsa.cloud.common.utils.VibratorUtils;
import com.gingersoft.gsa.cloud.component.ComponentName; import com.gingersoft.gsa.cloud.component.ComponentName;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.database.utils.DiscountDaoUtils;
import com.gingersoft.gsa.cloud.order.bean.request.MealOrderPayRequest; import com.gingersoft.gsa.cloud.order.bean.request.MealOrderPayRequest;
import com.gingersoft.gsa.cloud.order.billItem.BillItem; import com.gingersoft.gsa.cloud.order.billItem.BillItem;
import com.gingersoft.gsa.cloud.order.order.DoshokuOrder; import com.gingersoft.gsa.cloud.order.order.DoshokuOrder;
...@@ -57,11 +63,16 @@ import com.jess.arms.utils.ArmsUtils; ...@@ -57,11 +63,16 @@ import com.jess.arms.utils.ArmsUtils;
import com.qmuiteam.qmui.alpha.QMUIAlphaButton; import com.qmuiteam.qmui.alpha.QMUIAlphaButton;
import com.qmuiteam.qmui.widget.dialog.QMUIDialog; import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
import com.xuexiang.rxutil2.rxjava.RxJavaUtils;
import com.xuexiang.rxutil2.rxjava.RxSchedulerUtils;
import org.simple.eventbus.EventBus; import org.simple.eventbus.EventBus;
import java.sql.Time;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Observer;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.ReentrantLock; import java.util.concurrent.locks.ReentrantLock;
import javax.inject.Inject; import javax.inject.Inject;
...@@ -69,6 +80,9 @@ import javax.inject.Inject; ...@@ -69,6 +80,9 @@ import javax.inject.Inject;
import butterknife.BindView; import butterknife.BindView;
import butterknife.OnClick; import butterknife.OnClick;
import butterknife.OnLongClick; import butterknife.OnLongClick;
import io.reactivex.Observable;
import io.reactivex.functions.Consumer;
import io.reactivex.schedulers.Schedulers;
import static com.jess.arms.utils.Preconditions.checkNotNull; import static com.jess.arms.utils.Preconditions.checkNotNull;
...@@ -444,28 +458,34 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements ...@@ -444,28 +458,34 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
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()
.callAsyncCallbackOnMainThread((cc, result) -> { .callAsyncCallbackOnMainThread(new IComponentCallback() {
printBill(); @Override
public void onResult(CC cc, CCResult result) {
LoganManager.w_code(TAG, "printOpenInstructionAndBill " + "是否成功:" + result.isSuccess());
mAppManager.killActivity("PrintActivity");
}
}); });
printBill();
} }
private void printBill() { private void printBill() {
//打印結賬單 //打印結賬單
PrintContent printContent = new PrintContentAdapter().adaptationBillContent(DoshokuOrder.getInstance(), DoshokuOrder.getInstance().getOpenTableInfo()); 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(new IComponentCallback() {
Log.e("error", "是否成功打印:" + result.isSuccess()); @Override
setResult(Activity.RESULT_OK, null); public void onResult(CC cc, CCResult result) {
killMyself(); LoganManager.w_code(TAG, "printBill " + "是否成功打印:" + result.isSuccess());
mAppManager.killActivity("PrintActivity");
mAppManager.killActivity(MealStandActivity.class);
mAppManager.killActivity(OrderContentActivity.class);
killMyself();
}
}); });
} }
...@@ -488,8 +508,6 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements ...@@ -488,8 +508,6 @@ 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());
...@@ -505,13 +523,13 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements ...@@ -505,13 +523,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_EPS); saleRequest.setPAYMENT_APP_ID(PayMethodConstant.PAY_TYPE_CC);
// } 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);
...@@ -548,7 +566,6 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements ...@@ -548,7 +566,6 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
@Override @Override
public void onUpdateStatusSuccess(SaleRespose response) { public void onUpdateStatusSuccess(SaleRespose response) {
if (HywebActionStatusCode.withSuccess(response.getSTATUS())) { if (HywebActionStatusCode.withSuccess(response.getSTATUS())) {
mPrintShowLoading = false;
paySuccess(); paySuccess();
} }
} }
......
...@@ -23,7 +23,6 @@ import androidx.viewpager.widget.ViewPager; ...@@ -23,7 +23,6 @@ import androidx.viewpager.widget.ViewPager;
import com.billy.cc.core.component.CC; import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.common.constans.GoldConstants; import com.gingersoft.gsa.cloud.common.constans.GoldConstants;
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.utils.log.LogUtil; import com.gingersoft.gsa.cloud.common.utils.log.LogUtil;
import com.gingersoft.gsa.cloud.component.ComponentName; import com.gingersoft.gsa.cloud.component.ComponentName;
import com.gingersoft.gsa.cloud.table.R; import com.gingersoft.gsa.cloud.table.R;
...@@ -32,8 +31,8 @@ import com.gingersoft.gsa.cloud.table.di.component.DaggerTableComponent; ...@@ -32,8 +31,8 @@ import com.gingersoft.gsa.cloud.table.di.component.DaggerTableComponent;
import com.gingersoft.gsa.cloud.table.mvp.contract.TableContract; import com.gingersoft.gsa.cloud.table.mvp.contract.TableContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.event.InitTableEvent; import com.gingersoft.gsa.cloud.table.mvp.model.bean.event.InitTableEvent;
import com.gingersoft.gsa.cloud.table.mvp.model.constant.TableActionConstant; import com.gingersoft.gsa.cloud.table.mvp.model.constant.TableActionConstant;
import com.gingersoft.gsa.cloud.table.mvp.model.table.action.PrintSkyorderAction; import com.gingersoft.gsa.cloud.table.mvp.action.table.PrintSkyorderAction;
import com.gingersoft.gsa.cloud.table.mvp.model.table.action.TableAction; import com.gingersoft.gsa.cloud.table.mvp.action.table.TableAction;
import com.gingersoft.gsa.cloud.table.mvp.presenter.TablePresenter; import com.gingersoft.gsa.cloud.table.mvp.presenter.TablePresenter;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.AllTableFragment; import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.AllTableFragment;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.InputTableFragment; import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.InputTableFragment;
......
...@@ -4,6 +4,10 @@ import android.content.Intent; ...@@ -4,6 +4,10 @@ import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.os.Message; import android.os.Message;
import android.view.View; import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
...@@ -57,16 +61,22 @@ public class OrderCenterActivity extends BaseFragmentActivity<OrderCenterPresent ...@@ -57,16 +61,22 @@ public class OrderCenterActivity extends BaseFragmentActivity<OrderCenterPresent
QMUITabSegment mTabSegment; QMUITabSegment mTabSegment;
@BindView(R2.id.contentViewPager) @BindView(R2.id.contentViewPager)
ViewPager mContentViewPager; ViewPager mContentViewPager;
@BindView(R2.id.ll_content)
LinearLayout ll_content;
@BindView(R2.id.ll_bottom)
LinearLayout ll_bottom;
private AllOrderFragment allOrderFragment, cancelOrderFragment, voidOrderFragment; private AllOrderFragment allOrderFragment, cancelOrderFragment, voidOrderFragment;
//當前顯示頁下標 //當前顯示頁下標
private int currentPageIndex = 0; private int currentPageIndex = 0;
//標題 //標題
// private String[] tabTitles = {"堂食", "外賣/自取"}; // private String[] tabTitles = {"已付款", "已取消"};
private String[] tabTitles = {"堂食"}; private String[] tabTitles = {"堂食"};
//是否已經初始化數據,默認初始化第一個頁面 //是否已經初始化數據,默認初始化第一個頁面
private boolean[] pageDataInit = {true, false, false}; private boolean[] pageDataInit = {true, false, false};
private FrameLayout.LayoutParams lp_content;
public static final int MODIFY_ORDER_RETURN_CODE = 100; public static final int MODIFY_ORDER_RETURN_CODE = 100;
@Override @Override
...@@ -86,6 +96,7 @@ public class OrderCenterActivity extends BaseFragmentActivity<OrderCenterPresent ...@@ -86,6 +96,7 @@ public class OrderCenterActivity extends BaseFragmentActivity<OrderCenterPresent
@Override @Override
public void initData(@Nullable Bundle savedInstanceState) { public void initData(@Nullable Bundle savedInstanceState) {
lp_content = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
initTabAndPager(); initTabAndPager();
mPresenter.loadOrderList(OrderManagerResponse.ORDER_TYPE_DOSHOKU + "", 0, 10, null, false); mPresenter.loadOrderList(OrderManagerResponse.ORDER_TYPE_DOSHOKU + "", 0, 10, null, false);
...@@ -96,15 +107,14 @@ public class OrderCenterActivity extends BaseFragmentActivity<OrderCenterPresent ...@@ -96,15 +107,14 @@ public class OrderCenterActivity extends BaseFragmentActivity<OrderCenterPresent
super.onNewIntent(intent); super.onNewIntent(intent);
} }
@Subscriber(tag = "update" + @Subscriber(tag = "updateOrderListEvent")
"OrderListEvent")
private void updateOrderList(boolean update) { private void updateOrderList(boolean update) {
refeshOrderList(); refeshOrderList();
} }
public void refeshOrderList(){ public void refeshOrderList() {
setPageIndex(0); setPageIndex(0);
mPresenter.loadOrderList(OrderManagerResponse.ORDER_TYPE_DOSHOKU+"", 0, 10, null, false); mPresenter.loadOrderList(OrderManagerResponse.ORDER_TYPE_DOSHOKU + "", 0, 10, null, false);
} }
public void loadOrderList(String orderType, RefreshLayout refreshLayout, boolean isLoadMore) { public void loadOrderList(String orderType, RefreshLayout refreshLayout, boolean isLoadMore) {
...@@ -183,6 +193,16 @@ public class OrderCenterActivity extends BaseFragmentActivity<OrderCenterPresent ...@@ -183,6 +193,16 @@ public class OrderCenterActivity extends BaseFragmentActivity<OrderCenterPresent
loadOrderList(getCurrentOrderFragment().getOrderType(), null, false); loadOrderList(getCurrentOrderFragment().getOrderType(), null, false);
} }
pageDataInit[currentPageIndex] = true; pageDataInit[currentPageIndex] = true;
// if (index == 0) {
// lp_content.bottomMargin = ArmsUtils.dip2px(mContext, R.dimen.dp_40);
// ll_content.setLayoutParams(lp_content);
// ll_bottom.setVisibility(View.VISIBLE);
// } else {
// lp_content.bottomMargin = 0;
// ll_content.setLayoutParams(lp_content);
// ll_bottom.setVisibility(View.GONE);
// }
} }
@Override @Override
......
...@@ -196,7 +196,7 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent ...@@ -196,7 +196,7 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent
initOrderItemAdapter(); initOrderItemAdapter();
updateOrderItems(mOrderDetailItem, mOrderDetailList); updateOrderItems(mOrderDetailItem, mOrderDetailList);
initOrderDetail(mOrderDetailItem); initOrderDetail(mOrderDetailItem);
setBtnVisibility(); setBtnVisible();
btn_refund.setVisibility(View.GONE); btn_refund.setVisibility(View.GONE);
} }
...@@ -288,45 +288,54 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent ...@@ -288,45 +288,54 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent
mOrderDetailPayMethodAdapter.notifyDataSetChanged(); mOrderDetailPayMethodAdapter.notifyDataSetChanged();
} }
private void setBtnVisibility() { private void setBtnVisible() {
List<OrderManagerResponse.OrderPayBean> orderPays = mOrderDetailItem.getOrderPays(); if (mOrderDetailItem.getRestaurantOperationId() != null) {
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_modify_order.setVisibility(View.GONE); btn_modify_order.setVisibility(View.GONE);
btn_tips.setVisibility(View.GONE);
btn_cancel_order.setVisibility(View.GONE); btn_cancel_order.setVisibility(View.GONE);
tv_order_status.setVisibility(View.VISIBLE);
} else { } else {
btn_print_order.setVisibility(View.VISIBLE); //未清機
btn_modify_order.setVisibility(View.VISIBLE); List<OrderManagerResponse.OrderPayBean> orderPays = mOrderDetailItem.getOrderPays();
btn_cancel_order.setVisibility(View.VISIBLE); if (orderPays != null && orderPays.size() > 0) {
tv_order_status.setVisibility(View.GONE); List<PayMethod> payMethods = new ArrayList<>();
if (AppDevices.isHywebPos() && mOrderDetailItem.withHywebPay()) { for (OrderManagerResponse.OrderPayBean orderPayBean : orderPays) {
setOrderBtnVisbilityByTxnId(mOrderDetailItem.getPayTxnId(), mOrderDetailItem.getCancelTxnId(), mOrderDetailItem.getRefundTxnId()); 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_modify_order.setVisibility(View.GONE);
btn_cancel_order.setVisibility(View.GONE);
tv_order_status.setVisibility(View.VISIBLE);
} else {
btn_print_order.setVisibility(View.VISIBLE);
btn_modify_order.setVisibility(View.VISIBLE);
btn_cancel_order.setVisibility(View.VISIBLE);
tv_order_status.setVisibility(View.GONE);
if (AppDevices.isHywebPos() && mOrderDetailItem.withHywebPay()) {
setOrderBtnVisbilityByTxnId(mOrderDetailItem.getPayTxnId(), mOrderDetailItem.getCancelTxnId(), mOrderDetailItem.getRefundTxnId());
}
}
int orderType = mOrderDetailItem.getOrderType();
if (orderType == OrderTypeConstans.order_type_2 || orderType == OrderTypeConstans.order_type_7) {
//外賣自取 不可以修改訂單 取消訂單
btn_modify_order.setVisibility(View.GONE);
btn_cancel_order.setVisibility(View.GONE);
} }
}
int orderType = mOrderDetailItem.getOrderType();
if (orderType == OrderTypeConstans.order_type_2 || orderType == OrderTypeConstans.order_type_7) {
//外賣自取 不可以修改訂單 取消訂單
btn_modify_order.setVisibility(View.GONE);
btn_cancel_order.setVisibility(View.GONE);
} }
} }
...@@ -843,8 +852,45 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent ...@@ -843,8 +852,45 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent
doshokuOrder.setIntegralQrcode(orderDetailItem.getVerifyCode()); doshokuOrder.setIntegralQrcode(orderDetailItem.getVerifyCode());
} }
PrintContent printContent = new PrintContentAdapter().adaptationBillContent(doshokuOrder, dataBean); if (orderDetailItem.withHywebPay()) {
if (AppDevices.isHywebPos()) {
PosPay.printStub(mContext, this, orderDetailItem.getPayTxnId(), new OnPosActionListener() {
@Override
public void onPosSuccess(HywebPosResponse response) {
printBill(doshokuOrder, dataBean);
}
@Override
public void onPosException(Exception e) {
}
@Override
public void onPosInvalid(String e) {
}
@Override
public void onUpdateStatusSuccess(HywebPosResponse response) {
}
@Override
public void onUpdateStatusError(Throwable e) {
}
});
} else {
printBill(doshokuOrder, dataBean);
}
} else {
printBill(doshokuOrder, dataBean);
}
}
private void printBill(DoshokuOrder doshokuOrder, TableBean.DataBean dataBean) {
PrintContent printContent = new PrintContentAdapter().adaptationBillContent(doshokuOrder, dataBean);
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)
...@@ -947,7 +993,7 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent ...@@ -947,7 +993,7 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent
mOrderDetailList = OrderAssemblyUtil.assemblyOrder(OrderDetail.orderTransOrderDetails(orderDetailItem.getOrderDetails())); mOrderDetailList = OrderAssemblyUtil.assemblyOrder(OrderDetail.orderTransOrderDetails(orderDetailItem.getOrderDetails()));
initOrderDetail(orderDetailItem); initOrderDetail(orderDetailItem);
updateOrderItems(orderDetailItem, mOrderDetailList); updateOrderItems(orderDetailItem, mOrderDetailList);
setBtnVisibility(); setBtnVisible();
btn_refund.setVisibility(View.GONE); btn_refund.setVisibility(View.GONE);
} }
......
...@@ -8,12 +8,10 @@ import android.os.Message; ...@@ -8,12 +8,10 @@ import android.os.Message;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
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.di.component.DaggerAllOrderComponent; import com.gingersoft.gsa.cloud.table.di.component.DaggerAllOrderComponent;
...@@ -224,9 +222,9 @@ public class AllOrderFragment extends BaseFragment<AllOrderPresenter> implements ...@@ -224,9 +222,9 @@ public class AllOrderFragment extends BaseFragment<AllOrderPresenter> implements
} }
private void initAllOrderRecycleViewLayout() { private void initAllOrderRecycleViewLayout() {
LinearLayoutManager mAllOrderRecycleLayoutManager = new LinearLayoutManager(mContext, LinearLayoutManager.VERTICAL, false); // LinearLayoutManager mAllOrderRecycleLayoutManager = new LinearLayoutManager(mContext, LinearLayoutManager.VERTICAL, false);
recycle_order.setLayoutManager(mAllOrderRecycleLayoutManager); // recycle_order.setLayoutManager(mAllOrderRecycleLayoutManager);
recycle_order.addItemDecoration(new DividerItemDecoration(orderCenterActivity, LinearLayoutManager.VERTICAL)); // recycle_order.addItemDecoration(new DividerItemDecoration(orderCenterActivity, LinearLayoutManager.VERTICAL));
} }
@Override @Override
......
...@@ -2,8 +2,7 @@ ...@@ -2,8 +2,7 @@
<com.qmuiteam.qmui.widget.QMUIWindowInsetLayout xmlns:android="http://schemas.android.com/apk/res/android" <com.qmuiteam.qmui.widget.QMUIWindowInsetLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent">
android:background="?attr/app_primary_color">
<com.qmuiteam.qmui.widget.QMUITopBar <com.qmuiteam.qmui.widget.QMUITopBar
android:id="@+id/topbar" android:id="@+id/topbar"
...@@ -12,12 +11,13 @@ ...@@ -12,12 +11,13 @@
app:qmui_topbar_title_color="@color/theme_white_color" /> app:qmui_topbar_title_color="@color/theme_white_color" />
<LinearLayout <LinearLayout
android:id="@+id/ll_content"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginTop="?attr/qmui_topbar_height" android:layout_marginTop="?attr/qmui_topbar_height"
android:fitsSystemWindows="true" android:fitsSystemWindows="true"
android:orientation="vertical" android:orientation="vertical"
android:background="@color/qmui_config_color_white"> android:layout_marginBottom="@dimen/dp_40">
<com.qmuiteam.qmui.widget.tab.QMUITabSegment <com.qmuiteam.qmui.widget.tab.QMUITabSegment
android:id="@+id/tabSegment" android:id="@+id/tabSegment"
...@@ -33,10 +33,77 @@ ...@@ -33,10 +33,77 @@
android:fitsSystemWindows="true"/> android:fitsSystemWindows="true"/>
</LinearLayout> </LinearLayout>
<LinearLayout
android:id="@+id/ll_bottom"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_40"
android:layout_gravity="bottom"
android:orientation="horizontal">
<com.qmuiteam.qmui.alpha.QMUIAlphaButton
android:id="@+id/btn_print_order"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="bottom"
android:layout_weight="1"
android:background="@color/orange_400"
android:clickable="true"
android:text="打印賬單"
android:textColor="@color/theme_white_color"
android:textSize="@dimen/sp_14" />
<com.qmuiteam.qmui.alpha.QMUIAlphaButton
android:id="@+id/btn_modify_order"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="bottom"
android:layout_weight="1"
android:background="@color/blue_400"
android:clickable="true"
android:visibility="visible"
android:text="修改訂單"
android:textColor="@color/theme_white_color"
android:textSize="@dimen/sp_14" />
<com.qmuiteam.qmui.alpha.QMUIAlphaButton
android:id="@+id/btn_tips"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="bottom"
android:layout_weight="1"
android:background="@color/green_400"
android:clickable="true"
android:text="貼士"
android:visibility="gone"
android:textColor="@color/theme_white_color"
android:textSize="@dimen/sp_14" />
<com.qmuiteam.qmui.alpha.QMUIAlphaButton
android:id="@+id/btn_cancel_order"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="取消訂單"
android:textSize="@dimen/sp_13"
android:textColor="@color/theme_white_color"
android:background="@color/red_300"/>
<com.qmuiteam.qmui.alpha.QMUIAlphaButton
android:id="@+id/btn_refund"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="bottom"
android:layout_weight="1"
android:background="@color/red_500"
android:clickable="true"
android:text="退款"
android:visibility="gone"
android:textColor="@color/theme_white_color"
android:textSize="@dimen/sp_14" />
</LinearLayout>
<FrameLayout <FrameLayout
android:id="@+id/rl_container" android:id="@+id/rl_container"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"/> android:layout_height="match_parent"/>
</com.qmuiteam.qmui.widget.QMUIWindowInsetLayout> </com.qmuiteam.qmui.widget.QMUIWindowInsetLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<com.qmuiteam.qmui.widget.QMUIWindowInsetLayout xmlns:android="http://schemas.android.com/apk/res/android" <com.qmuiteam.qmui.widget.QMUIWindowInsetLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
...@@ -17,7 +19,8 @@ ...@@ -17,7 +19,8 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@color/theme_background_color" android:background="@color/theme_background_color"
android:overScrollMode="never" /> android:overScrollMode="never"
app:layoutManager="com.gingersoft.gsa.cloud.ui.recylcler.RecyclerViewNoBugLinearLayoutManager"/>
</com.scwang.smartrefresh.layout.SmartRefreshLayout> </com.scwang.smartrefresh.layout.SmartRefreshLayout>
<com.qmuiteam.qmui.widget.QMUIEmptyView <com.qmuiteam.qmui.widget.QMUIEmptyView
......
...@@ -4,38 +4,52 @@ ...@@ -4,38 +4,52 @@
android:id="@+id/ll_root_container" android:id="@+id/ll_root_container"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_5" android:layout_marginLeft="@dimen/dp_8"
android:background="@drawable/selector_item_background" android:layout_marginRight="@dimen/dp_8"
android:layout_marginBottom="@dimen/dp_5"
android:background="@drawable/shape_rect_radius_white_5"
android:orientation="vertical" android:orientation="vertical"
android:padding="@dimen/dp_8"> android:padding="@dimen/dp_8">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_5"
android:orientation="horizontal"> android:orientation="horizontal">
<CheckBox
android:id="@+id/cb_order"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:checked="true"/>
<TextView <TextView
android:id="@+id/tv_table_name" android:id="@+id/tv_table_name"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:paddingLeft="@dimen/dp_5"
android:text="檯號:501" android:text="檯號:501"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="@dimen/sp_18" android:textSize="@dimen/sp_18"
android:textStyle="bold" /> android:textStyle="bold"
android:checked="true"/>
<TextView <TextView
android:id="@+id/tv_order_num" android:id="@+id/tv_people_num"
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_weight="1"
android:layout_marginLeft="@dimen/dp_20" android:gravity="right|center_vertical"
android:text="訂單:123456" android:text="人數:2"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="@dimen/sp_14" /> android:textStyle="bold"
android:textSize="@dimen/sp_18" />
</LinearLayout> </LinearLayout>
<include layout="@layout/include_horizontal_color_ccc_dividing_line" />
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
...@@ -52,20 +66,17 @@ ...@@ -52,20 +66,17 @@
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="@dimen/sp_14" /> android:textSize="@dimen/sp_14" />
<TextView <TextView
android:id="@+id/tv_people_num" android:id="@+id/tv_order_num"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="right|center_vertical" android:layout_gravity="right|center_vertical"
android:gravity="right" android:gravity="right"
android:text="人數:2" android:text="訂單:123456"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="@dimen/sp_14" /> android:textSize="@dimen/sp_14" />
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
...@@ -84,16 +95,26 @@ ...@@ -84,16 +95,26 @@
android:textSize="@dimen/sp_14" /> android:textSize="@dimen/sp_14" />
<TextView <TextView
android:id="@+id/tv_pay_money" android:id="@+id/tv_pay_money_text"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="right|center_vertical" android:layout_gravity="right|center_vertical"
android:gravity="right" android:gravity="right"
android:text="金額:$230" android:text="金額:"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="@dimen/sp_18" android:textSize="@dimen/sp_18"
android:textStyle="bold" /> android:textStyle="bold" />
<TextView
android:id="@+id/tv_pay_money"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|center_vertical"
android:gravity="right"
android:text="$230"
android:textColor="#EC2D2D"
android:textSize="@dimen/sp_18"
android:textStyle="bold" />
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
......
...@@ -356,6 +356,28 @@ public final class AppManager { ...@@ -356,6 +356,28 @@ public final class AppManager {
} }
} }
/**
* 关闭指定的 {@link Activity} class 的所有的实例
*
* @param activityClassName
*/
public void killActivity(String activityClassName) {
if (mActivityList == null) {
Timber.tag(TAG).w("mActivityList == null when killActivity(Class)");
return;
}
synchronized (AppManager.class) {
Iterator<Activity> iterator = getActivityList().iterator();
while (iterator.hasNext()) {
Activity next = iterator.next();
if (next.getClass().getSimpleName().equals(activityClassName)) {
iterator.remove();
next.finish();
}
}
}
}
/** /**
* 指定的 {@link Activity} 实例是否存活 * 指定的 {@link Activity} 实例是否存活
......
...@@ -13,7 +13,7 @@ public class MyGlobalHttpHandler implements GlobalHttpHandler { ...@@ -13,7 +13,7 @@ public class MyGlobalHttpHandler implements GlobalHttpHandler {
@Override @Override
public Response onHttpResultResponse(String httpResult, Interceptor.Chain chain, Response response) { public Response onHttpResultResponse(String httpResult, Interceptor.Chain chain, Response response) {
// 统一处理http响应。eg:状态码不是200时,根据状态码做相应的处理。 // 统一处理http响应。eg:状态码不是200时,根据状态码做相应的处理。
LoganManager.w_network("發送請求: " + httpResult); LoganManager.w_network("接收請求: " + httpResult);
return response; return response;
} }
...@@ -21,7 +21,7 @@ public class MyGlobalHttpHandler implements GlobalHttpHandler { ...@@ -21,7 +21,7 @@ public class MyGlobalHttpHandler implements GlobalHttpHandler {
public Request onHttpRequestBefore(Interceptor.Chain chain, Request request) { public Request onHttpRequestBefore(Interceptor.Chain chain, Request request) {
// 统一处理http请求。eg:给request统一添加token或者header以及参数加密等操作 // 统一处理http请求。eg:给request统一添加token或者header以及参数加密等操作
String requestReult = request.toString(); String requestReult = request.toString();
LoganManager.w_network("接收請求: " + requestReult); LoganManager.w_network("發送請求: " + requestReult);
return chain.request().newBuilder() return chain.request().newBuilder()
.build(); .build();
} }
......
...@@ -38,7 +38,7 @@ import java.util.UUID; ...@@ -38,7 +38,7 @@ import java.util.UUID;
*/ */
public class DefaultDeviceIdUtils { public class DefaultDeviceIdUtils {
private final String TAG = getClass().getSimpleName(); private static final String TAG = "DefaultDeviceIdUtils";
/** /**
* 方案1:imei + android_id + serial + 硬件uuid(自生成) * 方案1:imei + android_id + serial + 硬件uuid(自生成)
* 如果,又想唯一,又不想因用户的删除而重新生成UUID,该怎么做呢? * 如果,又想唯一,又不想因用户的删除而重新生成UUID,该怎么做呢?
...@@ -82,7 +82,7 @@ public class DefaultDeviceIdUtils { ...@@ -82,7 +82,7 @@ public class DefaultDeviceIdUtils {
deviceId = SPDeviceId.getSPDeviceId(defaultDeviceId); deviceId = SPDeviceId.getSPDeviceId(defaultDeviceId);
} }
} }
LoganManager.w_code("getDefaultDeviceIds","getDefaultDeviceIds = "+deviceId); LoganManager.w_code(TAG, "getDefaultDeviceIds = " + deviceId);
return deviceId; return deviceId;
} }
......
...@@ -14,6 +14,7 @@ import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.RetrievalReque ...@@ -14,6 +14,7 @@ import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.RetrievalReque
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.request.pos.VoidRequest; import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.VoidRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.command.CommandImpl; import com.gingersoft.gsa.cloud.pay.pos.hywebpos.command.CommandImpl;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.imp.PrintPaymentStubImpl;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.imp.RefundActionImpl; import com.gingersoft.gsa.cloud.pay.pos.hywebpos.imp.RefundActionImpl;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.imp.RetrievalActionImpl; import com.gingersoft.gsa.cloud.pay.pos.hywebpos.imp.RetrievalActionImpl;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.imp.SaleActionImpl; import com.gingersoft.gsa.cloud.pay.pos.hywebpos.imp.SaleActionImpl;
...@@ -62,4 +63,8 @@ public final class PosPay { ...@@ -62,4 +63,8 @@ public final class PosPay {
PosPay.sendRequest(new RetrievalActionImpl(context, iView, PosAction.RETRIEVAL,retrievalAction, orderId, request, onPosActionListener, false)); PosPay.sendRequest(new RetrievalActionImpl(context, iView, PosAction.RETRIEVAL,retrievalAction, orderId, request, onPosActionListener, false));
} }
public static void printStub(Context context, IView iView, String txnId, OnPosActionListener onPosActionListener) {
PosPay.sendRequest(new PrintPaymentStubImpl(context, iView, PosAction.PRINT, txnId,onPosActionListener,true));
}
} }
package com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos;
import com.etps.aca.lib.constant.Constant;
import lombok.Data;
/**
* @作者: bin
* @創建時間: 2021-01-12 14:20
* @更新時間: 2021-01-12 14:20
* @描述:
*/
@Data
public class PrintPaymentStubRequest {
private String EVENT_NAME = Constant.EVENT.NAME.PRINT;
private String TXN_ID;
private boolean IS_REPRINT;
}
package com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos;
import android.os.Parcel;
import android.os.Parcelable;
/**
* @作者: bin
* @創建時間: 2021-01-12 19:07
* @更新時間: 2021-01-12 19:07
* @描述:
*/
public class PrintPaymentStubResponse extends HywebPosResponse implements Parcelable {
protected PrintPaymentStubResponse(Parcel in) {
super(in);
}
}
...@@ -18,6 +18,7 @@ import com.gingersoft.gsa.cloud.pay.contract.PayExceptionCode; ...@@ -18,6 +18,7 @@ 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.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.PrintPaymentStubResponse;
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.RetrievalRespose; import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.RetrievalRespose;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.SaleRespose; import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.SaleRespose;
...@@ -134,6 +135,7 @@ public class CommandImpl implements ICommand { ...@@ -134,6 +135,7 @@ public class CommandImpl implements ICommand {
/** /**
* 返回操作頁 * 返回操作頁
*
* @param context * @param context
* @param currentActivity * @param currentActivity
*/ */
...@@ -155,8 +157,8 @@ public class CommandImpl implements ICommand { ...@@ -155,8 +157,8 @@ public class CommandImpl implements ICommand {
return GsonUtils.GsonToBean(response, VoidRespose.class); return GsonUtils.GsonToBean(response, VoidRespose.class);
case com.etps.aca.lib.constant.Constant.EVENT.NAME.REFUND_RESP: case com.etps.aca.lib.constant.Constant.EVENT.NAME.REFUND_RESP:
return GsonUtils.GsonToBean(response, RefundRespose.class); return GsonUtils.GsonToBean(response, RefundRespose.class);
// case com.etps.aca.lib.constant.Constant.EVENT.NAME.PRINT_RESP: case com.etps.aca.lib.constant.Constant.EVENT.NAME.PRINT_RESP:
// return GsonUtils.GsonToBean(response, Printr.class); return GsonUtils.GsonToBean(response, PrintPaymentStubResponse.class);
case com.etps.aca.lib.constant.Constant.EVENT.NAME.ADJUST_RESP: case com.etps.aca.lib.constant.Constant.EVENT.NAME.ADJUST_RESP:
return GsonUtils.GsonToBean(response, AdjustTipRespose.class); return GsonUtils.GsonToBean(response, AdjustTipRespose.class);
case "RETRIEVAL_RESP": case "RETRIEVAL_RESP":
......
package com.gingersoft.gsa.cloud.pay.pos.hywebpos.imp;
import android.app.Activity;
import android.content.Context;
import com.gingersoft.gsa.cloud.pay.pos.IPosAction;
import com.gingersoft.gsa.cloud.pay.pos.PosAction;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.HywebPosResponse;
import com.jess.arms.mvp.IView;
import javax.inject.Inject;
import me.jessyan.rxerrorhandler.core.RxErrorHandler;
/**
* @作者: bin
* @創建時間: 2020-12-26 10:38
* @更新時間: 2020-12-26 10:38
* @描述:
*/
public class PrintActionImpl extends IPosAction {
public PrintActionImpl(Context context, IView iView, PosAction action, boolean showLoading) {
super(context,iView,action,showLoading);
}
@Override
protected void onPosActionBefore() {
}
}
package com.gingersoft.gsa.cloud.pay.pos.hywebpos.imp;
import android.app.Activity;
import android.content.Context;
import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils;
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.hywebpos.bean.request.pos.PrintPaymentStubRequest;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.HywebPosResponse;
import com.jess.arms.mvp.IView;
/**
* @作者: bin
* @創建時間: 2021-01-12 14:47
* @更新時間: 2021-01-12 14:47
* @描述:
*/
public class PrintPaymentStubImpl extends IPosAction {
private String mTxnId;
public PrintPaymentStubImpl(Context context, IView iView, PosAction action, String txnId, OnPosActionListener onPosActionListener, boolean showLoading) {
super(context, iView, action, showLoading);
this.mTxnId = txnId;
this.mOnPosActionListener = onPosActionListener;
}
@Override
protected void onPosActionBefore() {
//打印存根
PrintPaymentStubRequest stub = new PrintPaymentStubRequest();
stub.setTXN_ID(mTxnId);
onPosToAction(GsonUtils.GsonString(stub));
}
@Override
public void onPosSuccess(Context context, HywebPosResponse posResponse, Activity originalActivity) {
super.onPosSuccess(context, posResponse, originalActivity);
canCelLoadingDialog();
if (mOnPosActionListener != null) {
mOnPosActionListener.onPosSuccess(posResponse);
}
}
@Override
public void onPosException(Exception e) {
super.onPosException(e);
canCelLoadingDialog();
if (mOnPosActionListener != null) {
mOnPosActionListener.onPosException(e);
}
}
}
...@@ -20,6 +20,7 @@ import com.gingersoft.gsa.cloud.pay.contract.PayExceptionCode; ...@@ -20,6 +20,7 @@ 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.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.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;
import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.SaleRequest; import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.request.pos.SaleRequest;
...@@ -157,6 +158,7 @@ public class SaleActionImpl extends IPosAction<SaleRespose> { ...@@ -157,6 +158,7 @@ public class SaleActionImpl extends IPosAction<SaleRespose> {
.subscribe(new Observer<String>() { .subscribe(new Observer<String>() {
@Override @Override
public void onSubscribe(Disposable d) { public void onSubscribe(Disposable d) {
printPaymentStub();
} }
@Override @Override
...@@ -193,6 +195,12 @@ public class SaleActionImpl extends IPosAction<SaleRespose> { ...@@ -193,6 +195,12 @@ public class SaleActionImpl extends IPosAction<SaleRespose> {
}); });
} }
/**
* 打印Hyweb支付存根
*/
private void printPaymentStub() {
PosPay.printStub(mContext, mView, mTxnIdResponse.getTxnId(),null);
}
/** /**
* 2、顯示支付結果 * 2、顯示支付結果
......
...@@ -19,6 +19,9 @@ public class PrintFoodItem implements Parcelable { ...@@ -19,6 +19,9 @@ public class PrintFoodItem implements Parcelable {
private double price; private double price;
private int itemType; private int itemType;
public PrintFoodItem() {
}
public PrintFoodItem(String name, int num, double price, int itemType) { public PrintFoodItem(String name, int num, double price, int itemType) {
this.name = name; this.name = name;
this.num = num; this.num = num;
......
...@@ -6,8 +6,8 @@ dependencies { ...@@ -6,8 +6,8 @@ dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar']) implementation fileTree(dir: 'libs', include: ['*.jar'])
} }
sourceCompatibility = "1.7" sourceCompatibility = "1.8"
targetCompatibility = "1.7" targetCompatibility = "1.8"
// deploy // deploy
File deployConfig = rootProject.file('gradle/deploy.properties') File deployConfig = rootProject.file('gradle/deploy.properties')
......
package com.gingersoft.gsa.cloud.ui.view; package com.gingersoft.gsa.cloud.ui.recylcler;
import android.content.Context; import android.content.Context;
import android.util.AttributeSet; import android.util.AttributeSet;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
...@@ -12,17 +14,10 @@ import androidx.recyclerview.widget.RecyclerView; ...@@ -12,17 +14,10 @@ import androidx.recyclerview.widget.RecyclerView;
* 修订历史:2019-10-26 * 修订历史:2019-10-26
* 描述: * 描述:
*/ */
public class RecyclerViewNoBugLinearLayoutManager extends LinearLayoutManager { public class RecyclerViewNoBugGridLayoutManager extends GridLayoutManager {
public RecyclerViewNoBugLinearLayoutManager(Context context) {
super(context);
}
public RecyclerViewNoBugLinearLayoutManager(Context context, int orientation, boolean reverseLayout) {
super(context, orientation, reverseLayout);
}
public RecyclerViewNoBugLinearLayoutManager(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { public RecyclerViewNoBugGridLayoutManager(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes); super(context, attrs, defStyleAttr, defStyleRes);
} }
......
...@@ -9,22 +9,18 @@ public class NoScrollGridView extends GridView { ...@@ -9,22 +9,18 @@ public class NoScrollGridView extends GridView {
public NoScrollGridView(Context context) { public NoScrollGridView(Context context) {
super(context); super(context);
// TODO Auto-generated constructor stub
} }
public NoScrollGridView(Context context, AttributeSet attrs) { public NoScrollGridView(Context context, AttributeSet attrs) {
super(context, attrs); super(context, attrs);
// TODO Auto-generated constructor stub
} }
public NoScrollGridView(Context context, AttributeSet attrs, int defStyle) { public NoScrollGridView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle); super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
} }
@Override @Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
// TODO Auto-generated method stub
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec); super.onMeasure(widthMeasureSpec, expandSpec);
} }
......
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