Commit aa04da1b by 宁斌

增加折扣邏輯

parent 5dd12608
......@@ -101,6 +101,7 @@ dependencies {
exclude module: 'support-annotations'
}
api rootProject.ext.dependencies['rxerrorhandler2']
api rootProject.ext.dependencies["rxbinding"]
//network
api(rootProject.ext.dependencies["retrofit"]) {
exclude module: 'okhttp'
......
......@@ -61,7 +61,7 @@ public class UIStyleExtendedConfiguration {
.remark("套餐高度")
.build();
private ExpandInfoSetting discountHeight = ExpandInfoSetting.builder()
.valueInt(80)
.valueInt(90)
.remark("餐牌折扣Item高度")
.build();
private ExpandInfoSetting LayoutQtyHeight = ExpandInfoSetting.builder()
......@@ -100,7 +100,7 @@ public class UIStyleExtendedConfiguration {
.remark("細項字體大小")
.build();
private ExpandInfoSetting discountFontSize = ExpandInfoSetting.builder()
.valueInt(14)
.valueInt(16)
.remark("折扣字體大小")
.build();
private ExpandInfoSetting soldoutFoodFlagFontSize = ExpandInfoSetting.builder()
......
......@@ -9,6 +9,9 @@ package com.gingersoft.gsa.cloud.patterns;
*/
public interface Strategy<T> {
/**具體行為實現方法*/
/**
* 具體行為實現方法
*/
void action(T t);
}
......@@ -47,7 +47,7 @@ public class OrderPayView extends LinearLayout {
/**
* 服務費金額
*/
private double serviceCharge = 0.0;
private Double serviceCharge = 0.0;
private MemberInfo memberInfo;
......@@ -99,7 +99,7 @@ public class OrderPayView extends LinearLayout {
this.totalAmount = totalAmount;
}
public void setServiceCharge(double serviceCharge) {
public void setServiceCharge(Double serviceCharge) {
this.serviceCharge = serviceCharge;
}
......
......@@ -189,39 +189,30 @@ public class CommonTipDialog {
* @param context
* @param title
* @param placeholder
* @param c
* @param object
* @param methodName
* @param parameterTypes
* @param parameters
*/
public static void showEditTextDialog(Activity context, String title, String placeholder, Class c, Object object, String methodName, Class[] parameterTypes, Object[] parameters) {
public static void showEditDialog(Activity context, String title, String placeholder,int inputType, OnEditTextListener onEditTextListener) {
final QMUIDialog.EditTextDialogBuilder dialogBuilder = new QMUIDialog.EditTextDialogBuilder(context);
dialogBuilder.setTitle(title);
dialogBuilder.setPlaceholder(placeholder);
dialogBuilder.setInputType(InputType.TYPE_CLASS_TEXT);
dialogBuilder.setInputType(inputType);
dialogBuilder.addAction(0, "確認", QMUIDialogAction.ACTION_PROP_NEGATIVE, (dialog, index) -> {
dialog.dismiss();
if (TextUtils.isEmpty(methodName)) {
return;
}
try {
Method method = c.getDeclaredMethod(methodName, parameterTypes);
method.setAccessible(true);
method.invoke(object, parameters);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
if (onEditTextListener != null) {
CharSequence text = dialogBuilder.getEditText().getText();
onEditTextListener.inputText(text.toString());
}
});
if (!TextUtils.isEmpty(methodName)) {
dialogBuilder.addAction("取消", (dialog, index) -> dialog.dismiss());
}
dialogBuilder.create(R.style.MyDialogTheme2).show();
dialogBuilder.create(R.style.MyEditDialogTheme).show();
}
private OnEditTextListener onEditTextListener;
public void setOnEditTextListener(OnEditTextListener onEditTextListener) {
this.onEditTextListener = onEditTextListener;
}
public interface OnEditTextListener {
void inputText(String text);
}
}
......@@ -177,6 +177,17 @@
<item name="qmui_dialog_menu_item_style">@style/DialogTheme2MenuItemStyle</item>
</style>
<style name="MyEditDialogTheme" parent="QMUI.Dialog.EditContent">
<!-- <item name="qmui_dialog_wrapper_style">@style/dialog_wrapper_style_63</item>-->
<item name="qmui_dialog_title_style">@style/DialogTheme2TitleStyle</item>
<item name="qmui_dialog_action_container_style">@style/DialogTheme2ActionContainerStyle
</item>
<item name="qmui_dialog_action_style">@style/DialogTheme2ActionStyle</item>
<item name="qmui_dialog_message_content_style">@style/DialogTheme2MessageContentStyle</item>
<item name="qmui_dialog_menu_container_style">@style/DialogTheme2MenuContainerStyle</item>
<item name="qmui_dialog_menu_item_style">@style/DialogTheme2MenuItemStyle</item>
</style>
<style name="ReleaseDialogTheme" parent="MyDialogTheme2">
<!-- <item name="qmui_dialog_wrapper_style">@style/QMUI.Dialog.Wrapper</item>-->
<item name="qmui_dialog_message_content_style">@style/ReleaseMessageContentStyle</item>
......
......@@ -79,6 +79,10 @@ ext {
"rxpermissions2" : "com.tbruyelle.rxpermissions2:rxpermissions:0.9.5@aar",
"rxerrorhandler2" : "me.jessyan:rxerrorhandler:2.1.1",
//rxbinding
"rxbinding" : "com.jakewharton.rxbinding4:rxbinding:4.0.0",
//tools
"dagger2" : "com.google.dagger:dagger:${version["dagger2SdkVersion"]}",
"dagger2-android" : "com.google.dagger:dagger-android:${version["dagger2SdkVersion"]}",
......
......@@ -51,7 +51,7 @@ android {
/**
* 版本号
*/
schemaVersion 20
schemaVersion 21
/**
* greendao输出dao的数据库操作实体类文件夹(相对路径 包名+自定义路径名称,包将创建于包名的直接路径下)
*/
......
......@@ -14,10 +14,10 @@ import org.greenrobot.greendao.identityscope.IdentityScopeType;
// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
/**
* Master of DAO (schema version 20): knows all DAOs.
* Master of DAO (schema version 21): knows all DAOs.
*/
public class DaoMaster extends AbstractDaoMaster {
public static final int SCHEMA_VERSION = 20;
public static final int SCHEMA_VERSION = 21;
/** Creates underlying database table using DAOs. */
public static void createAllTables(Database db, boolean ifNotExists) {
......
......@@ -42,8 +42,8 @@ public class OrderBean {
public OrderBean(OrderBean orderBean) {
this.id = orderBean.id;
this.status = orderBean.status;
this.orderNo = orderBean.orderNo;
this.status = orderBean.status;
this.person = orderBean.person;
this.memberInfo = orderBean.memberInfo;
this.discountDetails = orderBean.discountDetails;
......@@ -452,7 +452,7 @@ public class OrderBean {
public static class RestaurantDiscountVO implements Serializable{
private long id;
private int type;
private float discountValue;
private int discountValue;
private String remark;
private double discountAmount;
......@@ -472,11 +472,11 @@ public class OrderBean {
this.type = type;
}
public float getDiscountValue() {
public int getDiscountValue() {
return discountValue;
}
public void setDiscountValue(float discountValue) {
public void setDiscountValue(int discountValue) {
this.discountValue = discountValue;
}
......
......@@ -256,12 +256,12 @@ public class OrderDiscount {
*/
public static double calculationDiscount(Discount discount, double sourcePrice) {
double discountPrice;
if (discount.getType() == 0) {
if (discount.getType() == Discount.DISCOUNT_TYPE_AMOUNT) {
//金額折扣
discountPrice = discount.getAmount();
} else {
//百分比折扣
discountPrice = MoneyUtil.divide(MoneyUtil.multiply(sourcePrice, discount.getDiscount_value()), 100).doubleValue();
discountPrice = MoneyUtil.divide(MoneyUtil.multiply(sourcePrice, discount.getDiscountValue()), 100).doubleValue();
}
if (sourcePrice < discountPrice) {
//折扣金額不能超出總額
......
......@@ -22,8 +22,6 @@ public class DiscountItem extends BillItem {
super(name, money, status,type);
}
public void updateBillItem(int type) {
}
......
......@@ -18,6 +18,7 @@ import com.jess.arms.utils.Preconditions;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import lombok.Getter;
import lombok.Setter;
......@@ -48,6 +49,7 @@ public class ShoppingCart {
protected List<OrderDetail> orderCommodityList = new ArrayList<>();
/**
* 賬單項列表
* @see CopyOnWriteArrayList 賬單計算放在子線程中保證同步問題使用CopyOnWriteArrayList
*/
protected List<BillItem> billItemList = new ArrayList<>();
/**
......@@ -81,8 +83,8 @@ public class ShoppingCart {
private ShoppingCartNumberChange cartNumberChange = new ShoppingCartNumberChange(orderCommodityList);
public void changeNumber(int number,OrderDetail orderFood, OrderDetail orderMainFood,int select_Full_start_position,int select_Full_end_position, ShoppingCartNumberChange.OnNumberChangeListener listener) {
cartNumberChange.changeNumber(number,orderFood,orderMainFood,select_Full_start_position,select_Full_end_position,listener);
public void changeNumber(int number, OrderDetail orderFood, OrderDetail orderMainFood, int select_Full_start_position, int select_Full_end_position, ShoppingCartNumberChange.OnNumberChangeListener listener) {
cartNumberChange.changeNumber(number, orderFood, orderMainFood, select_Full_start_position, select_Full_end_position, listener);
}
/**
......@@ -250,7 +252,8 @@ public class ShoppingCart {
private void updateDiscountBillItem(List<MultyDiscount> multyDiscountArrays) {
byte discountType = BillItem.NOMAL_DISCOUNT_TYPE;
for (MultyDiscount discount : multyDiscountArrays) {
for (int i = multyDiscountArrays.size() - 1; i >= 0; i--) {
MultyDiscount discount = multyDiscountArrays.get(i);
if (discount instanceof NomalDiscount) {
discountType = BillItem.NOMAL_DISCOUNT_TYPE;
} else if (discount instanceof MemberDiscount) {
......@@ -279,7 +282,7 @@ public class ShoppingCart {
Discount discount = new Discount();
discount.setRemark("9折");
discount.setType(1);
discount.setDiscount_value(10);
discount.setDiscountValue(10);
multyDiscounts = shoppingCart.addNomalDiscountToLinked(multyDiscounts, discount, 0);
shoppingCart.addMultyDiscount(multyDiscounts);
......
......@@ -367,7 +367,7 @@ public class MealCommodity implements Commodity {
private static Discount getDiscountItem(OrderBean.OrderDetailsBean.RestaurantDiscountVO discountBean) {
Discount discount = new Discount();
discount.setId(discountBean.getId());
discount.setDiscount_value(discountBean.getDiscountValue());
discount.setDiscountValue(discountBean.getDiscountValue());
discount.setAmount(discountBean.getDiscountAmount());
discount.setType(discountBean.getType());
discount.setRemark(discountBean.getRemark());
......
......@@ -2,6 +2,7 @@ package com.gingersoft.gsa.cloud.base.order.commodity;
import com.gingersoft.gsa.cloud.base.order.bean.OrderBean;
import com.gingersoft.gsa.cloud.base.order.bean.discount.OrderDiscount;
import com.gingersoft.gsa.cloud.base.order.discount.NomalDiscount;
import com.gingersoft.gsa.cloud.base.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.database.bean.ComboItem;
......@@ -1073,7 +1074,7 @@ public class OrderDetail implements Commodity, Serializable {
private static Discount getDiscountItem(OrderBean.OrderDetailsBean.RestaurantDiscountVO discountBean) {
Discount discount = new Discount();
discount.setId(discountBean.getId());
discount.setDiscount_value(discountBean.getDiscountValue());
discount.setDiscountValue(discountBean.getDiscountValue());
discount.setAmount(discountBean.getDiscountAmount());
discount.setType(discountBean.getType());
discount.setRemark(discountBean.getRemark());
......@@ -1238,7 +1239,7 @@ public class OrderDetail implements Commodity, Serializable {
*/
public static OrderDetail discountTransOrderDetail(Discount discount, boolean isNew, long id, double sourcePrice) {
double discountPrice = OrderDiscount.calculationDiscount(discount, sourcePrice);
double discountPrice = NomalDiscount.calculationDiscount(discount, sourcePrice);
OrderDetail orderDetail = new OrderDetail();
orderDetail.setProductName(discount.getRemark());
......
......@@ -13,20 +13,20 @@ import lombok.Getter;
* 描述: 整單折扣{@link Discount}
*/
@Getter
public class NomalDiscount extends MultyDiscount{
public class NomalDiscount extends MultyDiscount {
private Discount discount;
public NomalDiscount(String name,int status,MultyDiscount nextMultyDiscount,Discount discount) {
super(name,status,nextMultyDiscount);
public NomalDiscount(String name, int status, MultyDiscount nextMultyDiscount, Discount discount) {
super(name, status, nextMultyDiscount);
this.discount = discount;
}
@Override
public double calculate(double money) {
if(discount != null){
if (discount != null) {
discountMoney = calculationDiscount(discount, money);
money = MoneyUtil.sum(money,discountMoney);
money = MoneyUtil.sum(money, discountMoney);
}
return super.calculate(money);
}
......@@ -40,12 +40,16 @@ public class NomalDiscount extends MultyDiscount{
*/
public static double calculationDiscount(Discount discount, double sourceMoney) {
double discountMoney;
if (discount.getType() == 0) {
if (discount.getType() == Discount.DISCOUNT_TYPE_RATE) {
//百分比折扣
discountMoney = MoneyUtil.divide(MoneyUtil.multiply(sourceMoney, discount.getDiscountValue()), 100).doubleValue();
} else {
//金額折扣
discountMoney = discount.getAmount();
} else {
//百分比折扣
discountMoney = MoneyUtil.divide(MoneyUtil.multiply(sourceMoney, discount.getDiscount_value()), 100).doubleValue();
}
if (Double.doubleToLongBits(discount.getDiscountCap()) != 0 && discount.getDiscountCap() < discountMoney) {
//不能大於折扣上限
discountMoney = discount.getDiscountCap();
}
if (sourceMoney < discountMoney) {
//折扣金額不能超出總額
......
package com.gingersoft.gsa.cloud.table.mvp.model.discount;
import com.gingersoft.gsa.cloud.base.order.discount.MultyDiscount;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.patterns.Strategy;
/**
* @author : bin
* @create date: 2020-10-27
* @update date: 2020-10-27
* @description:
*/
public interface DiscountAction{
}
package com.gingersoft.gsa.cloud.table.mvp.model.discount;
import android.app.Activity;
import android.content.Context;
import android.text.InputType;
import com.gingersoft.gsa.cloud.base.order.discount.MultyDiscount;
import com.gingersoft.gsa.cloud.base.order.discount.NomalDiscount;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.patterns.Strategy;
import com.gingersoft.gsa.cloud.table.mvp.model.table.action.TableAction;
import com.gingersoft.gsa.cloud.ui.view.AddKeyBoard;
import com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog;
import java.util.List;
/**
* @author : bin
* @create date: 2020-10-27
* @update date: 2020-10-27
* @description:
*/
public class NomalDiscountAction implements Strategy<Discount> {
public Context mContext;
private List<NomalDiscount> mNomalDiscountList;
public NomalDiscountAction(Context context, List<NomalDiscount> nomalDiscountList) {
this.mContext = context;
this.mNomalDiscountList = nomalDiscountList;
}
@Override
public void action(Discount discount) {
for (NomalDiscount nomalDiscount : mNomalDiscountList) {
Discount item = nomalDiscount.getDiscount();
if () {
}
}
if (discount.getOnlyOnce() == 1) {
//此折扣只一次
return;
}
if (discount.getExclusive() == 1) {
//獨佔折扣
}
switch (discount.getType()) {
case Discount.DISCOUNT_TYPE_AMOUNT:
case Discount.DISCOUNT_TYPE_RATE:
break;
case Discount.DISCOUNT_TYPE_CUSTOM_AMOUNT:
showCustomAmountDialog(discount);
break;
case Discount.DISCOUNT_TYPE_KEYBOARD:
showKeyboardDialog(discount);
break;
case Discount.DISCOUNT_TYPE_FREE_SERVICE_CHARGE:
break;
default:
break;
}
}
private void showCustomAmountDialog(Discount discount) {
CommonTipDialog.showEditDialog((Activity) mContext, discount.getRemark(), "請輸入折扣金額", InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL, new CommonTipDialog.OnEditTextListener() {
@Override
public void inputText(String text) {
}
});
}
private void showKeyboardDialog(Discount discount) {
}
}
......@@ -20,8 +20,8 @@ public abstract class TableAction implements Strategy<TableBean.DataBean> {
protected String actionHint;
protected String actionContent;
public TableAction(Context mContext) {
this.mContext = mContext;
public TableAction(Context context) {
this.mContext = context;
}
public TableAction(Context context, String actionTitle, String actionHint, String actionContent) {
......
package com.gingersoft.gsa.cloud.table.mvp.presenter;
import android.app.Application;
import android.text.InputType;
import android.text.TextUtils;
import android.util.SparseArray;
import android.view.View;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.aspectj.XClickUtil;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
......@@ -24,12 +26,14 @@ import com.gingersoft.gsa.cloud.base.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.base.utils.RestaurantExpandInfoUtils;
import com.gingersoft.gsa.cloud.base.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.patterns.Strategy;
import com.gingersoft.gsa.cloud.table.R;
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.SoldoutCtrFood;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.AddOrderRequest;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.CreateOrderRequest;
import com.gingersoft.gsa.cloud.table.mvp.model.discount.NomalDiscountAction;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.ComboAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.DiscountAdapter;
......@@ -57,6 +61,7 @@ import com.jess.arms.integration.AppManager;
import com.jess.arms.utils.RxLifecycleUtils;
import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
import com.qmuiteam.qmui.widget.dialog.QMUIDialogBuilder;
import org.simple.eventbus.Subscriber;
......@@ -139,15 +144,17 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
*/
private List<SoldoutCtrFood> mSoldoutCtrList = new ArrayList<>();
private NomalDiscountAction mNomalDiscountAction;
private OrderDetail mCurrentOrderDetailBean;
private boolean RvMealClicked;
@Inject
public MealStandPresenter(MealStandContract.Model model, MealStandContract.View rootView) {
super(model, rootView);
this.IActivity = (MealStandActivity) rootView;
// initBillItem();
// updateBillInfo();
this.mNomalDiscountAction = new NomalDiscountAction(IActivity,mShoppingCart.getMultyDiscountList());
}
@Override
......@@ -203,11 +210,6 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
if (mSelectMealAdapter != null) {
mRootView.setSelectFoodAdapter(mSelectMealAdapter);
}
// myOrderManage.setSelectMealAdapter(mSelectMealAdapter);
// if (mFoodGroupAdapter == null) {
// mFoodGroupAdapter = new FoodGroupAdapter(IActivity, mFoodGroupList);
// mRootView.setFoodGroupAdapter(mFoodGroupAdapter);
// }
if (mFoodAdapter == null) {
mFoodAdapter = new FoodAdapter(IActivity, mFoodList, 1);
mRootView.setFoodAdapter(mFoodAdapter);
......@@ -246,7 +248,6 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
RvMealClicked = true;
//设置当前操作的食品
mCurrentOrderDetailBean = datasBean;
mSelectMealAdapter.setMyOrderManageSelectPosition();
loadComboData(datasBean, true);
}
......@@ -351,22 +352,43 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
@Override
public void onItemClick(View view, int viewType, Object data, int position) {
Discount datasBean = (Discount) data;
Discount discountBean = (Discount) data;
mRootView.recordOperat(true);
if (XClickUtil.isFastDoubleClick(view, 1000)) {
return;
}
if (!discountConditionFilter(datasBean)) {
if (!discountConditionFilter(discountBean)) {
return;
}
if (cutOutDiscount() == -100) {
return;
}
addDiscountItem(datasBean);
//更新賬單金額
updateBillInfo();
if (discountBean.getType() == Discount.DISCOUNT_TYPE_CUSTOM_AMOUNT) {
showCustomAmountDialog(discountBean);
} else {
addDiscountItem(discountBean);
}
// mNomalDiscountAction.action(discountBean, new Strategy.CallBackListener() {
//
// @Override
// public void callBack(Object o) {
// addDiscountItem((Discount) o);
// }
// });
// new NomalDiscountAction().
}
});
}
private void showCustomAmountDialog(Discount discountBean) {
CommonTipDialog.showEditDialog(IActivity, discountBean.getRemark(), "請輸入折扣金額", InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL, new CommonTipDialog.OnEditTextListener() {
@Override
public void inputText(String text) {
discountBean.setType(Discount.DISCOUNT_TYPE_AMOUNT);
discountBean.setAmount(Double.parseDouble(text));
addDiscountItem(discountBean);
}
});
}
......@@ -458,6 +480,9 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
mCurrentOrderDetailBean = OrderDetail.discountTransOrderDetail(datasBean, true, id, getDisountSourcePrice());
int addPosition = mSelectMealAdapter.addFoodItem(mCurrentOrderDetailBean);
mRootView.setMealRvScrollToPosition(addPosition);
//更新賬單金額
updateBillInfo();
}
private void loadComboData(OrderDetail food, boolean isSelectedMeal) {
......@@ -784,7 +809,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
}
@Override
public void createOrder(boolean isPrint, Class afterToActivity) {
public void createOrder(boolean isPrint, Class<?> afterToActivity) {
CreateOrderRequest request = getCreateOrderRequest(getOrderFoodLists());
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(request));
String json = GsonUtils.GsonString(request);
......@@ -804,16 +829,16 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
if (info.getData() != null) {
if (info.getData() instanceof Double) {
//未上線,避免正式版閃退
setOrderId((Double) info.getData());
mDoshokuOrder.setOrderNo(((Double) info.getData()).longValue() + "");
setOrderId((double) info.getData());
setOrderNo(((Double) info.getData()).longValue() + "");
} else {
LinkedTreeMap tm = (LinkedTreeMap) info.getData();
for (Object o : tm.keySet()) {
String key = (String) o;
if (key.equals("id")) {
setOrderId((Double) tm.get(key));
setOrderId((double) tm.get(key));
} else if (key.equals("orderNo")) {
mDoshokuOrder.setOrderNo((String) tm.get(key));
setOrderNo((String) tm.get(key));
}
}
}
......@@ -829,7 +854,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
}
@Override
public void addOrderFood(boolean isPrint, Class afterToActivity) {
public void addOrderFood(boolean isPrint, Class<?> afterToActivity) {
List<OrderDetail> foodLists = getOrderFoodLists();
for (OrderDetail food : foodLists) {
food.setOrderId(mDoshokuOrder.getOrderId());
......
......@@ -18,6 +18,8 @@ import com.gingersoft.gsa.cloud.base.order.billItem.DiscountItem;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.bean.discount.CouponDiscountBean;
import com.gingersoft.gsa.cloud.base.order.bean.discount.CouponDiscountResult;
import com.gingersoft.gsa.cloud.base.order.discount.MultyDiscount;
import com.gingersoft.gsa.cloud.base.order.discount.NomalDiscount;
import com.gingersoft.gsa.cloud.base.order.order.BaseOrder;
import com.gingersoft.gsa.cloud.base.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.base.table.bean.TableBean;
......@@ -278,7 +280,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
}
@Override
public void createOrder(boolean isPrint, Class afterToActivity) {
public void createOrder(boolean isPrint, Class<?> afterToActivity) {
CreateOrderRequest request = getCreateOrderRequest(getOrderFoodLists());
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(request));
String json = GsonUtils.GsonString(request);
......@@ -299,7 +301,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
}
@Override
public void addOrderFood(boolean isPrint, Class afterToActivity) {
public void addOrderFood(boolean isPrint, Class<?> afterToActivity) {
List<OrderDetail> foodLists = getOrderFoodLists();
for (OrderDetail food : foodLists) {
food.setOrderId(mDoshokuOrder.getOrderId());
......@@ -322,7 +324,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
});
}
private void sendOrderRespose(BaseOrderRespose info, boolean isPrint, Class afterToActivity) {
private void sendOrderRespose(BaseOrderRespose info, boolean isPrint, Class<?> afterToActivity) {
if (info == null) {
if (isPrint) {
printOrder(mTableInfo.getId(), true);
......@@ -352,7 +354,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
/**
* 送單打印上菜纸
*/
private void printSendOrder(Class afterToActivity) {
private void printSendOrder(Class<?> afterToActivity) {
if (afterToActivity != null) {
mRootView.startActivityForResult(OrderContentActivity.BILL_CODE, afterToActivity, null);
}
......@@ -456,7 +458,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
if (memberInfo != null) {
updateBillItem = true;
mDoshokuOrder.setMemberInfo(memberInfo);
mShoppingCart.addMultyDiscount(mShoppingCart.createMemberDiscount(memberInfo,BillItem.BILL_ITEM_NO_ORDER_STATUS));
mShoppingCart.addMultyDiscount(mShoppingCart.createMemberDiscount(memberInfo, BillItem.BILL_ITEM_NO_ORDER_STATUS));
}
CouponDiscountBean couponBean = couponResult.getCouponBean();
if (couponBean != null) {
......@@ -464,7 +466,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
return;
}
updateBillItem = true;
mShoppingCart.addMultyDiscount(mShoppingCart.createCouponDiscount(couponBean,BillItem.BILL_ITEM_NO_ORDER_STATUS));
mShoppingCart.addMultyDiscount(mShoppingCart.createCouponDiscount(couponBean, BillItem.BILL_ITEM_NO_ORDER_STATUS));
}
if (updateBillItem) {
updateBillInfo();
......@@ -745,7 +747,17 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
mDiscountDialog.setOnClickListener(new DiscountDialog.Builder.OnClickListener() {
@Override
public void onItemClick(Discount item, int position) {
mShoppingCart.addMultyDiscount(mShoppingCart.createNomalDiscount(item,BillItem.BILL_ITEM_NO_ORDER_STATUS));
if (item.getOnlyOnce() == 1) {
//此折扣只一次
return;
}
if (item.getExclusive() == 1) {
//獨佔折扣
}
MultyDiscount nomalDiscount = mShoppingCart.createNomalDiscount(item, BillItem.BILL_ITEM_NO_ORDER_STATUS);
mShoppingCart.addMultyDiscount(nomalDiscount);
updateBillInfo();
}
......@@ -757,8 +769,6 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
}
List<Discount> discountList = filterDiscountByType(mModel.queryDB_DiscountList("1"), "1");
mDiscountDialog.addItems(discountList);
// mDiscountDialog.addItems(getDiscountList());
// mDiscountDialog.setTopBarBagcolor(mFunctionList.get(4).getBackgroundColor());
mDiscountDialog.build().show();
}
......
......@@ -429,6 +429,8 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
//設置用餐人數
openTableBean.setPerson(orderBean.getPerson());
//緩存訂單信息
doshokuOrder.setOrderId(orderBean.getId());
doshokuOrder.setOrderNo(orderBean.getOrderNo());
doshokuOrder.setOrderPlaced(new OrderBean(orderBean));
doshokuOrder.getShoppingCart().addCommodityList(OrderDetail.orderTransOrderDetails(mealCommoditysBeans));
if (orderBean.getMemberInfo() != null) {
......
......@@ -39,6 +39,7 @@ import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import javax.inject.Inject;
......@@ -214,9 +215,9 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
});
}
private List<BillItem> getOrderMoneyList(OrderDetailItem orderDetailItem, double totalMoney) {
private ArrayList<BillItem> getOrderMoneyList(OrderDetailItem orderDetailItem, double totalMoney) {
List<SectionTextItem3> printOrderMoneyList = new ArrayList<>();
List<BillItem> printBillOrderMoneyList = new ArrayList<>();
ArrayList<BillItem> printBillOrderMoneyList = new ArrayList<>();
SectionTextItem3 serviceAmountSection = getOrderServiceAmountSection(orderDetailItem);
if (serviceAmountSection != null) {
printOrderMoneyList.add(serviceAmountSection);
......
......@@ -22,6 +22,7 @@ import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.ScrollView;
import android.widget.TextView;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.aspectj.XClickUtil;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
......@@ -62,6 +63,7 @@ import com.gingersoft.gsa.cloud.ui.view.RecyclerViewNoBugLinearLayoutManager;
import com.gingersoft.gsa.cloud.ui.view.SearchKeyBoardView;
import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog;
import com.gingersoft.gsa.cloud.zxing.MipcaCaptureActivity;
import com.jakewharton.rxbinding4.view.RxView;
import com.jess.arms.base.BaseFragmentActivity;
import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.di.component.AppComponent;
......@@ -250,6 +252,11 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
private int mCurrentViewMode;
private boolean isPluMode = false;
/**
* 是否已初始化 已送單的折扣
*/
private boolean initSentOrderDiscount = false;
private ImageView[] ivPoints;
private int mPageIndex;
private int totalPage;
......@@ -1304,7 +1311,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
return;
}
TableBean.DataBean dataBean = DoshokuOrder.getInstance().getOpenTableInfo();
mPresenter.queryMember(1, qrCodeResult, GsaCloudApplication.getGsPosShopId(),dataBean.getId(),dataBean.getTableNumber());
mPresenter.queryMember(1, qrCodeResult, GsaCloudApplication.getGsPosShopId(), dataBean.getId(), dataBean.getTableNumber());
}
}
......@@ -1348,4 +1355,11 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
}
public boolean isInitSentOrderDiscount() {
return initSentOrderDiscount;
}
public void setInitSentOrderDiscount(boolean initSentOrderDiscount) {
this.initSentOrderDiscount = initSentOrderDiscount;
}
}
......@@ -52,6 +52,7 @@ import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import butterknife.BindView;
import butterknife.OnClick;
......@@ -534,8 +535,8 @@ public class OrderDetailActivity extends BaseActivity<OrderDetailPresenter> impl
}
private List<BillItem> getOrderMoneyList() {
List<BillItem> billOrderMoneyList = new ArrayList<>();
private ArrayList<BillItem> getOrderMoneyList() {
ArrayList<BillItem> billOrderMoneyList = new ArrayList<>();
if (mOrderCenterMoneyList != null) {
for (SectionTextItem3 item : mOrderCenterMoneyList) {
BillItem billItem = new BillOrderMoney();
......
......@@ -32,15 +32,11 @@ public class DiscountAdapter extends DefaultAdapter<Discount> {
private int fontSize;
private int colHeight;
private int currentSelectPosition = 0;
public DiscountAdapter(Context context, List<Discount> infos) {
super(infos);
this.mContext = context;
fontSize = GsaCloudApplication.uiStyleConfiguration.getDiscountFontSizeValue();
colHeight = GsaCloudApplication.uiStyleConfiguration.getDiscountHeightValue();
}
@Override
......
......@@ -175,19 +175,10 @@ public class FoodAdapter extends DefaultAdapter<Food> {
private void setStatus(Food datasBean) {
tv_soldout.setMaxHeight(mSoldoutFoodFlagHeight);
tv_soldout.setMinHeight(mSoldoutFoodFlagHeight);
tv_soldout.setTextSize(mSoldoutFoodFlagFontSize);
// tv_soldout.setTextColor(Color.parseColor("#000000"));
tv_soldout.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.meal_shape_remaining_number_bg));
// tv_soldout.setMinWidth(20);
// tv_soldout.setTextSize(10);
// tv_soldout.setGravity(Gravity.CENTER);
// RelativeLayout.LayoutParams lp2 = new RelativeLayout.LayoutParams(new ViewGroup.MarginLayoutParams(60, 40));
// lp2.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
// lp2.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
// tv_soldout.setLayoutParams(lp2);
tv_soldout.setGravity(Gravity.CENTER);
tv_soldout.setVisibility(View.INVISIBLE);
iv_qtySold.setVisibility(View.INVISIBLE);
......
......@@ -176,7 +176,6 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
}
private void setViewVisibility(OrderDetail datasBean) {
if (datasBean.getAblediscount() == 0) {
tv_D.setVisibility(View.VISIBLE);
} else {
......@@ -343,7 +342,6 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
setSelectPosition(select_position);
setIndex();
setItemNo(datasBean);
setMyOrderManageSelectPosition();
return addPosition;
}
......@@ -434,8 +432,6 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
setSelectPosition(select_position);
setMyOrderManageSelectPosition();
mMealStandActivity.showViewModeVisibility(MealConstant.food_group_ViewMode, MealConstant.food_ViewMode);
}
......@@ -460,7 +456,6 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
setIndex();
setSelectPosition(select_position);
setMyOrderManageSelectPosition();
}
/**
......@@ -483,8 +478,6 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
setSelectPosition(select_position);
setMyOrderManageSelectPosition();
if (mMealStandActivity != null) {
mMealStandActivity.showViewModeVisibility(MealConstant.food_group_ViewMode, MealConstant.food_ViewMode);
}
......@@ -583,7 +576,6 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
}
setIndex();
setSelectPosition(select_position);
setMyOrderManageSelectPosition();
}
private void removeIntactFoodItem() {
......@@ -619,16 +611,6 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
return remove;
}
public void setMyOrderManageSelectPosition() {
// MyOrderManage.getInstance().setSelect_Full_start_position(select_full_start_position);
// MyOrderManage.getInstance().setSelect_Full_end_position(select_full_end_position);
// MyOrderManage.getInstance().setSelstartpostion(select_start_position);
// MyOrderManage.getInstance().setSelendpostion(select_end_position);
// MyOrderManage.getInstance().setSelmainendpostion(mainEndPos);
// MyOrderManage.getInstance().setSelmainstartpositon(mainStartPos);
// MyOrderManage.getInstance().setSelpostion(select_position);
}
/**
* 获取食品第细项最后一个子项位置
*
......@@ -977,8 +959,6 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
mOnItemClickListener.onCurrentOrderDetail(mInfos.get(select_position), select_position);
}
notifyDataSetChanged();
setMyOrderManageSelectPosition();
}
/**
......
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