Commit a3e7affc by 宁斌

1、餐檯模式使用會員處理

parent a7c19cb0
...@@ -106,7 +106,7 @@ dependencies { ...@@ -106,7 +106,7 @@ dependencies {
//多功能輸入框 //多功能輸入框
api 'com.rengwuxian.materialedittext:library:2.1.4' api 'com.rengwuxian.materialedittext:library:2.1.4'
//扫码 //扫码
implementation 'cn.bingoogolapple:bga-qrcode-zxing:1.3.7' api 'cn.bingoogolapple:bga-qrcode-zxing:1.3.7'
implementation 'cn.bingoogolapple:bga-photopicker:1.2.8@aar' implementation 'cn.bingoogolapple:bga-photopicker:1.2.8@aar'
implementation 'cn.bingoogolapple:bga-baseadapter:1.2.9@aar' implementation 'cn.bingoogolapple:bga-baseadapter:1.2.9@aar'
implementation 'cn.bingoogolapple:bga-flowlayout:1.0.0@aar' implementation 'cn.bingoogolapple:bga-flowlayout:1.0.0@aar'
......
...@@ -186,6 +186,9 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -186,6 +186,9 @@ public class GsaCloudApplication extends BaseApplication {
RetrofitUrlManager.getInstance().putDomain("yc_location", HttpsConstans.ROOT_SERVER_YOU_CHANG_HK); RetrofitUrlManager.getInstance().putDomain("yc_location", HttpsConstans.ROOT_SERVER_YOU_CHANG_HK);
//System請求地址 //System請求地址
RetrofitUrlManager.getInstance().putDomain("system_url", HttpsConstans.SYSTEM_URL); RetrofitUrlManager.getInstance().putDomain("system_url", HttpsConstans.SYSTEM_URL);
//後台遷移新地址
RetrofitUrlManager.getInstance().putDomain("new_base_url", HttpsConstans.ROOT_URL+"/ricepon-member/api/");
} }
private void initPrint() { private void initPrint() {
......
...@@ -23,8 +23,9 @@ public class BillOrderMoney { ...@@ -23,8 +23,9 @@ public class BillOrderMoney {
private int textColor = Color.parseColor("#000000"); private int textColor = Color.parseColor("#000000");
private int bgColor; private int bgColor;
private byte type = DISCOUNT_TYPE; private byte type = ORDER_DISCOUNT_TYPE;
public static final byte DISCOUNT_TYPE = 1; public static final byte ORDER_DISCOUNT_TYPE = 0;
public static final byte MEMBER_DISCOUNT_TYPE = 1;
public static final byte SERVERCHARGE_TYPE = 2; public static final byte SERVERCHARGE_TYPE = 2;
public static final byte ROUNDING_TYPE = 3; public static final byte ROUNDING_TYPE = 3;
......
package com.gingersoft.gsa.cloud.base.common.bean; package com.gingersoft.gsa.cloud.base.common.bean;
import android.text.TextUtils;
import java.util.Date; import java.util.Date;
import lombok.Data; import lombok.Data;
...@@ -118,14 +120,17 @@ public class MemberInfo { ...@@ -118,14 +120,17 @@ public class MemberInfo {
* MemberPoint : 3 * MemberPoint : 3
*/ */
private long id;
private CreateTimeBean createTime;
private UpdateTimeBean updateTime;
private MemberExpireDateBean memberExpireDate;
private VaildTimeBean vaildTime;
private String memberNo; private String memberNo;
private int memberDiscount;
//获取会员信息接口
private int MemberPoint; private int MemberPoint;
private String memberName; //开台接口返回
private int memberPoint;
private String memberName = "";
private String levelName3;
private String levelName2;
private String levelName1;
private String phone; private String phone;
private int birthdaybonusratio; private int birthdaybonusratio;
private int creditPoints; private int creditPoints;
...@@ -141,7 +146,6 @@ public class MemberInfo { ...@@ -141,7 +146,6 @@ public class MemberInfo {
private int points; private int points;
private int negativePoints; private int negativePoints;
private int couponTypeId; private int couponTypeId;
private int id;
private int isdefault; private int isdefault;
private int pointsVariable; private int pointsVariable;
private String brandName; private String brandName;
...@@ -153,9 +157,6 @@ public class MemberInfo { ...@@ -153,9 +157,6 @@ public class MemberInfo {
private int brandId; private int brandId;
private int pointRedeemCash; private int pointRedeemCash;
private int ablediscount; private int ablediscount;
private String levelName3;
private String levelName2;
private String levelName1;
private int expireAfterDayClearPoints; private int expireAfterDayClearPoints;
private int extendExpireAmount; private int extendExpireAmount;
private String foodDesc3; private String foodDesc3;
...@@ -182,8 +183,20 @@ public class MemberInfo { ...@@ -182,8 +183,20 @@ public class MemberInfo {
private int pointUnit; private int pointUnit;
private int nextUpLevel; private int nextUpLevel;
private int restaurantId = 2; private int restaurantId = 2;
private CreateTimeBean createTime;
private UpdateTimeBean updateTime;
private MemberExpireDateBean memberExpireDate;
private VaildTimeBean vaildTime;
public int getMemberPoint() {
if (MemberPoint != 0)
return MemberPoint;
if (memberPoint != 0)
return memberPoint;
return 0;
}
@Data @Data
public static class CreateTimeBean { public static class CreateTimeBean {
/** /**
......
...@@ -7,9 +7,12 @@ import java.io.Serializable; ...@@ -7,9 +7,12 @@ import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import lombok.Data;
/** /**
* Created by Wyh on 2020/1/17. * Created by Wyh on 2020/1/17.
*/ */
@Data
public class OrderBean { public class OrderBean {
/** /**
* id : 40553 * id : 40553
...@@ -21,24 +24,27 @@ public class OrderBean { ...@@ -21,24 +24,27 @@ public class OrderBean {
* orderDetails : [{"id":1621502,"productName":"胡椒排骨涼瓜煲","productId":"4257","price":58,"lunchboxPrice":0,"number":1,"createTime":"Jan 14, 2020 8:00:11 PM","status":0},{"id":1621503,"productName":"海南雞(例牌)","productId":"4258","price":83,"lunchboxPrice":0,"number":1,"createTime":"Jan 14, 2020 8:00:11 PM","status":0}] * orderDetails : [{"id":1621502,"productName":"胡椒排骨涼瓜煲","productId":"4257","price":58,"lunchboxPrice":0,"number":1,"createTime":"Jan 14, 2020 8:00:11 PM","status":0},{"id":1621503,"productName":"海南雞(例牌)","productId":"4258","price":83,"lunchboxPrice":0,"number":1,"createTime":"Jan 14, 2020 8:00:11 PM","status":0}]
*/ */
private long id; private long id = -1;
private String orderNo; private String orderNo;
private int status; private int status;
private int person; private int person;
private double totalAmount; private double totalAmount;
private double totalPoints; private double totalPoints;
/**折扣金額*/ // /**折扣金額*/
private double discountAmount; // private double discountAmount;
/**折扣比例*/ // /**折扣比例*/
private double discountValue; // private double discountValue;
/**折扣類型*/ // /**折扣類型*/
private int type; // private int type;
/**折扣描述*/ // /**折扣描述*/
private String remark; // private String remark;
/** /**
* 生成訂單時間 * 生成訂單時間
*/ */
private String createTime; private String createTime;
private MemberInfo memberInfo;
private List<OrderDiscount.Respose> discountDetails;
private List<OrderDetailsBean> orderDetails; private List<OrderDetailsBean> orderDetails;
public OrderBean() { public OrderBean() {
...@@ -49,113 +55,16 @@ public class OrderBean { ...@@ -49,113 +55,16 @@ public class OrderBean {
this.status = orderBean.status; this.status = orderBean.status;
this.orderNo = orderBean.orderNo; this.orderNo = orderBean.orderNo;
this.person = orderBean.person; this.person = orderBean.person;
this.discountAmount = orderBean.discountAmount; this.memberInfo = orderBean.memberInfo;
this.discountValue = orderBean.discountValue; this.discountDetails = orderBean.discountDetails;
this.type = orderBean.type; // this.discountAmount = orderBean.discountAmount;
this.remark = orderBean.remark; // this.discountValue = orderBean.discountValue;
// this.type = orderBean.type;
// this.remark = orderBean.remark;
this.createTime = orderBean.createTime; this.createTime = orderBean.createTime;
} }
public OrderBean(int orderId) { @Data
this.id = orderId;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getOrderNo() {
return orderNo;
}
public void setOrderNo(String orderNo) {
this.orderNo = orderNo;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public int getPerson() {
return person;
}
public void setPerson(int person) {
this.person = person;
}
public double getTotalAmount() {
return totalAmount;
}
public void setTotalAmount(double totalAmount) {
this.totalAmount = totalAmount;
}
public double getTotalPoints() {
return totalPoints;
}
public void setTotalPoints(double totalPoints) {
this.totalPoints = totalPoints;
}
public double getDiscountAmount() {
return discountAmount;
}
public void setDiscountAmount(double discountAmount) {
this.discountAmount = discountAmount;
}
public double getDiscountValue() {
return discountValue;
}
public void setDiscountValue(double discountValue) {
this.discountValue = discountValue;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public List<OrderDetailsBean> getOrderDetails() {
return orderDetails;
}
public void setOrderDetails(List<OrderDetailsBean> orderDetails) {
this.orderDetails = orderDetails;
}
public static class OrderDetailsBean implements Serializable { public static class OrderDetailsBean implements Serializable {
/** /**
* id : 1621502 * id : 1621502
...@@ -199,6 +108,21 @@ public class OrderBean { ...@@ -199,6 +108,21 @@ public class OrderBean {
/**折扣實體*/ /**折扣實體*/
private RestaurantDiscountVO restaurantDiscountVO; private RestaurantDiscountVO restaurantDiscountVO;
/** /**
* 是否参与折扣#0:不參與;1:參與;
**/
private byte scAble = 1;
/**
* 額外食品加分
*/
private double pointsAdd;
/**
* 換購食品所需積分
*/
private double pointsRedeem;
/**
* 0=系統顏色, 1=黑色, 2=紅色 * 0=系統顏色, 1=黑色, 2=紅色
*/ */
private long printFont; private long printFont;
...@@ -224,199 +148,9 @@ public class OrderBean { ...@@ -224,199 +148,9 @@ public class OrderBean {
private long memberId; private long memberId;
public OrderDetailsBean() { public OrderDetailsBean() {
} }
public OrderDetailsBean(String productName, long productId, long parentId, double price, double lunchboxPrice, int number, byte type, long orderId) {
this.productName = productName;
this.productId = productId;
this.parentId = parentId;
this.price = price;
this.lunchboxPrice = lunchboxPrice;
this.number = number;
this.type = type;
this.orderId = orderId;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public long getMemberId() {
return memberId;
}
public void setMemberId(long memberId) {
this.memberId = memberId;
}
public byte getType() {
return type;
}
public void setType(byte type) {
this.type = type;
}
public long getParentId() {
return parentId;
}
public void setParentId(long parentId) {
this.parentId = parentId;
}
public String getProductName() {
return productName;
}
public void setProductName(String productName) {
this.productName = productName;
}
public long getProductId() {
return productId;
}
public void setProductId(long productId) {
this.productId = productId;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public double getLunchboxPrice() {
return lunchboxPrice;
}
public void setLunchboxPrice(double lunchboxPrice) {
this.lunchboxPrice = lunchboxPrice;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public long getOrderId() {
return orderId;
}
public void setOrderId(long orderId) {
this.orderId = orderId;
}
public String getPrintSetIng() {
return printSetIng;
}
public void setPrintSetIng(String printSetIng) {
this.printSetIng = printSetIng;
}
public long getKtPrintMainItem() {
return ktPrintMainItem;
}
public void setKtPrintMainItem(long ktPrintMainItem) {
this.ktPrintMainItem = ktPrintMainItem;
}
public long getAblediscount() {
return ablediscount;
}
public void setAblediscount(long ablediscount) {
this.ablediscount = ablediscount;
}
public Long getDiscountId() {
return discountId;
}
public void setDiscountId(Long discountId) {
this.discountId = discountId;
}
public long getTopId() {
return topId;
}
public void setTopId(long topId) {
this.topId = topId;
}
public long getPrintFont() {
return printFont;
}
public void setPrintFont(long printFont) {
this.printFont = printFont;
}
public long getPrintToBill() {
return printToBill;
}
public void setPrintToBill(long printToBill) {
this.printToBill = printToBill;
}
public long getPrintTo() {
return printTo;
}
public void setPrintTo(long printTo) {
this.printTo = printTo;
}
public long getKtShowPrice() {
return ktShowPrice;
}
public void setKtShowPrice(long ktShowPrice) {
this.ktShowPrice = ktShowPrice;
}
public RestaurantDiscountVO getRestaurantDiscountVO() {
return restaurantDiscountVO;
}
public void setRestaurantDiscountVO(RestaurantDiscountVO restaurantDiscountVO) {
this.restaurantDiscountVO = restaurantDiscountVO;
}
@Override @Override
public String toString() { public String toString() {
return "OrderDetailsBean{" + return "OrderDetailsBean{" +
...@@ -431,60 +165,31 @@ public class OrderBean { ...@@ -431,60 +165,31 @@ public class OrderBean {
", type=" + type + ", type=" + type +
", parentId=" + parentId + ", parentId=" + parentId +
", orderId=" + orderId + ", orderId=" + orderId +
", printSetIng='" + printSetIng + '\'' +
", ktPrintMainItem=" + ktPrintMainItem +
", ablediscount=" + ablediscount + ", ablediscount=" + ablediscount +
", discountId=" + discountId + ", discountId=" + discountId +
", restaurantDiscountVO=" + restaurantDiscountVO +
", scAble=" + scAble +
", pointsAdd=" + pointsAdd +
", pointsRedeem=" + pointsRedeem +
", printFont=" + printFont +
", printToBill=" + printToBill +
", printTo=" + printTo +
", ktShowPrice=" + ktShowPrice +
", topId=" + topId + ", topId=" + topId +
", memberId=" + memberId + ", memberId=" + memberId +
'}'; '}';
} }
@Data
public static class RestaurantDiscountVO implements Serializable{ public static class RestaurantDiscountVO implements Serializable{
private long id; private long id;
private int type; private int type;
private float discountValue; private float discountValue;
private String remark; private String remark;
private double discountAmount; private double discountAmount;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public float getDiscountValue() {
return discountValue;
}
public void setDiscountValue(float discountValue) {
this.discountValue = discountValue;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public double getDiscountAmount() {
return discountAmount;
}
public void setDiscountAmount(double discountAmount) {
this.discountAmount = discountAmount;
}
} }
} }
...@@ -497,13 +202,5 @@ public class OrderBean { ...@@ -497,13 +202,5 @@ public class OrderBean {
// return orderDetailsBeans; // return orderDetailsBeans;
// } // }
public static List<OrderDetailsBean> transOrderDetails(List<OrderDetail> foods) {
List<OrderDetailsBean> orderDetailsBeans = new ArrayList<>();
for (OrderDetail food : foods) {
OrderDetailsBean orderDetailsBean = new OrderDetailsBean(food.getProductName(), food.getProductId(), food.getParentId(), food.getUnit_price(), food.getLunchboxPrice(), food.getNumber(), food.getType(), food.getOrderId());
orderDetailsBeans.add(orderDetailsBean);
}
return orderDetailsBeans;
}
} }
...@@ -185,6 +185,19 @@ public class OrderDetail implements Serializable { ...@@ -185,6 +185,19 @@ public class OrderDetail implements Serializable {
*/ */
private int discountStatus; private int discountStatus;
/** /**
* 是否参与折扣#0:不參與;1:參與;
**/
private byte scAble = 1;
/**
* 額外食品加分
*/
private double pointsAdd;
/**
* 換購食品所需積分
*/
private double pointsRedeem;
/**
* 食品組 * 食品組
*/ */
private String ftName; private String ftName;
...@@ -273,6 +286,7 @@ public class OrderDetail implements Serializable { ...@@ -273,6 +286,7 @@ public class OrderDetail implements Serializable {
this.items = orderDetail.items; this.items = orderDetail.items;
this.createTime = orderDetail.createTime; this.createTime = orderDetail.createTime;
this.ablediscount = orderDetail.ablediscount; this.ablediscount = orderDetail.ablediscount;
this.scAble = orderDetail.scAble;
this.ftName = orderDetail.ftName; this.ftName = orderDetail.ftName;
this.majorName = orderDetail.majorName; this.majorName = orderDetail.majorName;
this.discount = orderDetail.discount; this.discount = orderDetail.discount;
...@@ -281,6 +295,8 @@ public class OrderDetail implements Serializable { ...@@ -281,6 +295,8 @@ public class OrderDetail implements Serializable {
this.printSeting = orderDetail.printSeting; this.printSeting = orderDetail.printSeting;
this.ktPrintMainItem = orderDetail.ktPrintMainItem; this.ktPrintMainItem = orderDetail.ktPrintMainItem;
this.currentMaxNumber = orderDetail.currentMaxNumber; this.currentMaxNumber = orderDetail.currentMaxNumber;
this.pointsAdd = orderDetail.pointsAdd;
this.pointsRedeem = orderDetail.pointsRedeem;
} }
public int getSelected() { public int getSelected() {
...@@ -875,6 +891,9 @@ public class OrderDetail implements Serializable { ...@@ -875,6 +891,9 @@ public class OrderDetail implements Serializable {
orderDetail.setType(orderDetailsBean.getType()); orderDetail.setType(orderDetailsBean.getType());
orderDetail.setItemType(getItemType(orderDetailsBean, parentOrderDetail)); orderDetail.setItemType(getItemType(orderDetailsBean, parentOrderDetail));
orderDetail.setAblediscount(orderDetailsBean.getAblediscount()); orderDetail.setAblediscount(orderDetailsBean.getAblediscount());
orderDetail.setScAble(orderDetailsBean.getScAble());
orderDetail.setPointsAdd(orderDetailsBean.getPointsAdd());
orderDetail.setPointsRedeem(orderDetailsBean.getPointsRedeem());
orderDetailList.add(orderDetail); orderDetailList.add(orderDetail);
// if (orderDetail.isIsfood()) { // if (orderDetail.isIsfood()) {
...@@ -986,6 +1005,9 @@ public class OrderDetail implements Serializable { ...@@ -986,6 +1005,9 @@ public class OrderDetail implements Serializable {
int comboLevel = food.isComboFood() ? 1 : 0; int comboLevel = food.isComboFood() ? 1 : 0;
orderDetail.setComboLevel(comboLevel); orderDetail.setComboLevel(comboLevel);
orderDetail.setCurrentMaxNumber(food.getCurrentMaxNumber()); orderDetail.setCurrentMaxNumber(food.getCurrentMaxNumber());
orderDetail.setScAble(food.getServiceCharge());
orderDetail.setPointsAdd(food.getPointsAdd());
orderDetail.setPointsRedeem(food.getPointsRedeem());
return orderDetail; return orderDetail;
} }
...@@ -1031,6 +1053,9 @@ public class OrderDetail implements Serializable { ...@@ -1031,6 +1053,9 @@ public class OrderDetail implements Serializable {
orderDetail.setSelected(1); orderDetail.setSelected(1);
} }
orderDetail.setCurrentMaxNumber(foodCombo.getCurrentMaxNumber()); orderDetail.setCurrentMaxNumber(foodCombo.getCurrentMaxNumber());
orderDetail.setScAble((byte) foodCombo.getServiceCharge());
orderDetail.setPointsAdd(foodCombo.getPointsAdd());
orderDetail.setPointsRedeem(foodCombo.getPointsRedeem());
return orderDetail; return orderDetail;
} }
......
package com.gingersoft.gsa.cloud.base.common.bean;
import lombok.Data;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-08-28
* 修订历史:2020-08-28
* 描述:
*/
public class OrderDiscount {
public static final int ORDER_DISCOUNT = 0;
public static final int MEMBER_DISCOUNT = 1;
@Data
public static class Request {
/**
* 0#整單折扣
* 1#會員折扣
*/
private int type;
/**
* 整單折扣ID
*/
private Long discountId;
/**
* 會員折扣ID
*/
private Long memberId;
/**
* 會員折扣比例
*/
private Integer memberDiscountRate;
/**
* 折扣金額
*/
private double discountAmount;
/**
* 是否计算服务费
*/
private int scAble;
public static Request orderDiscountTransRequest(BillOrderMoney discount) {
Request request = new Request();
request.setType(ORDER_DISCOUNT);
if(discount.getDiscount() != null) {
request.setDiscountId(discount.getDiscount().getId());
}
request.setDiscountAmount(discount.getMoney());
request.setScAble(0);
return request;
}
public static Request memberDiscountTransRequest(BillOrderMoney discount) {
Request request = new Request();
request.setType(MEMBER_DISCOUNT);
if(discount.getDiscount() != null) {
request.setMemberId(discount.getDiscount().getId());
request.setMemberDiscountRate((int) discount.getDiscount().getDiscount_value());
}
request.setDiscountAmount(discount.getMoney());
request.setScAble(0);
return request;
}
}
@Data
public static class Respose {
/**
* 整單折扣ID
*/
private Long discountId;
/**折扣金額*/
private double discountAmount;
/**折扣比例*/
private double discountValue;
/**
* 0#整單折扣
* 1#會員折扣
*/
private int type;
/**折扣名称1*/
private String remark;
/**折扣名称2*/
private String remark2;
/**折扣名称3*/
private String remark3;
/**
* 會員折扣比例
*/
private Integer memberDiscountRate;
public String getRemark() {
return remark;
}
}
}
...@@ -25,6 +25,11 @@ public class OrderPayRequest { ...@@ -25,6 +25,11 @@ public class OrderPayRequest {
private int orderPayType; private int orderPayType;
private int tableId; private int tableId;
private String tableNumber; private String tableNumber;
private long memberId;
//當前加的積分
private Double pointsAdd;
//當前減去的積分
private Double pointsUse;
private List<orderPay> orderPays = new ArrayList<>(); private List<orderPay> orderPays = new ArrayList<>();
@Data @Data
......
package com.gingersoft.gsa.cloud.base.common.bean; package com.gingersoft.gsa.cloud.base.common.bean;
import android.graphics.Color; import android.graphics.Color;
import android.text.TextUtils;
import com.google.gson.annotations.SerializedName; import com.google.gson.annotations.SerializedName;
import java.util.List; import lombok.Data;
/** /**
* 作者:ELEGANT_BIN * 作者:ELEGANT_BIN
...@@ -13,22 +14,157 @@ import java.util.List; ...@@ -13,22 +14,157 @@ import java.util.List;
* 修订历史:2020-02-15 * 修订历史:2020-02-15
* 描述: * 描述:
*/ */
@Data
public class PayMethod { public class PayMethod {
// /**
// * success : true
// * sysTime : 1582865195628
// * data : [{"id":11,"payName":"服務員確認","createTime":"May 7, 2018 11:47:27 AM"},{"id":1019,"payName":"轉數快支付","remarks":"","createTime":"Jul 10, 2019 4:56:21 PM"},{"id":9,"payName":"微信","createTime":"Jun 29, 2018 4:34:26 PM"},{"id":10,"payName":"Apple pay","createTime":"Aug 9, 2018 3:59:05 PM"},{"id":1010,"payName":"YedPay支付宝"},{"id":6,"payName":"支付寶HK","createTime":"Sep 12, 2017 2:45:12 PM"},{"id":8,"payName":"支付寶","createTime":"Jan 5, 2018 10:55:06 AM"},{"id":1020,"payName":"PayMe","createTime":"Nov 29, 2019 6:07:56 PM"}]
// */
// private int id;
// private String payName;
// private String createTime;
// private String remarks;
//
// private String NAME;
// private String NAME2;
// private String NAME3;
// private String PAYWAY;
/** /**
* success : true * id : 12
* sysTime : 1582865195628 * brandId : 1
* data : [{"id":11,"payName":"服務員確認","createTime":"May 7, 2018 11:47:27 AM"},{"id":1019,"payName":"轉數快支付","remarks":"","createTime":"Jul 10, 2019 4:56:21 PM"},{"id":9,"payName":"微信","createTime":"Jun 29, 2018 4:34:26 PM"},{"id":10,"payName":"Apple pay","createTime":"Aug 9, 2018 3:59:05 PM"},{"id":1010,"payName":"YedPay支付宝"},{"id":6,"payName":"支付寶HK","createTime":"Sep 12, 2017 2:45:12 PM"},{"id":8,"payName":"支付寶","createTime":"Jan 5, 2018 10:55:06 AM"},{"id":1020,"payName":"PayMe","createTime":"Nov 29, 2019 6:07:56 PM"}] * restaurantId : 26
* nameFirst : 兒不同
* nameSecond : 吃v否
* nameThird : 份日日法人
* whetherSales : 1
* whetherManagerAuthority : 0
* color : #00FF2F
* whetherReportCount : 1
* interactiveType : 1
* whetherFixedAmount : 1
* payType : 8
* minPayAmount : 0
* whetherFreeService : 1
* whetherTaxExemption : 1
* whetherSignatureLine : 1
* paySeq : 1
* whetherOpenBox : 1
* getIntegral : 5
* integralMultiple : 2
* deductionIntegral : 1
* dockingType : 0
* billType : 1,2
* tablePrintingAmount : 2
* takeOutPrintingAmount : 2
* updateTime : 1598674202856
* createTime : 1598674202856
* updateUid : 492
* createUid : 492
*/ */
private int id; private int id;
private String payName; private int brandId;
private String createTime; private int restaurantId;
private String remarks; private String nameFirst;
private String nameSecond;
private String nameThird;
/**
* 銷售營業額(0:非營業額 1:營業額)
*/
private int whetherSales;
/**
* 經理權限
*/
private int whetherManagerAuthority;
/**
* 背景顔色
*/
private String color = "#FFFFFF";
/**
* 字體顔色
*/
private String font_color = "#000000";
/**
* 報表計算人數(0:否 1:是)
*/
private int whetherReportCount;
/**
* 交互方式
*/
private int interactiveType;
/**
* 固定金額 (0:否 1:是)
*/
private int whetherFixedAmount;
/**
* 固定金額數值
*/
private double amountValue;
/**
* 支付方式(1:寶達通 8:支付寶 1001:現金 1023:支付寶HK )
*/
private int payType;
/**
* 最小支付金額(是否有小數點)
*/
private double minPayAmount;
/**
* 是否免服務費(0:否 1:是)
*/
private int whetherFreeService;
/**
* 是否免稅 (0:否 1:是)
*/
private int whetherTaxExemption;
/**
* 是否展示簽署線 (0:否 1:是)
*/
private int whetherSignatureLine;
/**
* 排序
*/
private int paySeq;
/**
* 是否開錢箱(0:否 1:是)
*/
private int whetherOpenBox;
/**
* '獲取積分
*/
private int getIntegral;
/**
* 積分倍數
*/
private int integralMultiple;
/**
* 扣減積分
*/
private float deductionIntegral;
/**
* 對接類型 (0:否 1:yedpay 2:八達通 3:積分 )
*/
private int dockingType;
/**
* 賬單類型(0:否 1:是)
*/
private String billType;
/**
* 櫃檯結賬打印
*/
private int tablePrintingAmount;
/**
* 外賣結賬打印
*/
private int takeOutPrintingAmount;
private long updateTime;
@SerializedName("createTime")
private long createTimeX;
private int updateUid;
private int createUid;
private String NAME;
private String NAME2;
private String NAME3;
private String PAYWAY;
//*************自定義字段*************** //*************自定義字段***************
private double payMoney = 0.0; private double payMoney = 0.0;
...@@ -41,148 +177,33 @@ public class PayMethod { ...@@ -41,148 +177,33 @@ public class PayMethod {
private int payMoneySize = 14; private int payMoneySize = 14;
public static final int PAY_TYPE_CASH = 1001; public static final int PAY_TYPE_CASH = 1001;
public PayMethod(int id, String payName, String createTime, String remarks, String NAME, String NAME2, String NAME3, String PAYWAY) {
this.id = id;
this.payName = payName;
this.createTime = createTime;
this.remarks = remarks;
this.NAME = NAME;
this.NAME2 = NAME2;
this.NAME3 = NAME3;
this.PAYWAY = PAYWAY;
}
public PayMethod() { public PayMethod() {
} }
public int getId() { public PayMethod(int id, String nameFirst, String nameSecond, String nameThird) {
return id;
}
public void setId(int id) {
this.id = id; this.id = id;
this.nameFirst = nameFirst;
this.nameSecond = nameSecond;
this.nameThird = nameThird;
} }
public String getPayName() { public String getPayName() {
return payName; if (!TextUtils.isEmpty(nameFirst))
} return nameFirst;
if (!TextUtils.isEmpty(nameSecond))
public void setPayName(String payName) { return nameSecond;
this.payName = payName; if (!TextUtils.isEmpty(nameThird))
} return nameThird;
return "";
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public String getRemarks() {
return remarks;
}
public void setRemarks(String remarks) {
this.remarks = remarks;
} }
public String getNAME() {
return NAME;
}
public void setNAME(String NAME) {
this.NAME = NAME;
}
public String getNAME2() {
return NAME2;
}
public void setNAME2(String NAME2) {
this.NAME2 = NAME2;
}
public String getNAME3() { public void setPayName(String name){
return NAME3; this.nameFirst = name;
this.nameSecond = name;
this.nameThird = name;
} }
public void setNAME3(String NAME3) {
this.NAME3 = NAME3;
}
public String getPAYWAY() {
return PAYWAY;
}
public void setPAYWAY(String PAYWAY) {
this.PAYWAY = PAYWAY;
}
public double getPayMoney() {
return payMoney;
}
public void setPayMoney(double payMoney) {
this.payMoney = payMoney;
}
public double getTipsPrice() {
return TipsPrice;
}
public void setTipsPrice(double tipsPrice) {
TipsPrice = tipsPrice;
}
public int getPayModeTextColor() {
return payModeTextColor;
}
public void setPayModeTextColor(int payModeTextColor) {
this.payModeTextColor = payModeTextColor;
}
public int getPayMoneyTextColor() {
return payMoneyTextColor;
}
public void setPayMoneyTextColor(int payMoneyTextColor) {
this.payMoneyTextColor = payMoneyTextColor;
}
public int getPayModeTextSelectColor() {
return payModeTextSelectColor;
}
public void setPayModeTextSelectColor(int payModeTextSelectColor) {
this.payModeTextSelectColor = payModeTextSelectColor;
}
public int getPayMoneyTextSelectColor() {
return payMoneyTextSelectColor;
}
public void setPayMoneyTextSelectColor(int payMoneyTextSelectColor) {
this.payMoneyTextSelectColor = payMoneyTextSelectColor;
}
public int getPayModeSize() {
return payModeSize;
}
public void setPayModeSize(int payModeSize) {
this.payModeSize = payModeSize;
}
public int getPayMoneySize() {
return payMoneySize;
}
public void setPayMoneySize(int payMoneySize) {
this.payMoneySize = payMoneySize;
}
} }
...@@ -34,9 +34,11 @@ public class RestaurantExpandInfoUtils { ...@@ -34,9 +34,11 @@ public class RestaurantExpandInfoUtils {
MoneyUtil.ItemDecimals = expandInfo.getValueInt(); MoneyUtil.ItemDecimals = expandInfo.getValueInt();
} }
if (expandInfo.getSettingName().equals(ExpandConstant.MergeSendFood)) { if (expandInfo.getSettingName().equals(ExpandConstant.MergeSendFood)) {
GsaCloudApplication.androidSetting.setMergeSendFood(Boolean.parseBoolean(expandInfo.getValueChar())); GsaCloudApplication.androidSetting.setMergeSendFood(expandInfo.getValueInt() == 1?true:false);
}
if (expandInfo.getSettingName().equals(ExpandConstant.AutoPrinterParper)) {
GsaCloudApplication.androidSetting.setAutoPrinterParper(expandInfo.getValueInt() == 1?true:false);
} }
} }
} }
......
package com.gingersoft.gsa.cloud.base.common.bean; package com.gingersoft.gsa.cloud.base.common.bean;
import java.io.Serializable;
import java.util.List; import java.util.List;
import lombok.Data; import lombok.Data;
...@@ -59,7 +60,7 @@ public class TableBean { ...@@ -59,7 +60,7 @@ public class TableBean {
} }
@Data @Data
public static class DataBean { public static class DataBean implements Serializable {
/** /**
* id : 25839 * id : 25839
* tableName : ceshitai1* * tableName : ceshitai1*
......
...@@ -27,7 +27,7 @@ import java.util.List; ...@@ -27,7 +27,7 @@ import java.util.List;
public class MyOrderManage { public class MyOrderManage {
private static MyOrderManage myOrderManage; private static MyOrderManage myOrderManage;
//外賣接單 /**外賣接單*/
private static OrderDetails.DataBean dataBean; private static OrderDetails.DataBean dataBean;
public static MyOrderManage getInstance() { public static MyOrderManage getInstance() {
...@@ -80,6 +80,22 @@ public class MyOrderManage { ...@@ -80,6 +80,22 @@ public class MyOrderManage {
*/ */
private List<PayMethod> billMoney = new ArrayList<>(); private List<PayMethod> billMoney = new ArrayList<>();
/** /**
* 結賬前積分(堂食結賬)
*/
private Double pointsOld;
/**
* 結賬后積分(堂食結賬)
*/
private Double pointsNow;
/**
* 結賬加的積分(堂食結賬)
*/
private Double pointsAdd;
/**
* 結賬減去的積分(堂食結賬)
*/
private Double pointsUse;
/**
* 合計 * 合計
*/ */
private double wholeAmount = 0.0; private double wholeAmount = 0.0;
...@@ -232,563 +248,6 @@ public class MyOrderManage { ...@@ -232,563 +248,6 @@ public class MyOrderManage {
CommonTipDialog.showSurpisedDialog(GsaCloudApplication.getAppContext().getCurrentActivity(), msg, null, null, null, null, null); CommonTipDialog.showSurpisedDialog(GsaCloudApplication.getAppContext().getCurrentActivity(), msg, null, null, null, null, null);
} }
// private void change_child_number(OrderDetail orderFood, int number) {
//
// //每个组子项最大选择数量
// Map<String, String> maxNumberArray = new HashMap<>();
//
// for (int i = 0; i < orderFoodList.size(); i++) {
// OrderDetail datasBean = orderFoodList.get(i);
// if (datasBean.getParent_index() == orderFood.getMy_index() && datasBean.getItemtype() == 2) {
//
// String comId = datasBean.getComid();
//
// if (!datasBean.getComid().equals("discount")) {
//
// //当前主食品组子项最大选择数
// int comboMaxQty = selectMealAdapter.queryComboMaxQty(datasBean.getItemNo(), datasBean.getComid());
// int comboGroupMaxQty = selectMealAdapter.queryComboMaxQty(datasBean.getItemNo(), datasBean.getComid()) * number;
//
// maxNumberArray.put(comId, comboMaxQty + "_" + comboGroupMaxQty);
// } else {
// maxNumberArray.put(comId, "-1_-1");
// }
//// int comIdIndex = maxNumberArray.indexOfKey(comId);
//// if (comIdIndex != -1) {
//// int totalQty;
//// if (!TextUtils.isEmpty(maxNumberArray.get(comId))) {
//// totalQty = Integer.parseInt(maxNumberArray.get(comId).split("_")[0]) + datasBean.getQty();
//// } else {
//// totalQty = datasBean.getQty();
//// }
//// } else {
//// maxNumberArray.put(comId, datasBean.getQty() + "");
//// }
// }
// }
//
// Iterator<String> iterator = maxNumberArray.keySet().iterator();
// while (iterator.hasNext()) {
// String key = iterator.next();
// String totalQty = maxNumberArray.get(key);
// int combNumber = 0;
// for (int j = 0; j < orderFoodList.size(); j++) {
// OrderDetail datasBean = orderFoodList.get(j);
// if (datasBean.getParent_index() == orderFood.getMy_index() && datasBean.getItemtype() == 2) {
// String comId = datasBean.getComid();
// if (key.equals(comId)) {
// combNumber += datasBean.getQty();
// }
// }
// }
// String value = totalQty + "_" + combNumber;
// maxNumberArray.put(key, value);
// }
//
//// for (int i = 0; i < maxNumberArray.size(); i++) {
//// String key = maxNumberArray.get(i);
//// String totalQty = maxNumberArray.get(key);
//// int combNumber = 0;
//// for (int j = 0; j < orderFoodList.size(); j++) {
//// OrderDetail datasBean = orderFoodList.get(j);
//// if (datasBean.getParent_index() == orderFood.getMy_index() && datasBean.getItemtype() == 2) {
//// String comId = datasBean.getComid();
//// if (key.equals(comId)) {
//// combNumber += datasBean.getQty();
//// }
//// }
//// }
//// String value = totalQty + "_" + combNumber;
//// maxNumberArray.put(key, value);
//// }
//
// for (int i = orderFoodList.size() - 1; i >= 0; i--) {
// OrderDetail datasBean = orderFoodList.get(i);
// if (datasBean.getParent_index() == orderFood.getMy_index()) {
// if (datasBean.getItemtype() == 3) {
// datasBean.setQty(number);
// datasBean.newnumber = number;
// setCalculatePrice(datasBean, datasBean.isFuncmoney(), datasBean.getUnitprice());
// } else {
//
// if (datasBean.getComid().equals("discount")) {
// datasBean.setQty(number);
// datasBean.newnumber = number;
// continue;
// }
//
// int comboQty = datasBean.getQty();
//
// //当前主食品子项最大选择数
//// int comboMaxQty = selectMealAdapter.queryComboMaxQty(datasBean.getItemNo(), datasBean.getComid()) * orderFood.getQty();
//
// int currentNumber = datasBean.getChangeBeforeQty();
////
// String key = datasBean.getComid();
// String vaule = maxNumberArray.get(key);
//
// String[] totalQty_combNumber = vaule.split("_");
// int comboMaxQty = Integer.parseInt(totalQty_combNumber[0]);
// int comboGroupMaxQty = Integer.parseInt(totalQty_combNumber[1]);
//// int combNumber = Integer.parseInt(totalQty_combNumber[2]);
//
// if (number == 1) {
// currentNumber = datasBean.getChangeBeforeQty();
// } else {
// if (number < datasBean.getQty()) {
// //从大到小
// if (comboMaxQty == 1) {
// //这一组最大选择数为1
// currentNumber = number;
// } else {
// if (comboGroupMaxQty > 0) {
// currentNumber = number;
// //最大选择数减去当前子项的数量
// comboGroupMaxQty -= currentNumber;
// maxNumberArray.put(key, comboMaxQty + "_" + comboGroupMaxQty);
// } else {
// //已达到最大选择数,后面还有食品直接删除
// currentNumber = 0;
// }
// }
// } else {
// currentNumber = number * datasBean.getChangeBeforeQty();
// }
// }
//
// if (currentNumber == 0) {
// orderFoodList.remove(i);
// } else {
// datasBean.setQty(currentNumber);
// datasBean.newnumber = currentNumber;
// setCalculatePrice(datasBean, datasBean.isFuncmoney(), datasBean.getUnitprice());
// }
// }
// }
// }
//
// lastTimeChangeNumber = number;
//
// maxNumberArray.clear();
// }
// private void removeFoodModifify(OrderDetail myorder) {
// int endIndex = myorder.getMy_index() - 1;
// for (int i = orderFoodList.size() - 1; i > endIndex; i--) {
// OrderDetail foodBean = orderFoodList.get(i);
// if (foodBean.getProp().equalsIgnoreCase("modifify_modalkeyboard") && foodBean.getParent_index() == myorder.getMy_index()) {
// //删除当前食品下的所有子项
// orderFoodList.remove(i);
// }
// }
// }
// public void Re_Discount() {
// if (orderFoodList.size() == 0) {
// return;
// }
// try {
// //计算数呈
// if (this.selstartpostion > orderFoodList.size()) {
// return;
// }
//
// OrderDetail mainorder = orderFoodList.get(this.selstartpostion);
// for (int i = selstartpostion; i < orderFoodList.size(); i++) {
// OrderDetail childOrder = orderFoodList.get(i);
// if (childOrder.getItemtype() == 0) {
// break;
// }
// if (childOrder.comid.equals("discount")) {
// childOrder.setAmount_price(childOrder.getUnitprice());
// childOrder.Famount_price_sign = childOrder.getUnitprice() / childOrder.newnumber;
// }
// }
// //从selstartpostion开始向下查找到全部的归属于本茶品的最后位置
// DiscountTypeAndOrderPay.DatasBean dt = new DiscountTypeAndOrderPay.DatasBean();
// dt.setSelStartPostion(this.selstartpostion);
// dt.setSelEndPostion(this.selendpostion);
// dt.recalc_doubleandfixed6(orderFoodList);
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
/**
* 检查当前食品有没有超过数量或者已经沽清
*
* @param fid
* @param isfood
* @param number
* @return
*/
// public boolean checkOverSoldoutNumber(String fid, boolean isfood, int number) {
// int newNumber = 0;
// //检查是否需要改变估清
// CurrentSoldoutFood.DatasBean scClass;
// Db_SoldoutCtrl db = new Db_SoldoutCtrl(context);
// if (isfood) {
// scClass = db.getSoldoutCtrl("F", fid);
// } else {
// scClass = db.getSoldoutCtrl("M", fid);
// }
// db.closeDb();
// db = null;
//
// if (scClass.OR_Qty == -999999999 && scClass.Used_Qty == -999999999) {
// //不需要判读数量
// return true;
// } else {
// newNumber = getCountNumber(fid);
// //需要判读数量,如果当前数量超过,直接返回估清
// if (scClass.OR_Qty - scClass.Used_Qty - newNumber - number < 0) {
// return false;
// } else {
// return true;
// }
// }
// }
/*查找并计算碰餐,计算出的结果:如果是已经存在的,则需要记录此单新金额*/
/*得到当前的碰餐折扣表,从高到低的折扣金额排列*/
/*获取食品细项,把该食品与其它任意食品B依金额碰,如果B尚未碰过,则两者相碰成功*/
/*检查到B食品时,向下碰C食品,如果C食品碰的金额大于*/
// public boolean calc_Mix(int operatType) {
// int max_mixIndex = 0;
// MixOldOrders.clear();
//
// //获得碰餐有效数据(已经数据库中对status=false和日期不在起始日期内 或者不在假期内的数据进行了屏蔽并且已经是取到了最优的碰餐结果了)
// Db_MixComboGroup_Discount db_md = new Db_MixComboGroup_Discount(context);// this.activity);
// mixComboGroup_Discounts = db_md.get_valid_discount();
// db_md.closeDb();
//
// if (mixComboGroup_Discounts.size() == 0) {
// return false;
// }
//
// int n = 0;
// for (OrderDetail order : orderFoodList) {
// if (order.getItemtype() == 1) {
//// n = n + order.newnumber;
// n = n + 1;
// order.setMix_DETAIL_ID(0);
// order.setMixGroupDiscPrice(0);
// order.setMixDesc1("");
// order.setMixDesc2("");
// order.setMixDesc3("");
// order.setMixQty(0);
// order.setMixGroupID(0);
// }
// }
// /*只有一个食品,则退出*/
//// if (operatType == ADD_OPERAT && n <= 1) {
//// return false;
//// }
//
// /*删除后食品必须大于一,否则则退出*/
// boolean allowDelete = operatType == DELETE_OPERAT && n > 1;
//
// if (operatType == ADD_OPERAT || allowDelete) {
// Db_MixComboGroup db_maxgroup = new Db_MixComboGroup(GSAApplication.getAppContext());
// for (MixComboGroupDiscount.DatasBean mcgd : mixComboGroup_Discounts) {
//
// boolean findgroup1;
// boolean findgroup2;
//
// OrderDetail findorder1;
// OrderDetail findorder2;
//
// List<MixComboGroup.DatasBean> mcgroups1 = db_maxgroup.query_byFood(mcgd.getGROUPID1());
// List<MixComboGroup.DatasBean> mcgroups2 = db_maxgroup.query_byFood(mcgd.getGROUPID2());// + " and status=1 order by ISNULL(SEQ,-1),f.Price desc,g.ID,id ");
//
// for (int i = 0; i < mcgroups1.size(); i++) {
// MixComboGroup.DatasBean mcgroup1 = mcgroups1.get(i);
// //加个循环,保证找完所有的order
// for (OrderDetail morder : orderFoodList) {
// findgroup1 = false;
// findgroup2 = false;
// findorder1 = null;
// findorder2 = null;
// int recordIndex = -1;
// for (int k = 0; k < orderFoodList.size(); k++) {
// OrderDetail order = orderFoodList.get(k);
// String desc1 = order.getDesc1();
// if (order.getItemtype() != 1 || !order.isIsfood()) {
// continue;
// }
// //非食品则不操作
// int qty = order.getQty();
// int mixQty = order.getMixQty();
// if (qty <= 0 || qty <= mixQty) {
// continue;
// }
// String fid1 = order.getItemno();
// String fid2 = mcgroup1.getFID();
// if (fid1.equals(fid2)) {
// findgroup1 = true;
// findorder1 = order;
// recordIndex = k;
// break;
// }
// }
// if (findgroup1 == false) {
// continue;
// } //没有找到就跳下一个
//
// for (int k = 0; k < mcgroups2.size(); k++) {
// MixComboGroup.DatasBean mcgroup2 = mcgroups2.get(k);
// for (int o = 0; o < orderFoodList.size(); o++) {
// OrderDetail order = orderFoodList.get(o);
// String desc1 = order.getDesc1();
// if (order.getItemtype() != 1 || !order.isIsfood()) {
// continue;
// } //非食品则不操作
// int qty = order.getQty();
// int mixQty = order.getMixQty();
// if (qty <= 0 || qty <= mixQty) {
// continue;
// }
// if (recordIndex == o) {
// //该食品已经碰餐了
// continue;
// }
// String fid1 = order.getItemno();
// String fid2 = mcgroup2.getFID();
// if (fid1.equals(fid2)) {
// findgroup2 = true;
// findorder2 = order;
// break;
// }
// }
// if (findgroup2 == true) {
// break;
// }
// }
// if (findgroup2 == false) {
// continue;
// }
//
// max_mixIndex = max_mixIndex + 1;
//
// int Mix_DETAIL_ID1 = findorder1.getMix_DETAIL_ID() + max_mixIndex;
// int Mix_DETAIL_ID2 = findorder2.getMix_DETAIL_ID() + max_mixIndex;
// findorder1.setMix_DETAIL_ID(Mix_DETAIL_ID1);
// findorder2.setMix_DETAIL_ID(Mix_DETAIL_ID2);
// /*开始设置这两个食品的碰餐属性*/
// /*数量算法,如果限制了数量,则最高为限制数量,如果没有限制,则使用最小的可以折扣的数量*/
// int findorder1MixNumber = db_maxgroup.get_mixqty(findorder1.getItemno(), mcgd.getGROUPID1());
// int findorder2MixNumber = db_maxgroup.get_mixqty(findorder2.getItemno(), mcgd.getGROUPID2());
// //最后需要更新的数量
// int nowMixQty = 0;
// //得到最小的剩余数量
// int mixqty = findorder1.getQty() - findorder1.getMixQty() > findorder2.getQty() - findorder2.getMixQty() ?
// findorder2.getQty() - findorder2.getMixQty() : findorder1.getQty() - findorder1.getMixQty();
//
// if (findorder1MixNumber < 1 || findorder2MixNumber < 1) {
// //有一个有无限数量或者两个都是无限数量的情况
// if (findorder1MixNumber + findorder2MixNumber <= 0) {
// //两个都是无限数量,此时取最小的数量
// nowMixQty = mixqty;
// } else if (findorder1MixNumber > 1) { //表明2号食品无限制,1号食品有限制
// //食品1有限制数量:
// // 食品1总数量-碰餐1数量即剩下的数量大于MixNumber,取最小的剩余数量。
// // 小于
// nowMixQty = mixqty > findorder1MixNumber ? findorder1MixNumber : mixqty;
// } else { //2号食品有限制 1号食品无限制
// nowMixQty = mixqty > findorder2MixNumber ? findorder2MixNumber : mixqty;
// }
//
// } else {
// //两个都有限制,取最小值
// if (findorder1MixNumber > findorder2MixNumber) {
// nowMixQty = mixqty > findorder2MixNumber ? findorder2MixNumber : mixqty;
// } else {
// nowMixQty = mixqty > findorder1MixNumber ? findorder1MixNumber : mixqty;
// }
// }
//
// int mixQty1 = findorder1.getMixQty();
// findorder1.setMixQty(mixQty1 + nowMixQty);
//
// double GROUP1Price = mcgd.getGROUP1Price();
// if (GROUP1Price > findorder1.getFamount_price_sign()) {
// //碰餐金額大於 食品總金額,直接減去原因金額
// GROUP1Price = findorder1.getFamount_price_sign();
// }
// findorder1.setMixGroupDiscPrice(findorder1.getMixGroupDiscPrice() + GROUP1Price * nowMixQty);
// findorder1.setMixGroupID(mcgd.getGROUPID1());
// findorder1.setMixDesc1(mcgd.getDesc1());
// findorder1.setMixDesc2(mcgd.getDesc2());
// findorder1.setMixDesc3(mcgd.getDesc3());
//
// double GROUP2Price = mcgd.getGROUP2Price();
// if (GROUP2Price > findorder2.getFamount_price_sign()) {
// //碰餐金額大於 食品總金額,直接減去原因金額
// GROUP2Price = findorder2.getFamount_price_sign();
// }
//
// int mixQty2 = findorder2.getMixQty();
// findorder2.setMixQty(mixQty2 + nowMixQty);
//// findorder2.setMixGroupDiscPrice(findorder2.getMixGroupDiscPrice() + mcgd.getGROUP2Price() * nowMixQty);
// findorder2.setMixGroupDiscPrice(findorder2.getMixGroupDiscPrice() + GROUP2Price * nowMixQty);
// findorder2.setMixGroupID(mcgd.getGROUPID2());
// findorder2.setMixDesc1(mcgd.getDesc1());
// findorder2.setMixDesc2(mcgd.getDesc2());
// findorder2.setMixDesc3(mcgd.getDesc3());
// }
// }
// }
// db_maxgroup.closeDb();
// }
//
// //2:更新各项数据
// for (OrderDetail order : orderFoodList) {
// if (order.getItemtype() != 1) {
// continue;
// }
// if (!order.isIsfood()) {
// continue;
// }
// if (order.getQty() <= 0) {
// continue;
// }
// if (order.getOrder_detail_id() > -1) {//是已经保存过的
// MixOldOrder moo = new MixOldOrder();
// moo.Mix_DETAIL_ID = order.getMix_DETAIL_ID();
// moo.Mixqty = order.getMixQty();
// moo.ORDER_DETAIL_ID = order.getOrder_detail_id();
// moo.MixDesc1 = order.getMixDesc1();
// moo.MixDesc2 = order.getMixDesc2();
// moo.MixDesc3 = order.getMixDesc3();
// moo.MixGroupDiscPrice = order.getMixGroupDiscPrice();
// moo.MixGroupID = order.getMixGroupID();
// MixOldOrders.add(moo);
// }
// }
// for (OrderDetail order : orderFoodList) {
// int fnumber = order.getQty();
// double famount_price_sign = 0.0;
// if (!order.isnew) {
// famount_price_sign = order.Famount_price_sign / fnumber;
// } else {
// famount_price_sign = order.Famount_price_sign;
// }
// double mixGroupDiscPrice = order.getMixGroupDiscPrice();
// double amount_price = famount_price_sign * fnumber - Math.abs(mixGroupDiscPrice);
// if (amount_price < 0 && order.getDiscount_id() == 0) {
// //排除掉折扣,食品金额不能为负数
// order.setAmount_price(0);
// } else {
// if (order.getDiscount_id() != 0) {
// updateDiscoutMoney(order);
// } else {
// order.setAmount_price(amount_price);
// }
// }
//
// LogUtil.d("mix_detail_id: " + order.getMix_DETAIL_ID() + " amount_price: " + order.getAmount_price());
// }
// return true;
// }
// /**
// * 更新折扣金額
// *
// * @param order
// */
// public void updateDiscoutMoney(OrderDetail order) {
// DiscountTypeAndOrderPay.DatasBean discountBean = order.getDiscountTypeAndOrderPayBean();
// if (discountBean != null) {
// discountBean.setSelPostion(selectMealAdapter.getSelect_position());
// discountBean.setSelEndPostion(selectMealAdapter.getSelect_end_position());
// discountBean.setSelStartPostion(selectMealAdapter.getSelect_start_position());
// discountBean.setSelMainStartPositon(selectMealAdapter.getMainStartPos());
// discountBean.setSelMainEnnPostion(selectMealAdapter.getMainEndPos());
// discountBean.setSelect_Full_start_position(selectMealAdapter.getSelect_full_start_position());
// discountBean.setSelect_Full_end_position(selectMealAdapter.getSelect_full_end_position());
// discountBean.setUpdateDiscoutMoney(true);
// double discountMoney = discountBean.Add_menu_postion(orderFoodList, context);
// order.setAmount_price(discountMoney);
// }
// }
// public boolean hasMixFood() {
// for (int i = 0; i < orderFoodList.size(); i++) {
// OrderDetail datasBean = orderFoodList.get(i);
// if (datasBean.getMixGroupID() > 0) {
// return true;
// }
// }
// return false;
// }
// public void get_max_seqno() {
// int i = 1;
// for (OrderDetail myorder : orderFoodList) {
// if (myorder.getItemtype() == 1) {
// i = i + 1;
// }
// }
// seqno = i;
// }
//
// private int get_sseq() {
// int i = 0;
// if (orderFoodList == null) {
// return i;
// }
// for (OrderDetail myorder : orderFoodList) {
// if (myorder.getSeqno() == seqno && myorder.getItemtype() == 2) {
// i = i + 1;
// }
// }
// return i;
// }
//
// private int get_mseq(int isseq) {
// int i = 0;
// if (orderFoodList == null) {
// return i;
// }
// for (OrderDetail myorder : orderFoodList) {
// if (myorder.getSeqno() == seqno && myorder.getSseq() == isseq && myorder.getItemtype() == 3) {
// i = i + 1;
// }
// }
// return i;
// }
//
// public void no_select() {
// for (int i = 0; i < orderFoodList.size(); i++) {
// orderFoodList.get(i).selected = 0;
// }
// }
//
// public DatasBean getCurrentOrderFood() {
// if (getSize() == 0) {
// return null;
// }
// if (selpostion < orderFoodList.size()) {
// return orderFoodList.get(selpostion);
// } else {
// return orderFoodList.get(orderFoodList.size() - 1);
// }
// }
//
// private int getCountNumber(String fid) {
// int number = 0;
// for (OrderDetail or : orderFoodList) {
// if (or.getItemno().equals(fid)) {
// number = number + or.newnumber;
// }
// }
// return number;
// }
//
/** /**
* 设置所有价格相关字段数据 * 设置所有价格相关字段数据
* Qty、Itemtype、Itemno、Advprice、MixGroupDiscPrice字段需提前设置值 * Qty、Itemtype、Itemno、Advprice、MixGroupDiscPrice字段需提前设置值
...@@ -810,242 +269,6 @@ public class MyOrderManage { ...@@ -810,242 +269,6 @@ public class MyOrderManage {
datasBean.setPrice(money * datasBean.getNumber()); datasBean.setPrice(money * datasBean.getNumber());
} }
// /**
// * 主食品转换
// *
// * @param datasBean
// * @return
// */
// public OrderDetail orderConvertOrderDetail(Food datasBean, int Qty, boolean isFuncmoney) {
// OrderDetail orderDetail = new OrderDetail();
// orderDetail.setDesc1(datasBean.getFoodName());
// orderDetail.setDesc2(datasBean.getFoodName());
// orderDetail.setDesc3(datasBean.getFoodName());
// orderDetail.setName(datasBean.getFoodName());
// orderDetail.setItemno(datasBean.getId()+"");
// orderDetail.setFTID(datasBean.getTopID());
// orderDetail.setIsfood(true);
// orderDetail.setIsnew(true);
// orderDetail.setQty(Qty);
// orderDetail.setNewnumber(Qty);
// orderDetail.setItemtype(1);
// orderDetail.setProp("food");
// orderDetail.setModid("");
// orderDetail.setUser_Qty(datasBean.getOR_Qty());
// orderDetail.setPointsadd(datasBean.getPointsAdd());
// orderDetail.setPointsRedeem(datasBean.getPointsRedeem());
// orderDetail.setPointsrote(datasBean.getPointsRatio());
// orderDetail.setD_able(datasBean.isAblediscount());
// orderDetail.setSc_able(datasBean.isServercharge());
// orderDetail.setAutomod(datasBean.isAutoMod() ? 1 : 0);
// orderDetail.setAdvprice(datasBean.getAdvPrice());
// orderDetail.setUnit_id(datasBean.getUnit_id());
// orderDetail.setFuncmoney(isFuncmoney);
//
// setCalculatePrice(orderDetail, isFuncmoney, datasBean.getPrice());
//
// //设置seq
// sseq = get_sseq();
// mseq = get_mseq(sseq);
// orderDetail.setSeqno(seqno);
// orderDetail.setSseq(sseq);
// orderDetail.setMseq(mseq);
//
// int comboLevel = datasBean.isComboFood() ? 1 : 0;
// orderDetail.setComboLevel(comboLevel);
// orderDetail.setSelected(2);
// return orderDetail;
// }
//
// /**
// * 子食品转换
// *
// * @param datasBean
// * @param prop
// * @return
// */
// public OrderDetail comboConvertOrderDetail(ComboItem.DatasBean datasBean, String prop) {
// OrderDetail orderDetail = new OrderDetail();
// orderDetail.setDesc1(datasBean.getDesc1());
// orderDetail.setDesc2(datasBean.getDesc2());
// orderDetail.setDesc3(datasBean.getDesc3());
// orderDetail.setItemno(datasBean.getFID());
// orderDetail.setFTID(datasBean.getFID());
// orderDetail.setComid(datasBean.getComID());
// orderDetail.setIsfood(true);
// orderDetail.setIsnew(true);
// orderDetail.setQty(datasBean.getQty());
// orderDetail.setNewnumber(datasBean.getQty());
// orderDetail.setItemtype(2);
// orderDetail.setD_able(datasBean.isAblediscount());
// orderDetail.setComboAuto(datasBean.isAutomode());
// if (prop.equals("comboitem_auto")) {
// orderDetail.isComboAuto = true;
// }
// orderDetail.ComboLevel = 2;
// orderDetail.limitQty = datasBean.getQty();
// orderDetail.setProp(prop);
//
// int order_detail_id = -1;
// if (MyOrderManage.getInstance().getCurrentOrderFood() != null) {
// order_detail_id = MyOrderManage.getInstance().getCurrentOrderFood().getOrder_detail_id();
// }
// orderDetail.setOrder_detail_id(order_detail_id);
//
// setCalculatePrice(orderDetail, false, datasBean.getDiffAmt());
//
// //设置seq
// sseq = get_sseq();
// mseq = get_mseq(sseq);
// orderDetail.setSeqno(seqno);
// orderDetail.setSseq(sseq);
// orderDetail.setMseq(mseq);
//
// if (presenter.isRvMealClicked()) {
// //手动点击细项 才将子食品作为主体被选中
// orderDetail.setSelected(2);
// } else {
// orderDetail.setSelected(1);
// }
// return orderDetail;
// }
//
// public OrderDetail modifierConvertOrderDetail(Modifier.DatasBean datasBean) {
// OrderDetail orderDetail = new OrderDetail();
// orderDetail.setDesc1(datasBean.getDesc1());
// orderDetail.setDesc2(datasBean.getDesc2());
// orderDetail.setDesc3(datasBean.getDesc3());
// orderDetail.setName(datasBean.getName());
//// orderDetail.setItemno(datasBean.getFid());
// orderDetail.setItemno(datasBean.getMID());
// orderDetail.setFTID(datasBean.getTopID());
// orderDetail.setIsfood(false);
// orderDetail.setIsnew(true);
// orderDetail.setQty(1);
// orderDetail.setNewnumber(1);
// orderDetail.setItemtype(3);
// orderDetail.setProp("modifify");
// orderDetail.setModid(datasBean.getMID());
// orderDetail.setUser_Qty(datasBean.getOR_Qty());
// orderDetail.setD_able(datasBean.isAblediscount());
//
// int order_detail_id = -1;
// if (MyOrderManage.getInstance().getCurrentOrderFood() != null) {
// order_detail_id = MyOrderManage.getInstance().getCurrentOrderFood().getOrder_detail_id();
// }
// orderDetail.setOrder_detail_id(order_detail_id);
//
// setCalculatePrice(orderDetail, false, datasBean.getPrice());
//
// //手动点击细项 才将子食品作为主体被选中
// orderDetail.setSelected(2);
//
// return orderDetail;
// }
//
// public OrderDetail MyButtonMealModifDetailConvertOrderDetail(MyButtonMealModifDetail datasBean) {
// OrderDetail orderDetail = new OrderDetail();
// orderDetail.setDesc1(datasBean.name1);
// orderDetail.setDesc2(datasBean.name2);
// orderDetail.setDesc3(datasBean.name3);
// orderDetail.setItemno(datasBean.mid);
// orderDetail.setItemNo(datasBean.parentid);
// orderDetail.setFTID(datasBean.topid);
// orderDetail.setIsfood(false);
// orderDetail.setIsnew(true);
// orderDetail.setQty(1);
// orderDetail.setNewnumber(1);
// orderDetail.setItemtype(3);
// orderDetail.setProp("modifify_modalkeyboard");
// orderDetail.setModid(datasBean.mid);
// orderDetail.setD_able(datasBean.ablediscount);
//
// int order_detail_id = -1;
// if (MyOrderManage.getInstance().getCurrentOrderFood() != null) {
// order_detail_id = MyOrderManage.getInstance().getCurrentOrderFood().getOrder_detail_id();
// }
// orderDetail.setOrder_detail_id(order_detail_id);
//
//// orderDetail.setOrder_detail_id(datasBean.order_detail_id);
//
// setCalculatePrice(orderDetail, false, datasBean.money);
//
// //设置seq
// sseq = get_sseq();
// mseq = get_mseq(sseq);
// orderDetail.setSeqno(seqno);
// orderDetail.setSseq(sseq);
// orderDetail.setMseq(mseq);
//
//// if (datasBean.name1.length() > 0) {
//// orderDetail.setUnit_id(datasBean.order_detail_id);
//// add_menu_bmd(bmd_advpriceIs2, bmd_advpriceIs2.get_Fname() + "(" + Title.trim() + ")", money, unitid);
//// }
// return orderDetail;
// }
//
// public MyButtonMealModifDetail modifierConvertMyButtonMealModifDetail(Modifier.DatasBean datasBean) {
// MyButtonMealModifDetail buttonMealModifDetail = new MyButtonMealModifDetail(context, GSAApplication.androidSetting.getOrderNumberChildShowSize(), GSAApplication.androidSetting.getOrderNumberChildFontSize());
// buttonMealModifDetail.name1 = datasBean.getDesc1();
// buttonMealModifDetail.name2 = datasBean.getDesc2();
// buttonMealModifDetail.name3 = datasBean.getDesc3();
// buttonMealModifDetail.maxQty = datasBean.getMaxqty();
// buttonMealModifDetail.minQty = datasBean.getMinqty();
// buttonMealModifDetail.mid = datasBean.getMID();
// buttonMealModifDetail.money = datasBean.getPrice();
//
// buttonMealModifDetail.set_Fname(AndroidSettingUtils.getDataLanguage(datasBean.getDesc1(), datasBean.getDesc2(), datasBean.getDesc3()));
// buttonMealModifDetail.topid = datasBean.getTopID();
// buttonMealModifDetail.isParent = datasBean.isParent() ? 1 : 0;
// buttonMealModifDetail.parentid = datasBean.getFid();
// buttonMealModifDetail.mod_Comm = datasBean.isMod_comm() ? 1 : 0;
// buttonMealModifDetail.mod_msg = datasBean.isMod_msg() ? 1 : 0;
// buttonMealModifDetail.multiple = datasBean.isMod_taste() ? 1 : 0;
// buttonMealModifDetail.visible = datasBean.isVisible() ? 1 : 0;
// buttonMealModifDetail.ModKeyboard = datasBean.isModKeyboard();
// buttonMealModifDetail.ablediscount = datasBean.isAblediscount();
// int order_detail_id = -1;
// if (MyOrderManage.getInstance().getCurrentOrderFood() != null) {
// order_detail_id = MyOrderManage.getInstance().getCurrentOrderFood().getOrder_detail_id();
// }
// buttonMealModifDetail.order_detail_id = order_detail_id;
//
// return buttonMealModifDetail;
// }
//
// public Modifier.DatasBean MyButtonMealModifDetailConvertModifier(MyButtonMealModifDetail datasBean) {
//
// Modifier.DatasBean modifier = new Modifier.DatasBean();
// modifier.setDesc1(datasBean.name1);
// modifier.setDesc2(datasBean.name2);
// modifier.setDesc3(datasBean.name3);
// modifier.setMaxqty(datasBean.maxQty);
// modifier.setMinqty(datasBean.minQty);
// modifier.setMID(datasBean.mid);
// modifier.setPrice(datasBean.money);
//
// modifier.setTopID(datasBean.topid);
// modifier.setIsParent(datasBean.isParent == 1 ? true : false);
// modifier.setFid(datasBean.parentid);
// modifier.setMod_comm(datasBean.mod_Comm == 1 ? true : false);
// modifier.setMod_msg(datasBean.mod_msg == 1 ? true : false);
//
// modifier.setMultiple(datasBean.multiple);
// modifier.setVisible(datasBean.visible == 1 ? true : false);
// modifier.setModKeyboard(datasBean.ModKeyboard);
// modifier.setAblediscount(datasBean.ablediscount);
//
// return modifier;
// }
//
// public double getMoney(String fid, int number, int unit, Date needCalcdate) {
// double money = 0.00;
// Db_Food_Price dfp = new Db_Food_Price(context);
// money = dfp.getMoney(fid, unit, number, needCalcdate);
// dfp.closeDb();
// return money;
// }
public int getSize() { public int getSize() {
return orderFoodList != null ? orderFoodList.size() : 0; return orderFoodList != null ? orderFoodList.size() : 0;
} }
...@@ -1087,6 +310,18 @@ public class MyOrderManage { ...@@ -1087,6 +310,18 @@ public class MyOrderManage {
if (billMoney != null) { if (billMoney != null) {
billMoney.clear(); billMoney.clear();
} }
if (pointsOld != null) {
pointsOld = null;
}
if (pointsNow != null) {
pointsNow = null;
}
if (pointsAdd != null) {
pointsAdd = null;
}
if (pointsUse != null) {
pointsUse = null;
}
wholeAmount = 0.0; wholeAmount = 0.0;
totalAmount = 0.0; totalAmount = 0.0;
orderBean = null; orderBean = null;
...@@ -1205,6 +440,38 @@ public class MyOrderManage { ...@@ -1205,6 +440,38 @@ public class MyOrderManage {
this.mseq = mseq; this.mseq = mseq;
} }
public Double getPointsOld() {
return pointsOld;
}
public void setPointsOld(Double pointsOld) {
this.pointsOld = pointsOld;
}
public Double getPointsNow() {
return pointsNow;
}
public void setPointsNow(Double pointsNow) {
this.pointsNow = pointsNow;
}
public Double getPointsAdd() {
return pointsAdd;
}
public void setPointsAdd(Double pointsAdd) {
this.pointsAdd = pointsAdd;
}
public Double getPointsUse() {
return pointsUse;
}
public void setPointsUse(Double pointsUse) {
this.pointsUse = pointsUse;
}
public List<OrderDetail> getOrderFoodList() { public List<OrderDetail> getOrderFoodList() {
if (orderFoodList == null) { if (orderFoodList == null) {
orderFoodList = new ArrayList<>(); orderFoodList = new ArrayList<>();
...@@ -1243,51 +510,6 @@ public class MyOrderManage { ...@@ -1243,51 +510,6 @@ public class MyOrderManage {
this.wholeAmount = wholeAmount; this.wholeAmount = wholeAmount;
} }
//
// public List<DatasBean> getComboOrders() {
// return comboOrders;
// }
//
// public void setComboOrders(List<DatasBean> comboOrders) {
// this.comboOrders = comboOrders;
// }
//
// public List<MixOldOrder> getMixOldOrders() {
// return MixOldOrders;
// }
//
// public void setMixOldOrders(List<MixOldOrder> mixOldOrders) {
// MixOldOrders = mixOldOrders;
// }
//
// public List<MixComboGroupDiscount.DatasBean> getMixComboGroup_Discounts() {
// return mixComboGroup_Discounts;
// }
//
// public void setMixComboGroup_Discounts(List<MixComboGroupDiscount.DatasBean> mixComboGroup_Discounts) {
// this.mixComboGroup_Discounts = mixComboGroup_Discounts;
// }
//
// public List<MixComboGroup.DatasBean> getMixComboGroups() {
// return MixComboGroups;
// }
//
// public void setMixComboGroups(List<MixComboGroup.DatasBean> mixComboGroups) {
// MixComboGroups = mixComboGroups;
// }
//
// public void setContext(Activity context) {
// this.context = context;
// }
//
// public void setPresenter(MealStandPresenter presenter) {
// this.presenter = presenter;
// }
//
// public void setSelectMealAdapter(SelectMealAdapter selectMealAdapter) {
// this.selectMealAdapter = selectMealAdapter;
// }
public boolean isModifyOrder() { public boolean isModifyOrder() {
return modifyOrder; return modifyOrder;
} }
......
...@@ -16,22 +16,23 @@ import java.util.concurrent.TimeUnit; ...@@ -16,22 +16,23 @@ import java.util.concurrent.TimeUnit;
* 描述: 線程池管理類 * 描述: 線程池管理類
*/ */
public class ThreadPoolManager { public class ThreadPoolManager {
private String TAG =this.getClass().getSimpleName(); private String TAG = this.getClass().getSimpleName();
private static ThreadPoolManager instence = null; private static ThreadPoolManager instence = null;
private ThreadPoolExecutor mThreadPoolExecutor; private ThreadPoolExecutor mThreadPoolExecutor;
private static final int CPU_COUNT = Runtime.getRuntime().availableProcessors();
//线程数量,核心线程数 //线程数量,核心线程数
private int corePoolSize = 5; private static final int CORE_POOL_SIZE = Math.max(2, Math.min(CPU_COUNT - 1, 4));
//池中允许的最大线程数 //池中允许的最大线程数
private int maximumPoolSize = 10; private static final int MAXIMUM_POOL_SIZE = CPU_COUNT * 2 + 1;
//设置空闲线程的空闲时间,如果一共有6个线程,那么超出核心线程数的两个线程就会被记录时间,超过该时间就会被杀死,如果没有超过核心线程数,那么线程是不会被倒计时的。 //设置空闲线程的空闲时间,如果一共有6个线程,那么超出核心线程数的两个线程就会被记录时间,超过该时间就会被杀死,如果没有超过核心线程数,那么线程是不会被倒计时的。
private long keepAliveTime = 10; private static final int KEEP_ALIVE_SECONDS = 30;
//等待执行的容器容量大小 //等待执行的容器容量大小
private int capacity = 10; private int capacity = 128;
//拒绝后的执行任务容器--》凉快的地方 //拒绝后的执行任务容器--》凉快的地方
private LinkedBlockingQueue taskQueue =new LinkedBlockingQueue(); private LinkedBlockingQueue taskQueue = new LinkedBlockingQueue();
public synchronized static ThreadPoolManager getInstence() { public synchronized static ThreadPoolManager getInstence() {
if (instence == null) { if (instence == null) {
...@@ -49,9 +50,9 @@ public class ThreadPoolManager { ...@@ -49,9 +50,9 @@ public class ThreadPoolManager {
* ArrayBlockingQueue是一个执行任务的容量,当调用mThreadPoolExecutor的execute,容量加1,执行run完后,容量减1 * ArrayBlockingQueue是一个执行任务的容量,当调用mThreadPoolExecutor的execute,容量加1,执行run完后,容量减1
* ArrayBlockingQueue后面传入true就是以FIFO规则存储:先进先出 * ArrayBlockingQueue后面传入true就是以FIFO规则存储:先进先出
*/ */
public ThreadPoolManager(){ public ThreadPoolManager() {
if(mThreadPoolExecutor==null){ if (mThreadPoolExecutor == null) {
mThreadPoolExecutor = new ThreadPoolExecutor(corePoolSize,maximumPoolSize,keepAliveTime, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(capacity,true),handler); mThreadPoolExecutor = new ThreadPoolExecutor(CORE_POOL_SIZE, MAXIMUM_POOL_SIZE, KEEP_ALIVE_SECONDS, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(capacity, true), handler);
} }
//开启线程一直循环从等待队列里面取出可执行任务并执行 //开启线程一直循环从等待队列里面取出可执行任务并执行
mThreadPoolExecutor.execute(runnable); mThreadPoolExecutor.execute(runnable);
...@@ -60,9 +61,10 @@ public class ThreadPoolManager { ...@@ -60,9 +61,10 @@ public class ThreadPoolManager {
/** /**
* 往队列里面存入可执行任务 * 往队列里面存入可执行任务
*
* @param runnable * @param runnable
*/ */
public void putExecutableTasks(Runnable runnable){ public void putExecutableTasks(Runnable runnable) {
try { try {
taskQueue.put(runnable); taskQueue.put(runnable);
} catch (InterruptedException e) { } catch (InterruptedException e) {
...@@ -73,34 +75,33 @@ public class ThreadPoolManager { ...@@ -73,34 +75,33 @@ public class ThreadPoolManager {
/** /**
* ThreadPoolExecutor的run * ThreadPoolExecutor的run
*/ */
private Runnable runnable=new Runnable() { private Runnable runnable = new Runnable() {
@Override @Override
public void run() { public void run() {
//开启循环 //开启循环
while(true){ while (true) {
//取出等待的执行任务 //取出等待的执行任务
Runnable taskQueueRunnable = null; Runnable taskQueueRunnable = null;
try { try {
Log.d(TAG,"等待队列大小:"+taskQueue.size()); Log.d(TAG, "等待队列大小:" + taskQueue.size());
taskQueueRunnable = (Runnable) taskQueue.take(); taskQueueRunnable = (Runnable) taskQueue.take();
} catch (InterruptedException e) { } catch (InterruptedException e) {
e.printStackTrace(); e.printStackTrace();
} }
if(runnable!=null){ if (runnable != null) {
mThreadPoolExecutor.execute(taskQueueRunnable); mThreadPoolExecutor.execute(taskQueueRunnable);
} }
Log.d(TAG,"线程池大小"+mThreadPoolExecutor.getPoolSize()); Log.d(TAG, "线程池大小" + mThreadPoolExecutor.getPoolSize());
} }
} }
}; };
/** /**
* 拒绝策略 * 拒绝策略
* 当ArrayBlockingQueue容量过大,就要执行拒绝策略,对来的执行任务说:放不下了,先到一边凉快去,那么就要有一个凉快的容器撞他们 * 当ArrayBlockingQueue容量过大,就要执行拒绝策略,对来的执行任务说:放不下了,先到一边凉快去,那么就要有一个凉快的容器装他们
*
*/ */
private RejectedExecutionHandler handler = new RejectedExecutionHandler(){ private RejectedExecutionHandler handler = new RejectedExecutionHandler() {
@Override @Override
public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) { public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) {
......
...@@ -12,7 +12,7 @@ public class ExpandConstant { ...@@ -12,7 +12,7 @@ public class ExpandConstant {
public final static String RoundingDecimal = "RoundingDecimal"; public final static String RoundingDecimal = "RoundingDecimal";
public final static String ItemDecimals = "ItemDecimals"; public final static String ItemDecimals = "ItemDecimals";
public final static String MergeSendFood = "MergeSendFood"; public final static String MergeSendFood = "MergeSendFood";
public final static String AutoPrinterParper = "AutoPrinterParper";
......
...@@ -149,6 +149,11 @@ public class ComboItem { ...@@ -149,6 +149,11 @@ public class ComboItem {
*/ */
@Transient @Transient
private long ablediscount; private long ablediscount;
/**
* 是否收取服務費
*/
@Transient
private int serviceCharge;
/*** 是否自動展開*/ /*** 是否自動展開*/
@Transient @Transient
private int autoMode = 0; private int autoMode = 0;
......
...@@ -104,7 +104,19 @@ public class Discount { ...@@ -104,7 +104,19 @@ public class Discount {
// else { // else {
// discountPrice = sourcePrice - discountPrice; // discountPrice = sourcePrice - discountPrice;
// } // }
return -MoneyUtil.get_ItemDecimals_money(discountPrice); return -MoneyUtil.get_ItemDecimals_money(Math.abs(discountPrice));
}
public static double calculationMemberDiscount(int memberDiscount, double sourcePrice) {
double discountPrice = MoneyUtil.divide(MoneyUtil.multiply(sourcePrice, memberDiscount), 100).doubleValue();
if (sourcePrice < discountPrice) {
//折扣金額不能超出總額
discountPrice = sourcePrice;
}
// else {
// discountPrice = sourcePrice - discountPrice;
// }
return -MoneyUtil.get_ItemDecimals_money(Math.abs(discountPrice));
} }
......
...@@ -162,7 +162,7 @@ public class ComboItemDaoUtils { ...@@ -162,7 +162,7 @@ public class ComboItemDaoUtils {
ArrayList<ComboItem> comboItems = new ArrayList<>(); ArrayList<ComboItem> comboItems = new ArrayList<>();
// String sql = "SELECT c.*,f.FOOD_NAME,f.FOOD_NAME1,f.FOOD_NAME2,f.PRICE,f.AUTO_MOD FROM COMBO_ITEM c join FOOD f on c.FID=f.FID and f.INVISIBLE=0 join FOOD_COMBO r on r.COM_ID=c.COM_ID "; // String sql = "SELECT c.*,f.FOOD_NAME,f.FOOD_NAME1,f.FOOD_NAME2,f.PRICE,f.AUTO_MOD FROM COMBO_ITEM c join FOOD f on c.FID=f.FID and f.INVISIBLE=0 join FOOD_COMBO r on r.COM_ID=c.COM_ID ";
String sql = "SELECT c.*,f.FOOD_NAME,f.FOOD_NAME1,f.FOOD_NAME2,f.PRICE,f.AUTO_MOD,f.PRINT_SETING,f.ABLE_DISCOUNT,SELECT_QTY,DEF_MODIFIER,INVISIBLE,POINTS_ADD,POINTS_RATIO,POINTS_REDEEM 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"; String sql = "SELECT c.*,f.FOOD_NAME,f.FOOD_NAME1,f.FOOD_NAME2,f.PRICE,f.AUTO_MOD,f.PRINT_SETING,f.ABLE_DISCOUNT,SELECT_QTY,DEF_MODIFIER,INVISIBLE,POINTS_ADD,POINTS_RATIO,POINTS_REDEEM,SERVICE_CHARGE 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 + "'";
...@@ -187,6 +187,7 @@ public class ComboItemDaoUtils { ...@@ -187,6 +187,7 @@ public class ComboItemDaoUtils {
order.setPointsAdd(c.getDouble(c.getColumnIndex("POINTS_ADD"))); order.setPointsAdd(c.getDouble(c.getColumnIndex("POINTS_ADD")));
order.setPointsRatio(c.getLong(c.getColumnIndex("POINTS_RATIO"))); order.setPointsRatio(c.getLong(c.getColumnIndex("POINTS_RATIO")));
order.setPointsRedeem(c.getDouble(c.getColumnIndex("POINTS_REDEEM"))); order.setPointsRedeem(c.getDouble(c.getColumnIndex("POINTS_REDEEM")));
order.setServiceCharge(c.getInt(c.getColumnIndex("SERVICE_CHARGE")));
String defmodifier = c.getString(c.getColumnIndex("DEF_MODIFIER")); String defmodifier = c.getString(c.getColumnIndex("DEF_MODIFIER"));
if (!TextUtils.isEmpty(defmodifier) && !", ".equals(defmodifier)) { if (!TextUtils.isEmpty(defmodifier) && !", ".equals(defmodifier)) {
order.setDefmodifier(defmodifier); order.setDefmodifier(defmodifier);
......
...@@ -117,6 +117,10 @@ public class FunctionStyleUtils { ...@@ -117,6 +117,10 @@ public class FunctionStyleUtils {
* 送單是否自動合併未送食品(只處理未有細項的食品) * 送單是否自動合併未送食品(只處理未有細項的食品)
*/ */
private boolean MergeSendFood = true; private boolean MergeSendFood = true;
/**
* 送單是否自動打印上菜纸
*/
private boolean AutoPrinterParper = true;
private Set<String> customizeSetting = new HashSet<>(); private Set<String> customizeSetting = new HashSet<>();
......
...@@ -62,7 +62,7 @@ public class MyGlobalHttpHandler implements GlobalHttpHandler { ...@@ -62,7 +62,7 @@ public class MyGlobalHttpHandler implements GlobalHttpHandler {
// return; // return;
// } // }
//因为String的length是字符数量不是字节数量所以为了防止中文字符过多, //因为String的length是字符数量不是字节数量所以为了防止中文字符过多,
// 把4*1024的MAX字节打印长度改为2001字符数 //把4*1024的MAX字节打印长度改为2001字符数
// int max_str_length = 2001 - TAG.length(); // int max_str_length = 2001 - TAG.length();
//大于4000时 //大于4000时
// while (msg.length() > max_str_length) { // while (msg.length() > max_str_length) {
......
...@@ -77,11 +77,11 @@ public class MyResponseErrorListener implements ResponseErrorListener { ...@@ -77,11 +77,11 @@ public class MyResponseErrorListener implements ResponseErrorListener {
showloggedDialog(activity, ArmsUtils.getString(context, R.string.response_error_request_logged)); showloggedDialog(activity, ArmsUtils.getString(context, R.string.response_error_request_logged));
} }
} else { } else {
if (httpException.code() == 400) { // if (httpException.code() == 400) {
//Bad Request // //Bad Request
Activity activity = GsaCloudApplication.getAppContext().getCurrentActivity(); // Activity activity = GsaCloudApplication.getAppContext().getCurrentActivity();
toLoginActivity(activity); // toLoginActivity(activity);
} // }
msg = httpException.message(); msg = httpException.message();
} }
return msg; return msg;
......
...@@ -20,7 +20,7 @@ public class MyAppLifecycles implements AppLifecycles { ...@@ -20,7 +20,7 @@ public class MyAppLifecycles implements AppLifecycles {
@Override @Override
public void onCreate(Application application) { public void onCreate(Application application) {
// initTimber(); // initTimber();
// initLeakCanary(application); initLeakCanary(application);
initFragmentation(); initFragmentation();
// initARouter(application); // initARouter(application);
} }
......
package com.gingersoft.gsa.cloud.ui.adapter; package com.gingersoft.gsa.cloud.ui.adapter;
import android.graphics.Color;
import android.text.TextUtils; import android.text.TextUtils;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
...@@ -31,7 +32,8 @@ public class BillMethodAdapter extends BaseQuickAdapter<PayMethod, BaseViewHolde ...@@ -31,7 +32,8 @@ public class BillMethodAdapter extends BaseQuickAdapter<PayMethod, BaseViewHolde
} }
tv_bill_method_name.setTextSize(item.getPayModeSize()); tv_bill_method_name.setTextSize(item.getPayModeSize());
tv_bill_method_name.setTextColor(item.getPayModeTextColor()); tv_bill_method_name.setTextColor(Color.parseColor(item.getFont_color()));
tv_bill_method_name.setBackgroundColor(Color.parseColor(item.getColor()));
} }
} }
...@@ -107,14 +107,32 @@ public class OrderPayView extends LinearLayout { ...@@ -107,14 +107,32 @@ public class OrderPayView extends LinearLayout {
if (mBillMoneyList.size() == 2) { if (mBillMoneyList.size() == 2) {
//替换掉第一个 //替换掉第一个
mBillMoneyList.remove(0); mBillMoneyList.remove(0);
} else if (mBillMoneyList.size() == 1) { }
//差一种支付方式 直接补足余额 //是否同步金額
//固定金額 (0:否 1:是)
if (method.getWhetherFixedAmount() == 1) {
//直接补足余额
double differenceMoney = getDifferenceMoney(); double differenceMoney = getDifferenceMoney();
if (differenceMoney > -1 && differenceMoney != totalAmount) { if (method.getMinPayAmount() != 0) {
//補足最小支付金額
if (differenceMoney > method.getMinPayAmount()) {
method.setPayMoney(differenceMoney);
} else {
method.setPayMoney(method.getMinPayAmount());
}
} else {
//補足差額 //補足差額
method.setPayMoney(differenceMoney); if (differenceMoney > -1 && differenceMoney != totalAmount) {
method.setPayMoney(differenceMoney);
}
}
} else {
if (method.getMinPayAmount() != 0) {
//補足最小支付金額
method.setPayMoney(method.getMinPayAmount());
} }
} }
//添加選中支付方式 //添加選中支付方式
mBillMoneyList.add(method); mBillMoneyList.add(method);
mBillMoneyAdapter.setSelect_position(mBillMoneyList.size() - 1); mBillMoneyAdapter.setSelect_position(mBillMoneyList.size() - 1);
...@@ -124,7 +142,6 @@ public class OrderPayView extends LinearLayout { ...@@ -124,7 +142,6 @@ public class OrderPayView extends LinearLayout {
setDifferenceText(context); setDifferenceText(context);
} }
}); });
mBillMoneyAdapter.setOnItemClickListener(new BillMoneyAdapter.OnItemClickListener() { mBillMoneyAdapter.setOnItemClickListener(new BillMoneyAdapter.OnItemClickListener() {
@Override @Override
...@@ -173,7 +190,6 @@ public class OrderPayView extends LinearLayout { ...@@ -173,7 +190,6 @@ public class OrderPayView extends LinearLayout {
if (mOnSureClickLisenter != null) { if (mOnSureClickLisenter != null) {
mOnSureClickLisenter.onClick(mBillMoneyList); mOnSureClickLisenter.onClick(mBillMoneyList);
} }
}); });
//Keypad //Keypad
......
...@@ -79,11 +79,14 @@ public class TriangleLabelView extends View { ...@@ -79,11 +79,14 @@ public class TriangleLabelView extends View {
private Corner corner; private Corner corner;
private boolean isRestoreText = true;
public enum Corner { public enum Corner {
TOP_LEFT(1), TOP_LEFT(1),
TOP_RIGHT(2), TOP_RIGHT(2),
BOTTOM_LEFT(3), BOTTOM_LEFT(3),
BOTTOM_RIGHT(4),; BOTTOM_RIGHT(4),;
private final int type; private final int type;
Corner(int type) { Corner(int type) {
...@@ -139,6 +142,8 @@ public class TriangleLabelView extends View { ...@@ -139,6 +142,8 @@ public class TriangleLabelView extends View {
this.primary.size = ta.getDimension(R.styleable.TriangleLabelView_primaryTextSize, sp2px(11)); this.primary.size = ta.getDimension(R.styleable.TriangleLabelView_primaryTextSize, sp2px(11));
this.secondary.size = ta.getDimension(R.styleable.TriangleLabelView_secondaryTextSize, sp2px(8)); this.secondary.size = ta.getDimension(R.styleable.TriangleLabelView_secondaryTextSize, sp2px(8));
this.isRestoreText = ta.getBoolean(R.styleable.TriangleLabelView_isRestoreText, true);
final String primary = ta.getString(R.styleable.TriangleLabelView_primaryText); final String primary = ta.getString(R.styleable.TriangleLabelView_primaryText);
if (primary != null) { if (primary != null) {
this.primary.text = primary; this.primary.text = primary;
...@@ -335,13 +340,15 @@ public class TriangleLabelView extends View { ...@@ -335,13 +340,15 @@ public class TriangleLabelView extends View {
canvas.drawPath(path, trianglePaint); canvas.drawPath(path, trianglePaint);
// draw secondaryText // draw secondaryText
// if (corner.top()) { if (isRestoreText) {
// canvas.drawText(secondary.text, (width) / 2, topPadding + secondary.height, secondary.paint); if (corner.top()) {
// canvas.drawText(primary.text, (width) / 2, (topPadding + secondary.height + centerPadding + primary.height), primary.paint); canvas.drawText(secondary.text, (width) / 2, topPadding + secondary.height, secondary.paint);
// } else { canvas.drawText(primary.text, (width) / 2, (topPadding + secondary.height + centerPadding + primary.height), primary.paint);
// canvas.drawText(secondary.text, (width) / 2, bottomPadding + secondary.height + centerPadding + primary.height, secondary.paint); } else {
// canvas.drawText(primary.text, (width) / 2, (bottomPadding + primary.height), primary.paint); canvas.drawText(secondary.text, (width) / 2, bottomPadding + secondary.height + centerPadding + primary.height, secondary.paint);
// } canvas.drawText(primary.text, (width) / 2, (bottomPadding + primary.height), primary.paint);
}
}
canvas.restore(); canvas.restore();
} }
......
...@@ -34,7 +34,6 @@ import android.view.SurfaceView; ...@@ -34,7 +34,6 @@ import android.view.SurfaceView;
import android.view.View; import android.view.View;
import android.view.View.OnClickListener; import android.view.View.OnClickListener;
import android.widget.TextView; import android.widget.TextView;
import com.billy.cc.core.component.CC; import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.base.R; import com.gingersoft.gsa.cloud.base.R;
import com.gingersoft.gsa.cloud.base.R2; import com.gingersoft.gsa.cloud.base.R2;
...@@ -63,16 +62,15 @@ import com.jess.arms.utils.ArmsUtils; ...@@ -63,16 +62,15 @@ import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.DrawableProvider; import com.jess.arms.utils.DrawableProvider;
import com.qmuiteam.qmui.alpha.QMUIAlphaImageButton; import com.qmuiteam.qmui.alpha.QMUIAlphaImageButton;
import com.qmuiteam.qmui.widget.QMUITopBar; import com.qmuiteam.qmui.widget.QMUITopBar;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import java.io.IOException; import java.io.IOException;
import java.net.URLDecoder; import java.net.URLDecoder;
import java.util.Hashtable; import java.util.Hashtable;
import java.util.List; import java.util.List;
import java.util.Vector; import java.util.Vector;
import java.util.logging.LogManager;
import java.util.logging.Logger;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.core.app.ActivityCompat; import androidx.core.app.ActivityCompat;
...@@ -82,12 +80,12 @@ import butterknife.OnClick; ...@@ -82,12 +80,12 @@ import butterknife.OnClick;
import cn.bingoogolapple.photopicker.activity.BGAPhotoPickerActivity; import cn.bingoogolapple.photopicker.activity.BGAPhotoPickerActivity;
import cn.bingoogolapple.qrcode.core.QRCodeView; import cn.bingoogolapple.qrcode.core.QRCodeView;
import cn.bingoogolapple.qrcode.zxing.ZXingView; import cn.bingoogolapple.qrcode.zxing.ZXingView;
import lombok.Builder;
import static com.jess.arms.utils.Preconditions.checkNotNull; import static com.jess.arms.utils.Preconditions.checkNotNull;
public class MipcaCaptureActivity extends BaseActivity<BasePresenter> implements IView, QRCodeView.Delegate, OnClickListener { public class MipcaCaptureActivity extends BaseActivity<BasePresenter> implements IView, QRCodeView.Delegate, OnClickListener {
@BindView(R2.id.topbar) @BindView(R2.id.topbar)
QMUITopBar mTopBar; QMUITopBar mTopBar;
@BindView(R2.id.btn_album) @BindView(R2.id.btn_album)
...@@ -104,16 +102,14 @@ public class MipcaCaptureActivity extends BaseActivity<BasePresenter> implements ...@@ -104,16 +102,14 @@ public class MipcaCaptureActivity extends BaseActivity<BasePresenter> implements
Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE,
}; };
public static final int CALL_BACK_QR_RESULT = 100; public static final int CALL_BACK_QR_RESULT = 666;
private static final int REQUEST_CODE_CHOOSE_QRCODE_FROM_GALLERY = 666;
private String title = "掃碼"; private String title = "掃碼";
public static void startMipcaCaptureActivity(Context context, String title) { public static void startMipcaCaptureActivity(Activity context, String title) {
Intent intent = new Intent(context, MipcaCaptureActivity.class); Intent intent = new Intent(context, MipcaCaptureActivity.class);
intent.putExtra("title", title); intent.putExtra("title", title);
context.startActivity(intent); context.startActivityForResult(intent, MipcaCaptureActivity.CALL_BACK_QR_RESULT);
// context.startActivityForResult(intent, MealStandActivity.SCAN_REQUEST_CODE);
} }
@Override @Override
...@@ -134,6 +130,7 @@ public class MipcaCaptureActivity extends BaseActivity<BasePresenter> implements ...@@ -134,6 +130,7 @@ public class MipcaCaptureActivity extends BaseActivity<BasePresenter> implements
@Override @Override
public void initData(@Nullable Bundle savedInstanceState) { public void initData(@Nullable Bundle savedInstanceState) {
mZXingView.setDelegate(this); mZXingView.setDelegate(this);
} }
...@@ -216,18 +213,6 @@ public class MipcaCaptureActivity extends BaseActivity<BasePresenter> implements ...@@ -216,18 +213,6 @@ public class MipcaCaptureActivity extends BaseActivity<BasePresenter> implements
intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*"); intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");
startActivityForResult(intent, PHOTOZOOM); startActivityForResult(intent, PHOTOZOOM);
} }
/*
从相册选取二维码图片,这里为了方便演示,使用的是
https://github.com/bingoogolapple/BGAPhotoPicker-Android
这个库来从图库中选择二维码图片,这个库不是必须的,你也可以通过自己的方式从图库中选择图片
*/
// Intent photoPickerIntent = new BGAPhotoPickerActivity.IntentBuilder(this)
// .cameraFileDir(null)
// .maxChooseCount(1)
// .selectedPhotos(null)
// .pauseOnScroll(false)
// .build();
// startActivityForResult(photoPickerIntent, REQUEST_CODE_CHOOSE_QRCODE_FROM_GALLERY);
} }
} }
...@@ -300,7 +285,13 @@ public class MipcaCaptureActivity extends BaseActivity<BasePresenter> implements ...@@ -300,7 +285,13 @@ public class MipcaCaptureActivity extends BaseActivity<BasePresenter> implements
Log.i(TAG, "onScanQRCodeSuccess:" + result); Log.i(TAG, "onScanQRCodeSuccess:" + result);
showMessage("掃描結果: " + result); showMessage("掃描結果: " + result);
vibrate(); vibrate();
mZXingView.startSpot(); // 开始识别 mZXingView.startSpot();
Intent intent = new Intent();
intent.putExtra("qrCodeResult",result);
setResult(CALL_BACK_QR_RESULT,intent);
killMyself();
} }
@Override @Override
......
...@@ -52,6 +52,8 @@ ...@@ -52,6 +52,8 @@
<attr name="labelCenterPadding" format="dimension" /> <attr name="labelCenterPadding" format="dimension" />
<attr name="labelBottomPadding" format="dimension" /> <attr name="labelBottomPadding" format="dimension" />
<attr name="isRestoreText" format="boolean" />
<attr name="primaryTextStyle"> <attr name="primaryTextStyle">
<enum name="normal" value="0" /> <enum name="normal" value="0" />
<enum name="italic" value="1" /> <enum name="italic" value="1" />
......
...@@ -60,17 +60,17 @@ class BtnBuilder(var functions: List<Function>) { ...@@ -60,17 +60,17 @@ class BtnBuilder(var functions: List<Function>) {
} }
private fun getBtn(key:String, btnCode:Int, btnContent: String, btnColor: Int, btnImg: Int): BtnBean? { private fun getBtn(key:String, btnCode:Int, btnContent: String, btnColor: Int, btnImg: Int): BtnBean? {
// for (value in functions) { for (value in functions) {
// if (value.resUrl == key) { if (value.resUrl == key) {
// return when { return when {
// value.status == 3 -> BtnBean(btnCode, btnContent, R.color.color_ccc, btnImg) value.status == 3 -> BtnBean(btnCode, btnContent, R.color.color_ccc, btnImg)
//// value.status == 1 -> BtnBean(btnCode, btnContent, btnColor, btnImg) // value.status == 1 -> BtnBean(btnCode, btnContent, btnColor, btnImg)
// else -> BtnBean(btnCode, btnContent, btnColor, btnImg) else -> BtnBean(btnCode, btnContent, btnColor, btnImg)
// } }
// } }
// } }
// return null return null
return BtnBean(btnCode, btnContent, btnColor, btnImg) // return BtnBean(btnCode, btnContent, btnColor, btnImg)
} }
} }
...@@ -155,8 +155,8 @@ public class PayTypeInfo { ...@@ -155,8 +155,8 @@ public class PayTypeInfo {
private int id; private int id;
private long isdefault; private long isdefault;
private String payName;
private String remarks; private String remarks;
private String payName;
private String payName3; private String payName3;
private String payName2; private String payName2;
private boolean checked; private boolean checked;
...@@ -229,7 +229,7 @@ public class PayTypeInfo { ...@@ -229,7 +229,7 @@ public class PayTypeInfo {
return payMethods; return payMethods;
} }
for (PayTypeInfo.DataBean.PayTypeBean payType : payTypes.payType) { for (PayTypeInfo.DataBean.PayTypeBean payType : payTypes.payType) {
PayMethod payMethod = new PayMethod(payType.id, payType.payName, "", payType.remarks, payType.payName, payType.payName2, payType.payName3, ""); PayMethod payMethod = new PayMethod(payType.id, payType.payName, payType.payName2, payType.payName3);
payMethods.add(payMethod); payMethods.add(payMethod);
} }
return payMethods; return payMethods;
......
...@@ -262,53 +262,53 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl ...@@ -262,53 +262,53 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl
List<Function> functions = new ArrayList<>(); List<Function> functions = new ArrayList<>();
//// if (!BuildConfig.DEBUG) { //// if (!BuildConfig.DEBUG) {
functions.add(new Function((long) 150, 0, 5, "點餐", 0, 0)); // functions.add(new Function((long) 150, 0, 5, "點餐", 0, 0));
if (BuildConfig.DEBUG) { // if (BuildConfig.DEBUG) {
functions.add(new Function((long) 138, 150, 5, "餐檯模式", R.drawable.ic_dining_table_mode, 0)); // functions.add(new Function((long) 138, 150, 5, "餐檯模式", R.drawable.ic_dining_table_mode, 0));
}
functions.add(new Function((long) 139, 150, 5, "外送/自取", R.drawable.ic_delivery_mode, 0));
// functions.add(new Function((long) 140, 150, 5, "外賣模式", R.drawable.ic_outsourcing_model_close, 0));
// functions.add(new Function((long) 141, 150, 5, "預點餐模式", R.drawable.ic_pre_order_mode_close, 1));
functions.add(new Function((long) 151, 0, 5, "管理", 0, 0));
if (BuildConfig.DEBUG) {
functions.add(new Function((long) 142, 151, 5, "賬單管理", R.drawable.ic_meals_menu_management, 0));
functions.add(new Function((long) 143, 151, 5, "餐檯管理", R.drawable.ic_dining_table_management, 0));
}
functions.add(new Function((long) 144, 151, 5, "打印管理", R.drawable.ic_print_management, 0));
if (BuildConfig.DEBUG) {
functions.add(new Function((long) 145, 151, 5, "支付管理", R.drawable.ic_pay_management_close, 1));
functions.add(new Function((long) 146, 151, 5, "折扣管理", R.drawable.ic_discount_management_close, 1));
functions.add(new Function((long) 147, 151, 5, "沽清管理", R.drawable.ic_sell_off_manger, 0));
}
functions.add(new Function((long) 152, 0, 5, "員工", 0, 0));
functions.add(new Function((long) 147, 152, 5, "員工管理", R.drawable.ic_staff_management_close, 1));
functions.add(new Function((long) 148, 152, 5, "權限管理", R.drawable.ic_authority_management_close, 1));
functions.add(new Function((long) 149, 152, 5, "操作記錄", R.drawable.ic_operation_record_close, 1));
// } else {
// List<Function> orderFuncations = FunctionManager.getDefault().getFunctionByResModule(this, ComponentMain.main.class, ComponentMain.main.order, "order");
// if (orderFuncations.size() > 0) {
// functions.addAll(orderFuncations);
// sl_order.setVisibility(View.VISIBLE);
// } else {
// sl_order.setVisibility(View.INVISIBLE);
// } // }
// // functions.add(new Function((long) 139, 150, 5, "外送/自取", R.drawable.ic_delivery_mode, 0));
// List<Function> managerFuncations = FunctionManager.getDefault().getFunctionByResModule(this, ComponentMain.main.class, ComponentMain.main.manager, "manager"); //// functions.add(new Function((long) 140, 150, 5, "外賣模式", R.drawable.ic_outsourcing_model_close, 0));
// if (managerFuncations.size() > 0) { //// functions.add(new Function((long) 141, 150, 5, "預點餐模式", R.drawable.ic_pre_order_mode_close, 1));
// functions.addAll(managerFuncations); // functions.add(new Function((long) 151, 0, 5, "管理", 0, 0));
// ll_management.setVisibility(View.VISIBLE); // if (BuildConfig.DEBUG) {
// } else { // functions.add(new Function((long) 142, 151, 5, "賬單管理", R.drawable.ic_meals_menu_management, 0));
// ll_management.setVisibility(View.GONE); // functions.add(new Function((long) 143, 151, 5, "餐檯管理", R.drawable.ic_dining_table_management, 0));
// } // }
// // functions.add(new Function((long) 144, 151, 5, "打印管理", R.drawable.ic_print_management, 0));
// List<Function> employeeFuncations = FunctionManager.getDefault().getFunctionByResModule(this, ComponentMain.main.class, ComponentMain.main.employee, "employee"); // if (BuildConfig.DEBUG) {
// if (employeeFuncations.size() > 0) { // functions.add(new Function((long) 145, 151, 5, "支付管理", R.drawable.ic_pay_management_close, 1));
// functions.addAll(employeeFuncations); // functions.add(new Function((long) 146, 151, 5, "折扣管理", R.drawable.ic_discount_management_close, 1));
// ll_staff_management.setVisibility(View.VISIBLE); // functions.add(new Function((long) 147, 151, 5, "沽清管理", R.drawable.ic_sell_off_manger, 0));
// } else {
// ll_staff_management.setVisibility(View.GONE);
// } // }
// functions.add(new Function((long) 152, 0, 5, "員工", 0, 0));
// functions.add(new Function((long) 147, 152, 5, "員工管理", R.drawable.ic_staff_management_close, 1));
// functions.add(new Function((long) 148, 152, 5, "權限管理", R.drawable.ic_authority_management_close, 1));
// functions.add(new Function((long) 149, 152, 5, "操作記錄", R.drawable.ic_operation_record_close, 1));
// } else {
List<Function> orderFuncations = FunctionManager.getDefault().getFunctionByResModule(this, ComponentMain.main.class, ComponentMain.main.order, "order");
if (orderFuncations.size() > 0) {
functions.addAll(orderFuncations);
sl_order.setVisibility(View.VISIBLE);
} else {
sl_order.setVisibility(View.INVISIBLE);
}
List<Function> managerFuncations = FunctionManager.getDefault().getFunctionByResModule(this, ComponentMain.main.class, ComponentMain.main.manager, "manager");
if (managerFuncations.size() > 0) {
functions.addAll(managerFuncations);
ll_management.setVisibility(View.VISIBLE);
} else {
ll_management.setVisibility(View.GONE);
}
List<Function> employeeFuncations = FunctionManager.getDefault().getFunctionByResModule(this, ComponentMain.main.class, ComponentMain.main.employee, "employee");
if (employeeFuncations.size() > 0) {
functions.addAll(employeeFuncations);
ll_staff_management.setVisibility(View.VISIBLE);
} else {
ll_staff_management.setVisibility(View.GONE);
}
// } // }
//將功能列表數據分組 //將功能列表數據分組
...@@ -328,15 +328,15 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl ...@@ -328,15 +328,15 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl
} }
} }
} }
// if (orderFuncations.size() > 0) { if (orderFuncations.size() > 0) {
initAdapter(parents, funMap, 0, R.layout.main_home_funcation_item, rvOrdering, 4); initAdapter(parents, funMap, 0, R.layout.main_home_funcation_item, rvOrdering, 4);
// } }
// if (managerFuncations.size() > 0) { if (managerFuncations.size() > 0) {
initAdapter(parents, funMap, 1, R.layout.main_home_management_funcation_item, rvManagement, 5); initAdapter(parents, funMap, 1, R.layout.main_home_management_funcation_item, rvManagement, 5);
// } }
// if (employeeFuncations.size() > 0) { if (employeeFuncations.size() > 0) {
initAdapter(parents, funMap, 2, R.layout.main_home_management_funcation_item, rvStaffManagement, 4); initAdapter(parents, funMap, 2, R.layout.main_home_management_funcation_item, rvStaffManagement, 4);
// } }
} }
private void initAdapter(SparseArray<String> parents, SparseArray<List<Function>> funMap, int i, int p, RecyclerView rvOrdering, int i2) { private void initAdapter(SparseArray<String> parents, SparseArray<List<Function>> funMap, int i, int p, RecyclerView rvOrdering, int i2) {
......
...@@ -24,6 +24,7 @@ import retrofit2.http.Query; ...@@ -24,6 +24,7 @@ import retrofit2.http.Query;
*/ */
public interface TableManageService { public interface TableManageService {
@POST("restaurant/addRestaurantRegion" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2) @POST("restaurant/addRestaurantRegion" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> addArea(@Body RequestBody requestBody); Observable<BaseResult> addArea(@Body RequestBody requestBody);
......
...@@ -6,6 +6,7 @@ import android.widget.LinearLayout; ...@@ -6,6 +6,7 @@ import android.widget.LinearLayout;
import com.gingersoft.gsa.cloud.base.common.bean.BillOrderMoney; import com.gingersoft.gsa.cloud.base.common.bean.BillOrderMoney;
import com.gingersoft.gsa.cloud.base.common.bean.BillingBean; import com.gingersoft.gsa.cloud.base.common.bean.BillingBean;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail; import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean; import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
...@@ -16,6 +17,7 @@ import com.gingersoft.gsa.cloud.constans.ExpandConstant; ...@@ -16,6 +17,7 @@ import com.gingersoft.gsa.cloud.constans.ExpandConstant;
import com.gingersoft.gsa.cloud.database.bean.ExpandInfo; import com.gingersoft.gsa.cloud.database.bean.ExpandInfo;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean; import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import com.gingersoft.gsa.cloud.database.utils.ExpandInfoDaoUtils; import com.gingersoft.gsa.cloud.database.utils.ExpandInfoDaoUtils;
import com.gingersoft.gsa.cloud.print.bean.OrderDetails;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -101,10 +103,24 @@ public class PrintBill extends PrinterRoot { ...@@ -101,10 +103,24 @@ public class PrintBill extends PrinterRoot {
layout.addView(getDiningBillPayMethod(mContext, MyOrderManage.getInstance().getBillMoney())); layout.addView(getDiningBillPayMethod(mContext, MyOrderManage.getInstance().getBillMoney()));
layout.addView(getLine(mContext)); layout.addView(getLine(mContext));
// layout.addView(getTableMealMemberIntegerView(mContext,)); layout.addView(getTableMealMemberIntegerView(mContext, getOrderDetail()));
return zoomBitmap(deviceBean, viewToBitmap(mContext, layout)); return zoomBitmap(deviceBean, viewToBitmap(mContext, layout));
} }
private OrderDetails.DataBean getOrderDetail() {
OrderDetails.DataBean dataBean = new OrderDetails.DataBean();
dataBean.setNowPoints(MyOrderManage.getInstance().getPointsNow());
dataBean.setAddPoints(MyOrderManage.getInstance().getPointsAdd());
dataBean.setOldPoints(MyOrderManage.getInstance().getPointsUse());
MemberInfo memberInfo = MyOrderManage.getInstance().getMemberInfo();
if (memberInfo != null) {
dataBean.setMEMBER_NAME(memberInfo.getMemberName());
dataBean.setPHONE(memberInfo.getPhone());
}
return dataBean;
}
} }
...@@ -127,7 +127,11 @@ public interface MealStandContract { ...@@ -127,7 +127,11 @@ public interface MealStandContract {
Observable<FoodReason> getRestaurantFoodReason(int brandId, int restaurantId, int type); Observable<FoodReason> getRestaurantFoodReason(int brandId, int restaurantId, int type);
Observable<BaseResult2> queryMember(int type, String parm, String shopName); Observable<BaseResult> queryMember(int type, String parm, String shopName,int tableId,String tableNumber);
Observable<BaseResult> memeberUse(int tableId, String tableNumber, long memberId);
Observable<BaseResult> memeberUseCancel(int tableId, String tableNumber, long memberId);
List<Food> queryDB_AllFoodList(); List<Food> queryDB_AllFoodList();
......
package com.gingersoft.gsa.cloud.table.mvp.contract; package com.gingersoft.gsa.cloud.table.mvp.contract;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult; import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.bean.Modifier; import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose; import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean; import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
...@@ -67,6 +68,8 @@ public interface TableContract { ...@@ -67,6 +68,8 @@ public interface TableContract {
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存 //Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends IModel { interface Model extends IModel {
List<Food> queryDB_AllFoodList();
List<Modifier> queryDB_ModifierList(long fid, int mode); List<Modifier> queryDB_ModifierList(long fid, int mode);
Observable<TableBean> getTables(int restaurantId); Observable<TableBean> getTables(int restaurantId);
......
...@@ -180,9 +180,21 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model ...@@ -180,9 +180,21 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model
} }
@Override @Override
public Observable<BaseResult2> queryMember(int type, String parm, String shopName) { public Observable<BaseResult> queryMember(int type, String parm, String shopName,int tableId,String tableNumber) {
return mRepositoryManager.obtainRetrofitService(MemberService.class) return mRepositoryManager.obtainRetrofitService(MemberService.class)
.queryMember(type,parm,shopName); .queryMember(type,parm,shopName,tableId,tableNumber);
}
@Override
public Observable<BaseResult> memeberUse(int tableId, String tableNumber, long memberId) {
return mRepositoryManager.obtainRetrofitService(MemberService.class)
.memeberUse(tableId,tableNumber,memberId);
}
@Override
public Observable<BaseResult> memeberUseCancel(int tableId, String tableNumber, long memberId) {
return mRepositoryManager.obtainRetrofitService(MemberService.class)
.memeberUseCancel(tableId,tableNumber,memberId);
} }
@Override @Override
......
...@@ -4,8 +4,10 @@ import android.app.Application; ...@@ -4,8 +4,10 @@ import android.app.Application;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult; import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.database.bean.ComboItem; import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.bean.Modifier; import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.database.utils.ComboItemDaoUtils; import com.gingersoft.gsa.cloud.database.utils.ComboItemDaoUtils;
import com.gingersoft.gsa.cloud.database.utils.FoodDaoUtils;
import com.gingersoft.gsa.cloud.database.utils.ModifierDaoUtils; import com.gingersoft.gsa.cloud.database.utils.ModifierDaoUtils;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose; import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean; import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
...@@ -59,6 +61,14 @@ public class TableModel extends BaseModel implements TableContract.Model { ...@@ -59,6 +61,14 @@ public class TableModel extends BaseModel implements TableContract.Model {
this.mApplication = null; this.mApplication = null;
} }
@Override
public List<Food> queryDB_AllFoodList() {
FoodDaoUtils foodDaoUtils = new FoodDaoUtils(mApplication);
List<Food> foods = foodDaoUtils.queryAllFoodByQueryBuilder();
return foods;
}
@Override @Override
public List<Modifier> queryDB_ModifierList(long fid, int mode) { public List<Modifier> queryDB_ModifierList(long fid, int mode) {
ModifierDaoUtils daoUtils = new ModifierDaoUtils(mApplication); ModifierDaoUtils daoUtils = new ModifierDaoUtils(mApplication);
......
...@@ -2,6 +2,8 @@ package com.gingersoft.gsa.cloud.table.mvp.model.bean; ...@@ -2,6 +2,8 @@ package com.gingersoft.gsa.cloud.table.mvp.model.bean;
import com.gingersoft.gsa.cloud.base.common.bean.OrderBean; import com.gingersoft.gsa.cloud.base.common.bean.OrderBean;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail; import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -82,7 +84,7 @@ public class OrderDetailItem implements Serializable { ...@@ -82,7 +84,7 @@ public class OrderDetailItem implements Serializable {
/**折扣金額*/ /**折扣金額*/
private double discountAmount; private double discountAmount;
/**折扣比例*/ /**折扣比例*/
private double discountValue; private int discountValue;
/**折扣名稱*/ /**折扣名稱*/
private String remark; private String remark;
/**折扣類型*/ /**折扣類型*/
...@@ -94,6 +96,8 @@ public class OrderDetailItem implements Serializable { ...@@ -94,6 +96,8 @@ public class OrderDetailItem implements Serializable {
private List<OrderBean.OrderDetailsBean> orderDetails; private List<OrderBean.OrderDetailsBean> orderDetails;
private List<OrderPayBean> orderPays; private List<OrderPayBean> orderPays;
/**餐檯信息*/
private TableBean.DataBean restaurantTable;
/** /**
* 訂單狀態:0:未支付;1:待確認(已支付, 待餐廳確認);2:制作中(餐厅确认);3:派送中;4:确认收货(完成);5:是否评论;6:取消; * 訂單狀態:0:未支付;1:待確認(已支付, 待餐廳確認);2:制作中(餐厅确认);3:派送中;4:确认收货(完成);5:是否评论;6:取消;
...@@ -120,8 +124,6 @@ public class OrderDetailItem implements Serializable { ...@@ -120,8 +124,6 @@ public class OrderDetailItem implements Serializable {
private double paySales; private double paySales;
private String payName; private String payName;
} }
// public static List<OrderDetail> orderTransOrderDetails(List<OrderBean.OrderDetailsBean> orderDetails) { // public static List<OrderDetail> orderTransOrderDetails(List<OrderBean.OrderDetailsBean> orderDetails) {
// List<OrderDetail> orderDetailList = new ArrayList<>(); // List<OrderDetail> orderDetailList = new ArrayList<>();
......
package com.gingersoft.gsa.cloud.table.mvp.model.bean.request; package com.gingersoft.gsa.cloud.table.mvp.model.bean.request;
import com.gingersoft.gsa.cloud.base.common.bean.OrderBean; import com.gingersoft.gsa.cloud.base.common.bean.OrderBean;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDiscount;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -20,11 +21,9 @@ public class AddOrderRequest { ...@@ -20,11 +21,9 @@ public class AddOrderRequest {
private long orderId; private long orderId;
private long tableId; private long tableId;
private String tableNumber; private String tableNumber;
private Integer memberId;
/**賬單小數*/ /**賬單小數*/
private Double rounding; private Double rounding;
/**整單折扣ID*/ private List<OrderDiscount.Request> discountDetails;
private Long discountId;
private Map<String, List<OrderBean.OrderDetailsBean>> maps; private Map<String, List<OrderBean.OrderDetailsBean>> maps;
} }
......
package com.gingersoft.gsa.cloud.table.mvp.model.bean.request; package com.gingersoft.gsa.cloud.table.mvp.model.bean.request;
import com.gingersoft.gsa.cloud.base.common.bean.OrderBean; import com.gingersoft.gsa.cloud.base.common.bean.OrderBean;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDiscount;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -22,11 +23,9 @@ public class CreateOrderRequest { ...@@ -22,11 +23,9 @@ public class CreateOrderRequest {
private String tableNumber; private String tableNumber;
private String tableName; private String tableName;
private int restaurantId; private int restaurantId;
private Integer memberId;
/**賬單小數*/ /**賬單小數*/
private Double rounding; private Double rounding;
/**整單折扣ID*/ private List<OrderDiscount.Request> discountDetails;
private Long discountId;
private Map<Long, List<OrderBean.OrderDetailsBean>> orderDetails; private Map<Long, List<OrderBean.OrderDetailsBean>> orderDetails;
......
...@@ -21,8 +21,13 @@ import retrofit2.http.Query; ...@@ -21,8 +21,13 @@ import retrofit2.http.Query;
public interface MemberService { public interface MemberService {
@Headers({"Domain-Name: update_version"}) @Headers({"Domain-Name: new_base_url"})
@GET("member/getMemberInfo?" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2) @GET("member/checkMemberInfo" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult2> queryMember(@Query("type") int type, @Query("parm") String parm, @Query("gsposShopId") String shopName); Observable<BaseResult> queryMember(@Query("type") int type, @Query("parm") String parm, @Query("gsposShopId") String shopName,@Query("tableId") int tableId, @Query("tableNumber") String tableNumber);
@GET("restaurantTable/memberUse" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> memeberUse(@Query("tableId") int tableId, @Query("tableNumber") String tableNumber, @Query("memberId") long memberId);
@GET("restaurantTable/memberUseCancel" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> memeberUseCancel(@Query("tableId") int tableId, @Query("tableNumber") String tableNumber, @Query("memberId") long memberId);
} }
...@@ -2,15 +2,16 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter; ...@@ -2,15 +2,16 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter;
import android.app.Activity; import android.app.Activity;
import android.app.Application; import android.app.Application;
import android.content.Intent;
import android.text.TextUtils; import android.text.TextUtils;
import android.widget.TextView; import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult; import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.common.bean.BillOrderMoney; import com.gingersoft.gsa.cloud.base.common.bean.BillOrderMoney;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
import com.gingersoft.gsa.cloud.base.common.bean.OrderBean; import com.gingersoft.gsa.cloud.base.common.bean.OrderBean;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail; import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDiscount;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean; import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage;
...@@ -42,11 +43,8 @@ import java.util.ArrayList; ...@@ -42,11 +43,8 @@ import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set;
import javax.inject.Inject; import javax.inject.Inject;
...@@ -57,7 +55,6 @@ import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber; ...@@ -57,7 +55,6 @@ import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber;
import okhttp3.FormBody; import okhttp3.FormBody;
import okhttp3.RequestBody; import okhttp3.RequestBody;
import static com.gingersoft.gsa.cloud.base.common.bean.OrderDetail.DISCOUNT_PROP;
import static com.gingersoft.gsa.cloud.base.common.bean.OrderDetail.DISCOUNT_TYPE; import static com.gingersoft.gsa.cloud.base.common.bean.OrderDetail.DISCOUNT_TYPE;
/** /**
...@@ -67,7 +64,6 @@ import static com.gingersoft.gsa.cloud.base.common.bean.OrderDetail.DISCOUNT_TYP ...@@ -67,7 +64,6 @@ import static com.gingersoft.gsa.cloud.base.common.bean.OrderDetail.DISCOUNT_TYP
* 修订历史:2020-01-11 * 修订历史:2020-01-11
* 描述: * 描述:
*/ */
@ActivityScope @ActivityScope
public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends BaseOrderContract.View> extends BasePresenter<BaseOrderContract.Model, BaseOrderContract.View> { public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends BaseOrderContract.View> extends BasePresenter<BaseOrderContract.Model, BaseOrderContract.View> {
...@@ -114,6 +110,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas ...@@ -114,6 +110,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
OpenTableManage.getDefault().setTableBean(new TableBean.DataBean()); OpenTableManage.getDefault().setTableBean(new TableBean.DataBean());
} }
OpenTableManage.getDefault().getTableBean().setCreateTime(TimeUtils.getTime(createTime, TimeUtils.DEFAULT_DATE_FORMAT)); OpenTableManage.getDefault().getTableBean().setCreateTime(TimeUtils.getTime(createTime, TimeUtils.DEFAULT_DATE_FORMAT));
} }
@Inject @Inject
...@@ -141,20 +138,22 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas ...@@ -141,20 +138,22 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
initOrderAdapter(); initOrderAdapter();
initItemClickListener(); initItemClickListener();
removeBillOrderMoney(); // removeBillOrderMoney();
addTableServiceAmount(); if (this instanceof MealStandPresenter) {
addSentOrderDiscount(); addTableServiceAmount();
addOrderRounding(); addSentOrderDiscount();
updateOrderDiscount(); addOrderRounding();
//設置賬單總金額
//設置賬單總金額 myOrderManage.setTotalAmount(getTotalAmount());
myOrderManage.setTotalAmount(getTotalAmount()); } else {
updateOrderMoneyItem();
}
} }
private void removeBillOrderMoney() { private void removeBillOrderMoney() {
for (int i = mOrderMoneyList.size() - 1; i >= 0; i--) { for (int i = mOrderMoneyList.size() - 1; i >= 0; i--) {
BillOrderMoney billOrderMoney = mOrderMoneyList.get(i); BillOrderMoney billOrderMoney = mOrderMoneyList.get(i);
if ((billOrderMoney.getType() == BillOrderMoney.DISCOUNT_TYPE && billOrderMoney.getStatus() == 0)) { if ((billOrderMoney.getType() == BillOrderMoney.ORDER_DISCOUNT_TYPE || billOrderMoney.getType() == BillOrderMoney.MEMBER_DISCOUNT_TYPE) && billOrderMoney.getStatus() == 0) {
//未送單折扣不刪除 //未送單折扣不刪除
} else { } else {
mOrderMoneyList.remove(i); mOrderMoneyList.remove(i);
...@@ -230,8 +229,11 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas ...@@ -230,8 +229,11 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
@Override @Override
public void onRequestPermissionSuccess() { public void onRequestPermissionSuccess() {
Intent intent = new Intent(IActivity, MipcaCaptureActivity.class); if (IActivity instanceof MealStandActivity) {
IActivity.startActivityForResult(intent, MealStandActivity.SCAN_REQUEST_CODE); MipcaCaptureActivity.startMipcaCaptureActivity(IActivity, "掃描會員碼");
} else if (IActivity instanceof OrderContentActivity) {
MipcaCaptureActivity.startMipcaCaptureActivity(IActivity, "掃描折扣碼");
}
} }
@Override @Override
...@@ -288,7 +290,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas ...@@ -288,7 +290,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
* @param isPrint 是否印單 * @param isPrint 是否印單
*/ */
public void sendOrder(boolean isPrint) { public void sendOrder(boolean isPrint) {
if (MyOrderManage.getInstance().getOrderId() == -1) { if (MyOrderManage.getInstance().getOrderId() < 1) {
if (getFoodSize() == 0) { if (getFoodSize() == 0) {
Class[] parameterTypes = {boolean.class}; Class[] parameterTypes = {boolean.class};
Object[] parameters = {isPrint}; Object[] parameters = {isPrint};
...@@ -325,10 +327,11 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas ...@@ -325,10 +327,11 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
/** /**
* 更新賬單金額 * 更新賬單金額
*/ */
protected void updateOrderMoneyItem() { public void updateOrderMoneyItem() {
updateFoodDiscount(); updateFoodDiscount();
updateTableServiceAmount(); updateTableServiceAmount();
updateOrderDiscount(); updateOrderDiscount();
updateMemberDiscount();
updateOrderRounding(); updateOrderRounding();
myOrderManage.setTotalAmount(getTotalAmount()); myOrderManage.setTotalAmount(getTotalAmount());
} }
...@@ -339,32 +342,39 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas ...@@ -339,32 +342,39 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
private void addSentOrderDiscount() { private void addSentOrderDiscount() {
OrderBean orderBean = myOrderManage.getOrderBean(); OrderBean orderBean = myOrderManage.getOrderBean();
if (orderBean != null) { if (orderBean != null) {
//折扣 List<OrderDiscount.Respose> discountDetails = orderBean.getDiscountDetails();
Discount discount = new Discount(); if (discountDetails != null) {
discount.setType(orderBean.getType()); for (int i = 0; i < discountDetails.size(); i++) {
discount.setRemark(orderBean.getRemark()); OrderDiscount.Respose orderDiscount = discountDetails.get(i);
if (orderBean.getDiscountValue() != 0) { if (orderDiscount.getType() == OrderDiscount.ORDER_DISCOUNT) {
//百分比折扣 //整單折扣
discount.setDiscount_value(orderBean.getDiscountValue()); Discount discount = new Discount();
addOrderDiscount(true, discount, 1); discount.setId(orderDiscount.getDiscountId());
} discount.setType(orderDiscount.getType());
if (orderBean.getDiscountAmount() != 0) { discount.setRemark(orderDiscount.getRemark());
//金額折扣 if (orderDiscount.getDiscountValue() != 0) {
discount.setAmount(orderBean.getDiscountAmount()); //百分比折扣
addOrderDiscount(true, discount, 1); discount.setDiscount_value(orderDiscount.getDiscountValue());
addOrderDiscount(true, discount, 1);
}
if (orderDiscount.getDiscountAmount() != 0) {
//金額折扣
discount.setAmount(orderDiscount.getDiscountAmount());
addOrderDiscount(true, discount, 1);
}
} else if (orderDiscount.getType() == OrderDiscount.MEMBER_DISCOUNT) {
//會員折扣
MemberInfo memberInfo = MyOrderManage.getInstance().getMemberInfo();
if (memberInfo != null) {
addMemberDiscount(memberInfo.getId(), orderDiscount.getMemberDiscountRate(), memberInfo.getMemberName(), memberInfo.getLevelName1());
}
}
}
} }
} }
} }
/** /**
* 添加會員項
*/
private void addOrderMember() {
}
/**
* 添加餐檯服務費 * 添加餐檯服務費
*/ */
private void addTableServiceAmount() { private void addTableServiceAmount() {
...@@ -373,7 +383,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas ...@@ -373,7 +383,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
return; return;
} }
// double serviceAmount = getTotalAmountFilterByType(BillOrderMoney.SERVERCHARGE_TYPE, BillOrderMoney.DISCOUNT_TYPE, BillOrderMoney.ROUNDING_TYPE) * dataBean.getServiceCharge() / 100; // double serviceAmount = getTotalAmountFilterByType(BillOrderMoney.SERVERCHARGE_TYPE, BillOrderMoney.DISCOUNT_TYPE, BillOrderMoney.ROUNDING_TYPE) * dataBean.getServiceCharge() / 100;
double serviceAmount = getFoodTotal() * dataBean.getServiceCharge() / 100; double serviceAmount = getScAbleFoodTotal() * dataBean.getServiceCharge() / 100;
if (serviceAmount > 0) { if (serviceAmount > 0) {
BillOrderMoney orderMoney = new BillOrderMoney(); BillOrderMoney orderMoney = new BillOrderMoney();
orderMoney.setMoney(MoneyUtil.get_ItemDecimals_money(serviceAmount)); orderMoney.setMoney(MoneyUtil.get_ItemDecimals_money(serviceAmount));
...@@ -381,7 +391,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas ...@@ -381,7 +391,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
orderMoney.setStatus(1); orderMoney.setStatus(1);
orderMoney.setType(BillOrderMoney.SERVERCHARGE_TYPE); orderMoney.setType(BillOrderMoney.SERVERCHARGE_TYPE);
orderMoney.setTextColor(ArmsUtils.getColor(IActivity, R.color.theme_black)); orderMoney.setTextColor(ArmsUtils.getColor(IActivity, R.color.theme_black));
BillOrderMoney discountBill = getBillOrderItemByType(BillOrderMoney.DISCOUNT_TYPE); BillOrderMoney discountBill = getBillOrderItemByType(BillOrderMoney.ORDER_DISCOUNT_TYPE);
if (discountBill != null) { if (discountBill != null) {
mOrderMoneyList.add(0, orderMoney); mOrderMoneyList.add(0, orderMoney);
} else { } else {
...@@ -399,7 +409,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas ...@@ -399,7 +409,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
if (billOrderMoney != null) { if (billOrderMoney != null) {
TableBean.DataBean dataBean = OpenTableManage.getDefault().getTableBean(); TableBean.DataBean dataBean = OpenTableManage.getDefault().getTableBean();
// double serviceAmount = getTotalAmountFilterByType(BillOrderMoney.SERVERCHARGE_TYPE, BillOrderMoney.DISCOUNT_TYPE, BillOrderMoney.ROUNDING_TYPE) * dataBean.getServiceCharge() / 100; // double serviceAmount = getTotalAmountFilterByType(BillOrderMoney.SERVERCHARGE_TYPE, BillOrderMoney.DISCOUNT_TYPE, BillOrderMoney.ROUNDING_TYPE) * dataBean.getServiceCharge() / 100;
double serviceAmount = getFoodTotal() * dataBean.getServiceCharge() / 100; double serviceAmount = getScAbleFoodTotal() * dataBean.getServiceCharge() / 100;
if (serviceAmount > 0) { if (serviceAmount > 0) {
billOrderMoney.setMoney(MoneyUtil.get_ItemDecimals_money(serviceAmount)); billOrderMoney.setMoney(MoneyUtil.get_ItemDecimals_money(serviceAmount));
} else { } else {
...@@ -409,15 +419,16 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas ...@@ -409,15 +419,16 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
} }
} }
/** /**
* 添加賬單折扣 * 添加賬單折扣
* *
* @param discount * @param discount
*/ */
protected void addOrderDiscount(boolean init, Discount discount, int status) { protected void addOrderDiscount(boolean init, Discount discount, int status) {
double totalMoney = getDiscountableFoodTotal(); double totalMoney = getDiscountableFoodTotal(BillOrderMoney.ORDER_DISCOUNT_TYPE, true);
for (BillOrderMoney item : mOrderMoneyList) { for (BillOrderMoney item : mOrderMoneyList) {
if (item.getType() == BillOrderMoney.ROUNDING_TYPE) { if (item.getType() == BillOrderMoney.ORDER_DISCOUNT_TYPE) {
mOrderMoneyList.remove(item); mOrderMoneyList.remove(item);
mOrderMoneyAdapter.notifyDataSetChanged(); mOrderMoneyAdapter.notifyDataSetChanged();
break; break;
...@@ -427,7 +438,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas ...@@ -427,7 +438,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
BillOrderMoney orderMoney = new BillOrderMoney(); BillOrderMoney orderMoney = new BillOrderMoney();
orderMoney.setMoney(discountPrice); orderMoney.setMoney(discountPrice);
orderMoney.setTitle(discount.getRemark()); orderMoney.setTitle(discount.getRemark());
orderMoney.setType(BillOrderMoney.DISCOUNT_TYPE); orderMoney.setType(BillOrderMoney.ORDER_DISCOUNT_TYPE);
if (status == 0) { if (status == 0) {
orderMoney.setTextColor(ArmsUtils.getColor(IActivity, R.color.theme_hint_color)); orderMoney.setTextColor(ArmsUtils.getColor(IActivity, R.color.theme_hint_color));
} else { } else {
...@@ -438,6 +449,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas ...@@ -438,6 +449,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
mOrderMoneyList.add(orderMoney); mOrderMoneyList.add(orderMoney);
mOrderMoneyAdapter.notifyDataSetChanged(); mOrderMoneyAdapter.notifyDataSetChanged();
//更新總金額 //更新總金額
if (!init && mOrderContentActivity != null) { if (!init && mOrderContentActivity != null) {
//先更新下賬單小數,再計算總金額才不會錯 //先更新下賬單小數,再計算總金額才不會錯
...@@ -451,9 +463,59 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas ...@@ -451,9 +463,59 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
* 更新整單折扣 * 更新整單折扣
*/ */
protected void updateOrderDiscount() { protected void updateOrderDiscount() {
BillOrderMoney orderMoney = getBillOrderItemByType(BillOrderMoney.DISCOUNT_TYPE); BillOrderMoney orderMoney = getBillOrderItemByType(BillOrderMoney.ORDER_DISCOUNT_TYPE);
if (orderMoney != null) {
double totalMoney = getDiscountableFoodTotal(BillOrderMoney.ORDER_DISCOUNT_TYPE, false);
double discountPrice = Discount.calculationDiscount(orderMoney.getDiscount(), totalMoney);
orderMoney.setMoney(discountPrice);
}
}
/**
* 添加会员折扣
*
* @param memberId
* @param memberDiscount
* @param memberName
*/
public void addMemberDiscount(long memberId, int memberDiscount, String memberName, String levelName1) {
double totalMoney = getDiscountableFoodTotal(BillOrderMoney.MEMBER_DISCOUNT_TYPE, true);
for (BillOrderMoney item : mOrderMoneyList) {
if (item.getType() == BillOrderMoney.MEMBER_DISCOUNT_TYPE) {
mOrderMoneyList.remove(item);
mOrderMoneyAdapter.notifyDataSetChanged();
break;
}
}
if (!TextUtils.isEmpty(levelName1)) {
memberName = memberName + "(" + levelName1 + ")";
}
double discountPrice = Discount.calculationMemberDiscount(memberDiscount, totalMoney);
BillOrderMoney orderMoney = new BillOrderMoney();
orderMoney.setMoney(discountPrice);
orderMoney.setTitle(memberName + memberDiscount + "%");
orderMoney.setType(BillOrderMoney.MEMBER_DISCOUNT_TYPE);
orderMoney.setTextColor(ArmsUtils.getColor(IActivity, R.color.theme_black));
orderMoney.setStatus(0);
//折扣
Discount discount = new Discount();
discount.setId(memberId);
discount.setType(1);
discount.setRemark(memberName + memberDiscount + "%");
discount.setDiscount_value(memberDiscount);
orderMoney.setDiscount(discount);
mOrderMoneyList.add(orderMoney);
mOrderMoneyAdapter.notifyDataSetChanged();
}
/**
* 更新会员折扣
*/
protected void updateMemberDiscount() {
BillOrderMoney orderMoney = getBillOrderItemByType(BillOrderMoney.MEMBER_DISCOUNT_TYPE);
if (orderMoney != null) { if (orderMoney != null) {
double totalMoney = getDiscountableFoodTotal(); double totalMoney = getDiscountableFoodTotal(BillOrderMoney.MEMBER_DISCOUNT_TYPE, false);
double discountPrice = Discount.calculationDiscount(orderMoney.getDiscount(), totalMoney); double discountPrice = Discount.calculationDiscount(orderMoney.getDiscount(), totalMoney);
orderMoney.setMoney(discountPrice); orderMoney.setMoney(discountPrice);
} }
...@@ -618,7 +680,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas ...@@ -618,7 +680,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
* *
* @return * @return
*/ */
public double getDiscountableFoodTotal() { public double getDiscountableFoodTotal(int discountType, boolean add) {
double total = 0.0; double total = 0.0;
int orderSize = myOrderManage.getOrderFoodList().size(); int orderSize = myOrderManage.getOrderFoodList().size();
for (int i = 0; i < orderSize; i++) { for (int i = 0; i < orderSize; i++) {
...@@ -642,6 +704,80 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas ...@@ -642,6 +704,80 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
} }
} }
} }
if (add) {
//添加折扣
//折上折的情况,先减去上面的折扣金额再进行折扣
for (int i = 0; i < mOrderMoneyList.size(); i++) {
BillOrderMoney billOrderMoney = mOrderMoneyList.get(i);
if (billOrderMoney.getType() == BillOrderMoney.ORDER_DISCOUNT_TYPE || billOrderMoney.getType() == BillOrderMoney.MEMBER_DISCOUNT_TYPE) {
double money = billOrderMoney.getMoney();
total = MoneyUtil.sum(total, money);
break;
}
}
} else {
//更新折扣
int containAllDiscount = 0;
for (int i = 0; i < mOrderMoneyList.size(); i++) {
BillOrderMoney billOrderMoney = mOrderMoneyList.get(i);
if (billOrderMoney.getType() == BillOrderMoney.ORDER_DISCOUNT_TYPE) {
containAllDiscount++;
}
if (billOrderMoney.getType() == BillOrderMoney.MEMBER_DISCOUNT_TYPE) {
containAllDiscount++;
}
}
if (containAllDiscount == 2) {
//有账单折扣+会员折扣
//折上折的情况,先减去上之前的折扣金额再进行折扣
for (int i = 0; i < mOrderMoneyList.size(); i++) {
BillOrderMoney billOrderMoney = mOrderMoneyList.get(i);
if (billOrderMoney.getType() == discountType)
//不能减掉自身再折
break;
if (billOrderMoney.getType() == BillOrderMoney.ORDER_DISCOUNT_TYPE || billOrderMoney.getType() == BillOrderMoney.MEMBER_DISCOUNT_TYPE) {
double money = billOrderMoney.getMoney();
total = MoneyUtil.sum(total, money);
break;
}
}
}
}
if (total < 0) {
total = 0;
}
return MoneyUtil.get_ItemDecimals_money(total);
}
/**
* 獲取所有可服务费食品合計
*
* @return
*/
public double getScAbleFoodTotal() {
double total = 0.0;
int orderSize = myOrderManage.getOrderFoodList().size();
for (int i = 0; i < orderSize; i++) {
OrderDetail food = myOrderManage.getOrderFoodList().get(i);
if (food.getItemType() == 1) {
if (food.getScAble() == 1) {
total = MoneyUtil.sum(total, food.getPrice());
}
} else {
if (food.getType() == OrderDetail.DISCOUNT_TYPE) {
//折扣金额直接减掉
total = MoneyUtil.sub(total, Math.abs(food.getPrice()));
} else {
int parentIndex = food.getParentIndex() - 1;
if (orderSize > parentIndex && myOrderManage.getOrderFoodList().get(parentIndex).getScAble() == 1) {
//主食品可參與服务费 子食品才能參與服务费
if (food.getScAble() == 1) {
total = MoneyUtil.sum(total, food.getPrice());
}
}
}
}
}
if (total < 0) { if (total < 0) {
total = 0; total = 0;
} }
...@@ -784,20 +920,6 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas ...@@ -784,20 +920,6 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
mSelectMealAdapter.setIndex(); mSelectMealAdapter.setIndex();
} }
// protected void reduceSelectedFoodNumber(int number) {
// List<OrderDetail> orderDetails = getOrderFoodLists();
// int start_position = mSelectMealAdapter.getSelect_full_start_position();
// int end_position = mSelectMealAdapter.getSelect_full_end_position();
// for (int i = orderDetails.size() - 1; i >= 0; i--) {
// if (start_position <= i && i <= end_position) {
// OrderDetail orderDetail1 = orderDetails.get(i);
// if (orderDetail1.getType() != DISCOUNT_TYPE) {
// orderDetail1.setNumber(orderDetail1.getNumber() - number);
// }
// }
// }
// }
/** /**
* 返回未选中的食品 * 返回未选中的食品
* *
...@@ -824,7 +946,8 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas ...@@ -824,7 +946,8 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
mergeMainFoodNumber(newFoodList); mergeMainFoodNumber(newFoodList);
} }
setChildAblediscountByMainAblediscount(newFoodList); setChildScAbleByMainAble(newFoodList);
setChildDiscountByMainAblediscount(newFoodList);
int restaurantId = GsaCloudApplication.getRestaurantId(mApplication); int restaurantId = GsaCloudApplication.getRestaurantId(mApplication);
CreateOrderRequest request = new CreateOrderRequest(); CreateOrderRequest request = new CreateOrderRequest();
...@@ -835,13 +958,9 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas ...@@ -835,13 +958,9 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
request.setTableName(OpenTableManage.getDefault().getTableBean().getTableName()); request.setTableName(OpenTableManage.getDefault().getTableBean().getTableName());
request.setRounding(getRounding()); request.setRounding(getRounding());
request.setRestaurantId(restaurantId); request.setRestaurantId(restaurantId);
if (MyOrderManage.getInstance().getMemberInfo() != null) {
request.setMemberId(MyOrderManage.getInstance().getMemberInfo().getId()); List<OrderDiscount.Request> discountDetails = getOrderDiscountDetails();
} request.setDiscountDetails(discountDetails);
Discount orderDiscount = getNesOrderDiscount();
if (orderDiscount != null) {
request.setDiscountId(orderDiscount.getId());
}
return request; return request;
} }
...@@ -853,7 +972,8 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas ...@@ -853,7 +972,8 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
mergeMainFoodNumber(newFoodList); mergeMainFoodNumber(newFoodList);
} }
setChildAblediscountByMainAblediscount(newFoodList); setChildScAbleByMainAble(newFoodList);
setChildDiscountByMainAblediscount(newFoodList);
AddOrderRequest request = new AddOrderRequest(); AddOrderRequest request = new AddOrderRequest();
request.setTableNumber(OpenTableManage.getDefault().getTableBean().getTableNumber()); request.setTableNumber(OpenTableManage.getDefault().getTableBean().getTableNumber());
...@@ -862,16 +982,28 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas ...@@ -862,16 +982,28 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
request.setTableId(OpenTableManage.getDefault().getTableBean().getId()); request.setTableId(OpenTableManage.getDefault().getTableBean().getId());
Double rounding = getRounding(); Double rounding = getRounding();
request.setRounding(rounding != null ? rounding : 0); request.setRounding(rounding != null ? rounding : 0);
Discount orderDiscount = getNesOrderDiscount();
if (orderDiscount != null) { List<OrderDiscount.Request> discountDetails = getOrderDiscountDetails();
request.setDiscountId(orderDiscount.getId()); request.setDiscountDetails(discountDetails);
}
if (MyOrderManage.getInstance().getMemberInfo() != null) {
request.setMemberId(MyOrderManage.getInstance().getMemberInfo().getId());
}
return request; return request;
} }
private List<OrderDiscount.Request> getOrderDiscountDetails() {
List<OrderDiscount.Request> discountRequests = new ArrayList<>();
for (BillOrderMoney item : mOrderMoneyList) {
if (item.getType() == BillOrderMoney.ORDER_DISCOUNT_TYPE) {
discountRequests.add(OrderDiscount.Request.orderDiscountTransRequest(item));
continue;
}
if (item.getType() == BillOrderMoney.MEMBER_DISCOUNT_TYPE) {
discountRequests.add(OrderDiscount.Request.memberDiscountTransRequest(item));
continue;
}
}
return discountRequests;
}
protected Map<Long, List<OrderBean.OrderDetailsBean>> orderDetailBeanToFoodRequest(List<OrderDetail> foodList) { protected Map<Long, List<OrderBean.OrderDetailsBean>> orderDetailBeanToFoodRequest(List<OrderDetail> foodList) {
Map<Long, List<OrderBean.OrderDetailsBean>> orderDetails = new HashMap<>(); Map<Long, List<OrderBean.OrderDetailsBean>> orderDetails = new HashMap<>();
...@@ -907,8 +1039,11 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas ...@@ -907,8 +1039,11 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
request.setType(item.getType()); request.setType(item.getType());
request.setPrintSetIng(item.getPrintseting()); request.setPrintSetIng(item.getPrintseting());
request.setAblediscount(item.getAblediscount()); request.setAblediscount(item.getAblediscount());
request.setScAble(item.getScAble());
request.setDiscountId(getDiscountIdByParentId(foodList, mainProductId)); request.setDiscountId(getDiscountIdByParentId(foodList, mainProductId));
request.setLunchboxPrice(0); request.setLunchboxPrice(0);
request.setPointsAdd(item.getPointsAdd());
request.setPointsRedeem(item.getPointsRedeem());
if (item.isNew()) { if (item.isNew()) {
//這裡只添加新食品 //這裡只添加新食品
orderItems.add(request); orderItems.add(request);
...@@ -991,8 +1126,11 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas ...@@ -991,8 +1126,11 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
request.setType(item.getType()); request.setType(item.getType());
request.setPrintSetIng(item.getPrintseting()); request.setPrintSetIng(item.getPrintseting());
request.setAblediscount(item.getAblediscount()); request.setAblediscount(item.getAblediscount());
request.setScAble(item.getScAble());
request.setDiscountId(getDiscountIdByParentId(foodList, mainParentId)); request.setDiscountId(getDiscountIdByParentId(foodList, mainParentId));
request.setLunchboxPrice(0); request.setLunchboxPrice(0);
request.setPointsAdd(item.getPointsAdd());
request.setPointsRedeem(item.getPointsRedeem());
if (item.isNew() || item.getDiscountStatus() == 1) { if (item.isNew() || item.getDiscountStatus() == 1) {
//這裡只添加新食品或有新折扣食品 //這裡只添加新食品或有新折扣食品
orderItems.add(request); orderItems.add(request);
...@@ -1025,7 +1163,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas ...@@ -1025,7 +1163,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
* *
* @param newFoodList * @param newFoodList
*/ */
private void setChildAblediscountByMainAblediscount(List<OrderDetail> newFoodList) { private void setChildDiscountByMainAblediscount(List<OrderDetail> newFoodList) {
int orderSize = newFoodList.size(); int orderSize = newFoodList.size();
for (int i = 0; i < orderSize; i++) { for (int i = 0; i < orderSize; i++) {
OrderDetail food = newFoodList.get(i); OrderDetail food = newFoodList.get(i);
...@@ -1040,6 +1178,25 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas ...@@ -1040,6 +1178,25 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
} }
/** /**
* 送单前根据主食品ScAble更新子食品ScAble(前端处理后台直接存即可)
*
* @param newFoodList
*/
private void setChildScAbleByMainAble(List<OrderDetail> newFoodList) {
int orderSize = newFoodList.size();
for (int i = 0; i < orderSize; i++) {
OrderDetail food = newFoodList.get(i);
if (food.getItemType() != 1) {
int parentIndex = food.getParentIndex() - 1;
if (orderSize > parentIndex && newFoodList.get(parentIndex).getAblediscount() == 0) {
//主食品不可參與折扣 子食品也不能參與折扣
food.setScAble((byte) 0);
}
}
}
}
/**
* 合并新下单主食品数量 * 合并新下单主食品数量
* *
* @param foodList * @param foodList
...@@ -1134,14 +1291,28 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas ...@@ -1134,14 +1291,28 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
} }
/** /**
* 返回整單折扣
*
* @return
*/
protected BillOrderMoney getOrderDiscount() {
for (BillOrderMoney item : mOrderMoneyList) {
if (item.getType() == BillOrderMoney.ORDER_DISCOUNT_TYPE) {
return item;
}
}
return null;
}
/**
* 返回未送單整單折扣 * 返回未送單整單折扣
* *
* @return * @return
*/ */
protected Discount getNesOrderDiscount() { protected BillOrderMoney getNesOrderDiscount() {
for (BillOrderMoney item : mOrderMoneyList) { for (BillOrderMoney item : mOrderMoneyList) {
if (item.getStatus() == 0 && item.getType() == BillOrderMoney.DISCOUNT_TYPE) { if (item.getStatus() == 0 && item.getType() == BillOrderMoney.ORDER_DISCOUNT_TYPE) {
return item.getDiscount(); return item;
} }
} }
return null; return null;
...@@ -1149,6 +1320,20 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas ...@@ -1149,6 +1320,20 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
/** /**
* 返回未送單會員折扣
*
* @return
*/
protected BillOrderMoney getMemberDiscount() {
for (BillOrderMoney item : mOrderMoneyList) {
if (item.getType() == BillOrderMoney.MEMBER_DISCOUNT_TYPE) {
return item;
}
}
return null;
}
/**
* 返回未送單食品列表 * 返回未送單食品列表
* *
* @return * @return
......
...@@ -2,15 +2,18 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter; ...@@ -2,15 +2,18 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter;
import android.app.Application; import android.app.Application;
import android.content.Intent; import android.content.Intent;
import android.graphics.Color;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.SparseArray; import android.util.SparseArray;
import android.view.View; import android.view.View;
import android.widget.Button;
import com.billy.cc.core.component.CC; import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.aspectj.XClickUtil; import com.gingersoft.gsa.cloud.aspectj.XClickUtil;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult; import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult2; import com.gingersoft.gsa.cloud.base.common.bean.BaseResult2;
import com.gingersoft.gsa.cloud.base.common.bean.BillOrderMoney;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo; import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
import com.gingersoft.gsa.cloud.base.common.bean.OrderBean; import com.gingersoft.gsa.cloud.base.common.bean.OrderBean;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail; import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
...@@ -794,19 +797,22 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod ...@@ -794,19 +797,22 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
* @param initTable 是否是開台 * @param initTable 是否是開台
*/ */
private void printSendOrder(boolean initTable) { private void printSendOrder(boolean initTable) {
// CC.obtainBuilder("Component.Print") if (GsaCloudApplication.androidSetting.isAutoPrinterParper()) {
// .setActionName("printActivity") CC.obtainBuilder("Component.Print")
// .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_KITCHEN) .setActionName("printActivity")
// .build() .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_KITCHEN)
// .callAsyncCallbackOnMainThread((cc, result) -> { .build()
//// if (result.isSuccess()) { .callAsyncCallbackOnMainThread((cc, result) -> {
// //打印成功 if (result.isSuccess()) {
// IActivity.returnBeforeActivity(initTable); } else {
//// } else { mRootView.showMessage("打印失敗");
//// mRootView.showMessage("打印失敗"); }
//// } //打印成功
// }); IActivity.returnBeforeActivity(initTable);
IActivity.returnBeforeActivity(initTable); });
} else {
IActivity.returnBeforeActivity(initTable);
}
} }
/** /**
...@@ -880,34 +886,102 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod ...@@ -880,34 +886,102 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
}); });
} }
public void queryMember(int type, String parm, String shopName) { public void queryMember(int type, String parm, String shopName, int tableId, String tableNumber) {
mModel.queryMember(type, parm, shopName) mModel.queryMember(type, parm, shopName, tableId, tableNumber)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null)) .doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread()) .subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading()) .doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView)) .compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult2>(mErrorHandler) { .subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
@Override @Override
public void onNext(@NonNull BaseResult2 info) { public void onNext(@NonNull BaseResult info) {
if (info != null && info.getCode().equals("1")) { if (info != null && info.isSuccess()) {
if (info.getData() != null) { if (info.getData() != null) {
MemberInfo memberInfo = JsonUtils.parseObject(info.getData(), MemberInfo.class); MemberInfo memberInfo = JsonUtils.parseObject(info.getData(), MemberInfo.class);
if (memberInfo != null) { if (memberInfo != null && memberInfo.getId() != 0) {
//更新會員信息
mRootView.updateMemberInfo(memberInfo); mRootView.updateMemberInfo(memberInfo);
} else {
mRootView.showMessage("請輸入正確的會員號碼!");
} }
} else { } else {
mRootView.showMessage("獲取會員信息失敗!"); mRootView.showMessage("獲取會員信息失敗!");
} }
} else { } else {
mRootView.showMessage(info.getErrorMsg()); mRootView.showMessage(info.getErrMsg());
} }
} }
@Override
public void onError(Throwable t) {
super.onError(t);
}
}); });
} }
// public void memeberUse(int tableId, String tableNumber, long memberId, Button btn_table) {
// mModel.memeberUse(tableId, tableNumber, memberId)
// .subscribeOn(Schedulers.io())
// .doOnSubscribe(disposable -> mRootView.showLoading(null))
// .subscribeOn(AndroidSchedulers.mainThread())
// .observeOn(AndroidSchedulers.mainThread())
// .doAfterTerminate(() -> mRootView.hideLoading())
// .compose(RxLifecycleUtils.bindToLifecycle(mRootView))
// .subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
//
// @Override
// public void onNext(@NonNull BaseResult info) {
// if (info != null && info.isSuccess()) {
// if (info.getData() != null) {
// MyOrderManage.getInstance().setMemberInfo(mMemberInfo);
// btn_table.setBackgroundResource(R.color.pink_300);
// //添加会员折扣行
// addMemberDiscount(mMemberInfo.getId(),mMemberInfo.getMemberDiscount(),mMemberInfo.getLevelName1());
// } else {
// mRootView.showMessage("使用失敗!");
// }
// } else {
// mRootView.showMessage(info.getErrMsg());
// }
// }
// });
// }
// public void memeberUseCancel(int tableId, String tableNumber, long memberId, Button btn_table) {
// mModel.memeberUseCancel(tableId, tableNumber, memberId)
// .subscribeOn(Schedulers.io())
// .doOnSubscribe(disposable -> mRootView.showLoading(null))
// .subscribeOn(AndroidSchedulers.mainThread())
// .observeOn(AndroidSchedulers.mainThread())
// .doAfterTerminate(() -> mRootView.hideLoading())
// .compose(RxLifecycleUtils.bindToLifecycle(mRootView))
// .subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
//
// @Override
// public void onNext(@NonNull BaseResult info) {
// if (info != null && info.isSuccess()) {
// if (info.getData() != null) {
// btn_table.setBackgroundColor(Color.parseColor("#336699"));
// MyOrderManage.getInstance().setMemberInfo(null);
// //刪除會員折扣行
// removeMemberDiscountItem();
// //更新會員信息
// mRootView.memberUseCancelSuccess();
// } else {
// mRootView.showMessage("清除失敗!");
// }
// } else {
// mRootView.showMessage(info.getErrMsg());
// }
// }
//
// });
// }
public void getRestaurantFoodReason() { public void getRestaurantFoodReason() {
int brandId = GsaCloudApplication.getBrandId(mApplication); int brandId = GsaCloudApplication.getBrandId(mApplication);
int restaurantId = GsaCloudApplication.getRestaurantId(mApplication); int restaurantId = GsaCloudApplication.getRestaurantId(mApplication);
...@@ -1455,7 +1529,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod ...@@ -1455,7 +1529,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
return false; return false;
} }
} }
if (!memberPointsCondition(foodBean.getPointsRedeem(),foodBean.getFoodName())) { if (!memberPointsCondition(foodBean.getPointsRedeem(), foodBean.getFoodName())) {
return false; return false;
} }
return true; return true;
...@@ -1476,7 +1550,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod ...@@ -1476,7 +1550,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
return false; return false;
} }
} }
if (!memberPointsCondition(comboItem.getPointsRedeem(),comboItem.getName())) { if (!memberPointsCondition(comboItem.getPointsRedeem(), comboItem.getName())) {
return false; return false;
} }
return true; return true;
...@@ -1907,6 +1981,19 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod ...@@ -1907,6 +1981,19 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
} }
/** /**
* 刪除會員折扣行
*/
public void removeMemberDiscountItem() {
for (BillOrderMoney orderMoney : mOrderMoneyList) {
if (orderMoney.getType() == BillOrderMoney.MEMBER_DISCOUNT_TYPE) {
mOrderMoneyList.remove(orderMoney);
mOrderMoneyAdapter.notifyDataSetChanged();
break;
}
}
}
/**
* 加載折扣數據 * 加載折扣數據
*/ */
public void loadDiscountData() { public void loadDiscountData() {
...@@ -2056,4 +2143,5 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod ...@@ -2056,4 +2143,5 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
public List<SoldoutCtrFood> getSoldoutCtrList() { public List<SoldoutCtrFood> getSoldoutCtrList() {
return mSoldoutCtrList; return mSoldoutCtrList;
} }
} }
...@@ -363,19 +363,21 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -363,19 +363,21 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
* 送單 * 送單
*/ */
private void printSendOrder(List<OrderDetail> newFoods) { private void printSendOrder(List<OrderDetail> newFoods) {
// MyOrderManage.getInstance().setNewFoodList(newFoods); if (GsaCloudApplication.androidSetting.isAutoPrinterParper()) {
// CC.obtainBuilder("Component.Print") CC.obtainBuilder("Component.Print")
// .setActionName("printActivity") .setActionName("printActivity")
// .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_KITCHEN) .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_KITCHEN)
// .build() .build()
// .callAsyncCallbackOnMainThread((cc, result) -> { .callAsyncCallbackOnMainThread((cc, result) -> {
// Log.e("error", "是否成功打印:" + result.isSuccess()); if (result.isSuccess()) {
//// if (result.isSuccess()) { } else {
//// //打印成功 mRootView.showMessage("打印失敗");
//// }
//// } mRootView.sendSuccess();
mRootView.sendSuccess(); });
// }); } else {
mRootView.sendSuccess();
}
} }
public void printOrder(long tableId, boolean isSend) { public void printOrder(long tableId, boolean isSend) {
......
...@@ -4,6 +4,7 @@ import android.app.Application; ...@@ -4,6 +4,7 @@ import android.app.Application;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult; import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail; import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.common.bean.OrderPayRequest; import com.gingersoft.gsa.cloud.base.common.bean.OrderPayRequest;
import com.gingersoft.gsa.cloud.base.common.bean.PayMethod; import com.gingersoft.gsa.cloud.base.common.bean.PayMethod;
...@@ -205,7 +206,7 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model ...@@ -205,7 +206,7 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
* 結賬 * 結賬
*/ */
public void toOrderPay(boolean show) { public void toOrderPay(boolean show) {
if(myOrderManage.isModifyOrder()){ if (myOrderManage.isModifyOrder()) {
//修改訂單 //修改訂單
updateOrderPay(); updateOrderPay();
return; return;
...@@ -233,11 +234,33 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model ...@@ -233,11 +234,33 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
public void onNext(BaseResult baseResult) { public void onNext(BaseResult baseResult) {
mRootView.hideLoading(); mRootView.hideLoading();
if (baseResult.isSuccess()) { if (baseResult.isSuccess()) {
MemberInfo memberInfo = MyOrderManage.getInstance().getMemberInfo();
if (memberInfo != null) {
setPoints(memberInfo);
}
//結賬成功 //結賬成功
mRootView.paySuccess(); mRootView.paySuccess();
} }
} }
private void setPoints(MemberInfo memberInfo) {
double pointsAdd = getPointsAdd();
double pointsUse = getPointsRedeem();
double pointsOld = memberInfo.getMemberPoint();
double pointsNow = pointsOld + (pointsAdd + pointsUse);
MyOrderManage.getInstance().setPointsOld(pointsOld);
MyOrderManage.getInstance().setPointsNow(pointsNow);
if (pointsAdd > 0) {
MyOrderManage.getInstance().setPointsAdd(pointsAdd);
}
if (pointsUse > 0) {
MyOrderManage.getInstance().setPointsUse(pointsUse);
}
}
@Override @Override
public void onError(Throwable t) { public void onError(Throwable t) {
super.onError(t); super.onError(t);
...@@ -255,6 +278,9 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model ...@@ -255,6 +278,9 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
payRequest.setLinePayType(orderPayView.getLinePayType()); payRequest.setLinePayType(orderPayView.getLinePayType());
payRequest.setTableId(OpenTableManage.getDefault().getTableBean().getId()); payRequest.setTableId(OpenTableManage.getDefault().getTableBean().getId());
payRequest.setTableNumber(OpenTableManage.getDefault().getTableBean().getTableNumber()); payRequest.setTableNumber(OpenTableManage.getDefault().getTableBean().getTableNumber());
payRequest.setMemberId(GsaCloudApplication.getMemberId(mApplication));
payRequest.setPointsAdd(getPointsAdd());
payRequest.setPointsUse(getPointsRedeem());
for (int i = 0; i < payMethodList.size(); i++) { for (int i = 0; i < payMethodList.size(); i++) {
PayMethod payMethod = payMethodList.get(i); PayMethod payMethod = payMethodList.get(i);
...@@ -404,32 +430,17 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model ...@@ -404,32 +430,17 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
} }
/** /**
* 獲取當前n5支付方式
*
* @return
*/
private PayMethod getSelectN5PayMethod() {
// for (int i = 0; i < mBillMoneyList.size(); i++) {
// if (!TextUtils.isEmpty(mBillMoneyList.get(i).getPAYWAY()) &&
// !mBillMoneyList.get(i).getPAYWAY().equals(PayConstant.PAY_WAY_CASH)) {
// return mBillMoneyList.get(i);
// }
// }
return null;
}
/**
* 是否現金支付 * 是否現金支付
* *
* @param datasBean * @param datasBean
* @return * @return
*/ */
private boolean isCashPayMethod(PayMethod datasBean) { private boolean isCashPayMethod(PayMethod datasBean) {
if (datasBean.getPAYWAY().equals(PayConstant.PAY_WAY_CASH)) { // if (datasBean.getPayType().equals(PayConstant.PAY_WAY_CASH)) {
return true; return true;
} else { // } else {
return false; // return false;
} // }
} }
/** /**
...@@ -492,6 +503,37 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model ...@@ -492,6 +503,37 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
} }
/** /**
* 額外食品加分
*
* @return
*/
public double getPointsAdd() {
double pointsAdd = 0;
for (OrderDetail orderDetail : mOrderFoodList) {
if (orderDetail.getType() == OrderDetail.FOOD_TYPE) {
pointsAdd = MoneyUtil.sum(pointsAdd, orderDetail.getPointsAdd() * orderDetail.getNumber());
}
}
return pointsAdd;
}
/**
* 換購食品所需積分
*
* @return
*/
public double getPointsRedeem() {
double pointsRedeem = 0;
for (OrderDetail orderDetail : mOrderFoodList) {
if (orderDetail.getType() == OrderDetail.FOOD_TYPE) {
pointsRedeem = MoneyUtil.sum(pointsRedeem, orderDetail.getPointsRedeem() * orderDetail.getNumber());
}
}
return pointsRedeem;
}
/**
* 是否滿足支付條件 * 是否滿足支付條件
* *
* @return * @return
......
...@@ -20,6 +20,7 @@ import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils; ...@@ -20,6 +20,7 @@ import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils; import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils;
import com.gingersoft.gsa.cloud.constans.GoldConstants; import com.gingersoft.gsa.cloud.constans.GoldConstants;
import com.gingersoft.gsa.cloud.constans.PrintConstans; import com.gingersoft.gsa.cloud.constans.PrintConstans;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.bean.FoodCombo; import com.gingersoft.gsa.cloud.database.bean.FoodCombo;
import com.gingersoft.gsa.cloud.database.bean.Function; import com.gingersoft.gsa.cloud.database.bean.Function;
import com.gingersoft.gsa.cloud.database.bean.Modifier; import com.gingersoft.gsa.cloud.database.bean.Modifier;
...@@ -428,16 +429,21 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont ...@@ -428,16 +429,21 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
} }
OpenTableManage.getDefault().setPeopleNumber(orderBean.getPerson()); OpenTableManage.getDefault().setPeopleNumber(orderBean.getPerson());
List<OrderBean.OrderDetailsBean> orderDetailsBeans = respose.getData().getOrderDetails(); List<OrderBean.OrderDetailsBean> orderDetailsBeans = orderBean.getOrderDetails();
//設置topId setFoodPoints(orderDetailsBeans);
//設置套餐topId
setTopId(orderDetailsBeans); setTopId(orderDetailsBeans);
//緩存訂單信息 //緩存訂單信息
MyOrderManage.getInstance().setOrderBean(new OrderBean(orderBean)); MyOrderManage.getInstance().setOrderBean(new OrderBean(orderBean));
//緩存食品信息 //緩存食品信息
List<OrderDetail> orderDetailList = OrderAssemblyUtil.assemblyOrder(OrderDetail.orderTransOrderDetails(orderDetailsBeans)); List<OrderDetail> orderDetailList = OrderAssemblyUtil.assemblyOrder(OrderDetail.orderTransOrderDetails(orderDetailsBeans));
MyOrderManage.getInstance().setOrderFoodList(orderDetailList); MyOrderManage.getInstance().setOrderFoodList(orderDetailList);
if (orderBean.getMemberInfo() != null) {
//设置会员信息
MyOrderManage.getInstance().setMemberInfo(orderBean.getMemberInfo());
}
} else { } else {
MyOrderManage.getInstance().setOrderBean(null); MyOrderManage.getInstance().setOrderBean(null);
MyOrderManage.getInstance().setOrderFoodList(new ArrayList<>()); MyOrderManage.getInstance().setOrderFoodList(new ArrayList<>());
...@@ -452,6 +458,26 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont ...@@ -452,6 +458,26 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
} }
/** /**
* 設置已送單食品積分(訂單表沒有存儲食品積分字段)
*/
private void setFoodPoints(List<OrderBean.OrderDetailsBean> orderDetailsBeans) {
List<Food> foods = mModel.queryDB_AllFoodList();
for (int i = 0; i < orderDetailsBeans.size(); i++) {
OrderBean.OrderDetailsBean orderDetailsBean = orderDetailsBeans.get(i);
if (orderDetailsBean.getType() != FOOD_TYPE) {
continue;
}
for (int j = 0; j < foods.size(); j++) {
Food food = foods.get(j);
if (food.getId() == orderDetailsBean.getProductId()) {
orderDetailsBean.setPointsAdd(food.getPointsAdd());
orderDetailsBean.setPointsRedeem(food.getPointsRedeem());
}
}
}
}
/**
* 設置套餐,細項組別ID * 設置套餐,細項組別ID
* *
* @param orderDetailsBeans * @param orderDetailsBeans
...@@ -850,7 +876,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont ...@@ -850,7 +876,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
initTable(dataBean.getId(), dataBean.getTableNumber(), true); initTable(dataBean.getId(), dataBean.getTableNumber(), true);
break; break;
case TableOperatTypeConstant.move_table_4: case TableOperatTypeConstant.move_table_4:
turnTable(originalTableId, targetTableId,originalTableNumber,targetTableNumber, finalIsMergeTable); turnTable(originalTableId, targetTableId, originalTableNumber, targetTableNumber, finalIsMergeTable);
break; break;
case TableOperatTypeConstant.skyorder_mode_5: case TableOperatTypeConstant.skyorder_mode_5:
......
...@@ -123,13 +123,15 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All ...@@ -123,13 +123,15 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
orderBean.setCreateTime(datasBean.getCreateTime()); orderBean.setCreateTime(datasBean.getCreateTime());
MyOrderManage.getInstance().setOrderBean(orderBean); MyOrderManage.getInstance().setOrderBean(orderBean);
TableBean.DataBean openTableBean = new TableBean.DataBean(); // TableBean.DataBean openTableBean = new TableBean.DataBean();
openTableBean.setCreateTime(TimeUtil.getStringByFormat(new Date(datasBean.getCreateTime()), TimeUtil.dateFormatYMDHM)); // openTableBean.setCreateTime(TimeUtil.getStringByFormat(new Date(datasBean.getCreateTime()), TimeUtil.dateFormatYMDHM));
openTableBean.setTableName(datasBean.getTableName()); // openTableBean.setTableName(datasBean.getTableName());
openTableBean.setId(datasBean.getTableId()); // openTableBean.setId(datasBean.getTableId());
OpenTableManage.getDefault().setTableBean(openTableBean); TableBean.DataBean tableBean = new TableBean.DataBean(datasBean.getRestaurantTable());
tableBean.setTableName(tableBean.getTableName() + "-" + tableBean.getTableNumber());
OpenTableManage.getDefault().setTableBean(tableBean);
OpenTableManage.getDefault().setPeopleNumber(datasBean.getPerson()); OpenTableManage.getDefault().setPeopleNumber(datasBean.getPerson());
List<OrderBean.OrderDetailsBean> orderDetailsBeans = datasBean.getOrderDetails(); List<OrderBean.OrderDetailsBean> orderDetailsBeans = datasBean.getOrderDetails();
List<OrderDetail> orderDetailList = OrderAssemblyUtil.assemblyOrder(OrderDetail.orderTransOrderDetails(orderDetailsBeans)); List<OrderDetail> orderDetailList = OrderAssemblyUtil.assemblyOrder(OrderDetail.orderTransOrderDetails(orderDetailsBeans));
MyOrderManage.getInstance().setOrderFoodList(orderDetailList); MyOrderManage.getInstance().setOrderFoodList(orderDetailList);
......
...@@ -5,6 +5,7 @@ import android.content.DialogInterface; ...@@ -5,6 +5,7 @@ import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.graphics.Color; import android.graphics.Color;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.SystemClock; import android.os.SystemClock;
...@@ -250,10 +251,8 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter> ...@@ -250,10 +251,8 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
private UseMemberDialog mUseMemberDialog; private UseMemberDialog mUseMemberDialog;
private UseMemberDialog.BottomLayoutBuilder mUseMemberLayoutBuilder; private UseMemberDialog.BottomLayoutBuilder mUseMemberLayoutBuilder;
private MemberInfoAdapter mMemberInfoAdapter;
private List<SectionTextItem> mMemberInfoList;
private MemberInfo mMemberInfo; private MemberInfo mMemberInfo;
/** /**
* 是否初始化细项布局 * 是否初始化细项布局
*/ */
...@@ -320,6 +319,9 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter> ...@@ -320,6 +319,9 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
//根据倒计时时间自动退出当前页面 //根据倒计时时间自动退出当前页面
initAutoQuit(); initAutoQuit();
} }
if (MyOrderManage.getInstance().getMemberInfo() != null) {
useMember();
}
mPresenter.getCurrentSoldoutFood(); mPresenter.getCurrentSoldoutFood();
// setViewDrawableColor(); // setViewDrawableColor();
...@@ -516,7 +518,6 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter> ...@@ -516,7 +518,6 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
showViewModeVisibility(MealConstant.fine_ViewMode, MealConstant.fine_tabs_ViewMode); showViewModeVisibility(MealConstant.fine_ViewMode, MealConstant.fine_tabs_ViewMode);
} }
@Override @Override
public void setCurrentFinePage() { public void setCurrentFinePage() {
if (currentFinePage == 0) { if (currentFinePage == 0) {
...@@ -562,8 +563,8 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter> ...@@ -562,8 +563,8 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
@OnClick(R2.id.btn_meal_discount) @OnClick(R2.id.btn_meal_discount)
void onClickDiscount() { void onClickDiscount() {
OrderDetail mainOrderDetail = mPresenter.getSelectMealAdapter().getCurrentMainOrderDetail(); OrderDetail mainOrderDetail = mPresenter.getSelectMealAdapter().getCurrentMainOrderDetail();
if(mainOrderDetail != null && mainOrderDetail.getAblediscount() == 0){ if (mainOrderDetail != null && mainOrderDetail.getAblediscount() == 0) {
showMessage("此食品不能參與折扣!"); showMessage("此食品不能參與折扣!");
return; return;
} }
...@@ -576,52 +577,47 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter> ...@@ -576,52 +577,47 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
@OnClick(R2.id.btn_table) @OnClick(R2.id.btn_table)
void onClickTable() { void onClickTable() {
//type取值:1qrCdoetype,2:手機號,3:memberId //type取值:1qrCdoetype,2:手機號,3:memberId
// mUseMemberDialog = new UseMemberDialog(this);
if (mUseMemberDialog == null) { if (mUseMemberDialog == null) {
mUseMemberDialog = new UseMemberDialog.BottomLayoutBuilder(this) mUseMemberDialog = new UseMemberDialog.BottomLayoutBuilder(this)
.setOnLayoutClickListener(new UseMemberDialog.BottomLayoutBuilder.OnLayoutClickListener() { .setOnLayoutClickListener(new UseMemberDialog.BottomLayoutBuilder.OnLayoutClickListener() {
@Override @Override
public void onInputPhone(UseMemberDialog dialog, String phone) { public void setBottomLayoutBuilder(UseMemberDialog.BottomLayoutBuilder layoutBuilder) {
mPresenter.queryMember(2, phone, GsaCloudApplication.getGsPosShopId(mContext)); mUseMemberLayoutBuilder = layoutBuilder;
} }
@Override @Override
public void onScanAction(UseMemberDialog dialog) { public void onInputPhone(UseMemberDialog dialog, String phone) {
mPresenter.startScanActivity(); mPresenter.queryMember(2, phone, GsaCloudApplication.getGsPosShopId(mContext), OpenTableManage.getDefault().getTableBean().getId(), OpenTableManage.getDefault().getTableBean().getTableNumber());
} }
@Override @Override
public void setAdapter(RecyclerView recycler_member_info, UseMemberDialog.BottomLayoutBuilder layoutBuilder) { public void onScanAction(UseMemberDialog dialog) {
mUseMemberLayoutBuilder = layoutBuilder; mPresenter.startScanActivity();
if (mMemberInfoList == null) {
mMemberInfoList = new ArrayList<>();
}
if (mMemberInfoAdapter == null) {
mMemberInfoAdapter = new MemberInfoAdapter(mMemberInfoList);
}
recycler_member_info.setAdapter(mMemberInfoAdapter);
} }
@Override @Override
public void onUseMember(UseMemberDialog dialog) { public void onUseMember(UseMemberDialog dialog) {
MyOrderManage.getInstance().setMemberInfo(mMemberInfo); if (mMemberInfo != null) {
btn_table.setBackgroundResource(R.color.pink_300); MyOrderManage.getInstance().setMemberInfo(mMemberInfo);
//添加会员折扣行
mPresenter.addMemberDiscount(mMemberInfo.getId(), mMemberInfo.getMemberDiscount(), mMemberInfo.getMemberName(), mMemberInfo.getLevelName1());
useMember();
} else {
showMessage("請輸入正確的會員號碼!");
}
} }
@Override @Override
public void clearMemberInfo() { public void clearMemberInfo() {
btn_table.setBackgroundColor(Color.parseColor("#336699")); btn_table.setBackgroundColor(Color.parseColor("#336699"));
MyOrderManage.getInstance().setMemberInfo(null); MyOrderManage.getInstance().setMemberInfo(null);
if (mMemberInfoList.size() > 0) { //刪除會員折扣行
mMemberInfoList.clear(); mPresenter.removeMemberDiscountItem();
} mPresenter.updateOrderMoneyItem();
mMemberInfoAdapter.notifyDataSetChanged();
if (mUseMemberLayoutBuilder != null) {
mUseMemberLayoutBuilder.showBottomLayoutVisibility(false);
}
} }
}).setOnDismissListener(new DialogInterface.OnDismissListener() { })
.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override @Override
public void onDismiss(DialogInterface dialog) { public void onDismiss(DialogInterface dialog) {
} }
...@@ -635,32 +631,12 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter> ...@@ -635,32 +631,12 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
public void updateMemberInfo(MemberInfo memberInfo) { public void updateMemberInfo(MemberInfo memberInfo) {
this.mMemberInfo = memberInfo; this.mMemberInfo = memberInfo;
if (mUseMemberDialog != null) { if (mUseMemberDialog != null) {
List<SectionTextItem> data = getMemberInfoItem(memberInfo); mUseMemberLayoutBuilder.updateMemberInfo(memberInfo);
if (mMemberInfoList.size() > 0) {
mMemberInfoList.clear();
}
mMemberInfoList.addAll(data);
mMemberInfoAdapter.notifyDataSetChanged();
if (mUseMemberLayoutBuilder != null) {
mUseMemberLayoutBuilder.showBottomLayoutVisibility(true);
}
} }
} }
private List<SectionTextItem> getMemberInfoItem(MemberInfo memberInfo) { private void useMember() {
List<SectionTextItem> textItems = new ArrayList<>(); btn_table.setBackgroundResource(R.color.pink_300);
String memberName;
if (TextUtils.isEmpty(memberInfo.getMemberName())) {
memberName = memberInfo.getLevelName1();
} else {
memberName = memberInfo.getMemberName();
}
textItems.add(new SectionTextItem("會員號碼: " + memberInfo.getMemberNo()));
textItems.add(new SectionTextItem("會員電話: " + memberInfo.getPhone()));
textItems.add(new SectionTextItem("會員名稱: " + memberName));
textItems.add(new SectionTextItem("積分: " + memberInfo.getMemberPoint()));
return textItems;
} }
@OnClick(R2.id.btn_multiple_selection) @OnClick(R2.id.btn_multiple_selection)
...@@ -1250,10 +1226,6 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter> ...@@ -1250,10 +1226,6 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
return mFoodGroupAdapter; return mFoodGroupAdapter;
} }
public MemberInfo getMemberInfo() {
return mMemberInfo;
}
@Override @Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data); super.onActivityResult(requestCode, resultCode, data);
......
package com.gingersoft.gsa.cloud.table.mvp.ui.activity; package com.gingersoft.gsa.cloud.table.mvp.ui.activity;
import android.app.Activity; import android.app.Activity;
import android.app.NotificationManager;
import android.content.Intent; import android.content.Intent;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Looper;
import android.os.Message; import android.os.Message;
import android.os.SystemClock; import android.os.SystemClock;
import android.view.View; import android.view.View;
...@@ -214,7 +216,8 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese ...@@ -214,7 +216,8 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
String tableno = ""; String tableno = "";
if (!OpenTableManage.getDefault().isSplite() && OpenTableManage.getDefault().getTableBean() != null) { if (!OpenTableManage.getDefault().isSplite() && OpenTableManage.getDefault().getTableBean() != null) {
tableno = OpenTableManage.getDefault().getTableBean().getTableName(); tableno = OpenTableManage.getDefault().getTableBean().getTableName();
} else {//TODO 暫未分檯功能 } else {
//TODO 暫未分檯功能
// tableno = GSAApplication.tableContract.getTableno().trim() + "-" + GSAApplication.tableContract.getTableno_split().trim(); // tableno = GSAApplication.tableContract.getTableno().trim() + "-" + GSAApplication.tableContract.getTableno_split().trim();
} }
btn_table.setText(tableno); btn_table.setText(tableno);
...@@ -260,7 +263,6 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese ...@@ -260,7 +263,6 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
// backPressed(); // backPressed();
// } // }
@Override @Override
public void onBackPressedSupport() { public void onBackPressedSupport() {
super.onBackPressedSupport(); super.onBackPressedSupport();
......
...@@ -18,9 +18,11 @@ import androidx.recyclerview.widget.RecyclerView; ...@@ -18,9 +18,11 @@ import androidx.recyclerview.widget.RecyclerView;
import com.billy.cc.core.component.CC; import com.billy.cc.core.component.CC;
import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseQuickAdapter;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
import com.gingersoft.gsa.cloud.base.common.bean.PayMethod; import com.gingersoft.gsa.cloud.base.common.bean.PayMethod;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage;
import com.gingersoft.gsa.cloud.base.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.base.utils.VibratorUtils; import com.gingersoft.gsa.cloud.base.utils.VibratorUtils;
import com.gingersoft.gsa.cloud.base.utils.gson.GsonUtils; import com.gingersoft.gsa.cloud.base.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.base.utils.log.LogUtil; import com.gingersoft.gsa.cloud.base.utils.log.LogUtil;
...@@ -100,6 +102,9 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements ...@@ -100,6 +102,9 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
@BindView(R2.id.tv_time) @BindView(R2.id.tv_time)
TextView tv_time; TextView tv_time;
@BindView(R2.id.tv_member_info)
TextView tv_member_info;
// @BindView(R2.id.tv_difference_name) // @BindView(R2.id.tv_difference_name)
// TextView tv_difference_name; // TextView tv_difference_name;
// @BindView(R2.id.tv_difference_money) // @BindView(R2.id.tv_difference_money)
...@@ -128,6 +133,29 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements ...@@ -128,6 +133,29 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
// private QMUITipDialog tipDialog; // private QMUITipDialog tipDialog;
@BindView(R2.id.gsa_pay_view) @BindView(R2.id.gsa_pay_view)
OrderPayView gsaPayView; OrderPayView gsaPayView;
/**
* 會員積分數
*/
private double memberIntegral = 0;
/**
* 額外食品加分
*/
private double pointsAdd;
/**
* 換購食品所需積分
*/
private double pointsRedeem;
/**
* 積分兌換現金比例(MemberPointRedeemCash=2 (理解為每2分=1元)
*/
private double memberPointRedeemCash = 0;
/**
* 積分規則
*/
private int pointRule;
/** /**
* N5相关 * N5相关
*/ */
...@@ -161,22 +189,6 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements ...@@ -161,22 +189,6 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
.inject(this); .inject(this);
} }
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
Intent intent = getIntent();
// N5CallbackManage.getInstance().register(this, in5Callback);
super.onCreate(savedInstanceState);
if (savedInstanceState == null) {
// mPresenter.getPayMethods();
}
}
@Override
protected void onSaveInstanceState(Bundle outState) {
// outState.putSerializable(PRE_BILL_DATA, mPresenter.getPreBillData());
// outState.putSerializable(PAY_METHOD, mPresenter.getBillMethodList());
super.onSaveInstanceState(outState);
}
@Override @Override
public int initView(@Nullable Bundle savedInstanceState) { public int initView(@Nullable Bundle savedInstanceState) {
...@@ -190,6 +202,7 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements ...@@ -190,6 +202,7 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
mPresenter.getPayMethods(); mPresenter.getPayMethods();
initTopInfo(); initTopInfo();
initOrderDetail(); initOrderDetail();
initMemberInfo();
initN5RespCallBack(); initN5RespCallBack();
} }
...@@ -233,6 +246,59 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements ...@@ -233,6 +246,59 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
// setDifferenceText(); // setDifferenceText();
} }
private void initMemberInfo() {
//会员信息
if (MyOrderManage.getInstance().getMemberInfo() != null) {
tv_member_info.setVisibility(View.VISIBLE);
tv_member_info.setText(getMemberInfo());
} else {
tv_member_info.setVisibility(View.GONE);
}
}
private String getMemberInfo() {
MemberInfo memberBean = MyOrderManage.getInstance().getMemberInfo();
String memberInfo;
String memberName = memberBean.getMemberName();
String LevelName1 = memberBean.getLevelName1();
if (!TextUtils.isEmpty(LevelName1)) {
memberInfo = LanguageUtils.get_language_system(this, "meal.info.member.name", "會員名稱:")
+ memberName
+ "(" + LevelName1 + ")";
} else {
memberInfo = LanguageUtils.get_language_system(this, "meal.info.member.name", "會員:") + memberName;
}
boolean showPoints = false;
if (mPresenter.getPointsAdd() != 0 && mPresenter.getPointsRedeem() != 0) {
memberInfo = memberInfo + ":" + memberBean.getMemberPoint() + " +" + mPresenter.getPointsAdd() + " -" + mPresenter.getPointsRedeem();
showPoints = true;
} else {
if (mPresenter.getPointsAdd() != 0) {
memberInfo = memberInfo + ":" + memberBean.getMemberPoint() + " +" + mPresenter.getPointsAdd();
showPoints = true;
}
if (mPresenter.getPointsRedeem() != 0) {
memberInfo = memberInfo + ":" + memberBean.getMemberPoint() + " -" + mPresenter.getPointsRedeem();
showPoints = true;
}
}
if(!showPoints){
memberInfo = memberInfo + ":" + memberBean.getMemberPoint();
}
// memberIntegral = memberBean.getMemberPoint();
// memberPointRedeemCash = memberBean.getPointRedeemCash();
// //獲取積分支付抵扣金額
// double consumptionPoints = mPresenter.getConsumptionPoints(memberPointRedeemCash);
// if (consumptionPoints > 0) {
// memberInfo = memberInfo + ": " + memberIntegral + " " + "-" + consumptionPoints;
// } else {
// memberInfo = memberInfo + ": " + memberIntegral;
// }
return memberInfo;
}
@Override @Override
public void setDifferenceText() { public void setDifferenceText() {
// double difference = mPresenter.getDifferenceMoney(); // double difference = mPresenter.getDifferenceMoney();
...@@ -503,9 +569,33 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements ...@@ -503,9 +569,33 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
setBillMoney(); setBillMoney();
if (!MyOrderManage.getInstance().isModifyOrder() && OpenTableManage.getDefault() != null && OpenTableManage.getDefault().getTableBean() != null) { if (!MyOrderManage.getInstance().isModifyOrder() && OpenTableManage.getDefault() != null && OpenTableManage.getDefault().getTableBean() != null) {
//通知更新餐台状态 //通知更新餐台状态
EventBus.getDefault().post(new InitTableEvent(OpenTableManage.getDefault().getTableBean().getId(), OpenTableManage.getDefault().getTableBean().getTableNumber()),"initTable_status_event"); EventBus.getDefault().post(new InitTableEvent(OpenTableManage.getDefault().getTableBean().getId(), OpenTableManage.getDefault().getTableBean().getTableNumber()), "initTable_status_event");
} }
showMessage("支付成功"); showMessage("支付成功");
//開錢箱
boolean openInstruction = false;
List<PayMethod> payMethods = gsaPayView.getBillMoneyList();
for (PayMethod payMethod : payMethods) {
if (payMethod.getWhetherOpenBox() == 1) {
openInstruction = true;
break;
}
}
if (openInstruction) {
CC.obtainBuilder("Component.Print")
.setActionName("printActivity")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_INSTRUCTION)
.build()
.callAsync((cc, result) -> {
printBill();
});
} else {
printBill();
}
}
private void printBill() {
//打印結賬單 //打印結賬單
CC.obtainBuilder("Component.Print") CC.obtainBuilder("Component.Print")
.setActionName("printActivity") .setActionName("printActivity")
......
package com.gingersoft.gsa.cloud.table.mvp.ui.activity; package com.gingersoft.gsa.cloud.table.mvp.ui.activity;
import android.content.Intent; import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle; import android.os.Bundle;
import android.os.Message; import android.os.Message;
import android.view.View; import android.view.View;
......
...@@ -402,20 +402,22 @@ public class OrderDetailActivity extends BaseActivity<OrderDetailPresenter> impl ...@@ -402,20 +402,22 @@ public class OrderDetailActivity extends BaseActivity<OrderDetailPresenter> impl
orderBean.setStatus(datasBean.getStatus()); orderBean.setStatus(datasBean.getStatus());
orderBean.setOrderNo(datasBean.getOrderNo()); orderBean.setOrderNo(datasBean.getOrderNo());
orderBean.setPerson(datasBean.getPerson()); orderBean.setPerson(datasBean.getPerson());
orderBean.setType(datasBean.getType()); // orderBean.setType(datasBean.getType());
orderBean.setRemark(datasBean.getRemark()); // orderBean.setRemark(datasBean.getRemark());
orderBean.setDiscountAmount(datasBean.getDiscountAmount()); // orderBean.setDiscountAmount(datasBean.getDiscountAmount());
orderBean.setDiscountValue(datasBean.getDiscountValue()); // orderBean.setDiscountValue(datasBean.getDiscountValue());
orderBean.setCreateTime(datasBean.getCreateTime()); orderBean.setCreateTime(datasBean.getCreateTime());
orderBean.setOrderDetails(datasBean.getOrderDetails()); orderBean.setOrderDetails(datasBean.getOrderDetails());
MyOrderManage.getInstance().setOrderBean(orderBean); MyOrderManage.getInstance().setOrderBean(orderBean);
TableBean.DataBean openTableBean = new TableBean.DataBean(); // TableBean.DataBean openTableBean = new TableBean.DataBean();
openTableBean.setCreateTime(TimeUtil.getStringByFormat(new Date(datasBean.getCreateTime()), TimeUtil.dateFormatYMDHM)); // openTableBean.setCreateTime(TimeUtil.getStringByFormat(new Date(datasBean.getCreateTime()), TimeUtil.dateFormatYMDHM));
openTableBean.setTableName(datasBean.getTableName()); // openTableBean.setTableName(datasBean.getTableName());
openTableBean.setId(datasBean.getTableId()); // openTableBean.setId(datasBean.getTableId());
// openTableBean.setServiceCharge(datasBean.getServiceAmount()/datasBean.getTotalAmount()); // OpenTableManage.getDefault().setTableBean(openTableBean);
OpenTableManage.getDefault().setTableBean(openTableBean); TableBean.DataBean tableBean = new TableBean.DataBean(datasBean.getRestaurantTable());
tableBean.setTableName(tableBean.getTableName() + "-" + tableBean.getTableNumber());
OpenTableManage.getDefault().setTableBean(tableBean);
OpenTableManage.getDefault().setPeopleNumber(datasBean.getPerson()); OpenTableManage.getDefault().setPeopleNumber(datasBean.getPerson());
List<OrderBean.OrderDetailsBean> orderDetailsBeans = datasBean.getOrderDetails(); List<OrderBean.OrderDetailsBean> orderDetailsBeans = datasBean.getOrderDetails();
...@@ -445,7 +447,6 @@ public class OrderDetailActivity extends BaseActivity<OrderDetailPresenter> impl ...@@ -445,7 +447,6 @@ public class OrderDetailActivity extends BaseActivity<OrderDetailPresenter> impl
dataBean.setCreateTime(TimeUtil.getStringByFormat(new Date(orderDetailItem.getCreateTime()), TimeUtil.dateFormatYMDHM)); dataBean.setCreateTime(TimeUtil.getStringByFormat(new Date(orderDetailItem.getCreateTime()), TimeUtil.dateFormatYMDHM));
OpenTableManage.getDefault().setTableBean(dataBean); OpenTableManage.getDefault().setTableBean(dataBean);
CC.obtainBuilder("Component.Print") CC.obtainBuilder("Component.Print")
.setActionName("printActivity") .setActionName("printActivity")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_BILL) .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_BILL)
......
...@@ -89,7 +89,8 @@ public class OrderMoneyAdapter extends DefaultAdapter<BillOrderMoney> { ...@@ -89,7 +89,8 @@ public class OrderMoneyAdapter extends DefaultAdapter<BillOrderMoney> {
tv_money.setTextColor(datasBean.getTextColor()); tv_money.setTextColor(datasBean.getTextColor());
if (mContext instanceof OrderContentActivity && if (mContext instanceof OrderContentActivity &&
datasBean.getType() == BillOrderMoney.DISCOUNT_TYPE && datasBean.getType() == BillOrderMoney.ORDER_DISCOUNT_TYPE &&
datasBean.getType() != BillOrderMoney.MEMBER_DISCOUNT_TYPE &&
datasBean.getStatus() == 0) { datasBean.getStatus() == 0) {
iv_delete.setVisibility(View.VISIBLE); iv_delete.setVisibility(View.VISIBLE);
iv_delete.setOnClickListener(v -> { iv_delete.setOnClickListener(v -> {
......
...@@ -115,9 +115,9 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> { ...@@ -115,9 +115,9 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> {
TextView tv_open_duration; TextView tv_open_duration;
// @BindView(R2.id.btn_showMain) // @BindView(R2.id.btn_showMain)
// Button btn_showMain; // Button btn_showMain;
// @BindView(R2.id.iv_vip) @BindView(R2.id.iv_vip)
// ImageView iv_vip; TriangleLabelView iv_vip;
// @BindView(R2.id.tv_scan_flag) // @BindView(R2.id.tv_scan_flag)
// TextView tv_scan_flag; // TextView tv_scan_flag;
@BindView(R2.id.fl_table_type) @BindView(R2.id.fl_table_type)
FrameLayout fl_table_type; FrameLayout fl_table_type;
...@@ -207,6 +207,11 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> { ...@@ -207,6 +207,11 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> {
} else { } else {
fl_table_type.setVisibility(View.GONE); fl_table_type.setVisibility(View.GONE);
} }
if (item.getMemberId() > 0) {
iv_vip.setVisibility(View.VISIBLE);
} else {
iv_vip.setVisibility(View.GONE);
}
} }
private void initTableBackground(TableBean.DataBean item) { private void initTableBackground(TableBean.DataBean item) {
......
...@@ -185,6 +185,13 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> { ...@@ -185,6 +185,13 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
tv_D.setVisibility(View.INVISIBLE); tv_D.setVisibility(View.INVISIBLE);
} }
tv_D_1.setVisibility(View.INVISIBLE); tv_D_1.setVisibility(View.INVISIBLE);
if(datasBean.getScAble() == 0){
tv_S.setVisibility(View.VISIBLE);
}else {
tv_S.setVisibility(View.INVISIBLE);
}
tv_S_1.setVisibility(View.INVISIBLE);
tv_discount_money.setVisibility(View.INVISIBLE); tv_discount_money.setVisibility(View.INVISIBLE);
// if (datasBean.isModify()) { // if (datasBean.isModify()) {
......
...@@ -23,7 +23,10 @@ import android.widget.LinearLayout; ...@@ -23,7 +23,10 @@ import android.widget.LinearLayout;
import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseQuickAdapter;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo; import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.base.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.table.R; import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.MemberInfoAdapter;
import com.gingersoft.gsa.cloud.ui.adapter.BasTextSectiontAdapter; import com.gingersoft.gsa.cloud.ui.adapter.BasTextSectiontAdapter;
import com.gingersoft.gsa.cloud.ui.bean.mode.BrandsBean; import com.gingersoft.gsa.cloud.ui.bean.mode.BrandsBean;
import com.gingersoft.gsa.cloud.ui.bean.view.SectionHeader; import com.gingersoft.gsa.cloud.ui.bean.view.SectionHeader;
...@@ -116,7 +119,6 @@ public class UseMemberDialog extends Dialog { ...@@ -116,7 +119,6 @@ public class UseMemberDialog extends Dialog {
super.setContentView(view); super.setContentView(view);
} }
/** /**
* BottomSheet升起动画 * BottomSheet升起动画
*/ */
...@@ -220,8 +222,6 @@ public class UseMemberDialog extends Dialog { ...@@ -220,8 +222,6 @@ public class UseMemberDialog extends Dialog {
private Context mContext; private Context mContext;
private UseMemberDialog mDialog; private UseMemberDialog mDialog;
private MemberInfo mMemberInfo;
private QMUITopBar mTopBar; private QMUITopBar mTopBar;
private RecyclerView.LayoutManager mLayoutManager; private RecyclerView.LayoutManager mLayoutManager;
...@@ -234,15 +234,13 @@ public class UseMemberDialog extends Dialog { ...@@ -234,15 +234,13 @@ public class UseMemberDialog extends Dialog {
private QMUIAlphaButton btn_use_member; private QMUIAlphaButton btn_use_member;
private QMUIAlphaButton btn_clear_member; private QMUIAlphaButton btn_clear_member;
private MemberInfoAdapter mMemberInfoAdapter;
private List<SectionTextItem> mMemberInfoList;
public BottomLayoutBuilder(Context context) { public BottomLayoutBuilder(Context context) {
mContext = context; mContext = context;
} }
public void setMemberInfo(MemberInfo mMemberInfo) {
this.mMemberInfo = mMemberInfo;
}
@Override @Override
public void onClick(View v) { public void onClick(View v) {
} }
...@@ -257,6 +255,7 @@ public class UseMemberDialog extends Dialog { ...@@ -257,6 +255,7 @@ public class UseMemberDialog extends Dialog {
if (mDismissListener != null) { if (mDismissListener != null) {
mDialog.setOnDismissListener(mDismissListener); mDialog.setOnDismissListener(mDismissListener);
} }
updateMemberInfo(MyOrderManage.getInstance().getMemberInfo());
// AndroidWorkaround.assistActivity(contentView); // AndroidWorkaround.assistActivity(contentView);
return mDialog; return mDialog;
} }
...@@ -269,12 +268,15 @@ public class UseMemberDialog extends Dialog { ...@@ -269,12 +268,15 @@ public class UseMemberDialog extends Dialog {
iv_no_data = view.findViewById(R.id.iv_no_data); iv_no_data = view.findViewById(R.id.iv_no_data);
btn_query_memeber = view.findViewById(R.id.btn_query_memeber); btn_query_memeber = view.findViewById(R.id.btn_query_memeber);
btn_scan = view.findViewById(R.id.btn_scan); btn_scan = view.findViewById(R.id.btn_scan);
ll_bottom = view.findViewById(R.id.ll_bottom); ll_bottom = view.findViewById(R.id.ll_bottom);
btn_use_member = view.findViewById(R.id.btn_use_member); btn_use_member = view.findViewById(R.id.btn_use_member);
btn_clear_member = view.findViewById(R.id.btn_clear_member); btn_clear_member = view.findViewById(R.id.btn_clear_member);
initTopbar(); initTopbar();
initRecyclerLayout(); initRecyclerLayout();
if (onLayoutClickListener != null) {
onLayoutClickListener.setBottomLayoutBuilder(this);
}
btn_query_memeber.setOnClickListener(new View.OnClickListener() { btn_query_memeber.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
...@@ -308,26 +310,15 @@ public class UseMemberDialog extends Dialog { ...@@ -308,26 +310,15 @@ public class UseMemberDialog extends Dialog {
public void onClick(View v) { public void onClick(View v) {
if (onLayoutClickListener != null) { if (onLayoutClickListener != null) {
onLayoutClickListener.clearMemberInfo(); onLayoutClickListener.clearMemberInfo();
clearMemberInfo();
} }
} }
}); });
if (onLayoutClickListener != null) {
onLayoutClickListener.setAdapter(recycler_member_info,this);
}
return view; return view;
} }
private void initTopbar() { private void initTopbar() {
mTopBar.setBackgroundColor(ContextCompat.getColor(mContext, R.color.theme_color)); mTopBar.setBackgroundColor(ContextCompat.getColor(mContext, R.color.theme_color));
// Button rightBtn = mTopBar.addRightTextButton("清除", R.id.btn_right);
// rightBtn.setTextColor(ContextCompat.getColor(mContext, R.color.theme_white_color));
// rightBtn.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View v) {
//
//
// }
// });
mTopBar.addLeftBackImageButton().setOnClickListener(new View.OnClickListener() { mTopBar.addLeftBackImageButton().setOnClickListener(new View.OnClickListener() {
@Override @Override
...@@ -358,9 +349,52 @@ public class UseMemberDialog extends Dialog { ...@@ -358,9 +349,52 @@ public class UseMemberDialog extends Dialog {
}; };
} }
public void showBottomLayoutVisibility(boolean show){ public void updateMemberInfo(MemberInfo memberInfo) {
ll_bottom.setVisibility(show?View.VISIBLE:View.GONE); if (memberInfo != null) {
btn_scan.setVisibility(!show?View.VISIBLE:View.GONE); if (mMemberInfoList == null) {
mMemberInfoList = new ArrayList<>();
}
if (mMemberInfoAdapter == null) {
mMemberInfoAdapter = new MemberInfoAdapter(mMemberInfoList);
recycler_member_info.setAdapter(mMemberInfoAdapter);
}
List<SectionTextItem> data = getMemberInfoItem(memberInfo);
if (mMemberInfoList.size() > 0) {
mMemberInfoList.clear();
}
mMemberInfoList.addAll(data);
mMemberInfoAdapter.notifyDataSetChanged();
showBottomLayoutVisibility(true);
}
}
public void clearMemberInfo() {
if (mMemberInfoList.size() > 0) {
mMemberInfoList.clear();
}
mMemberInfoAdapter.notifyDataSetChanged();
showBottomLayoutVisibility(false);
}
private List<SectionTextItem> getMemberInfoItem(MemberInfo memberInfo) {
List<SectionTextItem> textItems = new ArrayList<>();
String memberName = memberInfo.getMemberName();
String LevelName1 = memberInfo.getLevelName1();
if (!TextUtils.isEmpty(LevelName1)) {
memberName = memberName
+ "(" + LevelName1 + ")";
}
textItems.add(new SectionTextItem("會員號碼: " + memberInfo.getMemberNo()));
textItems.add(new SectionTextItem("會員電話: " + memberInfo.getPhone()));
textItems.add(new SectionTextItem("會員名稱: " + memberName));
textItems.add(new SectionTextItem("積分: " + memberInfo.getMemberPoint()));
return textItems;
}
public void showBottomLayoutVisibility(boolean show) {
ll_bottom.setVisibility(show ? View.VISIBLE : View.GONE);
btn_scan.setVisibility(!show ? View.VISIBLE : View.GONE);
} }
private String getTvPhone() { private String getTvPhone() {
...@@ -386,12 +420,12 @@ public class UseMemberDialog extends Dialog { ...@@ -386,12 +420,12 @@ public class UseMemberDialog extends Dialog {
public interface OnLayoutClickListener { public interface OnLayoutClickListener {
void setBottomLayoutBuilder(BottomLayoutBuilder layoutBuilder);
void onInputPhone(UseMemberDialog dialog, String phone); void onInputPhone(UseMemberDialog dialog, String phone);
void onScanAction(UseMemberDialog dialog); void onScanAction(UseMemberDialog dialog);
void setAdapter(RecyclerView recycler_member_info,BottomLayoutBuilder layoutBuilder);
void onUseMember(UseMemberDialog dialog); void onUseMember(UseMemberDialog dialog);
void clearMemberInfo(); void clearMemberInfo();
......
...@@ -2,7 +2,8 @@ ...@@ -2,7 +2,8 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout 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="wrap_content"> android:layout_height="wrap_content"
android:background="@color/theme_white_color">
<Chronometer <Chronometer
android:id="@+id/ctime" android:id="@+id/ctime"
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
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="@color/theme_white_color"
android:orientation="vertical"> android:orientation="vertical">
<Chronometer <Chronometer
......
...@@ -89,6 +89,17 @@ ...@@ -89,6 +89,17 @@
</RelativeLayout> </RelativeLayout>
</LinearLayout> </LinearLayout>
<TextView
android:id="@+id/tv_member_info"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="會員信息"
android:textSize="@dimen/sp_14"
android:padding="@dimen/dp_5"
android:textStyle="bold"
android:textColor="@color/theme_white_color"
android:background="@color/app_color_theme_1"/>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_food" android:id="@+id/rv_food"
android:layout_width="match_parent" android:layout_width="match_parent"
......
...@@ -2,7 +2,8 @@ ...@@ -2,7 +2,8 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout 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="@color/theme_white_color">
<com.qmuiteam.qmui.widget.QMUITopBar <com.qmuiteam.qmui.widget.QMUITopBar
android:id="@+id/topbar" android:id="@+id/topbar"
......
...@@ -93,7 +93,8 @@ ...@@ -93,7 +93,8 @@
app:corner="rightBottom" app:corner="rightBottom"
app:primaryText="堂" app:primaryText="堂"
app:primaryTextColor="#249B65" app:primaryTextColor="#249B65"
app:primaryTextSize="10sp" /> app:primaryTextSize="10sp"
app:isRestoreText="false"/>
<TextView <TextView
android:id="@+id/tv_type_labe" android:id="@+id/tv_type_labe"
...@@ -105,6 +106,18 @@ ...@@ -105,6 +106,18 @@
android:textSize="10sp" android:textSize="10sp"
android:padding="@dimen/dp_5"/> android:padding="@dimen/dp_5"/>
</FrameLayout> </FrameLayout>
<com.gingersoft.gsa.cloud.ui.view.TriangleLabelView
android:id="@+id/iv_vip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:backgroundColor="#FFDF713B"
app:corner="leftTop"
app:primaryText="VIP"
app:primaryTextColor="@color/theme_white_color"
app:primaryTextSize="@dimen/sp_12"
app:isRestoreText="true"/>
<!-- <ImageView--> <!-- <ImageView-->
<!-- android:id="@+id/iv_vip"--> <!-- android:id="@+id/iv_vip"-->
<!-- android:layout_width="50dp"--> <!-- android:layout_width="50dp"-->
...@@ -113,7 +126,7 @@ ...@@ -113,7 +126,7 @@
<!-- android:layout_alignParentTop="true"--> <!-- android:layout_alignParentTop="true"-->
<!-- android:scaleType="fitXY"--> <!-- android:scaleType="fitXY"-->
<!-- android:src="@drawable/qmui_icon_tip_new"--> <!-- android:src="@drawable/qmui_icon_tip_new"-->
<!-- android:visibility="gone" />--> <!-- android:visibility="visible" />-->
<!-- <TextView--> <!-- <TextView-->
<!-- android:id="@+id/tv_scan_flag"--> <!-- android:id="@+id/tv_scan_flag"-->
...@@ -127,4 +140,5 @@ ...@@ -127,4 +140,5 @@
<!-- android:gravity="center"--> <!-- android:gravity="center"-->
<!-- android:visibility="gone"--> <!-- android:visibility="gone"-->
<!-- android:textSize="@dimen/font_normal2" />--> <!-- android:textSize="@dimen/font_normal2" />-->
</com.qmuiteam.qmui.layout.QMUIRelativeLayout> </com.qmuiteam.qmui.layout.QMUIRelativeLayout>
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