Commit ff6f0816 by 宁斌

1、輸入會員手機號獲取會員信息

parent 2fd4d7af
File added
...@@ -94,6 +94,12 @@ dependencies { ...@@ -94,6 +94,12 @@ dependencies {
api 'com.sunmi:printerlibrary:1.0.7' api 'com.sunmi:printerlibrary:1.0.7'
//上下拉刷新 //上下拉刷新
api 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' api 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0'
//多功能輸入框
api 'com.rengwuxian.materialedittext:library:2.1.4'
//二维码扫描
api 'cn.yipianfengye.android:zxing-library:2.2'
// // 斜角标签
// api 'com.github.poqiao:BeveLabelView:1.0.3'
compile "androidx.core:core-ktx:+" compile "androidx.core:core-ktx:+"
implementation 'org.projectlombok:lombok:1.18.8' implementation 'org.projectlombok:lombok:1.18.8'
......
...@@ -369,6 +369,10 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -369,6 +369,10 @@ public class GsaCloudApplication extends BaseApplication {
return (String) SPUtils.get(context, UserConstans.brandRestaurantInfos, ""); return (String) SPUtils.get(context, UserConstans.brandRestaurantInfos, "");
} }
public static String getGsPosShopId(Context context) {
return (String) SPUtils.get(context, UserConstans.gsPosShopId, "");
}
public static void setLoginToken(Context context, String token) { public static void setLoginToken(Context context, String token) {
SPUtils.put(context, UserConstans.token, token); SPUtils.put(context, UserConstans.token, token);
} }
...@@ -401,6 +405,10 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -401,6 +405,10 @@ public class GsaCloudApplication extends BaseApplication {
SPUtils.put(context, UserConstans.brandRestaurantInfos, brandRestaurantIds); SPUtils.put(context, UserConstans.brandRestaurantInfos, brandRestaurantIds);
} }
public static void setGsPosShopId(Context context, String gsPosShopId) {
SPUtils.put(context, UserConstans.gsPosShopId, gsPosShopId);
}
public static void clearMemberInfo() { public static void clearMemberInfo() {
setLoginToken(mAppContext, ""); setLoginToken(mAppContext, "");
setMemberId(mAppContext, 0); setMemberId(mAppContext, 0);
......
...@@ -8,6 +8,8 @@ import com.gingersoft.gsa.cloud.database.bean.Food; ...@@ -8,6 +8,8 @@ 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.print.bean.OrderDetails; import com.gingersoft.gsa.cloud.print.bean.OrderDetails;
import org.greenrobot.greendao.annotation.Transient;
import java.io.Serializable; import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
...@@ -59,10 +61,13 @@ public class OrderDetail implements Serializable { ...@@ -59,10 +61,13 @@ public class OrderDetail implements Serializable {
private int bgColor; private int bgColor;
//字體色 //字體色
private int fontColor; private int fontColor;
//是否组合商品 1-组合商品 2-组合商品的子商品 //是否组合商品 1-组合商品 2-组合商品的子商品
private int ComboLevel = 0; private int ComboLevel = 0;
//套餐食品是否自動跟餐 //套餐食品是否自動跟餐
private boolean isComboAuto = false; private boolean isComboAuto = false;
/**動態的最大選中數*/
private String currentMaxNumber= "";
//"food" or "discount" or "modifiy" //"food" or "discount" or "modifiy"
private int prop = FOOD_PROP; private int prop = FOOD_PROP;
/** /**
...@@ -249,6 +254,7 @@ public class OrderDetail implements Serializable { ...@@ -249,6 +254,7 @@ public class OrderDetail implements Serializable {
this.status = orderDetail.status; this.status = orderDetail.status;
this.printSeting = orderDetail.printSeting; this.printSeting = orderDetail.printSeting;
this.ktPrintMainItem = orderDetail.ktPrintMainItem; this.ktPrintMainItem = orderDetail.ktPrintMainItem;
this.currentMaxNumber = orderDetail.currentMaxNumber;
} }
public int getSelected() { public int getSelected() {
...@@ -611,6 +617,14 @@ public class OrderDetail implements Serializable { ...@@ -611,6 +617,14 @@ public class OrderDetail implements Serializable {
this.ktPrintMainItem = ktPrintMainItem; this.ktPrintMainItem = ktPrintMainItem;
} }
public String getCurrentMaxNumber() {
return currentMaxNumber;
}
public void setCurrentMaxNumber(String currentMaxNumber) {
this.currentMaxNumber = currentMaxNumber;
}
/** /**
* 已送單食品轉換 * 已送單食品轉換
* *
...@@ -725,31 +739,32 @@ public class OrderDetail implements Serializable { ...@@ -725,31 +739,32 @@ public class OrderDetail implements Serializable {
/** /**
* 主食品轉換 * 主食品轉換
* *
* @param foods * @param food
* @param number * @param number
* @return * @return
*/ */
public static OrderDetail foodTransOrderDetails(Food foods, int number) { public static OrderDetail foodTransOrderDetails(Food food, int number) {
OrderDetail orderDetail = new OrderDetail(); OrderDetail orderDetail = new OrderDetail();
orderDetail.setProductName(foods.getFoodName()); orderDetail.setProductName(food.getFoodName());
orderDetail.setTopId(foods.getTopId()); orderDetail.setTopId(food.getTopId());
orderDetail.setId(0); orderDetail.setId(0);
orderDetail.setParentId(0); orderDetail.setParentId(0);
orderDetail.setProductId(foods.getId()); orderDetail.setProductId(food.getId());
// orderDetail.setParentId(foods.getParentId()); // orderDetail.setParentId(foods.getParentId());
orderDetail.setUnit_price(foods.getPrice()); orderDetail.setUnit_price(food.getPrice());
orderDetail.setPrice(number * orderDetail.getUnit_price()); orderDetail.setPrice(number * orderDetail.getUnit_price());
orderDetail.setNumber(number); orderDetail.setNumber(number);
orderDetail.setOrderId(MyOrderManage.getInstance().getOrderId()); orderDetail.setOrderId(MyOrderManage.getInstance().getOrderId());
orderDetail.setPrintseting(foods.getPrintSeting()); orderDetail.setPrintseting(food.getPrintSeting());
orderDetail.setIsfood(true); orderDetail.setIsfood(true);
orderDetail.setNew(true); orderDetail.setNew(true);
orderDetail.setType(FOOD_TYPE); orderDetail.setType(FOOD_TYPE);
orderDetail.setItemType(1); orderDetail.setItemType(1);
orderDetail.setProp(FOOD_PROP); orderDetail.setProp(FOOD_PROP);
orderDetail.setAutoMod(foods.getAutoMod()); orderDetail.setAutoMod(food.getAutoMod());
int comboLevel = foods.isComboFood() ? 1 : 0; int comboLevel = food.isComboFood() ? 1 : 0;
orderDetail.setComboLevel(comboLevel); orderDetail.setComboLevel(comboLevel);
orderDetail.setCurrentMaxNumber(food.getCurrentMaxNumber());
return orderDetail; return orderDetail;
} }
...@@ -792,6 +807,7 @@ public class OrderDetail implements Serializable { ...@@ -792,6 +807,7 @@ public class OrderDetail implements Serializable {
} else { } else {
orderDetail.setSelected(1); orderDetail.setSelected(1);
} }
orderDetail.setCurrentMaxNumber(foodCombo.getCurrentMaxNumber());
return orderDetail; return orderDetail;
} }
...@@ -823,6 +839,7 @@ public class OrderDetail implements Serializable { ...@@ -823,6 +839,7 @@ public class OrderDetail implements Serializable {
orderDetail.setProp(MODIFIER_PROP); orderDetail.setProp(MODIFIER_PROP);
//手动点击细项 才将子食品作为主体被选中 //手动点击细项 才将子食品作为主体被选中
orderDetail.setSelected(2); orderDetail.setSelected(2);
orderDetail.setCurrentMaxNumber(modifier.getCurrentMaxNumber());
return orderDetail; return orderDetail;
} }
......
...@@ -40,6 +40,9 @@ public class PayMethod { ...@@ -40,6 +40,9 @@ public class PayMethod {
private int payModeSize = 14; private int payModeSize = 14;
private int payMoneySize = 14; private int payMoneySize = 14;
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) { public PayMethod(int id, String payName, String createTime, String remarks, String NAME, String NAME2, String NAME3, String PAYWAY) {
this.id = id; this.id = id;
this.payName = payName; this.payName = payName;
......
...@@ -73,6 +73,8 @@ public class TableBean { ...@@ -73,6 +73,8 @@ public class TableBean {
* person : 2 * person : 2
* useStatus: 0 * useStatus: 0
* sort : 0 * sort : 0
* minSeatCount : 2
* maxSeatCount : 8
*/ */
private int id; private int id;
......
package com.gingersoft.gsa.cloud.base.common.bean.mealManage; package com.gingersoft.gsa.cloud.base.common.bean.mealManage;
import android.app.Activity; import android.app.Activity;
import android.text.TextUtils;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BillOrderMoney; import com.gingersoft.gsa.cloud.base.common.bean.BillOrderMoney;
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.PayMethod; import com.gingersoft.gsa.cloud.base.common.bean.PayMethod;
import com.gingersoft.gsa.cloud.print.bean.OrderDetails; import com.gingersoft.gsa.cloud.print.bean.OrderDetails;
import com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog;
import com.jess.arms.utils.ArmsUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
...@@ -157,9 +161,17 @@ public class MyOrderManage { ...@@ -157,9 +161,17 @@ public class MyOrderManage {
} }
private void change_food_number(OrderDetail orderFood, int number) { private void change_food_number(OrderDetail orderFood, int number) {
String currentMaxNumber = orderFood.getCurrentMaxNumber();
if (!TextUtils.isEmpty(currentMaxNumber)) {
if (number > Integer.parseInt(currentMaxNumber)) {
showSoldDialog(orderFood);
orderFood.setNumber(Integer.parseInt(currentMaxNumber));
} else {
orderFood.setNumber(number); orderFood.setNumber(number);
}
} else {
orderFood.setNumber(number);
}
setCalculatePrice(orderFood); setCalculatePrice(orderFood);
} }
...@@ -180,7 +192,17 @@ public class MyOrderManage { ...@@ -180,7 +192,17 @@ public class MyOrderManage {
OrderDetail datasBean = orderFoodList.get(i); OrderDetail datasBean = orderFoodList.get(i);
if (datasBean.getParentIndex() == parentIndex) { if (datasBean.getParentIndex() == parentIndex) {
// if (datasBean.getNumber() == 1) { // if (datasBean.getNumber() == 1) {
String currentMaxNumber = datasBean.getCurrentMaxNumber();
if (!TextUtils.isEmpty(currentMaxNumber)) {
if (number > Integer.parseInt(currentMaxNumber)) {
datasBean.setNumber(Integer.parseInt(currentMaxNumber));
} else {
datasBean.setNumber(number);
}
} else {
datasBean.setNumber(number); datasBean.setNumber(number);
}
// datasBean.setNumber(number);
setCalculatePrice(datasBean); setCalculatePrice(datasBean);
// } // }
} }
...@@ -188,6 +210,11 @@ public class MyOrderManage { ...@@ -188,6 +210,11 @@ public class MyOrderManage {
} }
} }
private void showSoldDialog(OrderDetail orderDetail) {
String msg = "[" + orderDetail.getProductName() + "]" + "已售罄";
CommonTipDialog.showSurpisedDialog(GsaCloudApplication.getAppContext().getCurrentActivity(), msg, null, null, null, null, null);
}
// private void change_child_number(OrderDetail orderFood, int number) { // private void change_child_number(OrderDetail orderFood, int number) {
// //
// //每个组子项最大选择数量 // //每个组子项最大选择数量
......
package com.gingersoft.gsa.cloud.base.utils;
import java.util.ArrayList;
import java.util.List;
public class StringUtils {
/**
* 生成指定长度字符串,不足位右补空格,超出換行
*
* @param value
* @param totalLen
* @return
*/
public static String[] formatOrderPrintRow(String value, int totalLen) {
String[] strs = new String[2];
int valueLength = 0;
String chinese = "[\u4e00-\u9fa5]";
for (int i = 0; i < value.length(); i++) {
String temp = value.substring(i, i + 1);
if (temp.matches(chinese)) {
valueLength += 2;
} else {
valueLength += 1;
}
}
if (totalLen > valueLength) {
int temp = totalLen - valueLength;
for (int i = 0; i < temp; i++) {
value += " ";
}
strs[0] = value;
} else {
String startValue = value.substring(0, 9);
String endValue = value.substring(9, value.length());
strs[0] = startValue;
strs[1] = endValue;
}
return strs;
}
public static String rightMakeupSpace(String value, int totalLen) {
int valueLength = 0;
String chinese = "[\u4e00-\u9fa5]";
for (int i = 0; i < value.length(); i++) {
String temp = value.substring(i, i + 1);
if (temp.matches(chinese)) {
valueLength += 2;
} else {
valueLength += 1;
}
}
if (totalLen > valueLength) {
int temp = totalLen - valueLength;
for (int i = 0; i < temp; i++) {
value += " ";
}
}
return value;
}
public static String leftMakeupSpace(String value, int totalLen) {
int valueLength = 0;
String chinese = "[\u4e00-\u9fa5]";
for (int i = 0; i < value.length(); i++) {
String temp = value.substring(i, i + 1);
if (temp.matches(chinese)) {
valueLength += 2;
} else {
valueLength += 1;
}
}
if (totalLen > valueLength) {
int temp = totalLen - valueLength;
for (int i = 0; i < temp; i++) {
value = " " + value;
}
}
return value;
}
public static int getChineseValueLength(String value) {
int valueLength = 0;
String chinese = "[\u4e00-\u9fa5]";
for (int i = 0; i < value.length(); i++) {
String temp = value.substring(i, i + 1);
if (temp.matches(chinese)) {
valueLength += 2;
} else {
valueLength += 1;
}
}
return valueLength;
}
/**
* 给定一个长字符串内容,返回一个数组
*
* @param content 所有的内容
* @param count 需要每段截取的长度
* @return 所有分段的数组list
*/
public static List<String> getListFromContent(String content, int count) {
List<String> list = new ArrayList<>();
// 获取String的总长度
int contentLength = content.length();
if (contentLength < count) {
list.add(content);
} else {
int begin = 0;
// 获取需要切割多少段
int cutCount = contentLength / count;
int cutCounts = contentLength % count;
// 获取切割段的长度
if (cutCounts != 0) {
cutCount++;
}
for (int i = 1; i <= cutCount; i++) {
String temp;
// 不是最后一段
if (i != cutCount) {
temp = content.substring(begin, count * i);
} else {
temp = content.substring(begin, contentLength);
}
begin = count * i;
list.add(temp);
}
}
return list;
}
/**
* @param content
* @param begin
* @param end
* @return
*/
public static String getPhoneByBlurCharAfter(String content, int begin, int end) {
if (begin >= content.length() || begin < 0) {
return content;
}
if (end >= content.length() || end < 0) {
return content;
}
if (begin >= end) {
return content;
}
String starStr = "";
for (int i = begin; i < end; i++) {
// starStr = starStr + GSAApplication.androidSetting.getvBlurChar();
}
return content.substring(0, begin) + starStr + content.substring(end, content.length());
}
/**
* 超出的字符串使用替代符顯示(...)
*
* @param value
* @param omitBlur
* @param needOmitLength
* @return
*/
public static String getEllipsizeStringByOmitBlur(String value, String omitBlur, int needOmitLength) {
if (value.length() > needOmitLength) {
return value.substring(0, needOmitLength - 1) + omitBlur;
}
return value;
}
}
\ No newline at end of file
package com.gingersoft.gsa.cloud.base.utils.encryption;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5 {
private final static String[] strDigits = { "0", "1", "2", "3", "4", "5",
"6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };
public MD5() {
}
private static String byteToArrayString(byte bByte) {
int iRet = bByte;
// System.out.println("iRet="+iRet);
if (iRet < 0) {
iRet += 256;
}
int iD1 = iRet / 16;
int iD2 = iRet % 16;
return strDigits[iD1] + strDigits[iD2];
}
private static String byteToNum(byte bByte) {
int iRet = bByte;
System.out.println("iRet1=" + iRet);
if (iRet < 0) {
iRet += 256;
}
return String.valueOf(iRet);
}
private static String byteToString(byte[] bByte) {
StringBuffer sBuffer = new StringBuffer();
for (int i = 0; i < bByte.length; i++) {
sBuffer.append(byteToArrayString(bByte[i]));
}
return sBuffer.toString();
}
public static String GetMD5Code(String strObj) {
String resultString = null;
try {
resultString = new String(strObj);
MessageDigest md = MessageDigest.getInstance("MD5");
// md.digest()
resultString = byteToString(md.digest(strObj.getBytes()));
} catch (NoSuchAlgorithmException ex) {
ex.printStackTrace();
}
return resultString;
}
// 加密后解密
public static String JM(String inStr) {
char [] a = inStr.toCharArray();
for ( int i = 0 ; i < a.length; i++) {
a[i] = (char ) (a[i] ^ 't' );
}
String k = new String(a);
return k;
}
}
\ No newline at end of file
...@@ -20,6 +20,7 @@ public class UserConstans { ...@@ -20,6 +20,7 @@ public class UserConstans {
public static String restaurantName = "restaurant_name"; public static String restaurantName = "restaurant_name";
public static String brandId = "brand_id"; public static String brandId = "brand_id";
public static String brandName = "brand_name"; public static String brandName = "brand_name";
public static String gsPosShopId = "gsPosShopId";
/**當前賬號下所有餐檯品牌Json*/ /**當前賬號下所有餐檯品牌Json*/
public static String brandRestaurantInfos = "brand_restaurant_infos"; public static String brandRestaurantInfos = "brand_restaurant_infos";
......
...@@ -403,7 +403,10 @@ public class Modifier { ...@@ -403,7 +403,10 @@ public class Modifier {
/**字體顏色*/ /**字體顏色*/
private int fontColor = Color.parseColor("#FFFFFF"); private int fontColor = Color.parseColor("#FFFFFF");
@Transient @Transient
/**最大可選數*/
private int selectQty;
/**最大選中數*/ /**最大選中數*/
@Transient
private String maxNumber = ""; private String maxNumber = "";
/**動態的最大選中數*/ /**動態的最大選中數*/
@Transient @Transient
...@@ -1119,4 +1122,11 @@ public class Modifier { ...@@ -1119,4 +1122,11 @@ public class Modifier {
this.isStatistic = isStatistic; this.isStatistic = isStatistic;
} }
public int getSelectQty() {
return selectQty;
}
public void setSelectQty(int selectQty) {
this.selectQty = selectQty;
}
} }
...@@ -28,10 +28,10 @@ public class DaoMaster extends AbstractDaoMaster { ...@@ -28,10 +28,10 @@ public class DaoMaster extends AbstractDaoMaster {
FoodComboDao.createTable(db, ifNotExists); FoodComboDao.createTable(db, ifNotExists);
FoodModifierDao.createTable(db, ifNotExists); FoodModifierDao.createTable(db, ifNotExists);
FunctionDao.createTable(db, ifNotExists); FunctionDao.createTable(db, ifNotExists);
LanguageDao.createTable(db, ifNotExists);
ModifierDao.createTable(db, ifNotExists); ModifierDao.createTable(db, ifNotExists);
PrinterDeviceBeanDao.createTable(db, ifNotExists); PrinterDeviceBeanDao.createTable(db, ifNotExists);
PrintModelBeanDao.createTable(db, ifNotExists); PrintModelBeanDao.createTable(db, ifNotExists);
LanguageDao.createTable(db, ifNotExists);
PrintCurrencyBeanDao.createTable(db, ifNotExists); PrintCurrencyBeanDao.createTable(db, ifNotExists);
} }
...@@ -44,10 +44,10 @@ public class DaoMaster extends AbstractDaoMaster { ...@@ -44,10 +44,10 @@ public class DaoMaster extends AbstractDaoMaster {
FoodComboDao.dropTable(db, ifExists); FoodComboDao.dropTable(db, ifExists);
FoodModifierDao.dropTable(db, ifExists); FoodModifierDao.dropTable(db, ifExists);
FunctionDao.dropTable(db, ifExists); FunctionDao.dropTable(db, ifExists);
LanguageDao.dropTable(db, ifExists);
ModifierDao.dropTable(db, ifExists); ModifierDao.dropTable(db, ifExists);
PrinterDeviceBeanDao.dropTable(db, ifExists); PrinterDeviceBeanDao.dropTable(db, ifExists);
PrintModelBeanDao.dropTable(db, ifExists); PrintModelBeanDao.dropTable(db, ifExists);
LanguageDao.dropTable(db, ifExists);
PrintCurrencyBeanDao.dropTable(db, ifExists); PrintCurrencyBeanDao.dropTable(db, ifExists);
} }
...@@ -74,10 +74,10 @@ public class DaoMaster extends AbstractDaoMaster { ...@@ -74,10 +74,10 @@ public class DaoMaster extends AbstractDaoMaster {
registerDaoClass(FoodComboDao.class); registerDaoClass(FoodComboDao.class);
registerDaoClass(FoodModifierDao.class); registerDaoClass(FoodModifierDao.class);
registerDaoClass(FunctionDao.class); registerDaoClass(FunctionDao.class);
registerDaoClass(LanguageDao.class);
registerDaoClass(ModifierDao.class); registerDaoClass(ModifierDao.class);
registerDaoClass(PrinterDeviceBeanDao.class); registerDaoClass(PrinterDeviceBeanDao.class);
registerDaoClass(PrintModelBeanDao.class); registerDaoClass(PrintModelBeanDao.class);
registerDaoClass(LanguageDao.class);
registerDaoClass(PrintCurrencyBeanDao.class); registerDaoClass(PrintCurrencyBeanDao.class);
} }
......
...@@ -15,10 +15,10 @@ import com.gingersoft.gsa.cloud.database.bean.Food; ...@@ -15,10 +15,10 @@ 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.FoodModifier; import com.gingersoft.gsa.cloud.database.bean.FoodModifier;
import com.gingersoft.gsa.cloud.database.bean.Function; import com.gingersoft.gsa.cloud.database.bean.Function;
import com.gingersoft.gsa.cloud.database.bean.Language;
import com.gingersoft.gsa.cloud.database.bean.Modifier; import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean; import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import com.gingersoft.gsa.cloud.database.bean.PrintModelBean; import com.gingersoft.gsa.cloud.database.bean.PrintModelBean;
import com.gingersoft.gsa.cloud.database.bean.Language;
import com.gingersoft.gsa.cloud.database.bean.PrintCurrencyBean; import com.gingersoft.gsa.cloud.database.bean.PrintCurrencyBean;
import com.gingersoft.gsa.cloud.database.greendao.ComboItemDao; import com.gingersoft.gsa.cloud.database.greendao.ComboItemDao;
...@@ -28,10 +28,10 @@ import com.gingersoft.gsa.cloud.database.greendao.FoodDao; ...@@ -28,10 +28,10 @@ import com.gingersoft.gsa.cloud.database.greendao.FoodDao;
import com.gingersoft.gsa.cloud.database.greendao.FoodComboDao; import com.gingersoft.gsa.cloud.database.greendao.FoodComboDao;
import com.gingersoft.gsa.cloud.database.greendao.FoodModifierDao; import com.gingersoft.gsa.cloud.database.greendao.FoodModifierDao;
import com.gingersoft.gsa.cloud.database.greendao.FunctionDao; import com.gingersoft.gsa.cloud.database.greendao.FunctionDao;
import com.gingersoft.gsa.cloud.database.greendao.LanguageDao;
import com.gingersoft.gsa.cloud.database.greendao.ModifierDao; import com.gingersoft.gsa.cloud.database.greendao.ModifierDao;
import com.gingersoft.gsa.cloud.database.greendao.PrinterDeviceBeanDao; import com.gingersoft.gsa.cloud.database.greendao.PrinterDeviceBeanDao;
import com.gingersoft.gsa.cloud.database.greendao.PrintModelBeanDao; import com.gingersoft.gsa.cloud.database.greendao.PrintModelBeanDao;
import com.gingersoft.gsa.cloud.database.greendao.LanguageDao;
import com.gingersoft.gsa.cloud.database.greendao.PrintCurrencyBeanDao; import com.gingersoft.gsa.cloud.database.greendao.PrintCurrencyBeanDao;
// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT. // THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
...@@ -50,10 +50,10 @@ public class DaoSession extends AbstractDaoSession { ...@@ -50,10 +50,10 @@ public class DaoSession extends AbstractDaoSession {
private final DaoConfig foodComboDaoConfig; private final DaoConfig foodComboDaoConfig;
private final DaoConfig foodModifierDaoConfig; private final DaoConfig foodModifierDaoConfig;
private final DaoConfig functionDaoConfig; private final DaoConfig functionDaoConfig;
private final DaoConfig languageDaoConfig;
private final DaoConfig modifierDaoConfig; private final DaoConfig modifierDaoConfig;
private final DaoConfig printerDeviceBeanDaoConfig; private final DaoConfig printerDeviceBeanDaoConfig;
private final DaoConfig printModelBeanDaoConfig; private final DaoConfig printModelBeanDaoConfig;
private final DaoConfig languageDaoConfig;
private final DaoConfig printCurrencyBeanDaoConfig; private final DaoConfig printCurrencyBeanDaoConfig;
private final ComboItemDao comboItemDao; private final ComboItemDao comboItemDao;
...@@ -63,10 +63,10 @@ public class DaoSession extends AbstractDaoSession { ...@@ -63,10 +63,10 @@ public class DaoSession extends AbstractDaoSession {
private final FoodComboDao foodComboDao; private final FoodComboDao foodComboDao;
private final FoodModifierDao foodModifierDao; private final FoodModifierDao foodModifierDao;
private final FunctionDao functionDao; private final FunctionDao functionDao;
private final LanguageDao languageDao;
private final ModifierDao modifierDao; private final ModifierDao modifierDao;
private final PrinterDeviceBeanDao printerDeviceBeanDao; private final PrinterDeviceBeanDao printerDeviceBeanDao;
private final PrintModelBeanDao printModelBeanDao; private final PrintModelBeanDao printModelBeanDao;
private final LanguageDao languageDao;
private final PrintCurrencyBeanDao printCurrencyBeanDao; private final PrintCurrencyBeanDao printCurrencyBeanDao;
public DaoSession(Database db, IdentityScopeType type, Map<Class<? extends AbstractDao<?, ?>>, DaoConfig> public DaoSession(Database db, IdentityScopeType type, Map<Class<? extends AbstractDao<?, ?>>, DaoConfig>
...@@ -94,6 +94,9 @@ public class DaoSession extends AbstractDaoSession { ...@@ -94,6 +94,9 @@ public class DaoSession extends AbstractDaoSession {
functionDaoConfig = daoConfigMap.get(FunctionDao.class).clone(); functionDaoConfig = daoConfigMap.get(FunctionDao.class).clone();
functionDaoConfig.initIdentityScope(type); functionDaoConfig.initIdentityScope(type);
languageDaoConfig = daoConfigMap.get(LanguageDao.class).clone();
languageDaoConfig.initIdentityScope(type);
modifierDaoConfig = daoConfigMap.get(ModifierDao.class).clone(); modifierDaoConfig = daoConfigMap.get(ModifierDao.class).clone();
modifierDaoConfig.initIdentityScope(type); modifierDaoConfig.initIdentityScope(type);
...@@ -103,9 +106,6 @@ public class DaoSession extends AbstractDaoSession { ...@@ -103,9 +106,6 @@ public class DaoSession extends AbstractDaoSession {
printModelBeanDaoConfig = daoConfigMap.get(PrintModelBeanDao.class).clone(); printModelBeanDaoConfig = daoConfigMap.get(PrintModelBeanDao.class).clone();
printModelBeanDaoConfig.initIdentityScope(type); printModelBeanDaoConfig.initIdentityScope(type);
languageDaoConfig = daoConfigMap.get(LanguageDao.class).clone();
languageDaoConfig.initIdentityScope(type);
printCurrencyBeanDaoConfig = daoConfigMap.get(PrintCurrencyBeanDao.class).clone(); printCurrencyBeanDaoConfig = daoConfigMap.get(PrintCurrencyBeanDao.class).clone();
printCurrencyBeanDaoConfig.initIdentityScope(type); printCurrencyBeanDaoConfig.initIdentityScope(type);
...@@ -116,10 +116,10 @@ public class DaoSession extends AbstractDaoSession { ...@@ -116,10 +116,10 @@ public class DaoSession extends AbstractDaoSession {
foodComboDao = new FoodComboDao(foodComboDaoConfig, this); foodComboDao = new FoodComboDao(foodComboDaoConfig, this);
foodModifierDao = new FoodModifierDao(foodModifierDaoConfig, this); foodModifierDao = new FoodModifierDao(foodModifierDaoConfig, this);
functionDao = new FunctionDao(functionDaoConfig, this); functionDao = new FunctionDao(functionDaoConfig, this);
languageDao = new LanguageDao(languageDaoConfig, this);
modifierDao = new ModifierDao(modifierDaoConfig, this); modifierDao = new ModifierDao(modifierDaoConfig, this);
printerDeviceBeanDao = new PrinterDeviceBeanDao(printerDeviceBeanDaoConfig, this); printerDeviceBeanDao = new PrinterDeviceBeanDao(printerDeviceBeanDaoConfig, this);
printModelBeanDao = new PrintModelBeanDao(printModelBeanDaoConfig, this); printModelBeanDao = new PrintModelBeanDao(printModelBeanDaoConfig, this);
languageDao = new LanguageDao(languageDaoConfig, this);
printCurrencyBeanDao = new PrintCurrencyBeanDao(printCurrencyBeanDaoConfig, this); printCurrencyBeanDao = new PrintCurrencyBeanDao(printCurrencyBeanDaoConfig, this);
registerDao(ComboItem.class, comboItemDao); registerDao(ComboItem.class, comboItemDao);
...@@ -129,10 +129,10 @@ public class DaoSession extends AbstractDaoSession { ...@@ -129,10 +129,10 @@ public class DaoSession extends AbstractDaoSession {
registerDao(FoodCombo.class, foodComboDao); registerDao(FoodCombo.class, foodComboDao);
registerDao(FoodModifier.class, foodModifierDao); registerDao(FoodModifier.class, foodModifierDao);
registerDao(Function.class, functionDao); registerDao(Function.class, functionDao);
registerDao(Language.class, languageDao);
registerDao(Modifier.class, modifierDao); registerDao(Modifier.class, modifierDao);
registerDao(PrinterDeviceBean.class, printerDeviceBeanDao); registerDao(PrinterDeviceBean.class, printerDeviceBeanDao);
registerDao(PrintModelBean.class, printModelBeanDao); registerDao(PrintModelBean.class, printModelBeanDao);
registerDao(Language.class, languageDao);
registerDao(PrintCurrencyBean.class, printCurrencyBeanDao); registerDao(PrintCurrencyBean.class, printCurrencyBeanDao);
} }
...@@ -144,10 +144,10 @@ public class DaoSession extends AbstractDaoSession { ...@@ -144,10 +144,10 @@ public class DaoSession extends AbstractDaoSession {
foodComboDaoConfig.clearIdentityScope(); foodComboDaoConfig.clearIdentityScope();
foodModifierDaoConfig.clearIdentityScope(); foodModifierDaoConfig.clearIdentityScope();
functionDaoConfig.clearIdentityScope(); functionDaoConfig.clearIdentityScope();
languageDaoConfig.clearIdentityScope();
modifierDaoConfig.clearIdentityScope(); modifierDaoConfig.clearIdentityScope();
printerDeviceBeanDaoConfig.clearIdentityScope(); printerDeviceBeanDaoConfig.clearIdentityScope();
printModelBeanDaoConfig.clearIdentityScope(); printModelBeanDaoConfig.clearIdentityScope();
languageDaoConfig.clearIdentityScope();
printCurrencyBeanDaoConfig.clearIdentityScope(); printCurrencyBeanDaoConfig.clearIdentityScope();
} }
...@@ -179,6 +179,10 @@ public class DaoSession extends AbstractDaoSession { ...@@ -179,6 +179,10 @@ public class DaoSession extends AbstractDaoSession {
return functionDao; return functionDao;
} }
public LanguageDao getLanguageDao() {
return languageDao;
}
public ModifierDao getModifierDao() { public ModifierDao getModifierDao() {
return modifierDao; return modifierDao;
} }
...@@ -191,10 +195,6 @@ public class DaoSession extends AbstractDaoSession { ...@@ -191,10 +195,6 @@ public class DaoSession extends AbstractDaoSession {
return printModelBeanDao; return printModelBeanDao;
} }
public LanguageDao getLanguageDao() {
return languageDao;
}
public PrintCurrencyBeanDao getPrintCurrencyBeanDao() { public PrintCurrencyBeanDao getPrintCurrencyBeanDao() {
return printCurrencyBeanDao; return printCurrencyBeanDao;
} }
......
...@@ -400,7 +400,7 @@ public class ModifierDaoUtils { ...@@ -400,7 +400,7 @@ public class ModifierDaoUtils {
order.setInvisible(c.getLong(c.getColumnIndex("INVISIBLE"))); order.setInvisible(c.getLong(c.getColumnIndex("INVISIBLE")));
if (fid != 0) { if (fid != 0) {
//非公共細項 //非公共細項
order.setMaxNumber(String.valueOf(c.getInt(c.getColumnIndex("MAX_QTY")))); order.setSelectQty(c.getInt(c.getColumnIndex("MAX_QTY")));
String defmodifier = c.getString(c.getColumnIndex("DEFMODIFIER")); String defmodifier = c.getString(c.getColumnIndex("DEFMODIFIER"));
if (!TextUtils.isEmpty(defmodifier) && !", ".equals(defmodifier)) { if (!TextUtils.isEmpty(defmodifier) && !", ".equals(defmodifier)) {
order.setDefmodifier(defmodifier); order.setDefmodifier(defmodifier);
......
...@@ -59,6 +59,7 @@ public class MyResponseErrorListener implements ResponseErrorListener { ...@@ -59,6 +59,7 @@ public class MyResponseErrorListener implements ResponseErrorListener {
ToastUtils.show(context, msg); ToastUtils.show(context, msg);
} }
} }
private String convertStatusCode(Context context, HttpException httpException) { private String convertStatusCode(Context context, HttpException httpException) {
String msg = null; String msg = null;
if (httpException.code() == 500) { if (httpException.code() == 500) {
......
...@@ -7,7 +7,7 @@ import android.widget.TextView; ...@@ -7,7 +7,7 @@ import android.widget.TextView;
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;
import com.gingersoft.gsa.cloud.ui.bean.view.SectionHeader; import com.gingersoft.gsa.cloud.ui.bean.view.SectionHeader;
import com.gingersoft.gsa.cloud.ui.bean.view.SectionTextItem; import com.gingersoft.gsa.cloud.ui.bean.view.SectionRestaurantItem;
import com.gingersoft.gsa.cloud.ui.view.section.BaseTextSection; import com.gingersoft.gsa.cloud.ui.view.section.BaseTextSection;
import com.gingersoft.gsa.cloud.ui.view.section.QDSectionHeaderView; import com.gingersoft.gsa.cloud.ui.view.section.QDSectionHeaderView;
import com.qmuiteam.qmui.widget.section.QMUIDefaultStickySectionAdapter; import com.qmuiteam.qmui.widget.section.QMUIDefaultStickySectionAdapter;
...@@ -25,7 +25,7 @@ import butterknife.ButterKnife; ...@@ -25,7 +25,7 @@ import butterknife.ButterKnife;
* 修订历史:2020-02-09 * 修订历史:2020-02-09
* 描述: * 描述:
*/ */
public class BasTextSectiontAdapter extends QMUIDefaultStickySectionAdapter<SectionHeader, SectionTextItem> { public class BasTextSectiontAdapter extends QMUIDefaultStickySectionAdapter<SectionHeader, SectionRestaurantItem> {
@NonNull @NonNull
@Override @Override
...@@ -40,7 +40,7 @@ public class BasTextSectiontAdapter extends QMUIDefaultStickySectionAdapter<Sect ...@@ -40,7 +40,7 @@ public class BasTextSectiontAdapter extends QMUIDefaultStickySectionAdapter<Sect
} }
@Override @Override
protected void onBindSectionHeader(QMUIStickySectionAdapter.ViewHolder holder, int position, QMUISection<SectionHeader, SectionTextItem> section) { protected void onBindSectionHeader(QMUIStickySectionAdapter.ViewHolder holder, int position, QMUISection<SectionHeader, SectionRestaurantItem> section) {
super.onBindSectionHeader(holder, position, section); super.onBindSectionHeader(holder, position, section);
QDSectionHeaderView itemView = (QDSectionHeaderView) holder.itemView; QDSectionHeaderView itemView = (QDSectionHeaderView) holder.itemView;
itemView.render(section.getHeader(), section.isFold()); itemView.render(section.getHeader(), section.isFold());
...@@ -54,10 +54,10 @@ public class BasTextSectiontAdapter extends QMUIDefaultStickySectionAdapter<Sect ...@@ -54,10 +54,10 @@ public class BasTextSectiontAdapter extends QMUIDefaultStickySectionAdapter<Sect
} }
@Override @Override
protected void onBindSectionItem(QMUIStickySectionAdapter.ViewHolder holder, int position, QMUISection<SectionHeader, SectionTextItem> section, int itemIndex) { protected void onBindSectionItem(QMUIStickySectionAdapter.ViewHolder holder, int position, QMUISection<SectionHeader, SectionRestaurantItem> section, int itemIndex) {
super.onBindSectionItem(holder, position, section, itemIndex); super.onBindSectionItem(holder, position, section, itemIndex);
ViewHolder viewHolder = (ViewHolder) holder; ViewHolder viewHolder = (ViewHolder) holder;
viewHolder.tv_name.setText(section.getItemAt(itemIndex).getText()); viewHolder.tv_name.setText(section.getItemAt(itemIndex).getRestaurantsBean().getRestaurantName());
} }
public class ViewHolder extends QMUIStickySectionAdapter.ViewHolder { public class ViewHolder extends QMUIStickySectionAdapter.ViewHolder {
...@@ -73,8 +73,8 @@ public class BasTextSectiontAdapter extends QMUIDefaultStickySectionAdapter<Sect ...@@ -73,8 +73,8 @@ public class BasTextSectiontAdapter extends QMUIDefaultStickySectionAdapter<Sect
return tv_name; return tv_name;
} }
public SectionTextItem getSectionTextItem(int position) { public SectionRestaurantItem getSectionRestaurantItem(int position) {
SectionTextItem item = getSectionItem(position); SectionRestaurantItem item = getSectionItem(position);
return item; return item;
} }
} }
......
package com.gingersoft.gsa.cloud.ui.adapter; package com.gingersoft.gsa.cloud.ui.adapter;
import android.text.TextUtils;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseQuickAdapter;
...@@ -22,7 +24,12 @@ public class BillMethodAdapter extends BaseQuickAdapter<PayMethod, BaseViewHolde ...@@ -22,7 +24,12 @@ public class BillMethodAdapter extends BaseQuickAdapter<PayMethod, BaseViewHolde
@Override @Override
protected void convert(BaseViewHolder helper, PayMethod item) { protected void convert(BaseViewHolder helper, PayMethod item) {
QMUIAlphaTextView tv_bill_method_name = helper.getView(R.id.tv_bill_method_name); QMUIAlphaTextView tv_bill_method_name = helper.getView(R.id.tv_bill_method_name);
if (TextUtils.isEmpty(item.getPayName())) {
tv_bill_method_name.setText(" ");
} else {
tv_bill_method_name.setText(item.getPayName()); tv_bill_method_name.setText(item.getPayName());
}
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(item.getPayModeTextColor());
} }
......
...@@ -47,6 +47,7 @@ public class BrandsBean { ...@@ -47,6 +47,7 @@ public class BrandsBean {
private int restaurantId; private int restaurantId;
private String restaurantName; private String restaurantName;
private String gsPosShopId;
public int getRestaurantId() { public int getRestaurantId() {
return restaurantId; return restaurantId;
...@@ -64,11 +65,20 @@ public class BrandsBean { ...@@ -64,11 +65,20 @@ public class BrandsBean {
this.restaurantName = restaurantName; this.restaurantName = restaurantName;
} }
public String getGsPosShopId() {
return gsPosShopId;
}
public void setGsPosShopId(String gsPosShopId) {
this.gsPosShopId = gsPosShopId;
}
@Override @Override
public String toString() { public String toString() {
return "RestaurantsBean{" + return "RestaurantsBean{" +
"restaurantId=" + restaurantId + "restaurantId=" + restaurantId +
", restaurantName='" + restaurantName + '\'' + ", restaurantName='" + restaurantName + '\'' +
", gsPosShopId='" + gsPosShopId + '\'' +
'}'; '}';
} }
} }
......
package com.gingersoft.gsa.cloud.ui.bean.view;
import com.gingersoft.gsa.cloud.ui.bean.mode.BrandsBean;
import com.qmuiteam.qmui.widget.section.QMUISection.Model;
import java.util.Objects;
/**
* 單個文字
*/
public class SectionRestaurantItem implements Model<SectionRestaurantItem> {
public BrandsBean.BrandsData.RestaurantsBean restaurantsBean;
public SectionRestaurantItem(BrandsBean.BrandsData.RestaurantsBean restaurantsBean) {
this.restaurantsBean = restaurantsBean;
}
public BrandsBean.BrandsData.RestaurantsBean getRestaurantsBean() {
return restaurantsBean;
}
@Override
public SectionRestaurantItem cloneForDiff() {
return new SectionRestaurantItem(restaurantsBean);
}
@Override
public boolean isSameItem(SectionRestaurantItem other) {
return Objects.equals(restaurantsBean, other.restaurantsBean);
}
@Override
public boolean isSameContent(SectionRestaurantItem other) {
return true;
}
}
package com.gingersoft.gsa.cloud.ui.view;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.util.TypedValue;
import android.view.View;
import com.gingersoft.gsa.cloud.base.R;
import androidx.annotation.Nullable;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-07-18
* 修订历史:2020-07-18
* 描述:
*/
public class BeveLabelView extends View {
private final static int MODE_LEFT_TOP = 0;
private final static int MODE_RIGHT_TOP = 1;
private final static int MODE_LEFT_BOTTOM = 2;
private final static int MODE_RIGHT_BOTTOM = 3;
private final static int MODE_LEFT_TOP_FILL = 4;
private final static int MODE_RIGHT_TOP_FILL = 5;
private final static int MODE_LEFT_BOTTOM_FILL = 6;
private final static int MODE_RIGHT_BOTTOM_FILL = 7;
private int mBgColor;//背景颜色
private String mText;//显示文字
private int mTextSize;//文字大小
private int mTextColor;//文字颜色
private int mLength;//标题长度
private int mCorner;//圆角
private int mMode;//显示模式
private Paint mPaint;
private Path path;
private int mWidth, mHeight;
private int mRotate = 45;//因为默认模式是1,所以这时是45度
private int mX, mY;
public BeveLabelView(Context context) {
super(context);
}
public BeveLabelView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.BeveLabelView);
mBgColor = array.getColor(R.styleable.BeveLabelView_label_bg_color, Color.RED);//默认红色
mText = array.getString(R.styleable.BeveLabelView_label_text);
mTextSize = array.getDimensionPixelOffset(R.styleable.BeveLabelView_label_text_size, sp2px(11));
mTextColor = array.getColor(R.styleable.BeveLabelView_label_text_color, Color.WHITE);
mLength = array.getDimensionPixelOffset(R.styleable.BeveLabelView_label_length, dip2px(40));
mCorner = array.getDimensionPixelOffset(R.styleable.BeveLabelView_label_corner, 0);
mMode = array.getInt(R.styleable.BeveLabelView_label_mode, 1);
mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mPaint.setAntiAlias(true);
path = new Path();
if (TextUtils.isEmpty(mText)) {
mText = "Label";
}
}
public BeveLabelView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public void setLableText(String text) {
this.mText = text;
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
mHeight = mWidth = MeasureSpec.getSize(widthMeasureSpec);
}
@Override
protected void onDraw(Canvas canvas) {
// super.onDraw (canvas);
mPaint.setColor(mBgColor);
drawBackgroundText(canvas);
}
private void drawBackgroundText(Canvas canvas) {
if (mWidth != mHeight) {
throw new IllegalStateException("width must equal to height");//标签view 是一个正方形,
}
switch (mMode) {
case MODE_LEFT_TOP:
mCorner = 0;//没有铺满的时候mCorner要归零;
leftTopMeasure();
getLeftTop();
break;
case MODE_RIGHT_TOP:
mCorner = 0;
rightTopMeasure();
getRightTop();
break;
case MODE_LEFT_BOTTOM:
mCorner = 0;
leftBottomMeasure();
getLeftBottom();
break;
case MODE_RIGHT_BOTTOM:
mCorner = 0;
rightBottomMeasure();
getRightBottom();
break;
case MODE_LEFT_TOP_FILL:
leftTopMeasure();
getLeftTopFill();
if (mCorner != 0) {
canvas.drawPath(path, mPaint);
getLeftTop();
}
break;
case MODE_RIGHT_TOP_FILL:
rightTopMeasure();
getRightTopFill();
if (mCorner != 0) {
canvas.drawPath(path, mPaint);
getRightTop();
}
break;
case MODE_LEFT_BOTTOM_FILL:
leftBottomMeasure();
getLeftBottomFill();
if (mCorner != 0) {
canvas.drawPath(path, mPaint);
getLeftBottom();
}
break;
case MODE_RIGHT_BOTTOM_FILL:
rightBottomMeasure();
getRightBottomFill();
if (mCorner != 0) {
canvas.drawPath(path, mPaint);
getRightBottom();
}
break;
default:
}
canvas.drawPath(path, mPaint);
mPaint.setTextSize(mTextSize);
mPaint.setTextAlign(Paint.Align.CENTER);
mPaint.setColor(mTextColor);
canvas.translate(mX, mY);
canvas.rotate(mRotate);
int baseLineY = -(int) (mPaint.descent() + mPaint.ascent()) / 2;//基线中间点的y轴计算公式
canvas.drawText(mText, 0, baseLineY, mPaint);
}
private void rightBottomMeasure() {
mRotate = -45;
mY = mX = mWidth / 2 + mLength / 4;
}
private void leftBottomMeasure() {
mRotate = 45;
mX = mWidth / 2 - mLength / 4;
mY = mHeight / 2 + mLength / 4;
}
private void rightTopMeasure() {
mRotate = 45;
mX = mWidth / 2 + mLength / 4;
mY = mHeight / 2 - mLength / 4;
}
private void leftTopMeasure() {
mRotate = -45;
mY = mX = mWidth / 2 - mLength / 4;
}
//左上角铺满
private void getLeftTopFill() {
if (mCorner != 0) {
path.addRoundRect(0, 0, mWidth / 2, mHeight / 2, new float[]{mCorner, mCorner, 0, 0, 0, 0, 0, 0}, Path.Direction.CW);
} else {
path.moveTo(0, 0);
path.lineTo(mWidth, 0);
path.lineTo(0, mHeight);
path.close();
}
}
//左上角不铺满
private void getLeftTop() {
path.moveTo(mCorner != 0 ? mCorner : mWidth - mLength, 0);
path.lineTo(mWidth, 0);
path.lineTo(0, mHeight);
path.lineTo(0, mCorner != 0 ? mCorner : mHeight - mLength);
path.close();
}
//左下角铺满
private void getLeftBottomFill() {
if (mCorner != 0) {
path.addRoundRect(0, mHeight / 2, mWidth / 2, mHeight, new float[]{0, 0, 0, 0, 0, 0, mCorner, mCorner}, Path.Direction.CW);
} else {
path.moveTo(0, 0);
path.lineTo(mWidth, mHeight);
path.lineTo(0, mHeight);
path.close();
}
}
//左下角不铺满
private void getLeftBottom() {
path.moveTo(0, 0);
path.lineTo(mWidth, mHeight);
path.lineTo(mCorner != 0 ? mCorner : mWidth - mLength, mHeight);
path.lineTo(0, mCorner != 0 ? mHeight - mCorner : mLength);
path.close();
}
//右上角铺满
private void getRightTopFill() {
if (mCorner != 0) {
path.addRoundRect(mWidth / 2, 0, mWidth, mHeight / 2, new float[]{0, 0, mCorner, mCorner, 0, 0, 0, 0}, Path.Direction.CW);
} else {
path.moveTo(0, 0);
path.lineTo(mWidth, 0);
path.lineTo(mWidth, mHeight);
path.close();
}
}
//右上角不铺满
private void getRightTop() {
path.moveTo(0, 0);
path.lineTo(mCorner != 0 ? mWidth - mCorner : mLength, 0);
path.lineTo(mWidth, mCorner != 0 ? mCorner : mHeight - mLength);
path.lineTo(mWidth, mHeight);
path.close();
}
//右下角铺满
private void getRightBottomFill() {
if (mCorner != 0) {
path.addRoundRect(mWidth / 2, mHeight / 2, mWidth, mHeight, new float[]{0, 0, 0, 0, mCorner, mCorner, 0, 0}, Path.Direction.CW);
} else {
path.moveTo(mWidth, 0);
path.lineTo(mWidth, mHeight);
path.lineTo(0, mHeight);
path.close();
}
}
//右下角不铺满
private void getRightBottom() {
path.moveTo(mWidth, 0);
path.lineTo(mWidth, mCorner != 0 ? mHeight - mCorner : mLength);
path.lineTo(mCorner != 0 ? mWidth - mCorner : mLength, mHeight);
path.lineTo(0, mHeight);
path.close();
}
/**
* @param sp 转换大小
*/
private int sp2px(int sp) {
return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, sp, getResources().getDisplayMetrics());
}
/**
* @param dip 转换大小
*/
private int dip2px(int dip) {
return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dip, getResources().getDisplayMetrics());
}
}
...@@ -26,6 +26,7 @@ import com.gingersoft.gsa.cloud.base.R; ...@@ -26,6 +26,7 @@ import com.gingersoft.gsa.cloud.base.R;
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;
import com.gingersoft.gsa.cloud.ui.bean.view.SectionRestaurantItem;
import com.gingersoft.gsa.cloud.ui.bean.view.SectionTextItem; import com.gingersoft.gsa.cloud.ui.bean.view.SectionTextItem;
import com.jess.arms.utils.AndroidWorkaround; import com.jess.arms.utils.AndroidWorkaround;
import com.qmuiteam.qmui.QMUILog; import com.qmuiteam.qmui.QMUILog;
...@@ -210,7 +211,7 @@ public class ChooseRestaurantDialog extends Dialog { ...@@ -210,7 +211,7 @@ public class ChooseRestaurantDialog extends Dialog {
private Context mContext; private Context mContext;
private ChooseRestaurantDialog mDialog; private ChooseRestaurantDialog mDialog;
private List<BrandsBean.BrandsData> mItems; private List<BrandsBean.BrandsData> mItems;
private List<QMUISection<SectionHeader, SectionTextItem>> mQmuiSections; private List<QMUISection<SectionHeader, SectionRestaurantItem>> mQmuiSections;
private BasTextSectiontAdapter mAdapter; private BasTextSectiontAdapter mAdapter;
private QMUITopBar mTopBar; private QMUITopBar mTopBar;
...@@ -282,10 +283,10 @@ public class ChooseRestaurantDialog extends Dialog { ...@@ -282,10 +283,10 @@ public class ChooseRestaurantDialog extends Dialog {
mLayoutManager = createLayoutManager(); mLayoutManager = createLayoutManager();
mSectionLayout.setLayoutManager(mLayoutManager); mSectionLayout.setLayoutManager(mLayoutManager);
mAdapter = new BasTextSectiontAdapter(); mAdapter = new BasTextSectiontAdapter();
mAdapter.setCallback(new QMUIStickySectionAdapter.Callback<SectionHeader, SectionTextItem>() { mAdapter.setCallback(new QMUIStickySectionAdapter.Callback<SectionHeader, SectionRestaurantItem>() {
@Override @Override
public void loadMore(QMUISection<SectionHeader, SectionTextItem> section, boolean loadMoreBefore) { public void loadMore(QMUISection<SectionHeader, SectionRestaurantItem> section, boolean loadMoreBefore) {
} }
...@@ -294,7 +295,7 @@ public class ChooseRestaurantDialog extends Dialog { ...@@ -294,7 +295,7 @@ public class ChooseRestaurantDialog extends Dialog {
if (holder instanceof BasTextSectiontAdapter.ViewHolder) { if (holder instanceof BasTextSectiontAdapter.ViewHolder) {
BasTextSectiontAdapter.ViewHolder viewHolder = (BasTextSectiontAdapter.ViewHolder) holder; BasTextSectiontAdapter.ViewHolder viewHolder = (BasTextSectiontAdapter.ViewHolder) holder;
if (viewHolder.getTvName().getText() != null) { if (viewHolder.getTvName().getText() != null) {
SectionTextItem item = viewHolder.getSectionTextItem(position); SectionRestaurantItem item = viewHolder.getSectionRestaurantItem(position);
if (mOnItemClickListener != null) { if (mOnItemClickListener != null) {
mOnItemClickListener.onItemClick(mDialog, item, position); mOnItemClickListener.onItemClick(mDialog, item, position);
} }
...@@ -316,8 +317,8 @@ public class ChooseRestaurantDialog extends Dialog { ...@@ -316,8 +317,8 @@ public class ChooseRestaurantDialog extends Dialog {
mAdapter.setData(mQmuiSections); mAdapter.setData(mQmuiSections);
} }
private List<QMUISection<SectionHeader, SectionTextItem>> restaurantsTransformToSection(List<BrandsBean.BrandsData> mItems) { private List<QMUISection<SectionHeader, SectionRestaurantItem>> restaurantsTransformToSection(List<BrandsBean.BrandsData> mItems) {
List<QMUISection<SectionHeader, SectionTextItem>> qmuiSections = new ArrayList<>(); List<QMUISection<SectionHeader, SectionRestaurantItem>> qmuiSections = new ArrayList<>();
for (int i = 0; i < mItems.size(); i++) { for (int i = 0; i < mItems.size(); i++) {
BrandsBean.BrandsData brandsBean = mItems.get(i); BrandsBean.BrandsData brandsBean = mItems.get(i);
qmuiSections.add(createSection(brandsBean)); qmuiSections.add(createSection(brandsBean));
...@@ -325,11 +326,11 @@ public class ChooseRestaurantDialog extends Dialog { ...@@ -325,11 +326,11 @@ public class ChooseRestaurantDialog extends Dialog {
return qmuiSections; return qmuiSections;
} }
private QMUISection<SectionHeader, SectionTextItem> createSection(BrandsBean.BrandsData brandsBean) { private QMUISection<SectionHeader, SectionRestaurantItem> createSection(BrandsBean.BrandsData brandsBean) {
SectionHeader header = new SectionHeader(brandsBean.getBrandName()); SectionHeader header = new SectionHeader(brandsBean.getBrandName());
ArrayList<SectionTextItem> contents = new ArrayList<>(); ArrayList<SectionRestaurantItem> contents = new ArrayList<>();
for (int i = 0; i < Objects.requireNonNull(brandsBean.getRestaurants().size()); i++) { for (int i = 0; i < Objects.requireNonNull(brandsBean.getRestaurants().size()); i++) {
contents.add(new SectionTextItem(brandsBean.getRestaurants().get(i).getRestaurantId(), Objects.requireNonNull(brandsBean.getRestaurants().get(i).getRestaurantName()))); contents.add(new SectionRestaurantItem(Objects.requireNonNull(brandsBean.getRestaurants().get(i))));
} }
return new QMUISection<>(header, contents, false); return new QMUISection<>(header, contents, false);
} }
...@@ -363,7 +364,7 @@ public class ChooseRestaurantDialog extends Dialog { ...@@ -363,7 +364,7 @@ public class ChooseRestaurantDialog extends Dialog {
public interface OnItemClickListener { public interface OnItemClickListener {
void onItemClick(ChooseRestaurantDialog dialog, SectionTextItem item, int position); void onItemClick(ChooseRestaurantDialog dialog, SectionRestaurantItem item, int position);
} }
} }
......
...@@ -8,6 +8,34 @@ ...@@ -8,6 +8,34 @@
<attr name="labelSrc" format="reference" /> <attr name="labelSrc" format="reference" />
</declare-styleable> </declare-styleable>
<!--斜角标签-->
<declare-styleable name="BeveLabelView">
<!--背景颜色-->
<attr name="label_bg_color" format="color|reference"/>
<!--文字-->
<attr name="label_text" format="string"/>
<!-- 文字颜色-->
<attr name="label_text_color" format="color|reference"/>
<!--文字大小-->
<attr name="label_text_size" format="dimension"/>
<attr name="label_length" format="dimension"/>
<!-- 圆角-->
<attr name="label_corner" format="dimension"/>
<attr name="label_mode">
<!-- fill是沾满整个,-->
<enum name="left_top" value="0"/>
<enum name="right_top" value="1"/>
<enum name="left_bottom" value="2"/>
<enum name="right_bottom" value="3"/>
<enum name="left_top_fill" value="4"/>
<enum name="right_top_fill" value="5"/>
<enum name="left_bottom_fill" value="6"/>
<enum name="right_bottom_fill" value="7"/>
</attr>
</declare-styleable>
<declare-styleable name="TriangleLabelView"> <declare-styleable name="TriangleLabelView">
<attr name="backgroundColor" format="color" /> <attr name="backgroundColor" format="color" />
......
...@@ -6,9 +6,9 @@ ext { ...@@ -6,9 +6,9 @@ ext {
minSdkVersion : 19, //N5收銀機應用安卓開發環境要求Android OS Version: 5.1Android SDK Min Version: 19 minSdkVersion : 19, //N5收銀機應用安卓開發環境要求Android OS Version: 5.1Android SDK Min Version: 19
targetSdkVersion : 28, targetSdkVersion : 28,
//正式版: 1.0.3 3 //正式版: 1.0.3 3
//內部測試版:1.1.3 13 //內部測試版:1.1.7 17
versionCode : 13, versionCode : 17,
versionName : "1.1.3" versionName : "1.1.7"
] ]
version = [ version = [
......
...@@ -9,6 +9,7 @@ import com.gingersoft.gsa.cloud.constans.UserConstans; ...@@ -9,6 +9,7 @@ import com.gingersoft.gsa.cloud.constans.UserConstans;
import com.gingersoft.gsa.cloud.base.utils.other.SPUtils; import com.gingersoft.gsa.cloud.base.utils.other.SPUtils;
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.mode.LoginBean; import com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean;
import com.gingersoft.gsa.cloud.ui.bean.view.SectionRestaurantItem;
import com.gingersoft.gsa.cloud.ui.bean.view.SectionTextItem; import com.gingersoft.gsa.cloud.ui.bean.view.SectionTextItem;
import com.gingersoft.gsa.cloud.ui.widget.dialog.ChooseRestaurantDialog; import com.gingersoft.gsa.cloud.ui.widget.dialog.ChooseRestaurantDialog;
import com.gingersoft.gsa.cloud.login.mvp.presenter.BaseLoginPresenter; import com.gingersoft.gsa.cloud.login.mvp.presenter.BaseLoginPresenter;
...@@ -49,7 +50,7 @@ public abstract class LoginInterfaceImpl<P extends BaseLoginPresenter> extends B ...@@ -49,7 +50,7 @@ public abstract class LoginInterfaceImpl<P extends BaseLoginPresenter> extends B
BrandsBean.BrandsData brandsBean = getOnlyBrand(brands); BrandsBean.BrandsData brandsBean = getOnlyBrand(brands);
BrandsBean.BrandsData.RestaurantsBean restaurantsBean = getOnlyRestaurant(brands); BrandsBean.BrandsData.RestaurantsBean restaurantsBean = getOnlyRestaurant(brands);
if (brandsBean != null) { if (brandsBean != null) {
saveBrandAndRestaurantInfo(brandsBean.getBrandId(), brandsBean.getBrandName(), restaurantsBean.getRestaurantId(), restaurantsBean.getRestaurantName()); saveBrandAndRestaurantInfo(brandsBean.getBrandId(), brandsBean.getBrandName(), restaurantsBean);
} }
jumpDownloadActivity(); jumpDownloadActivity();
} else { } else {
...@@ -75,20 +76,21 @@ public abstract class LoginInterfaceImpl<P extends BaseLoginPresenter> extends B ...@@ -75,20 +76,21 @@ public abstract class LoginInterfaceImpl<P extends BaseLoginPresenter> extends B
} }
} }
protected void ChooseRestaurantItemClick(List<BrandsBean.BrandsData> brands, ChooseRestaurantDialog dialog, SectionTextItem item) { protected void ChooseRestaurantItemClick(List<BrandsBean.BrandsData> brands, ChooseRestaurantDialog dialog, BrandsBean.BrandsData.RestaurantsBean item) {
BrandsBean.BrandsData brandsBean = getBrandByRestaurantId(brands, item.getId()); BrandsBean.BrandsData brandsBean = getBrandByRestaurantId(brands, item.getRestaurantId());
if (brandsBean != null) { if (brandsBean != null) {
saveBrandAndRestaurantInfo(brandsBean.getBrandId(), brandsBean.getBrandName(), item.getId(), item.getText()); saveBrandAndRestaurantInfo(brandsBean.getBrandId(), brandsBean.getBrandName(), item);
} }
dialog.dismiss(); dialog.dismiss();
jumpDownloadActivity(); jumpDownloadActivity();
} }
protected void saveBrandAndRestaurantInfo(int brandId, String brandName, int restaurantId, String restaurantName) { protected void saveBrandAndRestaurantInfo(int brandId, String brandName, BrandsBean.BrandsData.RestaurantsBean restaurantsBean) {
GsaCloudApplication.setBrandId(mContext, brandId); GsaCloudApplication.setBrandId(mContext, brandId);
GsaCloudApplication.setBrandName(mContext, brandName); GsaCloudApplication.setBrandName(mContext, brandName);
GsaCloudApplication.setRestaurantId(mContext, restaurantId); GsaCloudApplication.setRestaurantId(mContext, restaurantsBean.getRestaurantId());
GsaCloudApplication.setRestaurantName(mContext, restaurantName); GsaCloudApplication.setRestaurantName(mContext, restaurantsBean.getRestaurantName());
GsaCloudApplication.setGsPosShopId(mContext, restaurantsBean.getGsPosShopId());
} }
private int getRestaurantSize(List<BrandsBean.BrandsData> brands) { private int getRestaurantSize(List<BrandsBean.BrandsData> brands) {
......
...@@ -317,7 +317,7 @@ public class LoginActivity extends LoginInterfaceImpl<LoginPresenter> implements ...@@ -317,7 +317,7 @@ public class LoginActivity extends LoginInterfaceImpl<LoginPresenter> implements
public void showChooseRestaurantDialog(List<BrandsBean.BrandsData> brandsBeans, List<BrandsBean.BrandsData> brands) { public void showChooseRestaurantDialog(List<BrandsBean.BrandsData> brandsBeans, List<BrandsBean.BrandsData> brands) {
new ChooseRestaurantDialog.BottomListSheetBuilder(mContext) new ChooseRestaurantDialog.BottomListSheetBuilder(mContext)
.addBrandItems(brandsBeans) .addBrandItems(brandsBeans)
.setOnItemClickListener((dialog, item, position) -> ChooseRestaurantItemClick(brands, dialog, item)) .setOnItemClickListener((dialog, item, position) -> ChooseRestaurantItemClick(brands, dialog, item.getRestaurantsBean()))
.build() .build()
.show(); .show();
} }
......
...@@ -275,7 +275,7 @@ public class WelcomeActivity extends LoginInterfaceImpl<WelcomePresenter> implem ...@@ -275,7 +275,7 @@ public class WelcomeActivity extends LoginInterfaceImpl<WelcomePresenter> implem
.addBrandItems(brandsBeans) .addBrandItems(brandsBeans)
.setOnItemClickListener((dialog, item, position) -> { .setOnItemClickListener((dialog, item, position) -> {
isChooseRestaurant = true; isChooseRestaurant = true;
ChooseRestaurantItemClick(brands, dialog, item); ChooseRestaurantItemClick(brands, dialog, item.getRestaurantsBean());
}) })
.setOnDismissListener(dialog -> { .setOnDismissListener(dialog -> {
if (!isChooseRestaurant) { if (!isChooseRestaurant) {
......
...@@ -46,7 +46,7 @@ android { ...@@ -46,7 +46,7 @@ android {
} }
dependencies { dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs') // implementation fileTree(include: ['*.jar'], dir: 'libs')
api project(':updateApk') api project(':updateApk')
...@@ -61,7 +61,7 @@ dependencies { ...@@ -61,7 +61,7 @@ dependencies {
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0' implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
implementation 'cn.bingoogolapple:bga-progressbar:1.0.1'//进度条 implementation 'cn.bingoogolapple:bga-progressbar:1.0.1'//进度条
implementation files('libs/nineoldandroids-2.4.0.jar') // implementation files('libs/nineoldandroids-2.4.0.jar')
implementation "androidx.core:core-ktx:+" implementation "androidx.core:core-ktx:+"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
......
...@@ -366,11 +366,13 @@ public class SettlementReport { ...@@ -366,11 +366,13 @@ public class SettlementReport {
* payName : 現金 * payName : 現金
* payNum : 2 * payNum : 2
* payAmount : 256 * payAmount : 256
* payType : 1001
*/ */
private String payName; private String payName;
private int payNum; private int payNum;
private double payAmount; private double payAmount;
private int payType;
public String getPayName() { public String getPayName() {
return payName; return payName;
...@@ -395,6 +397,14 @@ public class SettlementReport { ...@@ -395,6 +397,14 @@ public class SettlementReport {
public void setPayAmount(double payAmount) { public void setPayAmount(double payAmount) {
this.payAmount = payAmount; this.payAmount = payAmount;
} }
public int getPayType() {
return payType;
}
public void setPayType(int payType) {
this.payType = payType;
}
} }
} }
} }
...@@ -388,14 +388,16 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl ...@@ -388,14 +388,16 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl
.build() .build()
.call(); .call();
BrandsBean.BrandsData brandsBean = RestaurantInfoUtils.getBrandByRestaurantId(brandsBeans, item.getId()); BrandsBean.BrandsData.RestaurantsBean restaurantsBean = item.getRestaurantsBean();
BrandsBean.BrandsData brandsBean = RestaurantInfoUtils.getBrandByRestaurantId(brandsBeans, restaurantsBean.getRestaurantId());
if (brandsBean != null) { if (brandsBean != null) {
saveBrandAndRestaurantInfo(brandsBean.getBrandId(), brandsBean.getBrandName(), item.getId(), item.getText()); saveBrandAndRestaurantInfo(brandsBean.getBrandId(), brandsBean.getBrandName(), restaurantsBean.getRestaurantId(), restaurantsBean.getRestaurantName());
} }
GsaCloudApplication.setRestaurantId(NewMainActivity.this, item.getId()); GsaCloudApplication.setRestaurantId(NewMainActivity.this, restaurantsBean.getRestaurantId());
GsaCloudApplication.setRestaurantName(NewMainActivity.this, item.getText()); GsaCloudApplication.setRestaurantName(NewMainActivity.this, restaurantsBean.getRestaurantName());
updateTitleInfo(); updateTitleInfo();
......
...@@ -29,6 +29,7 @@ import androidx.recyclerview.widget.RecyclerView; ...@@ -29,6 +29,7 @@ import androidx.recyclerview.widget.RecyclerView;
import com.billy.cc.core.component.CC; import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.PayMethod;
import com.gingersoft.gsa.cloud.base.utils.JsonUtils; import com.gingersoft.gsa.cloud.base.utils.JsonUtils;
import com.gingersoft.gsa.cloud.base.utils.LanguageUtils; import com.gingersoft.gsa.cloud.base.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil; import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
...@@ -376,7 +377,9 @@ public class SettlementReportActivity extends BaseActivity<SettlementReportPrese ...@@ -376,7 +377,9 @@ public class SettlementReportActivity extends BaseActivity<SettlementReportPrese
List<SettlementReport.DataBean.CashBean> cashList = datasBean.getCash(); List<SettlementReport.DataBean.CashBean> cashList = datasBean.getCash();
if (cashList != null && cashList.size() > 0) { if (cashList != null && cashList.size() > 0) {
SettlementReport.DataBean.CashBean cashBean = cashList.get(0); for (int i = 0; i < cashList.size(); i++) {
SettlementReport.DataBean.CashBean cashBean = cashList.get(i);
if(cashBean.getPayType() == PayMethod.PAY_TYPE_CASH){
/**現金詳情*/ /**現金詳情*/
String cashDetailText = LanguageUtils.get_language_system(this, "credit.cash.detail", "現金詳情"); String cashDetailText = LanguageUtils.get_language_system(this, "credit.cash.detail", "現金詳情");
String cashText = LanguageUtils.get_language_system(this, "credit.cash", "現金"); String cashText = LanguageUtils.get_language_system(this, "credit.cash", "現金");
...@@ -385,6 +388,9 @@ public class SettlementReportActivity extends BaseActivity<SettlementReportPrese ...@@ -385,6 +388,9 @@ public class SettlementReportActivity extends BaseActivity<SettlementReportPrese
settlementReportItem5s.add(new SectionTextItem5(cashText, null, String.valueOf(cashBean.getPayNum()), null, cashStr + df.format(cashBean.getPayAmount()))); settlementReportItem5s.add(new SectionTextItem5(cashText, null, String.valueOf(cashBean.getPayNum()), null, cashStr + df.format(cashBean.getPayAmount())));
//統計 //統計
settlementReportItem5s.add(new SectionTextItem5(headcountOrAverageConsumptionText, null, null, null, cashStr + df.format(cashBean.getPayAmount()))); settlementReportItem5s.add(new SectionTextItem5(headcountOrAverageConsumptionText, null, null, null, cashStr + df.format(cashBean.getPayAmount())));
break;
}
}
} }
List<SettlementReport.DataBean.AnalysisBean> analysisBeanList = datasBean.getAnalysis(); List<SettlementReport.DataBean.AnalysisBean> analysisBeanList = datasBean.getAnalysis();
......
...@@ -2,6 +2,7 @@ package com.gingersoft.gsa.cloud.manager.mvp.ui.adapter; ...@@ -2,6 +2,7 @@ package com.gingersoft.gsa.cloud.manager.mvp.ui.adapter;
import android.content.Context; import android.content.Context;
import android.graphics.Color; import android.graphics.Color;
import android.util.SparseArray;
import android.view.Gravity; import android.view.Gravity;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
...@@ -12,6 +13,7 @@ import android.widget.RelativeLayout; ...@@ -12,6 +13,7 @@ import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.common.bean.TableItem; import com.gingersoft.gsa.cloud.base.common.bean.TableItem;
import com.gingersoft.gsa.cloud.base.utils.StringUtils;
import com.gingersoft.gsa.cloud.manager.R; import com.gingersoft.gsa.cloud.manager.R;
import com.gingersoft.gsa.cloud.manager.R2; import com.gingersoft.gsa.cloud.manager.R2;
import com.gingersoft.gsa.cloud.ui.bean.view.SectionHeader; import com.gingersoft.gsa.cloud.ui.bean.view.SectionHeader;
...@@ -19,6 +21,7 @@ import com.gingersoft.gsa.cloud.ui.view.TriangleLabelView; ...@@ -19,6 +21,7 @@ import com.gingersoft.gsa.cloud.ui.view.TriangleLabelView;
import com.gingersoft.gsa.cloud.ui.view.TriangleView; import com.gingersoft.gsa.cloud.ui.view.TriangleView;
import com.gingersoft.gsa.cloud.ui.view.qm.QDLoadingItemView; import com.gingersoft.gsa.cloud.ui.view.qm.QDLoadingItemView;
import com.gingersoft.gsa.cloud.ui.view.section.QDSectionHeaderView; import com.gingersoft.gsa.cloud.ui.view.section.QDSectionHeaderView;
import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.DeviceUtils; import com.jess.arms.utils.DeviceUtils;
import com.qmuiteam.qmui.layout.QMUIRelativeLayout; import com.qmuiteam.qmui.layout.QMUIRelativeLayout;
import com.qmuiteam.qmui.util.QMUIDisplayHelper; import com.qmuiteam.qmui.util.QMUIDisplayHelper;
...@@ -26,6 +29,8 @@ import com.qmuiteam.qmui.widget.section.QMUIDefaultStickySectionAdapter; ...@@ -26,6 +29,8 @@ import com.qmuiteam.qmui.widget.section.QMUIDefaultStickySectionAdapter;
import com.qmuiteam.qmui.widget.section.QMUISection; import com.qmuiteam.qmui.widget.section.QMUISection;
import com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter; import com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter;
import java.util.HashMap;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import butterknife.BindView; import butterknife.BindView;
...@@ -52,6 +57,7 @@ public class TableManageSectiontAdapter extends QMUIDefaultStickySectionAdapter< ...@@ -52,6 +57,7 @@ public class TableManageSectiontAdapter extends QMUIDefaultStickySectionAdapter<
private float mShadowAlpha = 0.25f; private float mShadowAlpha = 0.25f;
private int mShadowElevationDp = 14; private int mShadowElevationDp = 14;
private HashMap<Long,Boolean> mSelectedStatus = new HashMap<>();
public void initItemDispalyHeight() { public void initItemDispalyHeight() {
float screenHeight = DeviceUtils.getScreenHeight(context) - 75 - 75; float screenHeight = DeviceUtils.getScreenHeight(context) - 75 - 75;
...@@ -65,6 +71,7 @@ public class TableManageSectiontAdapter extends QMUIDefaultStickySectionAdapter< ...@@ -65,6 +71,7 @@ public class TableManageSectiontAdapter extends QMUIDefaultStickySectionAdapter<
this.context = viewGroup.getContext(); this.context = viewGroup.getContext();
this.mRadius = QMUIDisplayHelper.dp2px(context, 5); this.mRadius = QMUIDisplayHelper.dp2px(context, 5);
initItemDispalyHeight(); initItemDispalyHeight();
return new QMUIStickySectionAdapter.ViewHolder(new QDSectionHeaderView(viewGroup.getContext())); return new QMUIStickySectionAdapter.ViewHolder(new QDSectionHeaderView(viewGroup.getContext()));
} }
...@@ -86,6 +93,12 @@ public class TableManageSectiontAdapter extends QMUIDefaultStickySectionAdapter< ...@@ -86,6 +93,12 @@ public class TableManageSectiontAdapter extends QMUIDefaultStickySectionAdapter<
super.onBindSectionHeader(holder, position, section); super.onBindSectionHeader(holder, position, section);
QDSectionHeaderView itemView = (QDSectionHeaderView) holder.itemView; QDSectionHeaderView itemView = (QDSectionHeaderView) holder.itemView;
itemView.render(section.getHeader(), section.isFold()); itemView.render(section.getHeader(), section.isFold());
for (int i = 0; i < section.getItemList().size(); i++) {
TableItem tableItem = section.getItemList().get(i);
if(!mSelectedStatus.containsKey(tableItem.getId())) {
mSelectedStatus.put(tableItem.getId(),false);
}
}
// itemView.setBackgroundColor(ContextCompat.getColor(context,R.color.theme_background_color)); // itemView.setBackgroundColor(ContextCompat.getColor(context,R.color.theme_background_color));
itemView.getArrowView().setOnClickListener(new View.OnClickListener() { itemView.getArrowView().setOnClickListener(new View.OnClickListener() {
@Override @Override
...@@ -112,8 +125,11 @@ public class TableManageSectiontAdapter extends QMUIDefaultStickySectionAdapter< ...@@ -112,8 +125,11 @@ public class TableManageSectiontAdapter extends QMUIDefaultStickySectionAdapter<
initAddItemDispalyMetrics(viewHolder); initAddItemDispalyMetrics(viewHolder);
viewHolder.ll_container.setBackgroundColor(Color.parseColor("#FFFFFFFF")); viewHolder.ll_container.setBackgroundColor(Color.parseColor("#FFFFFFFF"));
setBackGroundWork(viewHolder, Color.parseColor("#FFFFFFFF"), R.color.black,R.color.theme_black); setBackGroundWork(viewHolder, Color.parseColor("#FFFFFFFF"), R.color.black, R.color.theme_black);
viewHolder.cb_checked.setChecked(false);
viewHolder.cb_checked.setOnCheckedChangeListener(null);
viewHolder.cb_checked.setVisibility(View.GONE);
} else { } else {
viewHolder.rl_table.setVisibility(View.VISIBLE); viewHolder.rl_table.setVisibility(View.VISIBLE);
...@@ -127,9 +143,9 @@ public class TableManageSectiontAdapter extends QMUIDefaultStickySectionAdapter< ...@@ -127,9 +143,9 @@ public class TableManageSectiontAdapter extends QMUIDefaultStickySectionAdapter<
viewHolder.tv_service_fee.setText(tableItem.getServiceCharge() + "%"); viewHolder.tv_service_fee.setText(tableItem.getServiceCharge() + "%");
viewHolder.tv_service_fee.setVisibility(View.VISIBLE); viewHolder.tv_service_fee.setVisibility(View.VISIBLE);
} else { } else {
viewHolder.tv_service_fee.setVisibility(View.INVISIBLE); viewHolder.tv_service_fee.setVisibility(View.GONE);
} }
if (isRadioEdit && tableItem.getUseStatus() == 0) { if (isRadioEdit && tableItem.getUseStatus() == 0 && tableItem.getStatus() == 0) {
viewHolder.cb_checked.setChecked(tableItem.isChecked()); viewHolder.cb_checked.setChecked(tableItem.isChecked());
viewHolder.cb_checked.setVisibility(View.VISIBLE); viewHolder.cb_checked.setVisibility(View.VISIBLE);
viewHolder.cb_checked.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { viewHolder.cb_checked.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
...@@ -139,6 +155,8 @@ public class TableManageSectiontAdapter extends QMUIDefaultStickySectionAdapter< ...@@ -139,6 +155,8 @@ public class TableManageSectiontAdapter extends QMUIDefaultStickySectionAdapter<
} }
}); });
} else { } else {
viewHolder.cb_checked.setChecked(false);
viewHolder.cb_checked.setOnCheckedChangeListener(null);
viewHolder.cb_checked.setVisibility(View.GONE); viewHolder.cb_checked.setVisibility(View.GONE);
} }
} }
...@@ -149,6 +167,12 @@ public class TableManageSectiontAdapter extends QMUIDefaultStickySectionAdapter< ...@@ -149,6 +167,12 @@ public class TableManageSectiontAdapter extends QMUIDefaultStickySectionAdapter<
viewHolder.tv_table.setText(item.getTableName()); viewHolder.tv_table.setText(item.getTableName());
if (StringUtils.getChineseValueLength(item.getTableName()) > 5) {
viewHolder.tv_table.setTextSize(18);
} else {
viewHolder.tv_table.setTextSize(22);
}
if (item.getStatus() != 0) { if (item.getStatus() != 0) {
viewHolder.tv_people.setVisibility(View.VISIBLE); viewHolder.tv_people.setVisibility(View.VISIBLE);
if (item.getMinSeatCount() != 0 || item.getMaxSeatCount() != 0) { if (item.getMinSeatCount() != 0 || item.getMaxSeatCount() != 0) {
...@@ -160,7 +184,6 @@ public class TableManageSectiontAdapter extends QMUIDefaultStickySectionAdapter< ...@@ -160,7 +184,6 @@ public class TableManageSectiontAdapter extends QMUIDefaultStickySectionAdapter<
} else { } else {
//未開檯空間足夠可換行顯示 //未開檯空間足夠可換行顯示
viewHolder.tv_table.setMaxLines(2); viewHolder.tv_table.setMaxLines(2);
viewHolder.tv_table.setTextSize(22);
viewHolder.tv_people.setVisibility(View.GONE); viewHolder.tv_people.setVisibility(View.GONE);
} }
...@@ -193,24 +216,24 @@ public class TableManageSectiontAdapter extends QMUIDefaultStickySectionAdapter< ...@@ -193,24 +216,24 @@ public class TableManageSectiontAdapter extends QMUIDefaultStickySectionAdapter<
viewHolder.ll_container.setBackgroundColor(Color.parseColor("#FFFFFFFF")); viewHolder.ll_container.setBackgroundColor(Color.parseColor("#FFFFFFFF"));
if (item.getUseStatus() == 1) { if (item.getUseStatus() == 1) {
setBackGroundWork(viewHolder, Color.parseColor("#FFD14141"), R.color.theme_white_color,R.color.theme_black); setBackGroundWork(viewHolder, Color.parseColor("#FFD14141"), R.color.theme_white_color, R.color.theme_black);
} else { } else {
switch (item.getStatus()) { switch (item.getStatus()) {
case 0: case 0:
setBackGroundWork(viewHolder, Color.parseColor("#FFFFFFFF"), R.color.black,R.color.theme_black); setBackGroundWork(viewHolder, Color.parseColor("#FFFFFFFF"), R.color.black, R.color.theme_black);
break; break;
case 1: case 1:
// setBackGroundWork(item, "2", R.drawable.table_shape_table_send, R.drawable.tablebutton_glassgreen_new, R.color.theme_white_color); break; // setBackGroundWork(item, "2", R.drawable.table_shape_table_send, R.drawable.tablebutton_glassgreen_new, R.color.theme_white_color); break;
case 2: case 2:
setBackGroundWork(viewHolder, Color.parseColor("#FF249B65"), R.color.theme_white_color,R.color.theme_white_color); setBackGroundWork(viewHolder, Color.parseColor("#FF249B65"), R.color.theme_white_color, R.color.theme_white_color);
break; break;
case 3: case 3:
setBackGroundWork(viewHolder, Color.parseColor("#FFE5AC00"), R.color.theme_white_color,R.color.theme_white_color); setBackGroundWork(viewHolder, Color.parseColor("#FFE5AC00"), R.color.theme_white_color, R.color.theme_white_color);
break; break;
case 4: case 4:
case 5: case 5:
case 6: case 6:
setBackGroundWork(viewHolder, ContextCompat.getColor(context, R.color.Violet), R.color.theme_white_color,R.color.theme_white_color); setBackGroundWork(viewHolder, ContextCompat.getColor(context, R.color.Violet), R.color.theme_white_color, R.color.theme_white_color);
break; break;
} }
} }
...@@ -230,7 +253,7 @@ public class TableManageSectiontAdapter extends QMUIDefaultStickySectionAdapter< ...@@ -230,7 +253,7 @@ public class TableManageSectiontAdapter extends QMUIDefaultStickySectionAdapter<
viewHolder.rl_table.setLayoutParams(relativeLayout); viewHolder.rl_table.setLayoutParams(relativeLayout);
} }
private void setBackGroundWork(ViewHolder viewHolder, int defaultMainback, int defaultFontColor,int serviceFeeFontColor) { private void setBackGroundWork(ViewHolder viewHolder, int defaultMainback, int defaultFontColor, int serviceFeeFontColor) {
if (defaultMainback != -1) { if (defaultMainback != -1) {
viewHolder.ll_container.setBackgroundColor(defaultMainback); viewHolder.ll_container.setBackgroundColor(defaultMainback);
} }
......
...@@ -21,6 +21,7 @@ import java.util.Map; ...@@ -21,6 +21,7 @@ import java.util.Map;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import io.reactivex.Observable; import io.reactivex.Observable;
import okhttp3.RequestBody; import okhttp3.RequestBody;
import retrofit2.http.Query;
/** /**
...@@ -118,7 +119,9 @@ public interface MealStandContract { ...@@ -118,7 +119,9 @@ public interface MealStandContract {
Observable<BaseRespose> printOrder(RequestBody requestBody); Observable<BaseRespose> printOrder(RequestBody requestBody);
Observable<FoodReason> getRestaurantFoodReason(int brandId ,int restaurantId, int type); Observable<FoodReason> getRestaurantFoodReason(int brandId, int restaurantId, int type);
Observable<BaseResult> queryMember(int type, String sign, String shopName);
List<Food> queryDB_AllFoodList(); List<Food> queryDB_AllFoodList();
......
...@@ -19,6 +19,7 @@ import com.gingersoft.gsa.cloud.database.utils.FoodDaoUtils; ...@@ -19,6 +19,7 @@ import com.gingersoft.gsa.cloud.database.utils.FoodDaoUtils;
import com.gingersoft.gsa.cloud.table.mvp.contract.MealStandContract; import com.gingersoft.gsa.cloud.table.mvp.contract.MealStandContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.FoodReason; import com.gingersoft.gsa.cloud.table.mvp.model.bean.FoodReason;
import com.gingersoft.gsa.cloud.table.mvp.model.service.MealService; import com.gingersoft.gsa.cloud.table.mvp.model.service.MealService;
import com.gingersoft.gsa.cloud.table.mvp.model.service.MemberService;
import com.gingersoft.gsa.cloud.table.mvp.model.service.OrderPayService; import com.gingersoft.gsa.cloud.table.mvp.model.service.OrderPayService;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.jess.arms.di.scope.ActivityScope; import com.jess.arms.di.scope.ActivityScope;
...@@ -176,6 +177,12 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model ...@@ -176,6 +177,12 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model
} }
@Override @Override
public Observable<BaseResult> queryMember(int type, String parm, String shopName) {
return mRepositoryManager.obtainRetrofitService(MemberService.class)
.queryMember(type,parm,shopName);
}
@Override
public Observable<BaseResult> toOrderPay(RequestBody formBody) { public Observable<BaseResult> toOrderPay(RequestBody formBody) {
return mRepositoryManager.obtainRetrofitService(OrderPayService.class) return mRepositoryManager.obtainRetrofitService(OrderPayService.class)
.toOrderPay(formBody); .toOrderPay(formBody);
......
...@@ -52,7 +52,7 @@ public class FoodReason { ...@@ -52,7 +52,7 @@ public class FoodReason {
* uid : 1 * uid : 1
* restaurantId : 410 * restaurantId : 410
* content : 顔色不好看 * content : 顔色不好看
* type : 1 * type : 1,2,3
* updateTime : 1585721573999 * updateTime : 1585721573999
* createTime : 1585721573999 * createTime : 1585721573999
*/ */
...@@ -61,7 +61,7 @@ public class FoodReason { ...@@ -61,7 +61,7 @@ public class FoodReason {
private int uid; private int uid;
private int restaurantId; private int restaurantId;
private String content; private String content;
private int type; private String type;
private long updateTime; private long updateTime;
private long createTime; private long createTime;
...@@ -97,11 +97,11 @@ public class FoodReason { ...@@ -97,11 +97,11 @@ public class FoodReason {
this.content = content; this.content = content;
} }
public int getType() { public String getType() {
return type; return type;
} }
public void setType(int type) { public void setType(String type) {
this.type = type; this.type = type;
} }
......
package com.gingersoft.gsa.cloud.table.mvp.model.service;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose;
import io.reactivex.Observable;
import me.jessyan.retrofiturlmanager.RetrofitUrlManager;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.Headers;
import retrofit2.http.POST;
import retrofit2.http.Query;
/**
* Created by Wyh on 2020/1/17.
*/
public interface MemberService {
@Headers({"Domain-Name: update_version"})
@GET("member/getMemberInfo?" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> queryMember(@Query("type") int type,@Query("parm") String parm,@Query("gsposShopId") String shopName);
}
package com.gingersoft.gsa.cloud.table.mvp.presenter; package com.gingersoft.gsa.cloud.table.mvp.presenter;
import android.app.Application; import android.app.Application;
import android.content.Intent;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.SparseArray; import android.util.SparseArray;
import android.view.View; import android.view.View;
...@@ -48,9 +49,14 @@ import com.jess.arms.base.DefaultAdapter; ...@@ -48,9 +49,14 @@ import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.di.scope.ActivityScope; import com.jess.arms.di.scope.ActivityScope;
import com.jess.arms.http.imageloader.ImageLoader; import com.jess.arms.http.imageloader.ImageLoader;
import com.jess.arms.integration.AppManager; import com.jess.arms.integration.AppManager;
import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.DeviceUtils;
import com.jess.arms.utils.PermissionUtil;
import com.jess.arms.utils.RxLifecycleUtils; import com.jess.arms.utils.RxLifecycleUtils;
import com.qmuiteam.qmui.widget.dialog.QMUIDialog; import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
import com.tbruyelle.rxpermissions2.RxPermissions;
import com.uuzuche.lib_zxing.activity.CaptureActivity;
import org.simple.eventbus.EventBus; import org.simple.eventbus.EventBus;
import org.simple.eventbus.Subscriber; import org.simple.eventbus.Subscriber;
...@@ -151,6 +157,29 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod ...@@ -151,6 +157,29 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
this.mApplication = null; this.mApplication = null;
} }
public void toScanActivity() {
PermissionUtil.launchCamera(new PermissionUtil.RequestPermission() {
@Override
public void onRequestPermissionSuccess() {
Intent intent = new Intent(IActivity, CaptureActivity.class);
IActivity.startActivityForResult(intent,MealStandActivity. SCAN_REQUEST_CODE);
}
@Override
public void onRequestPermissionFailure(List<String> permissions) {
DeviceUtils.startSetting(IActivity);
mRootView.showMessage(LanguageUtils.get_language_system(IActivity, "please.open.camera.permissions", "請前往設置開放照相機權限"));
}
@Override
public void onRequestPermissionFailureWithAskNeverAgain(List<String> permissions) {
DeviceUtils.startSetting(IActivity);
mRootView.showMessage(LanguageUtils.get_language_system(IActivity, "please.open.camera.permissions", "請前往設置開放照相機權限"));
}
}, new RxPermissions(IActivity), mErrorHandler);
}
public void initMealData() { public void initMealData() {
List<Food> foodGroupList = mModel.queryDB_FoodGroupList(); List<Food> foodGroupList = mModel.queryDB_FoodGroupList();
...@@ -167,6 +196,8 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod ...@@ -167,6 +196,8 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
IActivity.initFoodGroupView(mFoodGroupList); IActivity.initFoodGroupView(mFoodGroupList);
updateFoodSoldoutCtrData();
if (defalutFoodGroup != null) { if (defalutFoodGroup != null) {
changedMealByParentId(defalutFoodGroup.getId()); changedMealByParentId(defalutFoodGroup.getId());
} }
...@@ -229,6 +260,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod ...@@ -229,6 +260,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
mCurrentOrderDetailBean = datasBean; mCurrentOrderDetailBean = datasBean;
mSelectMealAdapter.setMyOrderManageSelectPosition(); mSelectMealAdapter.setMyOrderManageSelectPosition();
loadComboData(datasBean, true); loadComboData(datasBean, true);
updateOrderFoodNumber();
} }
@Override @Override
...@@ -542,8 +574,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod ...@@ -542,8 +574,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
for (int i = 0; i < numberAndCutPositionMap.size(); i++) { for (int i = 0; i < numberAndCutPositionMap.size(); i++) {
String[] numberAndCutPositionStr = numberAndCutPositionMap.valueAt(i).split("_"); String[] numberAndCutPositionStr = numberAndCutPositionMap.valueAt(i).split("_");
int number = Integer.parseInt(numberAndCutPositionStr[0]); int number = Integer.parseInt(numberAndCutPositionStr[0]);
int maxQty = Integer.parseInt(modifier.getMaxNumber()) * mainOrderNumber; int maxQty = modifier.getSelectQty() * mainOrderNumber;
;
if (numberAndCutPositionStr.length > 1 && !TextUtils.isEmpty(numberAndCutPositionStr[1])) { if (numberAndCutPositionStr.length > 1 && !TextUtils.isEmpty(numberAndCutPositionStr[1])) {
int cutPosition = Integer.parseInt(numberAndCutPositionStr[1]); int cutPosition = Integer.parseInt(numberAndCutPositionStr[1]);
if (maxQty <= number && cutPosition < mOrderFoodList.size()) { if (maxQty <= number && cutPosition < mOrderFoodList.size()) {
...@@ -853,6 +884,22 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod ...@@ -853,6 +884,22 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
}); });
} }
public void queryMember(int type, String sign, String shopName) {
mModel.queryMember(type, sign,shopName)
.subscribeOn(Schedulers.io())
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseResult info) {
}
});
}
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);
...@@ -1069,7 +1116,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod ...@@ -1069,7 +1116,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
/** /**
* 更新食品,子項,細項沽清數據 * 更新食品,子項,細項沽清數據
*/ */
public void updateMealSoldoutCtrData(){ public void updateMealSoldoutCtrData() {
updateFoodSoldoutCtrData(); updateFoodSoldoutCtrData();
updateComboItemSoldoutCtrData(); updateComboItemSoldoutCtrData();
updateModifierSoldoutCtrData(); updateModifierSoldoutCtrData();
...@@ -1077,36 +1124,35 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod ...@@ -1077,36 +1124,35 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
/** /**
* 更新食品沽清數據 * 更新食品沽清數據
*
*/ */
public void updateFoodSoldoutCtrData() { public void updateFoodSoldoutCtrData() {
if (mSoldoutCtrList.size() > 0) { // if (mSoldoutCtrList.size() > 0) {
clearFoodSoldoutCtrData(); clearFoodSoldoutCtrData();
addFoodSoldoutCtrItem(mSoldoutCtrList); addFoodSoldoutCtrItem(mSoldoutCtrList);
setFoodSoldoutCtrData(mSoldoutCtrList); setFoodSoldoutCtrData(mSoldoutCtrList);
} // }
} }
/** /**
* 更新套餐食品沽清数据 * 更新套餐食品沽清数据
*/ */
public void updateComboItemSoldoutCtrData() { public void updateComboItemSoldoutCtrData() {
if (mSoldoutCtrList.size() > 0) { // if (mSoldoutCtrList.size() > 0) {
updateFoodSoldoutCtrData(); updateFoodSoldoutCtrData();
mComboAdapter.notifyDataSetChanged(); mComboAdapter.notifyDataSetChanged();
} // }
} }
/** /**
* 更新細項沽清數據 * 更新細項沽清數據
*/ */
public void updateModifierSoldoutCtrData(){ public void updateModifierSoldoutCtrData() {
if (mSoldoutCtrList.size() > 0) { // if (mSoldoutCtrList.size() > 0) {
clearModifierSoldoutCtrData(); clearModifierSoldoutCtrData();
addModifierCtrItem(mSoldoutCtrList); addModifierCtrItem(mSoldoutCtrList);
setModifierSoldoutCtrData(mModifierList,mSoldoutCtrList); setModifierSoldoutCtrData(mModifierList, mSoldoutCtrList);
mModifierAdapter.notifyDataSetChanged(); mModifierAdapter.notifyDataSetChanged();
} // }
} }
private void setModifierSoldoutCtrData(List<Modifier> modifierList, List<SoldoutCtrFood> soldoutCtrFoods) { private void setModifierSoldoutCtrData(List<Modifier> modifierList, List<SoldoutCtrFood> soldoutCtrFoods) {
...@@ -1381,7 +1427,6 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod ...@@ -1381,7 +1427,6 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
CommonTipDialog.showSurpisedDialog(IActivity, msg, null, null, null, null, null); CommonTipDialog.showSurpisedDialog(IActivity, msg, null, null, null, null, null);
return false; return false;
} }
return true; return true;
} }
...@@ -1702,36 +1747,53 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod ...@@ -1702,36 +1747,53 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
* 添加多選細項 * 添加多選細項
*/ */
public int addMultipleModifierItems(Modifier modifierItem, int addPosition) { public int addMultipleModifierItems(Modifier modifierItem, int addPosition) {
List<OrderDetail> newOrderList = new ArrayList<>();
newOrderList.addAll(mOrderFoodList);
for (int i = 0; i < mOrderFoodList.size(); i++) { for (int i = 0; i < mOrderFoodList.size(); i++) {
OrderDetail item = mOrderFoodList.get(i); OrderDetail item = mOrderFoodList.get(i);
if (item.getSelected() != 0) { if (item.getSelected() != 0) {
if (item.getItemType() == 1) { if (item.getItemType() == 1) {
int insertPosition = getEndInsertPosition(item); int j = i;
int insertPosition = getEndInsertPosition(newOrderList,item,i);
if (insertPosition != -1) { if (insertPosition != -1) {
i = insertPosition + 1; j = insertPosition + 1;
} else { } else {
i++; j++;
} }
long id = item.isNew() ? item.getProductId() : item.getId(); long id = item.isNew() ? item.getProductId() : item.getId();
OrderDetail modifierTransOrderDetail = OrderDetail.modifierTransOrderDetail(modifierItem, id, item.getProductId(), 1); OrderDetail modifierTransOrderDetail = OrderDetail.modifierTransOrderDetail(modifierItem, id, item.getProductId(), 1);
mOrderFoodList.add(i, modifierTransOrderDetail); newOrderList.add(j, modifierTransOrderDetail);
setIndex(mOrderFoodList);
} }
} }
} }
mOrderFoodList.clear();
mOrderFoodList.addAll(newOrderList);
//重新更新下標
mSelectMealAdapter.setIndex();
mSelectMealAdapter.notifyDataSetChanged(); mSelectMealAdapter.notifyDataSetChanged();
return addPosition; return addPosition;
} }
private int getEndInsertPosition(OrderDetail orderDetail) { private int getEndInsertPosition(List<OrderDetail> newOrderList,OrderDetail orderDetail,int currentI) {
for (int i = 0; i < mOrderFoodList.size(); i++) { for (int i = currentI; i < mOrderFoodList.size(); i++) {
OrderDetail item = mOrderFoodList.get(i); OrderDetail item = mOrderFoodList.get(i);
//往下找 //往下找
int nextIndex = i + 1; int nextIndex = i + 1;
if (mOrderFoodList.size() == (nextIndex - 1) && mOrderFoodList.get(nextIndex).getItemType() == 3) { // if (mOrderFoodList.size() == (nextIndex - 1) && mOrderFoodList.get(nextIndex).getItemType() == 3) {
//最後一個並且是第三層 // //最後一個並且是第三層
return i; // return i;
// }
// if (item.getItemType() == 3 && item.getParentProductId() == orderDetail.getProductId() && mOrderFoodList.get(nextIndex).getItemType() != 3) {
// //添加到主食品細項最後面
// return i;
// }
boolean samePackage = item.getParentProductId() == orderDetail.getProductId() || item.getProductId() == orderDetail.getProductId();
if (mOrderFoodList.size() == nextIndex && samePackage) {
//最後一個
return nextIndex;
} }
if (item.getItemType() == 3 && item.getParentProductId() == orderDetail.getProductId() && mOrderFoodList.get(nextIndex).getItemType() != 3) { if (mOrderFoodList.get(nextIndex).getItemType() != 3 && samePackage) {
//添加到主食品細項最後面 //添加到主食品細項最後面
return i; return i;
} }
...@@ -1740,6 +1802,46 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod ...@@ -1740,6 +1802,46 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
} }
/** /**
* 设置关联父子项Index
*/
public void setIndex(List<OrderDetail> mInfos) {
// 调整myorder中的parent_index及my_index
int parent_index = 0;
int my_index = 0;
int my_index2 = 0;
int t = 0;
// 调整myorder中的顺序位
// 获取旧项目的最后的seqno不是新项目开始
int iseqno = 1;
int isseq = 0;
int imseq = 0;
for (int i = 0; i < mInfos.size(); i++) {
OrderDetail myorder = mInfos.get(i);
t = t + 1;
if (myorder != null) {
switch (myorder.getItemType()) {
case 1:
parent_index = parent_index + 1;
my_index = t;
my_index2 = t;
myorder.setParentIndex(0);
myorder.setMyIndex(t);
break;
case 2:
myorder.setParentIndex(my_index);
myorder.setMyIndex(t);
my_index2 = t;
break;
case 3:
myorder.setParentIndex(my_index2);
myorder.setMyIndex(t);
break;
}
}
}
}
/**
* 加載折扣數據 * 加載折扣數據
*/ */
public void loadDiscountData() { public void loadDiscountData() {
......
...@@ -191,6 +191,12 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model ...@@ -191,6 +191,12 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
public void onNext(BaseResult baseResult) { public void onNext(BaseResult baseResult) {
if (baseResult.isSuccess()) { if (baseResult.isSuccess()) {
List<PayMethod> payMethods = JsonUtils.parseArray(baseResult.getData(), PayMethod.class); List<PayMethod> payMethods = JsonUtils.parseArray(baseResult.getData(), PayMethod.class);
for (int i = 0; i < payMethods.size(); i++) {
//這裡有對象為null的清機 排除掉
if (payMethods.get(i) == null) {
payMethods.remove(i);
}
}
mRootView.loadPayMethodsSuccess(payMethods); mRootView.loadPayMethodsSuccess(payMethods);
// mBillMethodList.addAll(payMethods); // mBillMethodList.addAll(payMethods);
// mBillMethodAdapter.notifyDataSetChanged(); // mBillMethodAdapter.notifyDataSetChanged();
......
...@@ -39,7 +39,9 @@ import com.gingersoft.gsa.cloud.base.common.bean.OrderBean; ...@@ -39,7 +39,9 @@ import com.gingersoft.gsa.cloud.base.common.bean.OrderBean;
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;
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.encryption.Md5;
import com.gingersoft.gsa.cloud.base.utils.other.SPUtils; import com.gingersoft.gsa.cloud.base.utils.other.SPUtils;
import com.gingersoft.gsa.cloud.database.bean.Food; import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.utils.ComboItemDaoUtils; import com.gingersoft.gsa.cloud.database.utils.ComboItemDaoUtils;
...@@ -61,6 +63,7 @@ import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.SelectMealAdapter; ...@@ -61,6 +63,7 @@ import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.SelectMealAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.FineItemAllFragment; import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.FineItemAllFragment;
import com.gingersoft.gsa.cloud.table.mvp.ui.widget.ChooseNumberDialog; import com.gingersoft.gsa.cloud.table.mvp.ui.widget.ChooseNumberDialog;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.FoodGroupAdapter; import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.FoodGroupAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.widget.UseMemberDialog;
import com.gingersoft.gsa.cloud.ui.recylcler.Indicator.PagerConfig; import com.gingersoft.gsa.cloud.ui.recylcler.Indicator.PagerConfig;
import com.gingersoft.gsa.cloud.ui.recylcler.Indicator.PagerGridLayoutManager; import com.gingersoft.gsa.cloud.ui.recylcler.Indicator.PagerGridLayoutManager;
import com.gingersoft.gsa.cloud.ui.recylcler.Indicator.PagerGridSnapHelper; import com.gingersoft.gsa.cloud.ui.recylcler.Indicator.PagerGridSnapHelper;
...@@ -74,16 +77,22 @@ import com.jess.arms.base.BaseFragmentActivity; ...@@ -74,16 +77,22 @@ import com.jess.arms.base.BaseFragmentActivity;
import com.jess.arms.base.DefaultAdapter; import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.di.component.AppComponent; import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.DeviceUtils;
import com.jess.arms.utils.PermissionUtil;
import com.qmuiteam.qmui.alpha.QMUIAlphaTextView; import com.qmuiteam.qmui.alpha.QMUIAlphaTextView;
import com.qmuiteam.qmui.util.QMUIDisplayHelper; import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.util.QMUIDrawableHelper; import com.qmuiteam.qmui.util.QMUIDrawableHelper;
import com.qmuiteam.qmui.widget.dialog.QMUITipDialog; import com.qmuiteam.qmui.widget.dialog.QMUITipDialog;
import com.tbruyelle.rxpermissions2.RxPermissions;
import com.uuzuche.lib_zxing.activity.CaptureActivity;
import org.simple.eventbus.EventBus; import org.simple.eventbus.EventBus;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import butterknife.BindView; import butterknife.BindView;
import butterknife.OnClick; import butterknife.OnClick;
...@@ -252,6 +261,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter> ...@@ -252,6 +261,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
private static final int FINISH = 101; private static final int FINISH = 101;
private static final int ORDER_CONTENT_CODE = 1002; private static final int ORDER_CONTENT_CODE = 1002;
public static final int SCAN_REQUEST_CODE = 0x0000c0de;
private int ComboColCount = 4; private int ComboColCount = 4;
private int DiscountCol = 3; private int DiscountCol = 3;
...@@ -271,7 +281,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter> ...@@ -271,7 +281,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
EventBus.getDefault().registerSticky(this); EventBus.getDefault().registerSticky(this);
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
OrderBean order = MyOrderManage.getInstance().getOrderBean(); OrderBean order = MyOrderManage.getInstance().getOrderBean();
if(order != null) { if (order != null) {
// ArmsUtils.snackbarText("訂單ID:" + order.getId()); // ArmsUtils.snackbarText("訂單ID:" + order.getId());
} }
} }
...@@ -319,6 +329,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter> ...@@ -319,6 +329,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
//更新點餐信息 //更新點餐信息
mPresenter.resetSelected(); mPresenter.resetSelected();
mPresenter.updateOrderFoodNumber(); mPresenter.updateOrderFoodNumber();
mPresenter.updateFoodSoldoutCtrData();
initOrderDetail(); initOrderDetail();
} }
...@@ -367,6 +378,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter> ...@@ -367,6 +378,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
mPresenter.setRvMealClicked(false); mPresenter.setRvMealClicked(false);
mPresenter.changedMealByParentId(datasBean.getId()); mPresenter.changedMealByParentId(datasBean.getId());
mPresenter.updateOrderFoodNumber();
mPresenter.updateFoodSoldoutCtrData(); mPresenter.updateFoodSoldoutCtrData();
} }
}); });
...@@ -544,17 +556,39 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter> ...@@ -544,17 +556,39 @@ 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
new UseMemberDialog.BottomLayoutBuilder(this)
.setOnLayoutClickListener(new UseMemberDialog.BottomLayoutBuilder.OnLayoutClickListener() {
@Override
public void onInputPhone(UseMemberDialog dialog, String phone) {
Map<String, String> parameterMap = new HashMap<>();
parameterMap.put("type", "2");
parameterMap.put("parm", phone);
Md5 md5 = new Md5();
String sign = md5.getMD5ofStr(parameterMap);
mPresenter.queryMember(2,sign,GsaCloudApplication.getGsPosShopId(mContext));
}
@Override
public void onScanAction(UseMemberDialog dialog) {
mPresenter.toScanActivity();
} }
})
.build()
.show();
}
@OnClick(R2.id.btn_multiple_selection) @OnClick(R2.id.btn_multiple_selection)
void onClickMultipleSelection() { void onClickMultipleSelection() {
currentFinePage = 0; currentFinePage = 0;
if (mPresenter.getSelectMealAdapter().getSelectedMode() == SelectMealAdapter.MULTIPLE_SELECTED) { if (mPresenter.getSelectMealAdapter().getSelectedMode() == SelectMealAdapter.MULTIPLE_SELECTED) {
mPresenter.getSelectMealAdapter().setSelectedMode(SelectMealAdapter.SINGLE_SELECTED); mPresenter.getSelectMealAdapter().setSelectedMode(SelectMealAdapter.SINGLE_SELECTED);
btn_delete.setVisibility(View.VISIBLE);
setSelectFunctionVisibility(View.GONE); setSelectFunctionVisibility(View.GONE);
} else { } else {
mPresenter.getSelectMealAdapter().setSelectedMode(SelectMealAdapter.MULTIPLE_SELECTED); mPresenter.getSelectMealAdapter().setSelectedMode(SelectMealAdapter.MULTIPLE_SELECTED);
btn_delete.setVisibility(View.GONE);
setSelectFunctionVisibility(View.VISIBLE); setSelectFunctionVisibility(View.VISIBLE);
loadFineItemData(); loadFineItemData();
} }
...@@ -585,8 +619,10 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter> ...@@ -585,8 +619,10 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
//搜索 //搜索
if (mCurrentViewMode == MealConstant.ViewMode_keys) { if (mCurrentViewMode == MealConstant.ViewMode_keys) {
showViewModeVisibility(MealConstant.food_group_ViewMode, MealConstant.food_ViewMode); showViewModeVisibility(MealConstant.food_group_ViewMode, MealConstant.food_ViewMode);
SPUtils.put(this, MealConstant.EXIT_IS_PLU_MODE, false);
} else { } else {
showViewModeVisibility(MealConstant.ViewMode_keys); showViewModeVisibility(MealConstant.ViewMode_keys);
SPUtils.put(this, MealConstant.EXIT_IS_PLU_MODE, true);
} }
setPluMode(); setPluMode();
} else if (id == R.id.btn_meal_delete) { } else if (id == R.id.btn_meal_delete) {
...@@ -614,6 +650,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter> ...@@ -614,6 +650,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
} }
} else if (id == R.id.btn_end) { } else if (id == R.id.btn_end) {
mPresenter.getSelectMealAdapter().setSelectedMode(SelectMealAdapter.SINGLE_SELECTED); mPresenter.getSelectMealAdapter().setSelectedMode(SelectMealAdapter.SINGLE_SELECTED);
btn_delete.setVisibility(View.VISIBLE);
setSelectFunctionVisibility(View.GONE); setSelectFunctionVisibility(View.GONE);
//從多選頁離開 重置選中 //從多選頁離開 重置選中
mPresenter.resetSelected(); mPresenter.resetSelected();
...@@ -629,7 +666,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter> ...@@ -629,7 +666,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
case 4: case 4:
case 5: case 5:
OrderBean order = MyOrderManage.getInstance().getOrderBean(); OrderBean order = MyOrderManage.getInstance().getOrderBean();
if(order != null) { if (order != null) {
// ArmsUtils.snackbarText("訂單ID:" + order.getId()); // ArmsUtils.snackbarText("訂單ID:" + order.getId());
} }
mPresenter.changeNumber(i); mPresenter.changeNumber(i);
...@@ -754,6 +791,11 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter> ...@@ -754,6 +791,11 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
@Override @Override
public void onComfirmClick(String number) { public void onComfirmClick(String number) {
recordOperat(true); recordOperat(true);
Integer maxSeatCount = OpenTableManage.getDefault().getTableBean().getMaxSeatCount();
if (maxSeatCount != null && maxSeatCount.intValue() < Integer.parseInt(number)) {
showMessage("最大就餐人數不能超過" + maxSeatCount.intValue() + "人!");
return;
}
mPresenter.updateOrderPerson(number, btn_numberman); mPresenter.updateOrderPerson(number, btn_numberman);
} }
......
...@@ -17,6 +17,7 @@ import com.gingersoft.gsa.cloud.table.R; ...@@ -17,6 +17,7 @@ import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2; import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood; import com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.SoldoutCtrlActivity; import com.gingersoft.gsa.cloud.table.mvp.ui.activity.SoldoutCtrlActivity;
import com.gingersoft.gsa.cloud.ui.view.BeveLabelView;
import com.jess.arms.base.BaseHolder; import com.jess.arms.base.BaseHolder;
import com.jess.arms.base.DefaultAdapter; import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
...@@ -82,7 +83,7 @@ public class FineItemOneAdapter extends DefaultAdapter<Modifier> { ...@@ -82,7 +83,7 @@ public class FineItemOneAdapter extends DefaultAdapter<Modifier> {
@Override @Override
public int getLayoutId(int viewType) { public int getLayoutId(int viewType) {
return R.layout.meal_item_food; return R.layout.meal_item_fine;
} }
class DateTimeItemHolder extends BaseHolder<Modifier> { class DateTimeItemHolder extends BaseHolder<Modifier> {
...@@ -99,7 +100,8 @@ public class FineItemOneAdapter extends DefaultAdapter<Modifier> { ...@@ -99,7 +100,8 @@ public class FineItemOneAdapter extends DefaultAdapter<Modifier> {
TextView tv_soldout; TextView tv_soldout;
@BindView(R2.id.iv_qtySold) @BindView(R2.id.iv_qtySold)
ImageView iv_qtySold; ImageView iv_qtySold;
@BindView(R2.id.blv_soldout)
BeveLabelView blv_soldout;
public DateTimeItemHolder(View itemView) { public DateTimeItemHolder(View itemView) {
super(itemView); super(itemView);
...@@ -221,22 +223,25 @@ public class FineItemOneAdapter extends DefaultAdapter<Modifier> { ...@@ -221,22 +223,25 @@ public class FineItemOneAdapter extends DefaultAdapter<Modifier> {
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(mp); RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(mp);
lp.width = ArmsUtils.dip2px(mContext, 16); lp.width = ArmsUtils.dip2px(mContext, 16);
lp.height = ArmsUtils.dip2px(mContext, 16); lp.height = ArmsUtils.dip2px(mContext, 16);
lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
tv_number.setLayoutParams(lp); tv_number.setLayoutParams(lp);
tv_number.setVisibility(View.INVISIBLE); tv_number.setVisibility(View.INVISIBLE);
} }
private void setStatus(Modifier datasBean) { private void setStatus(Modifier datasBean) {
tv_soldout.setMaxHeight(mOrderNumberShowSize); // tv_soldout.setMaxHeight(mOrderNumberShowSize);
tv_soldout.setMinHeight(mOrderNumberShowSize); // tv_soldout.setMinHeight(mOrderNumberShowSize);
tv_soldout.setTextSize(mOrderNumberFontSize); tv_soldout.setTextSize(mOrderNumberFontSize);
tv_soldout.setTextColor(Color.parseColor("#000000")); tv_soldout.setTextColor(Color.parseColor("#FFFFFF"));
tv_soldout.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.ui_selector_white_rect)); tv_soldout.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.meal_shape_remaining_number_bg));
tv_soldout.setMinWidth(20); // tv_soldout.setMinWidth(20);
tv_soldout.setTextSize(10); // tv_soldout.setTextSize(10);
tv_soldout.setGravity(Gravity.CENTER); // tv_soldout.setGravity(Gravity.CENTER);
tv_soldout.setVisibility(View.INVISIBLE);
iv_qtySold.setVisibility(View.INVISIBLE); iv_qtySold.setVisibility(View.INVISIBLE);
blv_soldout.setVisibility(View.INVISIBLE);
/** /**
* 设置当前状态 * 设置当前状态
*/ */
...@@ -244,33 +249,20 @@ public class FineItemOneAdapter extends DefaultAdapter<Modifier> { ...@@ -244,33 +249,20 @@ public class FineItemOneAdapter extends DefaultAdapter<Modifier> {
if (TextUtils.isEmpty(qty)) { if (TextUtils.isEmpty(qty)) {
tv_soldout.setVisibility(View.INVISIBLE); tv_soldout.setVisibility(View.INVISIBLE);
} else { } else {
if (qty.equalsIgnoreCase("售罄")) { // if (qty.equalsIgnoreCase("售罄")) {
iv_qtySold.setVisibility(View.VISIBLE); // iv_qtySold.setVisibility(View.VISIBLE);
// } else {
// tv_soldout.setVisibility(View.VISIBLE);
// tv_soldout.setText(qty);
// }
if (qty.equalsIgnoreCase("售罄") || qty.equalsIgnoreCase("暫停") ) {
blv_soldout.setLableText(qty);
blv_soldout.setVisibility(View.VISIBLE);
} else { } else {
tv_soldout.setVisibility(View.VISIBLE); tv_soldout.setVisibility(View.VISIBLE);
tv_soldout.setText(qty); tv_soldout.setText(qty);
} }
} }
// for (SoldoutCtrFood sc : mCurrentSlodoutFoodList_Full) {
// if (sc.getType() == SoldoutCtrlActivity.MODIFIER_TYPE && sc.getModifierId().equals(datasBean.getMid())) {
// String name = sc.getQtyName();
// if (name.equals("")) {
// tv_soldout.setVisibility(View.INVISIBLE);
// } else {
// if (sc.getQtyName().equalsIgnoreCase("售罄")) {
// iv_qtySold.setVisibility(View.VISIBLE);
// datasBean.setSoldout(true);
// } else if (sc.getQtyName().equalsIgnoreCase("暫停")) {
// tv_soldout.setVisibility(View.VISIBLE);
// tv_soldout.setText(name);
// } else {
// tv_soldout.setVisibility(View.VISIBLE);
// tv_soldout.setText(name);
// datasBean.setMaxNumber(name);
// }
// }
// }
// }
} }
} }
......
...@@ -17,6 +17,7 @@ import com.gingersoft.gsa.cloud.table.R; ...@@ -17,6 +17,7 @@ import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2; import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood; import com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.SoldoutCtrlActivity; import com.gingersoft.gsa.cloud.table.mvp.ui.activity.SoldoutCtrlActivity;
import com.gingersoft.gsa.cloud.ui.view.BeveLabelView;
import com.jess.arms.base.BaseHolder; import com.jess.arms.base.BaseHolder;
import com.jess.arms.base.DefaultAdapter; import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
...@@ -82,7 +83,7 @@ public class FineItemTwoAdapter extends DefaultAdapter<Modifier> { ...@@ -82,7 +83,7 @@ public class FineItemTwoAdapter extends DefaultAdapter<Modifier> {
@Override @Override
public int getLayoutId(int viewType) { public int getLayoutId(int viewType) {
return R.layout.meal_item_food; return R.layout.meal_item_fine;
} }
class FineItemHolder extends BaseHolder<Modifier> { class FineItemHolder extends BaseHolder<Modifier> {
...@@ -99,7 +100,8 @@ public class FineItemTwoAdapter extends DefaultAdapter<Modifier> { ...@@ -99,7 +100,8 @@ public class FineItemTwoAdapter extends DefaultAdapter<Modifier> {
TextView tv_soldout; TextView tv_soldout;
@BindView(R2.id.iv_qtySold) @BindView(R2.id.iv_qtySold)
ImageView iv_qtySold; ImageView iv_qtySold;
@BindView(R2.id.blv_soldout)
BeveLabelView blv_soldout;
public FineItemHolder(View itemView) { public FineItemHolder(View itemView) {
super(itemView); super(itemView);
...@@ -257,24 +259,27 @@ public class FineItemTwoAdapter extends DefaultAdapter<Modifier> { ...@@ -257,24 +259,27 @@ public class FineItemTwoAdapter extends DefaultAdapter<Modifier> {
} }
private void setStatus(Modifier datasBean) { private void setStatus(Modifier datasBean) {
tv_soldout.setMaxHeight(mOrderNumberShowSize); // tv_soldout.setMaxHeight(mOrderNumberShowSize);
tv_soldout.setMinHeight(mOrderNumberShowSize); // tv_soldout.setMinHeight(mOrderNumberShowSize);
tv_soldout.setTextSize(mOrderNumberFontSize); tv_soldout.setTextSize(mOrderNumberFontSize);
tv_soldout.setTextColor(Color.parseColor("#000000")); tv_soldout.setTextColor(Color.parseColor("#FFFFFF"));
tv_soldout.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.ui_selector_white_rect)); tv_soldout.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.meal_shape_remaining_number_bg));
tv_soldout.setMinWidth(20); // tv_soldout.setMinWidth(20);
tv_soldout.setTextSize(10); // tv_soldout.setTextSize(10);
tv_soldout.setGravity(Gravity.CENTER); // tv_soldout.setGravity(Gravity.CENTER);
ViewGroup.MarginLayoutParams mp = new ViewGroup.MarginLayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); //item的宽高 ViewGroup.MarginLayoutParams mp = new ViewGroup.MarginLayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); //item的宽高
mp.setMargins(0, 0, 0, 0);//分别是margin_top那四个属性 mp.setMargins(0, 0, 0, 0);//分别是margin_top那四个属性
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(mp); RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(mp);
lp.width = ArmsUtils.dip2px(mContext, 16); lp.width = ArmsUtils.dip2px(mContext, 16);
lp.height = ArmsUtils.dip2px(mContext, 16); lp.height = ArmsUtils.dip2px(mContext, 16);
lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
tv_number.setLayoutParams(lp); tv_number.setLayoutParams(lp);
tv_number.setVisibility(View.INVISIBLE); tv_number.setVisibility(View.INVISIBLE);
tv_soldout.setVisibility(View.INVISIBLE);
iv_qtySold.setVisibility(View.INVISIBLE); iv_qtySold.setVisibility(View.INVISIBLE);
blv_soldout.setVisibility(View.INVISIBLE);
/** /**
* 设置当前状态 * 设置当前状态
*/ */
...@@ -282,33 +287,20 @@ public class FineItemTwoAdapter extends DefaultAdapter<Modifier> { ...@@ -282,33 +287,20 @@ public class FineItemTwoAdapter extends DefaultAdapter<Modifier> {
if (TextUtils.isEmpty(qty)) { if (TextUtils.isEmpty(qty)) {
tv_soldout.setVisibility(View.INVISIBLE); tv_soldout.setVisibility(View.INVISIBLE);
} else { } else {
if (qty.equalsIgnoreCase("售罄")) { // if (qty.equalsIgnoreCase("售罄")) {
iv_qtySold.setVisibility(View.VISIBLE); //// iv_qtySold.setVisibility(View.VISIBLE);
//// } else {
//// tv_soldout.setVisibility(View.VISIBLE);
//// tv_soldout.setText(qty);
//// }
if (qty.equalsIgnoreCase("售罄") || qty.equalsIgnoreCase("暫停") ) {
blv_soldout.setLableText(qty);
blv_soldout.setVisibility(View.VISIBLE);
} else { } else {
tv_soldout.setVisibility(View.VISIBLE); tv_soldout.setVisibility(View.VISIBLE);
tv_soldout.setText(qty); tv_soldout.setText(qty);
} }
} }
// for (SoldoutCtrFood sc : mCurrentSlodoutFoodList_Full) {
// if (sc.getType() == SoldoutCtrlActivity.MODIFIER_TYPE && sc.getModifierId().equals(datasBean.getMid())) {
// String name = sc.getQtyName();
// if (name.equals("")) {
// tv_soldout.setVisibility(View.INVISIBLE);
// } else {
// if (sc.getQtyName().equalsIgnoreCase("售罄")) {
// iv_qtySold.setVisibility(View.VISIBLE);
// datasBean.setSoldout(true);
// } else if (sc.getQtyName().equalsIgnoreCase("暫停")) {
// tv_soldout.setVisibility(View.VISIBLE);
// tv_soldout.setText(name);
// } else {
// tv_soldout.setVisibility(View.VISIBLE);
// tv_soldout.setText(name);
// datasBean.setMaxNumber(name);
// }
// }
// }
// }
} }
} }
// //
......
...@@ -17,6 +17,7 @@ import com.gingersoft.gsa.cloud.database.bean.Food; ...@@ -17,6 +17,7 @@ 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.R; import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2; import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.ui.view.BeveLabelView;
import com.jess.arms.base.BaseHolder; import com.jess.arms.base.BaseHolder;
import com.jess.arms.base.DefaultAdapter; import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
...@@ -85,6 +86,8 @@ public class ComboAdapter extends DefaultAdapter<ComboItem> { ...@@ -85,6 +86,8 @@ public class ComboAdapter extends DefaultAdapter<ComboItem> {
ImageView iv_qty_sold; ImageView iv_qty_sold;
@BindView(R2.id.iv_return) @BindView(R2.id.iv_return)
ImageView iv_return; ImageView iv_return;
@BindView(R2.id.blv_soldout)
BeveLabelView blv_soldout;
public ComboItemHolder(View itemView) { public ComboItemHolder(View itemView) {
super(itemView); super(itemView);
...@@ -205,14 +208,14 @@ public class ComboAdapter extends DefaultAdapter<ComboItem> { ...@@ -205,14 +208,14 @@ public class ComboAdapter extends DefaultAdapter<ComboItem> {
private void setSolodStatus(ComboItem datasBean) { private void setSolodStatus(ComboItem datasBean) {
tv_soldout.setMaxHeight(OrderNumberChildFontSize); // tv_soldout.setMaxHeight(OrderNumberChildFontSize);
tv_soldout.setMinHeight(OrderNumberChildFontSize); // tv_soldout.setMinHeight(OrderNumberChildFontSize);
tv_soldout.setTextSize(OrderNumberChildFontSize); tv_soldout.setTextSize(OrderNumberChildFontSize);
tv_soldout.setTextColor(Color.parseColor("#000000")); // tv_soldout.setTextColor(Color.parseColor("#000000"));
tv_soldout.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.ui_selector_white_rect)); tv_soldout.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.meal_shape_remaining_number_bg));
tv_soldout.setMinWidth(15); // tv_soldout.setMinWidth(15);
tv_soldout.setTextSize(8); // tv_soldout.setTextSize(8);
tv_soldout.setGravity(Gravity.CENTER); // tv_soldout.setGravity(Gravity.CENTER);
RelativeLayout.LayoutParams lp2 = new RelativeLayout.LayoutParams(new ViewGroup.MarginLayoutParams(60, 40)); RelativeLayout.LayoutParams lp2 = new RelativeLayout.LayoutParams(new ViewGroup.MarginLayoutParams(60, 40));
lp2.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); lp2.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
...@@ -221,13 +224,21 @@ public class ComboAdapter extends DefaultAdapter<ComboItem> { ...@@ -221,13 +224,21 @@ public class ComboAdapter extends DefaultAdapter<ComboItem> {
tv_soldout.setVisibility(View.INVISIBLE); tv_soldout.setVisibility(View.INVISIBLE);
iv_qty_sold.setVisibility(View.INVISIBLE); iv_qty_sold.setVisibility(View.INVISIBLE);
blv_soldout.setVisibility(View.INVISIBLE);
String qty = datasBean.getCurrentMaxNumber(); String qty = datasBean.getCurrentMaxNumber();
if (TextUtils.isEmpty(qty)) { if (TextUtils.isEmpty(qty)) {
tv_soldout.setVisibility(View.INVISIBLE); tv_soldout.setVisibility(View.INVISIBLE);
} else { } else {
if (qty.equalsIgnoreCase("售罄")) { // if (qty.equalsIgnoreCase("售罄")) {
iv_qty_sold.setVisibility(View.VISIBLE); // iv_qty_sold.setVisibility(View.VISIBLE);
// } else {
// tv_soldout.setVisibility(View.VISIBLE);
// tv_soldout.setText(qty);
// }
if (qty.equalsIgnoreCase("售罄") || qty.equalsIgnoreCase("暫停") ) {
blv_soldout.setLableText(qty);
blv_soldout.setVisibility(View.VISIBLE);
} else { } else {
tv_soldout.setVisibility(View.VISIBLE); tv_soldout.setVisibility(View.VISIBLE);
tv_soldout.setText(qty); tv_soldout.setText(qty);
......
...@@ -18,6 +18,7 @@ import com.gingersoft.gsa.cloud.table.R; ...@@ -18,6 +18,7 @@ import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2; import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood; import com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.SoldoutCtrlActivity; import com.gingersoft.gsa.cloud.table.mvp.ui.activity.SoldoutCtrlActivity;
import com.gingersoft.gsa.cloud.ui.view.BeveLabelView;
import com.jess.arms.base.BaseHolder; import com.jess.arms.base.BaseHolder;
import com.jess.arms.base.DefaultAdapter; import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
...@@ -102,7 +103,8 @@ public class FoodAdapter extends DefaultAdapter<Food> { ...@@ -102,7 +103,8 @@ public class FoodAdapter extends DefaultAdapter<Food> {
TextView tv_soldout; TextView tv_soldout;
@BindView(R2.id.iv_qtySold) @BindView(R2.id.iv_qtySold)
ImageView iv_qtySold; ImageView iv_qtySold;
@BindView(R2.id.blv_soldout)
BeveLabelView blv_soldout;
public FoodItemHolder(View itemView) { public FoodItemHolder(View itemView) {
super(itemView); super(itemView);
...@@ -165,6 +167,7 @@ public class FoodAdapter extends DefaultAdapter<Food> { ...@@ -165,6 +167,7 @@ public class FoodAdapter extends DefaultAdapter<Food> {
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(mp); RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(mp);
lp.width = ArmsUtils.dip2px(mContext, 16); lp.width = ArmsUtils.dip2px(mContext, 16);
lp.height = ArmsUtils.dip2px(mContext, 16); lp.height = ArmsUtils.dip2px(mContext, 16);
lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
tv_number.setLayoutParams(lp); tv_number.setLayoutParams(lp);
tv_number.setTextSize(10); tv_number.setTextSize(10);
...@@ -195,13 +198,15 @@ public class FoodAdapter extends DefaultAdapter<Food> { ...@@ -195,13 +198,15 @@ public class FoodAdapter extends DefaultAdapter<Food> {
tv_soldout.setVisibility(View.INVISIBLE); tv_soldout.setVisibility(View.INVISIBLE);
iv_qtySold.setVisibility(View.INVISIBLE); iv_qtySold.setVisibility(View.INVISIBLE);
blv_soldout.setVisibility(View.INVISIBLE);
String qty = datasBean.getCurrentMaxNumber(); String qty = datasBean.getCurrentMaxNumber();
if (TextUtils.isEmpty(qty)) { if (TextUtils.isEmpty(qty)) {
tv_soldout.setVisibility(View.INVISIBLE); tv_soldout.setVisibility(View.INVISIBLE);
} else { } else {
if (qty.equalsIgnoreCase("售罄")) { if (qty.equalsIgnoreCase("售罄") || qty.equalsIgnoreCase("暫停") ) {
iv_qtySold.setVisibility(View.VISIBLE); blv_soldout.setLableText(qty);
blv_soldout.setVisibility(View.VISIBLE);
} else { } else {
tv_soldout.setVisibility(View.VISIBLE); tv_soldout.setVisibility(View.VISIBLE);
tv_soldout.setText(qty); tv_soldout.setText(qty);
......
...@@ -16,6 +16,7 @@ import com.gingersoft.gsa.cloud.table.R; ...@@ -16,6 +16,7 @@ import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2; import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood; import com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.SoldoutCtrlActivity; import com.gingersoft.gsa.cloud.table.mvp.ui.activity.SoldoutCtrlActivity;
import com.gingersoft.gsa.cloud.ui.view.BeveLabelView;
import com.jess.arms.base.BaseHolder; import com.jess.arms.base.BaseHolder;
import com.jess.arms.base.DefaultAdapter; import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
...@@ -99,6 +100,8 @@ public class FoodGroupAdapter extends DefaultAdapter<Food> { ...@@ -99,6 +100,8 @@ public class FoodGroupAdapter extends DefaultAdapter<Food> {
TextView tv_number; TextView tv_number;
@BindView(R2.id.tv_soldout) @BindView(R2.id.tv_soldout)
TextView tv_soldout; TextView tv_soldout;
@BindView(R2.id.blv_soldout)
BeveLabelView blv_soldout;
public FoodlGroupItemHolder(View itemView) { public FoodlGroupItemHolder(View itemView) {
super(itemView); super(itemView);
...@@ -213,6 +216,7 @@ public class FoodGroupAdapter extends DefaultAdapter<Food> { ...@@ -213,6 +216,7 @@ public class FoodGroupAdapter extends DefaultAdapter<Food> {
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(mp); RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(mp);
lp.width = ArmsUtils.dip2px(mContext, 16); lp.width = ArmsUtils.dip2px(mContext, 16);
lp.height = ArmsUtils.dip2px(mContext, 16); lp.height = ArmsUtils.dip2px(mContext, 16);
lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
tv_number.setLayoutParams(lp); tv_number.setLayoutParams(lp);
if (datasBean.getNumber() == 0) { if (datasBean.getNumber() == 0) {
...@@ -228,12 +232,15 @@ public class FoodGroupAdapter extends DefaultAdapter<Food> { ...@@ -228,12 +232,15 @@ public class FoodGroupAdapter extends DefaultAdapter<Food> {
tv_soldout.setMinHeight(mOrderNumberShowSize); tv_soldout.setMinHeight(mOrderNumberShowSize);
tv_soldout.setTextSize(mOrderNumberFontSize); tv_soldout.setTextSize(mOrderNumberFontSize);
String qty = datasBean.getMaxNumber();
if (qty.equals("")) {
tv_soldout.setVisibility(View.INVISIBLE); tv_soldout.setVisibility(View.INVISIBLE);
} else { blv_soldout.setVisibility(View.INVISIBLE);
tv_soldout.setVisibility(View.VISIBLE);
tv_soldout.setText(datasBean.getMaxNumber()); String qty = datasBean.getMaxNumber();
if (!qty.equals("")) {
// tv_soldout.setVisibility(View.VISIBLE);
// tv_soldout.setText(datasBean.getMaxNumber());
blv_soldout.setVisibility(View.VISIBLE);
blv_soldout.setLableText(datasBean.getMaxNumber());
} }
} }
} }
......
...@@ -11,6 +11,7 @@ import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; ...@@ -11,6 +11,7 @@ import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.database.bean.Modifier; import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.table.R; import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2; import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.ui.view.BeveLabelView;
import com.jess.arms.base.BaseHolder; import com.jess.arms.base.BaseHolder;
import com.jess.arms.base.DefaultAdapter; import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
...@@ -79,6 +80,8 @@ public class ModifierAdapter extends DefaultAdapter<Modifier> { ...@@ -79,6 +80,8 @@ public class ModifierAdapter extends DefaultAdapter<Modifier> {
ImageView iv_qty_sold; ImageView iv_qty_sold;
@BindView(R2.id.iv_return) @BindView(R2.id.iv_return)
ImageView iv_return; ImageView iv_return;
@BindView(R2.id.blv_soldout)
BeveLabelView blv_soldout;
public ComboItemHolder(View itemView) { public ComboItemHolder(View itemView) {
super(itemView); super(itemView);
...@@ -153,17 +156,28 @@ public class ModifierAdapter extends DefaultAdapter<Modifier> { ...@@ -153,17 +156,28 @@ public class ModifierAdapter extends DefaultAdapter<Modifier> {
// tv_soldout.setVisibility(View.VISIBLE); // tv_soldout.setVisibility(View.VISIBLE);
// tv_soldout.setText(datasBean.getCurrentMaxNumber()); // tv_soldout.setText(datasBean.getCurrentMaxNumber());
// } // }
tv_soldout.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.meal_shape_remaining_number_bg));
tv_soldout.setMaxHeight(OrderNumberChildShowSize); tv_soldout.setMaxHeight(OrderNumberChildShowSize);
tv_soldout.setMinHeight(OrderNumberChildShowSize); tv_soldout.setMinHeight(OrderNumberChildShowSize);
tv_soldout.setTextSize(OrderNumberChildFontSize); tv_soldout.setTextSize(OrderNumberChildFontSize);
tv_soldout.setVisibility(View.INVISIBLE);
iv_qty_sold.setVisibility(View.INVISIBLE);
blv_soldout.setVisibility(View.INVISIBLE);
String qty = datasBean.getCurrentMaxNumber(); String qty = datasBean.getCurrentMaxNumber();
if (TextUtils.isEmpty(qty)) { if (TextUtils.isEmpty(qty)) {
tv_soldout.setVisibility(View.INVISIBLE); tv_soldout.setVisibility(View.INVISIBLE);
} else { } else {
if (qty.equalsIgnoreCase("售罄")) { // if (qty.equalsIgnoreCase("售罄")) {
iv_qty_sold.setVisibility(View.VISIBLE); // iv_qty_sold.setVisibility(View.VISIBLE);
// } else {
// tv_soldout.setVisibility(View.VISIBLE);
// tv_soldout.setText(qty);
// }
if (qty.equalsIgnoreCase("售罄") || qty.equalsIgnoreCase("暫停") ) {
blv_soldout.setLableText(qty);
blv_soldout.setVisibility(View.VISIBLE);
} else { } else {
tv_soldout.setVisibility(View.VISIBLE); tv_soldout.setVisibility(View.VISIBLE);
tv_soldout.setText(qty); tv_soldout.setText(qty);
......
package com.gingersoft.gsa.cloud.table.mvp.ui.widget;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.AnimationSet;
import android.view.animation.DecelerateInterpolator;
import android.view.animation.TranslateAnimation;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.ui.adapter.BasTextSectiontAdapter;
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.SectionTextItem;
import com.jess.arms.utils.AndroidWorkaround;
import com.qmuiteam.qmui.QMUILog;
import com.qmuiteam.qmui.alpha.QMUIAlphaButton;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.widget.QMUITopBar;
import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
import com.qmuiteam.qmui.widget.section.QMUISection;
import com.qmuiteam.qmui.widget.section.QMUIStickySectionAdapter;
import com.qmuiteam.qmui.widget.section.QMUIStickySectionLayout;
import com.rengwuxian.materialedittext.MaterialEditText;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2019-12-10
* 修订历史:2019-12-10
* 描述:
*/
public class UseMemberDialog extends Dialog {
private static final String TAG = "UseMemberDialog";
// 动画时长
private final static int mAnimationDuration = 300;
// 持有 ContentView,为了做动画
private View mContentView;
private boolean mIsAnimating = false;
private OnBottomSheetShowListener mOnBottomSheetShowListener;
public UseMemberDialog(Context context) {
super(context, R.style.QMUI_BottomSheet);
}
public void setOnBottomSheetShowListener(OnBottomSheetShowListener onBottomSheetShowListener) {
mOnBottomSheetShowListener = onBottomSheetShowListener;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//noinspection ConstantConditions
getWindow().getDecorView().setPadding(0, 0, 0, 0);
// 在底部,宽度撑满
WindowManager.LayoutParams params = getWindow().getAttributes();
params.height = ViewGroup.LayoutParams.WRAP_CONTENT;
params.gravity = Gravity.BOTTOM | Gravity.CENTER;
int screenWidth = QMUIDisplayHelper.getScreenWidth(getContext());
int screenHeight = QMUIDisplayHelper.getScreenHeight(getContext());
params.width = screenWidth < screenHeight ? screenWidth : screenHeight;
getWindow().setAttributes(params);
setCanceledOnTouchOutside(true);
}
@Override
public void setContentView(int layoutResID) {
mContentView = LayoutInflater.from(getContext()).inflate(layoutResID, null);
super.setContentView(mContentView);
}
@Override
public void setContentView(@NonNull View view, ViewGroup.LayoutParams params) {
mContentView = view;
super.setContentView(view, params);
}
public View getContentView() {
return mContentView;
}
@Override
public void setContentView(@NonNull View view) {
mContentView = view;
super.setContentView(view);
}
/**
* BottomSheet升起动画
*/
private void animateUp() {
if (mContentView == null) {
return;
}
TranslateAnimation translate = new TranslateAnimation(
Animation.RELATIVE_TO_SELF, 0f, Animation.RELATIVE_TO_SELF, 0f,
Animation.RELATIVE_TO_SELF, 1f, Animation.RELATIVE_TO_SELF, 0f
);
AlphaAnimation alpha = new AlphaAnimation(0, 1);
AnimationSet set = new AnimationSet(true);
set.addAnimation(translate);
set.addAnimation(alpha);
set.setInterpolator(new DecelerateInterpolator());
set.setDuration(mAnimationDuration);
set.setFillAfter(true);
mContentView.startAnimation(set);
}
/**
* BottomSheet降下动画
*/
private void animateDown() {
if (mContentView == null) {
return;
}
TranslateAnimation translate = new TranslateAnimation(
Animation.RELATIVE_TO_SELF, 0f, Animation.RELATIVE_TO_SELF, 0f,
Animation.RELATIVE_TO_SELF, 0f, Animation.RELATIVE_TO_SELF, 1f
);
AlphaAnimation alpha = new AlphaAnimation(1, 0);
AnimationSet set = new AnimationSet(true);
set.addAnimation(translate);
set.addAnimation(alpha);
set.setInterpolator(new DecelerateInterpolator());
set.setDuration(mAnimationDuration);
set.setFillAfter(true);
set.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
mIsAnimating = true;
}
@Override
public void onAnimationEnd(Animation animation) {
mIsAnimating = false;
/**
* Bugfix: Attempting to destroy the window while drawing!
*/
mContentView.post(new Runnable() {
@Override
public void run() {
// java.lang.IllegalArgumentException: View=com.android.internal.policy.PhoneWindow$DecorView{22dbf5b V.E...... R......D 0,0-1080,1083} not attached to window manager
// 在dismiss的时候可能已经detach了,简单try-catch一下
try {
UseMemberDialog.super.dismiss();
} catch (Exception e) {
QMUILog.w(TAG, "dismiss error\n" + Log.getStackTraceString(e));
}
}
});
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
mContentView.startAnimation(set);
}
@Override
public void show() {
super.show();
animateUp();
if (mOnBottomSheetShowListener != null) {
mOnBottomSheetShowListener.onShow();
}
}
@Override
public void dismiss() {
if (mIsAnimating) {
return;
}
animateDown();
}
public interface OnBottomSheetShowListener {
void onShow();
}
/**
* 生成宫格类型的 {@link QMUIBottomSheet} 对话框。
*/
public static class BottomLayoutBuilder implements View.OnClickListener {
private Context mContext;
private UseMemberDialog mDialog;
private QMUITopBar mTopBar;
private RecyclerView.LayoutManager mLayoutManager;
private RecyclerView recycler_memeber_info;
private MaterialEditText ed_phone;
private ImageView iv_no_data;
private LinearLayout ll_bottom;
private QMUIAlphaButton btn_query_memeber;
private QMUIAlphaButton btn_scan;
private QMUIAlphaButton btn_use_member;
private QMUIAlphaButton btn_clear_member;
public BottomLayoutBuilder(Context context) {
mContext = context;
}
@Override
public void onClick(View v) {
}
public UseMemberDialog build() {
if (mDialog != null) {
return mDialog;
}
mDialog = new UseMemberDialog(mContext);
View contentView = buildViews();
mDialog.setContentView(contentView, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, (int) (QMUIDisplayHelper.getScreenHeight(mContext) * 0.65)));
if (mDismissListener != null) {
mDialog.setOnDismissListener(mDismissListener);
}
// AndroidWorkaround.assistActivity(contentView);
return mDialog;
}
private View buildViews() {
View view = View.inflate(mContext, getContentViewLayoutId(), null);
mTopBar = view.findViewById(R.id.topbar);
recycler_memeber_info = view.findViewById(R.id.recycler_memeber_info);
ed_phone = view.findViewById(R.id.ed_phone);
iv_no_data = view.findViewById(R.id.iv_no_data);
btn_query_memeber = view.findViewById(R.id.btn_query_memeber);
btn_scan = view.findViewById(R.id.btn_scan);
btn_use_member = view.findViewById(R.id.btn_use_member);
btn_clear_member = view.findViewById(R.id.btn_use_member);
initTopbar();
initStickyLayout();
btn_query_memeber.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (TextUtils.isEmpty(getTvPhone())){
ed_phone.setError("請輸入會員手機號");
return;
}
if(onLayoutClickListener != null){
onLayoutClickListener.onInputPhone(mDialog,getTvPhone());
}
}
});
btn_scan.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(onLayoutClickListener != null){
onLayoutClickListener.onScanAction(mDialog);
}
}
});
btn_use_member.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
btn_clear_member.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
return view;
}
private void initTopbar() {
mTopBar.setBackgroundColor(ContextCompat.getColor(mContext, R.color.theme_color));
mTopBar.addLeftBackImageButton().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mDialog.dismiss();
}
});
mTopBar.setTitle("使用會員");
}
private void initStickyLayout() {
mLayoutManager = createLayoutManager();
// mSectionLayout.setLayoutManager(mLayoutManager);
}
private RecyclerView.LayoutManager createLayoutManager() {
return new LinearLayoutManager(mContext) {
@Override
public RecyclerView.LayoutParams generateDefaultLayoutParams() {
return new RecyclerView.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
}
};
}
private String getTvPhone(){
return ed_phone.getText().toString();
}
protected int getContentViewLayoutId() {
return R.layout.meal_dialog_use_member;
}
private OnLayoutClickListener onLayoutClickListener;
private OnDismissListener mDismissListener;
public BottomLayoutBuilder setOnLayoutClickListener(OnLayoutClickListener onLayoutClickListener) {
this.onLayoutClickListener = onLayoutClickListener;
return this;
}
public BottomLayoutBuilder setOnDismissListener(OnDismissListener mDismissListener) {
this.mDismissListener = mDismissListener;
return this;
}
public interface OnLayoutClickListener {
void onInputPhone(UseMemberDialog dialog, String phone);
void onScanAction(UseMemberDialog dialog);
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/theme_background_color"
android:orientation="vertical">
<com.qmuiteam.qmui.widget.QMUITopBar
android:id="@+id/topbar"
android:layout_width="match_parent"
android:layout_height="@dimen/head_height"
android:fitsSystemWindows="true"
app:qmui_topbar_title_color="@color/theme_white_color" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/ll_input_phone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/dp_20"
android:orientation="horizontal">
<com.rengwuxian.materialedittext.MaterialEditText
android:id="@+id/ed_phone"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:hint="請輸入手機號"
android:lines="1"
android:textSize="@dimen/sp_14"
android:inputType="number"
android:background="@drawable/table_shape_input_table_number_frame"
app:met_autoValidate="true"
app:met_baseColor="#0056d3"
app:met_clearButton="true"
app:met_floatingLabel="highlight"
app:met_iconPadding="2dp"
app:met_primaryColor="#982360"
app:met_singleLineEllipsis="false" />
<com.qmuiteam.qmui.alpha.QMUIAlphaButton
android:id="@+id/btn_query_memeber"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_40"
android:layout_marginLeft="@dimen/dp_10"
android:background="@color/theme_color"
android:text="查詢"
android:textColor="@color/theme_white_color" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_memeber_info"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/ll_input_phone"
android:layout_above="@+id/btn_scan"/>
<ImageView
android:id="@+id/iv_no_data"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/png_no_record"
android:layout_centerInParent="true"
android:visibility="invisible"/>
<com.qmuiteam.qmui.alpha.QMUIAlphaButton
android:id="@+id/btn_scan"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_40"
android:layout_margin="@dimen/dp_20"
android:layout_alignParentBottom="true"
android:background="@color/theme_color"
android:text="掃碼"
android:textColor="@color/theme_white_color"
android:textSize="@dimen/sp_14"
android:textStyle="bold"/>
<LinearLayout
android:id="@+id/ll_bottom"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_40"
android:layout_alignParentBottom="true"
android:orientation="horizontal"
android:visibility="invisible">
<com.qmuiteam.qmui.alpha.QMUIAlphaButton
android:id="@+id/btn_use_member"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="bottom"
android:layout_weight="1"
android:background="@color/green_400"
android:clickable="true"
android:text="使用會員"
android:textColor="@color/theme_white_color"
android:textSize="@dimen/sp_14" />
<com.qmuiteam.qmui.alpha.QMUIAlphaButton
android:id="@+id/btn_clear_member"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="bottom"
android:layout_weight="1"
android:background="@color/blue_400"
android:clickable="true"
android:visibility="visible"
android:text="清除"
android:textColor="@color/theme_white_color"
android:textSize="@dimen/sp_14" />
</LinearLayout>
</RelativeLayout>
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-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"
android:id="@+id/rl_container" android:id="@+id/rl_container"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
...@@ -21,12 +22,25 @@ ...@@ -21,12 +22,25 @@
android:id="@+id/tv_soldout" android:id="@+id/tv_soldout"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentRight="true" android:layout_alignParentLeft="true"
android:layout_gravity="right" android:layout_gravity="right"
android:background="@drawable/meal_selector_soldout" android:background="@drawable/meal_shape_remaining_number_bg"
android:visibility="invisible"
android:text="sold" android:text="sold"
android:textAppearance="?android:attr/textAppearanceSmall" /> android:textAppearance="?android:attr/textAppearanceSmall" />
<com.gingersoft.gsa.cloud.ui.view.BeveLabelView
android:id="@+id/blv_soldout"
android:layout_width="25dp"
android:layout_height="25dp"
app:label_corner="8dp"
app:label_length="15dp"
app:label_bg_color="#D10035"
app:label_mode="left_top"
app:label_text="暫停"
app:label_text_color="@color/theme_white_color"
app:label_text_size="@dimen/sp_8" />
<ImageView <ImageView
android:id="@+id/iv_qty_sold" android:id="@+id/iv_qty_sold"
android:layout_width="@dimen/dp_30" android:layout_width="@dimen/dp_30"
......
<?xml version="1.0" encoding="utf-8"?>
<com.qmuiteam.qmui.alpha.QMUIAlphaRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/rl_container"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/tv_food_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginRight="1px"
android:layout_marginTop="1px"
android:text="food"
android:gravity="center"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@drawable/meal_selector_food_backgroup" />
<TextView
android:id="@+id/tv_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ui_shape_red_oval"
android:layout_alignParentRight="true"
android:gravity="center"
android:text="number"
android:visibility="gone"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@color/theme_white_color" />
<TextView
android:id="@+id/tv_soldout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentBottom="true"
android:layout_gravity="right"
android:drawablePadding="@dimen/dp_1"
android:paddingTop="@dimen/dp_1"
android:paddingBottom="@dimen/dp_1"
android:paddingLeft="@dimen/dp_1"
android:paddingRight="@dimen/dp_6"
android:layout_marginRight="2px"
android:layout_marginTop="2px"
android:visibility="invisible"
android:textColor="@color/theme_white_color"
android:text="sold"
android:textStyle="bold"/>
<com.gingersoft.gsa.cloud.ui.view.BeveLabelView
android:id="@+id/blv_soldout"
android:layout_width="25dp"
android:layout_height="25dp"
app:label_corner="8dp"
app:label_length="15dp"
app:label_bg_color="#D10035"
app:label_mode="left_top"
app:label_text="暫停"
app:label_text_color="@color/theme_white_color"
app:label_text_size="@dimen/sp_8" />
<!--<TextView-->
<!--android:id="@+id/tv_status"-->
<!--android:layout_width="wrap_content"-->
<!--android:layout_height="wrap_content"-->
<!--android:layout_alignParentRight="true"-->
<!--android:layout_gravity="right"-->
<!--android:layout_marginRight="3px"-->
<!--android:layout_marginTop="2px"-->
<!--android:background="@drawable/selector_white_rect"-->
<!--android:text="sold" />-->
<ImageView
android:id="@+id/iv_qtySold"
android:layout_width="@dimen/dp_40"
android:layout_height="@dimen/dp_20"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_gravity="right"
android:layout_marginRight="1px"
android:layout_marginTop="1px"
android:src="@drawable/sold"
android:text="sold" />
</com.qmuiteam.qmui.alpha.QMUIAlphaRelativeLayout>
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<com.qmuiteam.qmui.alpha.QMUIAlphaRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" <com.qmuiteam.qmui.alpha.QMUIAlphaRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/rl_container" android:id="@+id/rl_container"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
...@@ -20,6 +21,7 @@ ...@@ -20,6 +21,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/ui_shape_red_oval" android:background="@drawable/ui_shape_red_oval"
android:layout_alignParentRight="true"
android:gravity="center" android:gravity="center"
android:text="number" android:text="number"
android:visibility="gone" android:visibility="gone"
...@@ -45,6 +47,18 @@ ...@@ -45,6 +47,18 @@
android:text="sold" android:text="sold"
android:textStyle="bold"/> android:textStyle="bold"/>
<com.gingersoft.gsa.cloud.ui.view.BeveLabelView
android:id="@+id/blv_soldout"
android:layout_width="40dp"
android:layout_height="40dp"
app:label_corner="10dp"
app:label_length="23dp"
app:label_bg_color="#D10035"
app:label_mode="left_top"
app:label_text="暫停"
app:label_text_color="@color/theme_white_color"
app:label_text_size="@dimen/sp_10" />
<!--<TextView--> <!--<TextView-->
<!--android:id="@+id/tv_status"--> <!--android:id="@+id/tv_status"-->
<!--android:layout_width="wrap_content"--> <!--android:layout_width="wrap_content"-->
......
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/ui_shape_red_oval" android:background="@drawable/ui_shape_red_oval"
android:layout_alignParentRight="true"
android:gravity="center" android:gravity="center"
android:text="number" android:text="number"
android:textAppearance="?android:attr/textAppearanceSmall" android:textAppearance="?android:attr/textAppearanceSmall"
...@@ -44,6 +45,18 @@ ...@@ -44,6 +45,18 @@
android:textStyle="bold" android:textStyle="bold"
android:visibility="invisible" /> android:visibility="invisible" />
<com.gingersoft.gsa.cloud.ui.view.BeveLabelView
android:id="@+id/blv_soldout"
android:layout_width="35dp"
android:layout_height="35dp"
app:label_corner="8dp"
app:label_length="20dp"
app:label_bg_color="#D10035"
app:label_mode="left_top"
app:label_text="暫停"
app:label_text_color="@color/theme_white_color"
app:label_text_size="@dimen/sp_10" />
<View <View
android:id="@+id/right_line" android:id="@+id/right_line"
android:layout_width="2px" android:layout_width="2px"
......
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