Commit f47767b0 by 宁斌

賬單優化處理

parent 1a28da3b
......@@ -17,8 +17,7 @@ public class UIStyleExtendedConfiguration {
* 食品組、食品、細項、折扣行列寬高
*/
private ExpandInfoSetting foodGroupRow = ExpandInfoSetting.builder()
// .valueInt(2)
.valueChar("foodGroupRow類型")
.valueInt(2)
.remark("食品組行數")
.build();
private ExpandInfoSetting foodGroupColumn = ExpandInfoSetting.builder()
......@@ -80,6 +79,10 @@ public class UIStyleExtendedConfiguration {
/**
* 食品組、食品、細項、折扣字體大小
*/
private ExpandInfoSetting billListFontSize = ExpandInfoSetting.builder()
.valueInt(18)
.remark("餐牌選中食品字體大小")
.build();
private ExpandInfoSetting foodGroupFontSize = ExpandInfoSetting.builder()
.valueInt(14)
.remark("食品組字體大小")
......@@ -174,6 +177,9 @@ public class UIStyleExtendedConfiguration {
return foodGroupFontSize.getValue();
}
public <T> T getBillListFontSizeValue() {
return billListFontSize.getValue();
}
public <T> T getFoodFontSizeValue() {
return foodFontSize.getValue();
}
......
package com.gingersoft.gsa.cloud.constans;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-06-03
* 修订历史:2020-06-03
* 描述:
*/
public interface HttpsCode {
}
......@@ -2,7 +2,6 @@ package com.gingersoft.gsa.delivery_pick_mode.mvp.presenter;
import android.app.Activity;
import android.app.Application;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage;
......@@ -17,16 +16,12 @@ import com.jess.arms.http.imageloader.ImageLoader;
import com.jess.arms.integration.AppManager;
import com.jess.arms.mvp.BasePresenter;
import com.jess.arms.utils.RxLifecycleUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Inject;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.annotations.NonNull;
import io.reactivex.schedulers.Schedulers;
......
......@@ -16,9 +16,11 @@ import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.gingersoft.gsa.cloud.base.order.billItem.BillItem;
import com.gingersoft.gsa.cloud.base.order.billItem.BillOrderMoney;
import com.gingersoft.gsa.cloud.base.order.cart.ShoppingCart;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage;
import com.gingersoft.gsa.cloud.base.order.order.TakeawayOrder;
import com.gingersoft.gsa.cloud.base.utils.other.TextUtil;
import com.gingersoft.gsa.cloud.base.utils.time.TimePickerUtils;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
......@@ -54,6 +56,7 @@ import static com.jess.arms.utils.Preconditions.checkNotNull;
/**
* @author admin
* 外送下單頁
*/
public class SendOrderActivity extends BaseActivity<SendOrderPresenter> implements SendOrderContract.View, View.OnClickListener {
......@@ -111,9 +114,13 @@ public class SendOrderActivity extends BaseActivity<SendOrderPresenter> implemen
@BindView(R2.id.group_time)
Group timeGroup;
private TakeawayOrder mTakeawayOrder;
private ShoppingCart mShoppingCart;
private final int SELECT_ADDRESS_REQUEST_CODE = 1001;
private final int SELECT_ADDRESS_RESULT_CODE = 1002;
@Override
public void setupActivityComponent(@NonNull AppComponent appComponent) {
DaggerSendOrderComponent //如找不到该类,请编译一下项目
......@@ -125,6 +132,13 @@ public class SendOrderActivity extends BaseActivity<SendOrderPresenter> implemen
}
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
mTakeawayOrder = TakeawayOrder.getInstance();
mShoppingCart = mTakeawayOrder.getShoppingCart();
super.onCreate(savedInstanceState);
}
@Override
public int initView(@Nullable Bundle savedInstanceState) {
return R.layout.other_order_activity_send_order;
}
......@@ -133,7 +147,7 @@ public class SendOrderActivity extends BaseActivity<SendOrderPresenter> implemen
public void initData(@Nullable Bundle savedInstanceState) {
sendTime = deliveryTimes.get(0);
List<OrderDetails.DataBean.PRODUCTNAMEBean> productnameBeans = mPresenter.productnameBeans;
List<OrderDetail> orderDetails = MyOrderManage.getInstance().getOrderFoodList();
List<OrderDetail> orderDetails = mShoppingCart.getOrderCommodityList();
for (int i = 0; i < orderDetails.size(); i++) {
OrderDetail orderDetail = orderDetails.get(i);
long foodId = orderDetail.getProductId();
......@@ -193,15 +207,15 @@ public class SendOrderActivity extends BaseActivity<SendOrderPresenter> implemen
rvSendOrderFoods.setAdapter(adapter);
rvSendOrderFoods.setLayoutManager(new LinearLayoutManager(mContext));
List<BillOrderMoney> orderMoneyList = MyOrderManage.getInstance().getOrderMoneyList();
List<BillItem> orderMoneyList = mShoppingCart.getBillItemList();
List<BillBean> billBeans = new ArrayList<>();
for (BillOrderMoney billOrderMoney : orderMoneyList) {
for (BillItem billOrderMoney : orderMoneyList) {
BillBean billBean = new BillBean();
billBean.setName(billOrderMoney.getName());
billBean.setAmount(billOrderMoney.getMoney());
}
billBeans.add(new BillBean("合計:", MyOrderManage.getInstance().getWholeAmount(), 0));
billBeans.add(new BillBean("應付金額:", MyOrderManage.getInstance().getTotalAmount(), 0));
billBeans.add(new BillBean("合計:", mShoppingCart.getWholeAmount(), 0));
billBeans.add(new BillBean("應付金額:",mShoppingCart.getTotalAmount(), 0));
PayBillAdapter payBillAdapter = new PayBillAdapter(R.layout.item_pay_bill, billBeans);
rvSendOrderBills.setAdapter(payBillAdapter);
......
......@@ -23,7 +23,7 @@ import androidx.lifecycle.ViewModelProvider
import androidx.viewpager.widget.ViewPager
import com.billy.cc.core.component.CC
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication
import com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage
import com.gingersoft.gsa.cloud.base.order.order.BaseOrder
import com.gingersoft.gsa.cloud.base.utils.RestaurantExpandInfoUtils
import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils
import com.gingersoft.gsa.cloud.base.widget.DialogUtils
......@@ -598,7 +598,7 @@ class DeliveryOrderMainActivity : BaseActivity<IPresenter>(), View.OnClickListen
}
R.id.tv_new_order -> {
//新訂單
MyOrderManage.getInstance().orderType = TAKEAWAY_TYPE
BaseOrder.orderType = TAKEAWAY_TYPE
CC.obtainBuilder("Component.Table")
.setActionName("showMealStandActivity")
.build()
......
package com.gingersoft.gsa.cloud.base.order.bean.discount;
import com.gingersoft.gsa.cloud.base.order.billItem.DiscountItem;
import com.gingersoft.gsa.cloud.base.order.discount.MemberDiscount;
import com.gingersoft.gsa.cloud.base.order.discount.NomalDiscount;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.database.bean.Discount;
......@@ -103,7 +105,8 @@ public class OrderDiscount {
Request request = new Request();
request.setType(ORDER_DISCOUNT);
if(discount.getDiscount() != null) {
request.setDiscountId(discount.getDiscount().getId());
NomalDiscount discount1 = (NomalDiscount) discount.getDiscount();
request.setDiscountId(discount1.getDiscount().getId());
}
request.setDiscountAmount(discount.getMoney());
request.setScAble(0);
......@@ -114,8 +117,9 @@ public class OrderDiscount {
Request request = new Request();
request.setType(MEMBER_DISCOUNT);
if(discount.getDiscount() != null) {
request.setMemberId(discount.getDiscount().getId());
request.setMemberDiscountRate((int) discount.getDiscount().getDiscount_value());
MemberDiscount memberDiscount = (MemberDiscount) discount.getDiscount();
request.setMemberId(memberDiscount.getMemberDiscount().getId());
// request.setMemberDiscountRate((int) memberDiscount.getDiscount().getDiscount_value());
}
request.setDiscountAmount(discount.getMoney());
request.setScAble(0);
......@@ -126,9 +130,9 @@ public class OrderDiscount {
Request request = new Request();
request.setType(COUPON_DISCOUNT);
if(discount.getDiscount() != null) {
request.setMemberId(discount.getDiscount().getMemberId());
request.setDiscountId(discount.getDiscount().getId());
request.setMemberDiscountRate((int) discount.getDiscount().getDiscount_value());
// request.setMemberId(discount.getDiscount().getMemberId());
// request.setDiscountId(discount.getDiscount().getId());
// request.setMemberDiscountRate((int) discount.getDiscount().getDiscount_value());
}
request.setDiscountAmount(discount.getMoney());
request.setScAble(0);
......
package com.gingersoft.gsa.cloud.base.order.bean.mealManger;
import com.gingersoft.gsa.cloud.base.table.bean.TableBean;
import lombok.Data;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-01-09
* 修订历史:2020-01-09
* 描述:保存開台返回的訂單數據
*/
@Data
public class OpenTableManage {
private String TAG = getClass().getSimpleName();
private static OpenTableManage sDefaultOpenTableManage;
//開台信息
private TableBean.DataBean tableBean;
//使用狀態
private int useStatus;
//開台人數
private int peopleNumber = 0;
//是否分檯
private boolean isSplite = false;
//分檯編號
private String splitNo;
public static OpenTableManage getDefault() {
if (sDefaultOpenTableManage == null) {
sDefaultOpenTableManage = new OpenTableManage();
}
return sDefaultOpenTableManage;
}
public void clear() {
tableBean = null;
peopleNumber = 0;
isSplite = false;
splitNo = "";
}
public String getTAG() {
return TAG;
}
public void setTAG(String TAG) {
this.TAG = TAG;
}
public static OpenTableManage getsDefaultOpenTableManage() {
return sDefaultOpenTableManage;
}
public static void setsDefaultOpenTableManage(OpenTableManage sDefaultOpenTableManage) {
OpenTableManage.sDefaultOpenTableManage = sDefaultOpenTableManage;
}
public TableBean.DataBean getTableBean() {
return tableBean;
}
public void setTableBean(TableBean.DataBean tableBean) {
this.tableBean = tableBean;
}
public int getUseStatus() {
return useStatus;
}
public void setUseStatus(int useStatus) {
this.useStatus = useStatus;
}
public int getPeopleNumber() {
return peopleNumber;
}
public void setPeopleNumber(int peopleNumber) {
this.peopleNumber = peopleNumber;
}
public boolean isSplite() {
return isSplite;
}
public void setSplite(boolean splite) {
isSplite = splite;
}
public String getSplitNo() {
return splitNo;
}
public void setSplitNo(String splitNo) {
this.splitNo = splitNo;
}
}
......@@ -53,4 +53,10 @@ public abstract class BillItem {
this.name = name;
this.money = money;
}
public BillItem(String name, double money, int status) {
this.name = name;
this.money = money;
this.status = status;
}
}
package com.gingersoft.gsa.cloud.base.order.billItem;
import com.gingersoft.gsa.cloud.base.order.discount.MultyDiscount;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import lombok.Getter;
......@@ -15,7 +16,7 @@ import lombok.Setter;
@Setter
public class DiscountItem extends BillItem {
private Discount discount;
private MultyDiscount discount;
public DiscountItem() {
}
......@@ -24,7 +25,9 @@ public class DiscountItem extends BillItem {
super(name, money);
}
public DiscountItem(String name, double money, int status) {
super(name, money, status);
}
public void updateBillItem(int type) {
......
......@@ -3,6 +3,7 @@ package com.gingersoft.gsa.cloud.base.order.cart;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
import com.gingersoft.gsa.cloud.base.order.bean.discount.CouponDiscountBean;
import com.gingersoft.gsa.cloud.base.order.billItem.BillItem;
import com.gingersoft.gsa.cloud.base.order.billItem.DiscountItem;
import com.gingersoft.gsa.cloud.base.order.commodity.Commodity;
import com.gingersoft.gsa.cloud.base.order.commodity.MealCommodity;
import com.gingersoft.gsa.cloud.base.order.commodity.MealTakeaway;
......@@ -56,7 +57,7 @@ public class ShoppingCart {
* @see MemberDiscount
* @see CouponDiscount
*/
protected List<MultyDiscount> multyDiscountList = new ArrayList<>();
protected List<MultyDiscount> multyDiscountList;
/**
* 服務費
*/
......@@ -81,7 +82,7 @@ public class ShoppingCart {
* @param commodityList
*/
public void addCommodityList(List<OrderDetail> commodityList) {
getOrderCommodityList().addAll(commodityList);
orderCommodityList.addAll(commodityList);
}
/**
......@@ -90,7 +91,7 @@ public class ShoppingCart {
* @param commodity
*/
public void addCommodity(OrderDetail commodity) {
getOrderCommodityList().add(commodity);
orderCommodityList.add(commodity);
}
/**
......@@ -99,7 +100,7 @@ public class ShoppingCart {
* @param commodity
*/
public void delCommodity(OrderDetail commodity) {
getOrderCommodityList().remove(commodity);
orderCommodityList.remove(commodity);
}
/**
......@@ -122,7 +123,7 @@ public class ShoppingCart {
* @param billItem
*/
public void addBillItem(BillItem billItem) {
getBillItemList().add(billItem);
billItemList.add(billItem);
}
/**
......@@ -131,7 +132,7 @@ public class ShoppingCart {
* @param billItems
*/
public void addBillItems(List<BillItem> billItems) {
getBillItemList().addAll(billItems);
billItemList.addAll(billItems);
}
/**
......@@ -140,7 +141,7 @@ public class ShoppingCart {
* @param billItem
*/
public void delBillItem(BillItem billItem) {
getBillItemList().remove(billItem);
billItemList.remove(billItem);
}
/**
......@@ -149,7 +150,7 @@ public class ShoppingCart {
* @param multyDiscount
*/
public void addMultyDiscount(MultyDiscount multyDiscount) {
getMultyDiscountList().add(multyDiscount);
multyDiscountList.add(multyDiscount);
}
/**
......@@ -158,7 +159,7 @@ public class ShoppingCart {
* @param multyDiscount
*/
public void delMultyDiscount(MultyDiscount multyDiscount) {
getMultyDiscountList().remove(multyDiscount);
multyDiscountList.remove(multyDiscount);
}
/**
......@@ -214,9 +215,12 @@ public class ShoppingCart {
* 計算折扣鏈金額
*/
public double calculateLinkedDiscounts(double money) {
//折扣集合保存每個已經計算過的折扣
List<MultyDiscount> multyDiscountArrays = new ArrayList<>();
//折扣鏈對象
MultyDiscount multyDiscounts = null;
for (int i = multyDiscountList.size() - 1; i >= 0; i--) {
MultyDiscount discount = multyDiscountList.get(i);
for (int i = getMultyDiscountList().size() - 1; i >= 0; i--) {
MultyDiscount discount = getMultyDiscountList().get(i);
if (discount instanceof NomalDiscount) {
multyDiscounts = addNomalDiscount(multyDiscounts, ((NomalDiscount) discount).getDiscount());
} else if (discount instanceof MemberDiscount) {
......@@ -224,30 +228,19 @@ public class ShoppingCart {
} else if (discount instanceof CouponDiscount) {
multyDiscounts = addCouponDiscount(multyDiscounts, ((CouponDiscount) discount).getCouponDiscount());
}
multyDiscountArrays.add(multyDiscounts);
}
if (multyDiscounts != null) {
//計算折扣金額
money = multyDiscounts.calculate(money);
}
return money;
}
private void updateBillItemList() {
//更新折扣billItem數據
for (MultyDiscount discount : multyDiscountArrays) {
DiscountItem discountItem = new DiscountItem(discount.getName(), discount.getDiscountMoney(), discount.getStatus());
discountItem.setDiscount(discount);
billItemList.add(discountItem);
}
public List<OrderDetail> getOrderCommodityList() {
if (orderCommodityList == null) {
orderCommodityList = new ArrayList<>();
}
return orderCommodityList;
}
public List<BillItem> getBillItemList() {
if (billItemList == null) {
billItemList = new ArrayList<>();
}
return billItemList;
return money;
}
public List<MultyDiscount> getMultyDiscountList() {
......@@ -294,19 +287,24 @@ public class ShoppingCart {
}
/**
* 計算賬單前先重置
*/
public void resetBeforeBillCalculation() {
initialization(true);
}
public void initialization() {
public void initialization(boolean reset) {
if (!reset) {
if (orderCommodityList != null) {
orderCommodityList.clear();
// orderCommodityList = null;
}
if (billItemList != null) {
billItemList.clear();
// billItemList = null;
}
if (multyDiscountList != null) {
multyDiscountList.clear();
// multyDiscountList = null;
}
}
if (billItemList != null) {
billItemList.clear();
}
serviceCharge = null;
rounding = null;
......
......@@ -3,8 +3,11 @@ 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.bean.mealManger.MyOrderManage;
import com.gingersoft.gsa.cloud.base.order.order.BaseOrder;
import com.gingersoft.gsa.cloud.base.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.base.order.order.TakeawayOrder;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.constans.FoodSummaryConstans;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import java.util.ArrayList;
......@@ -254,7 +257,6 @@ public class MealCommodity implements Commodity {
private long ktShowPrice;
/**
* 此食品是否包含折扣
*
......@@ -424,7 +426,11 @@ public class MealCommodity implements Commodity {
mealCommodity.setNumber(1);
mealCommodity.setPrice(discountPrice);
mealCommodity.setUnit_price(discountPrice);
mealCommodity.setOrderId(MyOrderManage.getInstance().getOrderId());
if (BaseOrder.isCurrentOrderType(FoodSummaryConstans.RESTAURANT_MODE)) {
mealCommodity.setOrderId(DoshokuOrder.getInstance().getOrderId());
} else {
mealCommodity.setOrderId(TakeawayOrder.getInstance().getOrderId());
}
mealCommodity.setIsfood(false);
mealCommodity.setNew(isNew);
mealCommodity.setType(DISCOUNT_TYPE);
......
......@@ -2,7 +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.bean.mealManger.MyOrderManage;
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;
import com.gingersoft.gsa.cloud.database.bean.Discount;
......@@ -1131,7 +1131,7 @@ public class OrderDetail implements Commodity, Serializable {
orderDetail.setUnit_price(food.getPrice());
orderDetail.setPrice(number * orderDetail.getUnit_price());
orderDetail.setNumber(number);
orderDetail.setOrderId(MyOrderManage.getInstance().getOrderId());
orderDetail.setOrderId(DoshokuOrder.getInstance().getOrderId());
orderDetail.setPrintseting(food.getPrintSeting());
orderDetail.setIsfood(true);
orderDetail.setNew(true);
......@@ -1174,7 +1174,7 @@ public class OrderDetail implements Commodity, Serializable {
orderDetail.setUnit_price(foodCombo.getPrice());
orderDetail.setPrice(number * orderDetail.getUnit_price());
orderDetail.setNumber(number);
orderDetail.setOrderId(MyOrderManage.getInstance().getOrderId());
orderDetail.setOrderId(DoshokuOrder.getInstance().getOrderId());
orderDetail.setComid(foodCombo.getComId());
orderDetail.setIsfood(true);
orderDetail.setNew(true);
......@@ -1216,7 +1216,7 @@ public class OrderDetail implements Commodity, Serializable {
orderDetail.setUnit_price(modifier.getPrice());
orderDetail.setPrice(number * orderDetail.getUnit_price());
orderDetail.setNumber(number);
orderDetail.setOrderId(MyOrderManage.getInstance().getOrderId());
orderDetail.setOrderId(DoshokuOrder.getInstance().getOrderId());
orderDetail.setMid(modifier.getMid());
orderDetail.setIsfood(false);
orderDetail.setNew(true);
......@@ -1249,7 +1249,7 @@ public class OrderDetail implements Commodity, Serializable {
orderDetail.setNumber(1);
orderDetail.setPrice(discountPrice);
orderDetail.setUnit_price(discountPrice);
orderDetail.setOrderId(MyOrderManage.getInstance().getOrderId());
orderDetail.setOrderId(DoshokuOrder.getInstance().getOrderId());
orderDetail.setIsfood(false);
orderDetail.setNew(isNew);
orderDetail.setType(DISCOUNT_TYPE);
......
......@@ -16,10 +16,6 @@ import lombok.Getter;
public class CouponDiscount extends MultyDiscount {
private CouponDiscountBean couponDiscount;
/**
* 本次折扣金额
*/
private Double discountMoney;
public CouponDiscount(String name, MultyDiscount nextMultyDiscount, CouponDiscountBean couponDiscount) {
super(name,nextMultyDiscount);
......
......@@ -16,10 +16,6 @@ import lombok.Getter;
public class MemberDiscount extends MultyDiscount {
private MemberInfo memberDiscount;
/**
* 本次折扣金额
*/
private Double discountMoney;
public MemberDiscount(String name, MultyDiscount nextMultyDiscount, MemberInfo memberDiscount) {
super(name,nextMultyDiscount);
......
......@@ -3,6 +3,8 @@ package com.gingersoft.gsa.cloud.base.order.discount;
import com.gingersoft.gsa.cloud.base.order.billItem.BillItem;
import lombok.Getter;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
......@@ -10,10 +12,15 @@ import com.gingersoft.gsa.cloud.base.order.billItem.BillItem;
* 修订历史:2020-09-19
* 描述: 折扣抽象類{@link MultyDiscount}
*/
@Getter
public abstract class MultyDiscount extends BillItem {
/**責任鏈中的下一個對象*/
protected MultyDiscount nextMultyDiscount;
/**
* 本次折扣金额
*/
protected double discountMoney = 0.0;
public MultyDiscount(String name, MultyDiscount nextMultyDiscount) {
super(name);
......@@ -26,5 +33,4 @@ public abstract class MultyDiscount extends BillItem {
}
return money;
}
}
......@@ -16,10 +16,6 @@ import lombok.Getter;
public class NomalDiscount extends MultyDiscount{
private Discount discount;
/**
* 本次折扣金额
*/
private Double discountMoney;
public NomalDiscount(String name,MultyDiscount nextMultyDiscount,Discount discount) {
super(name,nextMultyDiscount);
......@@ -32,7 +28,6 @@ public class NomalDiscount extends MultyDiscount{
discountMoney = calculationDiscount(discount, money);
money = MoneyUtil.sum(money,discountMoney);
}
return super.calculate(money);
}
......
......@@ -11,7 +11,7 @@ import lombok.Setter;
* @作者: bin
* @創建時間: 2020-10-14
* @更新時間: 2020-10-14
* @描述:
* @描述:訂單基類
*/
@Getter
@Setter
......@@ -32,7 +32,7 @@ public abstract class BaseOrder {
/**
* 訂單ID
*/
protected long id = -1;
protected long orderId = -1;
/**
* 訂單編號
*/
......@@ -43,10 +43,23 @@ public abstract class BaseOrder {
protected ShoppingCart shoppingCart;
/**
* 判斷是否當前訂單類型
* @param type
* @return
*/
public static boolean isCurrentOrderType(int type) {
if (type == orderType) {
return true;
}
return false;
}
protected void initialization() {
orderType = FoodSummaryConstans.RESTAURANT_MODE;
id = -1;
orderId = -1;
orderNo = null;
shoppingCart.initialization();
shoppingCart.initialization(false);
}
}
package com.gingersoft.gsa.cloud.base.order.order;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
import com.gingersoft.gsa.cloud.base.common.bean.PayMethod;
import com.gingersoft.gsa.cloud.base.order.Member;
import com.gingersoft.gsa.cloud.base.order.bean.DeleteOrderRequest;
import com.gingersoft.gsa.cloud.base.order.bean.OrderBean;
import com.gingersoft.gsa.cloud.base.order.cart.ShoppingCart;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.base.table.bean.TableBean;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import lombok.Getter;
......@@ -37,10 +40,6 @@ public class DoshokuOrder extends BaseOrder implements Member {
}
/**
* 記錄刪除的食品以及原因
*/
private List<DeleteOrderRequest> deleteMealOrders;
/**
* 已下單信息
*/
private OrderBean orderPlaced;
......@@ -53,8 +52,18 @@ public class DoshokuOrder extends BaseOrder implements Member {
* 會員信息
*/
private MemberInfo memberInfo;
/**
* 記錄刪除的食品以及原因
*/
private List<DeleteOrderRequest> deleteMealOrders;
/**
* 本次送單食品,用於打印
*/
private List<OrderDetail> newFoodList = new ArrayList<>();
/**
* 本次支付方式,用於打印
*/
private List<PayMethod> billMoney = new ArrayList<>();
/**
* 是否需要更新會員信息(如開台有然後清除: "true:false" 這種情況需要重新送單更新會員信息)
*/
......@@ -67,6 +76,24 @@ public class DoshokuOrder extends BaseOrder implements Member {
private boolean modifyOrder = false;
/**
* 本次加多少積分
*/
private float addPoints;
/**
* 之前有多少積分
*/
private float oldPoints;
/**
* 現在有多少積分
*/
private float nowPoints;
/**
* 結賬積分QRCode
*/
private String integralQrcode;
/**
* 添加需要刪除的食品
* @param request
*/
......@@ -82,6 +109,17 @@ public class DoshokuOrder extends BaseOrder implements Member {
getDeleteMealOrders().remove(request);
}
public void setDeleteMealOrders(List<DeleteOrderRequest> deleteMealOrders) {
this.deleteMealOrders = deleteMealOrders;
}
public Date getOpenTableTime() {
if (orderPlaced != null && orderPlaced.getCreateTime() != null) {
return new Date(orderPlaced.getCreateTime());
}
return new Date();
}
public List<DeleteOrderRequest> getDeleteMealOrders() {
if (deleteMealOrders == null) {
deleteMealOrders = new ArrayList<>();
......@@ -89,11 +127,29 @@ public class DoshokuOrder extends BaseOrder implements Member {
return deleteMealOrders;
}
public boolean needUpdateMemberInfo() {
String[] status = memberUpdateStatus.split("-");
if (status.length == 2) {
if (Boolean.parseBoolean(status[0]) != Boolean.parseBoolean(status[1])) {
return true;
} else {
return false;
}
} else {
return false;
}
}
@Override
public void initialization() {
if (deleteMealOrders != null) {
deleteMealOrders.clear();
deleteMealOrders = null;
}
if (newFoodList != null) {
newFoodList.clear();
}
if (billMoney != null) {
billMoney.clear();
}
if (orderPlaced != null) {
orderPlaced = null;
......
......@@ -4,14 +4,14 @@ import android.content.Context;
import android.graphics.Bitmap;
import android.text.TextUtils;
import android.widget.LinearLayout;
import com.gingersoft.gsa.cloud.base.common.bean.BillingBean;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
import com.gingersoft.gsa.cloud.base.common.bean.PayMethod;
import com.gingersoft.gsa.cloud.base.order.billItem.BillItem;
import com.gingersoft.gsa.cloud.base.order.billItem.BillOrderMoney;
import com.gingersoft.gsa.cloud.base.order.cart.ShoppingCart;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage;
import com.gingersoft.gsa.cloud.base.order.bean.mealManger.OpenTableManage;
import com.gingersoft.gsa.cloud.base.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.base.table.bean.TableBean;
import com.gingersoft.gsa.cloud.base.utils.RestaurantExpandInfoUtils;
import com.gingersoft.gsa.cloud.base.utils.other.TextUtil;
......@@ -19,7 +19,6 @@ import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.constans.ExpandConstant;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import com.gingersoft.gsa.cloud.print.bean.OrderDetails;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
......@@ -41,17 +40,21 @@ public class PrintBill extends PrinterRoot {
@Override
public String getPrintData(Context mContext, PrinterDeviceBean deviceBean) {
List<OrderDetail> foodList = MyOrderManage.getInstance().getOrderFoodList();
TableBean.DataBean tableBean = OpenTableManage.getDefault().getTableBean();
DoshokuOrder doshokuOrder = DoshokuOrder.getInstance();
ShoppingCart shoppingCart = doshokuOrder.getShoppingCart();
List<OrderDetail> foodList = shoppingCart.getOrderCommodityList();
TableBean.DataBean tableBean = doshokuOrder.getOpenTableInfo();
StringBuilder payInfo = new StringBuilder();
for (PayMethod payMethod : MyOrderManage.getInstance().getBillMoney()) {
for (PayMethod payMethod : doshokuOrder.getBillMoney()) {
payInfo.append(payMethod.getPayName() + " ").append(payMethod.getPayMoney());
}
StringBuilder memberIntegerInfo = new StringBuilder();
OrderDetails.DataBean data = getOrderMemberInfo();
MyOrderManage.getInstance().getIntegralQrcode();
if (data.getAddPoints() != 0 || data.getOldPoints() != 0 || data.getAddPoints() != 0) {
memberIntegerInfo.append(getPLable("本次積分:" + data.getAddPoints(), HTML_PRINT_GRAVITY_LEFT))
.append(getPLable("結餘積分:" + data.getNowPoints(), HTML_PRINT_GRAVITY_LEFT))
......@@ -75,11 +78,11 @@ public class PrintBill extends PrinterRoot {
getWholeLine() +
getPLable(memberIntegerInfo.toString(), HTML_PRINT_GRAVITY_LEFT);
String integralQrCode = MyOrderManage.getInstance().getIntegralQrcode();
String integralQrCode = doshokuOrder.getIntegralQrcode();
if (!TextUtils.isEmpty(integralQrCode) &&
(boolean) RestaurantExpandInfoUtils.getValue(ExpandConstant.ToPrintQRCode, false)) {
stringBuilder += getPLable("請掃描二維碼", HTML_PRINT_GRAVITY_CENTER) +
getHtmlQrCode(MyOrderManage.getInstance().getIntegralQrcode()) +
getHtmlQrCode(doshokuOrder.getIntegralQrcode()) +
getPLable("《追加積分到個人賬戶》", HTML_PRINT_GRAVITY_CENTER);
}
stringBuilder += "</body></html>";
......@@ -92,8 +95,13 @@ public class PrintBill extends PrinterRoot {
}
private Bitmap getBitmap(Context mContext, PrinterDeviceBean deviceBean) {
List<OrderDetail> foodList = MyOrderManage.getInstance().getOrderFoodList();
TableBean.DataBean tableBean = OpenTableManage.getDefault().getTableBean();
DoshokuOrder doshokuOrder = DoshokuOrder.getInstance();
ShoppingCart shoppingCart = doshokuOrder.getShoppingCart();
List<OrderDetail> foodList = shoppingCart.getOrderCommodityList();
TableBean.DataBean tableBean = doshokuOrder.getOpenTableInfo();
LinearLayout layout = new LinearLayout(mContext);
layout.setOrientation(LinearLayout.VERTICAL);
......@@ -104,10 +112,10 @@ public class PrintBill extends PrinterRoot {
//訂單信息
String tableName = "餐檯:" + tableBean.getTableName();
String peopleNum = "人數:" + OpenTableManage.getDefault().getPeopleNumber();
String peopleNum = "人數:" + doshokuOrder.getOpenTableInfo().getPerson();
String orderNum = "單號:";
if (TextUtil.isNotEmptyOrNullOrUndefined(MyOrderManage.getInstance().getOrderNo())) {
orderNum = "單號:" + MyOrderManage.getInstance().getOrderNo();
if (TextUtil.isNotEmptyOrNullOrUndefined(doshokuOrder.getOrderNo())) {
orderNum = "單號:" + doshokuOrder.getOrderNo();
}
String createTime = "日期:" + TimeUtils.parseTimeRepeat(tableBean.getCreateTime(), TimeUtils.DEFAULT_DATE_FORMAT);
layout.addView(getDiningTableOrderInfo(mContext, tableName, peopleNum, orderNum, createTime));
......@@ -120,10 +128,10 @@ public class PrintBill extends PrinterRoot {
//訂單金額信息
List<BillingBean> billingBeans = new ArrayList<>();
//添加合計項
billingBeans.add(new BillingBean("合計", MyOrderManage.getInstance().getWholeAmount()));
billingBeans.add(new BillingBean("合計", shoppingCart.getWholeAmount()));
//添加其他金額項
if (MyOrderManage.getInstance().getOrderMoneyList().size() > 0) {
for (BillOrderMoney item : MyOrderManage.getInstance().getOrderMoneyList()) {
if (shoppingCart.getBillItemList().size() > 0) {
for (BillItem item : shoppingCart.getBillItemList()) {
billingBeans.add(new BillingBean(item.getName(), item.getMoney()));
}
}
......@@ -136,12 +144,12 @@ public class PrintBill extends PrinterRoot {
// for (OrderDetail OrderDetail : MyOrderManage.getInstance().getOrderFoodList()) {
// totalAmount = MoneyUtil.sum(totalAmount, OrderDetail.getPrice());
// }
layout.addView(getAmountText(mContext, "總金額:" + MyOrderManage.getInstance().getTotalAmount()));
layout.addView(getAmountText(mContext, "總金額:" + shoppingCart.getTotalAmount()));
layout.addView(getLine(mContext));
layout.addView(getDiningBillPayMethod(mContext, MyOrderManage.getInstance().getBillMoney()));
layout.addView(getDiningBillPayMethod(mContext, doshokuOrder.getBillMoney()));
layout.addView(getLine(mContext));
layout.addView(getTableMealMemberIntegerView(mContext, getOrderMemberInfo(), MyOrderManage.getInstance().getIntegralQrcode()));
layout.addView(getTableMealMemberIntegerView(mContext, getOrderMemberInfo(), doshokuOrder.getIntegralQrcode()));
return zoomBitmap(deviceBean, viewToBitmap(mContext, layout));
}
......@@ -149,13 +157,13 @@ public class PrintBill extends PrinterRoot {
private OrderDetails.DataBean getOrderMemberInfo() {
OrderDetails.DataBean dataBean = new OrderDetails.DataBean();
MemberInfo memberInfo = MyOrderManage.getInstance().getMemberInfo();
MemberInfo memberInfo = DoshokuOrder.getInstance().getMemberInfo();
if (memberInfo != null) {
dataBean.setMEMBER_NAME(memberInfo.getMemberName());
dataBean.setPHONE(memberInfo.getPhone());
dataBean.setNowPoints(MyOrderManage.getInstance().getNowPoints());
dataBean.setAddPoints(MyOrderManage.getInstance().getAddPoints());
dataBean.setOldPoints(MyOrderManage.getInstance().getOldPoints());
dataBean.setNowPoints(DoshokuOrder.getInstance().getNowPoints());
dataBean.setAddPoints(DoshokuOrder.getInstance().getAddPoints());
dataBean.setOldPoints(DoshokuOrder.getInstance().getOldPoints());
}
return dataBean;
}
......
......@@ -9,8 +9,8 @@ import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.order.adapter.print.KitChenPrintFoodAdapter;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage;
import com.gingersoft.gsa.cloud.base.order.bean.mealManger.OpenTableManage;
import com.gingersoft.gsa.cloud.base.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.base.table.bean.TableBean;
import com.gingersoft.gsa.cloud.base.utils.other.TextUtil;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
......@@ -33,7 +33,7 @@ public class PrintKitchen extends PrinterRoot {
@Override
public Map<String, List<Bitmap>> getPrintBitmap(Context mContext, PrinterDeviceBean deviceBean) {
Map<String, List<Bitmap>> bitmapMaps = new HashMap<>();
List<OrderDetail> orderDetails = MyOrderManage.getInstance().getNewFoodList();
List<OrderDetail> orderDetails = DoshokuOrder.getInstance().getNewFoodList();
if (orderDetails != null) {
// for (int i = 0; i < orderDetails.size(); i++) {
// orderDetails.get(i).setPrintseting(printLocation[i % 2]);
......@@ -156,6 +156,9 @@ public class PrintKitchen extends PrinterRoot {
if (foodList == null || foodList.size() <= 0) {
return null;
}
DoshokuOrder doshokuOrder = DoshokuOrder.getInstance();
View view = LinearLayout.inflate(context, R.layout.print_kitchen, null);
TextView tvTableNumber = view.findViewById(R.id.tv_kitchen_print_table_number);
TextView tvOrderNumber = view.findViewById(R.id.tv_order_num);
......@@ -178,16 +181,17 @@ public class PrintKitchen extends PrinterRoot {
tvKitChenLocation.setVisibility(View.GONE);
}
}
if (OpenTableManage.getDefault().getTableBean() != null) {
TableBean.DataBean dataBean = doshokuOrder.getOpenTableInfo();
if (dataBean != null) {
//台號
tvTableNumber.setText(OpenTableManage.getDefault().getTableBean().getTableName() + "");
tvTableNumber2.setText(OpenTableManage.getDefault().getTableBean().getTableName() + "");
tvTableNumber.setText(dataBean.getTableName() + "");
tvTableNumber2.setText(dataBean.getTableName() + "");
//人數
tvPeople.setText(OpenTableManage.getDefault().getPeopleNumber() + "");
tvPeople.setText(dataBean.getPerson() + "");
//訂單號
tvOrderNumber.setText("" + MyOrderManage.getInstance().getOrderId());
tvOrderNumber.setText("" + dataBean.getOrderId());
//開台時間
tvOpeningTime.setText(TimeUtils.parseTimeRepeat(OpenTableManage.getDefault().getTableBean().getCreateTime(), TimeUtils.DEFAULT_DATE_FORMAT));
tvOpeningTime.setText(TimeUtils.parseTimeRepeat(dataBean.getCreateTime(), TimeUtils.DEFAULT_DATE_FORMAT));
}
//落單時間,為當前時間
tvOrderTime.setText(TimeUtils.getCurrentTimeInString(TimeUtils.DEFAULT_DATE_FORMAT));
......@@ -197,8 +201,4 @@ public class PrintKitchen extends PrinterRoot {
}
}
......@@ -6,10 +6,8 @@ import android.view.LayoutInflater;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage;
......@@ -23,7 +21,6 @@ import com.joe.print.R;
import com.joe.print.mvp.model.bean.PrintBillBean;
import com.joe.print.mvp.ui.adapter.BillItemAdapter;
import com.joe.print.mvp.ui.adapter.OtherOrderAdapter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
......
......@@ -4,16 +4,13 @@ import android.content.Context;
import android.graphics.Bitmap;
import android.view.Gravity;
import android.widget.LinearLayout;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage;
import com.gingersoft.gsa.cloud.base.order.bean.mealManger.OpenTableManage;
import com.gingersoft.gsa.cloud.base.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.base.table.bean.TableBean;
import com.gingersoft.gsa.cloud.base.utils.other.TextUtil;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import com.joe.print.R;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
......@@ -35,8 +32,8 @@ public class PrintServe extends PrinterRoot {
@Override
public String getPrintData(Context mContext, PrinterDeviceBean deviceBean) {
List<OrderDetail> foodList = MyOrderManage.getInstance().getOrderFoodList();
TableBean.DataBean tableBean = OpenTableManage.getDefault().getTableBean();
List<OrderDetail> foodList = DoshokuOrder.getInstance().getShoppingCart().getOrderCommodityList();
TableBean.DataBean tableBean = DoshokuOrder.getInstance().getOpenTableInfo();
String stringBuilder = "<html><body>" +
getHtmlPrintHeadInfo() +
getHtmlPrintHeadOrderInfo(tableBean) +
......@@ -53,11 +50,11 @@ public class PrintServe extends PrinterRoot {
private Bitmap getBitmap(Context mContext, PrinterDeviceBean printerDeviceBean) {
List<OrderDetail> foodList = MyOrderManage.getInstance().getOrderFoodList();
List<OrderDetail> foodList = DoshokuOrder.getInstance().getShoppingCart().getOrderCommodityList();
if (foodList == null || foodList.size() <= 0) {
return null;
}
TableBean.DataBean tableBean = OpenTableManage.getDefault().getTableBean();
TableBean.DataBean tableBean = DoshokuOrder.getInstance().getOpenTableInfo();
LinearLayout layout = new LinearLayout(mContext);
layout.setOrientation(LinearLayout.VERTICAL);
......@@ -66,11 +63,11 @@ public class PrintServe extends PrinterRoot {
layout.addView(getHeader(mContext));
layout.addView(getLine(mContext));
String orderNo = "單號:";
if (TextUtil.isNotEmptyOrNullOrUndefined(MyOrderManage.getInstance().getOrderNo())) {
orderNo = "單號:" + MyOrderManage.getInstance().getOrderNo();
if (TextUtil.isNotEmptyOrNullOrUndefined(DoshokuOrder.getInstance().getOrderNo())) {
orderNo = "單號:" + DoshokuOrder.getInstance().getOrderNo();
}
//訂單信息
layout.addView(getDiningTableOrderInfo(mContext, "餐檯:" + tableBean.getTableName(), "人數:" + OpenTableManage.getDefault().getPeopleNumber(), orderNo, "日期:" + TimeUtils.getCurrentTimeInString(TimeUtils.DEFAULT_DATE_FORMAT)));
layout.addView(getDiningTableOrderInfo(mContext, "餐檯:" + tableBean.getTableName(), "人數:" + DoshokuOrder.getInstance().getOpenTableInfo().getPerson(), orderNo, "日期:" + TimeUtils.getCurrentTimeInString(TimeUtils.DEFAULT_DATE_FORMAT)));
layout.addView(getLine(mContext));
layout.addView(getDiningFoodList(mContext, foodList, printerDeviceBean, 0, false));
......
......@@ -6,10 +6,11 @@ import android.view.Gravity;
import android.widget.LinearLayout;
import com.gingersoft.gsa.cloud.base.common.bean.BillingBean;
import com.gingersoft.gsa.cloud.base.order.billItem.BillItem;
import com.gingersoft.gsa.cloud.base.order.billItem.BillOrderMoney;
import com.gingersoft.gsa.cloud.base.order.cart.ShoppingCart;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage;
import com.gingersoft.gsa.cloud.base.order.bean.mealManger.OpenTableManage;
import com.gingersoft.gsa.cloud.base.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.base.table.bean.TableBean;
import com.gingersoft.gsa.cloud.base.utils.RestaurantExpandInfoUtils;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
......@@ -46,8 +47,8 @@ public class PrintSlip extends PrinterRoot {
@Override
public String getPrintData(Context mContext, PrinterDeviceBean deviceBean) {
List<OrderDetail> foodList = MyOrderManage.getInstance().getOrderFoodList();
TableBean.DataBean tableBean = OpenTableManage.getDefault().getTableBean();
List<OrderDetail> foodList = DoshokuOrder.getInstance().getShoppingCart().getOrderCommodityList();
TableBean.DataBean tableBean = DoshokuOrder.getInstance().getOpenTableInfo();
String stringBuilder = "<html><body>" +
getHtmlPrintHeadInfo() +
......@@ -69,11 +70,16 @@ public class PrintSlip extends PrinterRoot {
}
private Bitmap getBitmap(Context mContext, PrinterDeviceBean printerDeviceBean) {
List<OrderDetail> foodList = MyOrderManage.getInstance().getOrderFoodList();
DoshokuOrder doshokuOrder = DoshokuOrder.getInstance();
ShoppingCart shoppingCart = doshokuOrder.getShoppingCart();
List<OrderDetail> foodList = shoppingCart.getOrderCommodityList();
if (foodList == null || foodList.size() <= 0) {
return null;
}
TableBean.DataBean tableBean = OpenTableManage.getDefault().getTableBean();
TableBean.DataBean tableBean = doshokuOrder.getOpenTableInfo();
LinearLayout layout = new LinearLayout(mContext);
layout.setOrientation(LinearLayout.VERTICAL);
......@@ -83,23 +89,23 @@ public class PrintSlip extends PrinterRoot {
layout.addView(getLine(mContext));
//訂單信息
layout.addView(getDiningTableOrderInfo(mContext, "餐檯:" + tableBean.getTableName(), "人數:" + OpenTableManage.getDefault().getPeopleNumber(), "單號:" + MyOrderManage.getInstance().getOrderNo(), "日期:" + TimeUtils.getCurrentTimeInString(TimeUtils.DEFAULT_DATE_FORMAT)));
layout.addView(getDiningTableOrderInfo(mContext, "餐檯:" + tableBean.getTableName(), "人數:" + doshokuOrder.getOpenTableInfo().getPerson(), "單號:" +doshokuOrder.getOrderNo(), "日期:" + TimeUtils.getCurrentTimeInString(TimeUtils.DEFAULT_DATE_FORMAT)));
layout.addView(getLine(mContext));
layout.addView(getDiningFoodList(mContext, foodList, printerDeviceBean, 0, true));
layout.addView(getHalfLine(mContext));
List<BillingBean> billingBeans = new ArrayList<>();
//添加合計項
billingBeans.add(new BillingBean("合計", MyOrderManage.getInstance().getWholeAmount()));
billingBeans.add(new BillingBean("合計", shoppingCart.getWholeAmount()));
//添加其他金額項
if (MyOrderManage.getInstance().getOrderMoneyList().size() > 0) {
for (BillOrderMoney item : MyOrderManage.getInstance().getOrderMoneyList()) {
if (shoppingCart.getBillItemList().size() > 0) {
for (BillItem item : shoppingCart.getBillItemList()) {
billingBeans.add(new BillingBean(item.getName(), item.getMoney()));
}
}
layout.addView(getDiningBillInfo(mContext, billingBeans));
layout.addView(getHalfLine(mContext));
layout.addView(getAmountText(mContext, "總金額:" + MyOrderManage.getInstance().getTotalAmount()));
layout.addView(getAmountText(mContext, "總金額:" + shoppingCart.getTotalAmount()));
layout.addView(getLine(mContext));
layout.addView(getTextView(mContext, "Thank you!", Gravity.CENTER_HORIZONTAL, getDimensionPixelSize(mContext, R.dimen.dp_8)));
layout.addView(getTextView(mContext, TimeUtils.getCurrentTimeInString(TimeUtils.DEFAULT_DATE_FORMAT), Gravity.CENTER_HORIZONTAL, getDimensionPixelSize(mContext, R.dimen.dp_8)));
......
......@@ -30,10 +30,10 @@ import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BillingBean;
import com.gingersoft.gsa.cloud.base.common.bean.PayMethod;
import com.gingersoft.gsa.cloud.base.order.adapter.print.FoodAdapter;
import com.gingersoft.gsa.cloud.base.order.billItem.BillItem;
import com.gingersoft.gsa.cloud.base.order.billItem.BillOrderMoney;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage;
import com.gingersoft.gsa.cloud.base.order.bean.mealManger.OpenTableManage;
import com.gingersoft.gsa.cloud.base.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.base.table.bean.TableBean;
import com.gingersoft.gsa.cloud.base.threadPool.ThreadPoolManager;
import com.gingersoft.gsa.cloud.base.utils.AidlUtil;
......@@ -851,12 +851,12 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
protected String getHtmlPrintHeadOrderInfo(TableBean.DataBean tableBean) {
String orderNum = "單號:";
if (TextUtil.isNotEmptyOrNullOrUndefined(MyOrderManage.getInstance().getOrderNo())) {
orderNum = "單號:" + MyOrderManage.getInstance().getOrderNo();
if (TextUtil.isNotEmptyOrNullOrUndefined(DoshokuOrder.getInstance().getOrderNo())) {
orderNum = "單號:" + DoshokuOrder.getInstance().getOrderNo();
}
return getWholeLine() +
getPLable("餐檯:" + tableBean.getTableName(), HTML_PRINT_GRAVITY_LEFT) +
getPLable("人數:" + OpenTableManage.getDefault().getPeopleNumber(), HTML_PRINT_GRAVITY_LEFT) +
getPLable("人數:" + DoshokuOrder.getInstance().getOpenTableInfo().getPerson(), HTML_PRINT_GRAVITY_LEFT) +
getPLable(orderNum, HTML_PRINT_GRAVITY_LEFT) +
getPLable("日期:" + TimeUtils.parseTimeRepeat(tableBean.getCreateTime(), TimeUtils.DEFAULT_DATE_FORMAT), HTML_PRINT_GRAVITY_LEFT) +
getWholeLine();
......@@ -864,22 +864,22 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
protected String getHtmlBillInfo() {
//添加合計項
StringBuilder amountStr = new StringBuilder(getPLable("合計 " + MyOrderManage.getInstance().getWholeAmount(), HTML_PRINT_GRAVITY_RIGHT));
StringBuilder amountStr = new StringBuilder(getPLable("合計 " + DoshokuOrder.getInstance().getShoppingCart().getWholeAmount(), HTML_PRINT_GRAVITY_RIGHT));
//添加其他金額項
if (MyOrderManage.getInstance().getOrderMoneyList().size() > 0) {
for (BillOrderMoney item : MyOrderManage.getInstance().getOrderMoneyList()) {
if (DoshokuOrder.getInstance().getShoppingCart().getBillItemList().size() > 0) {
for (BillItem item : DoshokuOrder.getInstance().getShoppingCart().getBillItemList()) {
amountStr.append(getPLable(item.getName() + " " + item.getMoney(), HTML_PRINT_GRAVITY_RIGHT));
}
}
amountStr.append(getLine(21, HTML_PRINT_GRAVITY_RIGHT));
amountStr.append("總金額 ").append(MyOrderManage.getInstance().getTotalAmount());
amountStr.append("總金額 ").append(DoshokuOrder.getInstance().getShoppingCart().getTotalAmount());
return getLine(21, HTML_PRINT_GRAVITY_RIGHT)
+ amountStr;
}
protected String getHtmlBillPayInfo() {
StringBuilder payInfo = new StringBuilder();
for (PayMethod payMethod : MyOrderManage.getInstance().getBillMoney()) {
for (PayMethod payMethod : DoshokuOrder.getInstance().getBillMoney()) {
payInfo.append(getPLable(payMethod.getPayName() + " $" + payMethod.getPayMoney(), HTML_PRINT_GRAVITY_LEFT));
}
return getWholeLine() +
......
......@@ -2,9 +2,8 @@ package com.gingersoft.gsa.cloud.table.mvp.model;
import android.app.Application;
import android.text.TextUtils;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage;
import com.gingersoft.gsa.cloud.base.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.database.bean.FoodCombo;
......@@ -205,7 +204,7 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model
@Override
public Observable<BaseOrderRespose> apply(BaseResult info) throws Exception {
if (info != null && info.isSuccess()) {
return loadOrder(MyOrderManage.getInstance().getOrderId());
return loadOrder(DoshokuOrder.getInstance().getOrderId());
}
BaseOrderRespose baseOrderRespose = new BaseOrderRespose();
baseOrderRespose.setSuccess(info.isSuccess());
......
package com.gingersoft.gsa.cloud.table.mvp.model;
import android.app.Application;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage;
import com.gingersoft.gsa.cloud.base.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.base.table.bean.TableBean;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
......@@ -94,21 +92,21 @@ public class OrderContentModel extends BaseModel implements OrderContentContract
if (info.getData() != null) {
if (info.getData() instanceof Double) {
//未上線,避免正式版閃退
MyOrderManage.getInstance().setOrderId((Double) info.getData());
MyOrderManage.getInstance().getOrderBean().setOrderNo(((Double) info.getData()).longValue() + "");
DoshokuOrder.getInstance().setOrderId((long) info.getData());
DoshokuOrder.getInstance().setOrderNo(((Double) info.getData()).longValue() + "");
} else {
LinkedTreeMap tm = (LinkedTreeMap) info.getData();
for (Object o : tm.keySet()) {
String key = (String) o;
if (key.equals("id")) {
MyOrderManage.getInstance().setOrderId((Double) tm.get(key));
DoshokuOrder.getInstance().setOrderId((long) tm.get(key));
} else if (key.equals("orderNo")) {
MyOrderManage.getInstance().getOrderBean().setOrderNo((String) tm.get(key));
DoshokuOrder.getInstance().setOrderNo((String) tm.get(key));
}
}
}
}
return loadOrder(MyOrderManage.getInstance().getOrderId());
return loadOrder(DoshokuOrder.getInstance().getOrderId());
}
BaseOrderRespose baseOrderRespose = new BaseOrderRespose();
baseOrderRespose.setSuccess(info.isSuccess());
......@@ -128,7 +126,7 @@ public class OrderContentModel extends BaseModel implements OrderContentContract
public Observable<BaseOrderRespose> apply(BaseResult info) throws Exception {
if (info != null && info.isSuccess()) {
saveCreateTime(info.getSysTime());
return loadOrder(MyOrderManage.getInstance().getOrderId());
return loadOrder(DoshokuOrder.getInstance().getOrderId());
}
BaseOrderRespose baseOrderRespose = new BaseOrderRespose();
baseOrderRespose.setSuccess(info.isSuccess());
......@@ -165,7 +163,7 @@ public class OrderContentModel extends BaseModel implements OrderContentContract
@Override
public Observable<BaseOrderRespose> apply(BaseOrderRespose info) throws Exception {
if (info != null && info.isSuccess()) {
return loadOrder(MyOrderManage.getInstance().getOrderId());
return loadOrder(DoshokuOrder.getInstance().getOrderId());
}
return Observable.just(info);
}
......
package com.gingersoft.gsa.cloud.table.mvp.model.cart;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
import com.gingersoft.gsa.cloud.base.order.bean.DeleteOrderRequest;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.bean.discount.CouponDiscountBean;
import com.gingersoft.gsa.cloud.table.mvp.model.discount.CouponDiscount;
import com.gingersoft.gsa.cloud.table.mvp.model.discount.MemberDiscount;
import com.gingersoft.gsa.cloud.table.mvp.model.discount.MultyDiscount;
import com.gingersoft.gsa.cloud.table.mvp.model.discount.NomalDiscount;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import java.util.ArrayList;
import java.util.List;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-09-24
* 修订历史:2020-09-24
* 描述:堂食下單購物車
*/
public class DoshokuCart extends ShoppingCart{
/**
* 食品列表
*/
private List<OrderDetail> orderFoodList = new ArrayList<>();
/**
* 所有折扣實體
*/
private MultyDiscount multyDiscounts;
/**
* 記錄刪除的食品以及原因
*/
private List<DeleteOrderRequest> deleteOrders;
/**
* 服務費
*/
private Double serviceCharge;
public MultyDiscount addNomalDiscount(Discount discount) {
multyDiscounts = new NomalDiscount(multyDiscounts, discount);
return multyDiscounts;
}
public MultyDiscount addMemberDiscount(MemberInfo discount) {
multyDiscounts = new MemberDiscount(multyDiscounts, discount);
return multyDiscounts;
}
public MultyDiscount addCouponDiscount(CouponDiscountBean discount) {
multyDiscounts = new CouponDiscount(multyDiscounts, discount);
return multyDiscounts;
}
@Override
public void pay(double money) {
super.pay(money);
}
}
package com.gingersoft.gsa.cloud.table.mvp.model.cart;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
import com.gingersoft.gsa.cloud.base.order.bean.discount.CouponDiscountBean;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import java.util.List;
import io.reactivex.Observable;
import io.reactivex.SingleObserver;
import io.reactivex.disposables.Disposable;
import lombok.Data;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-09-19
* 修订历史:2020-09-19
* 描述: 購物車抽象類
*/
@Data
public abstract class ShoppingCart {
/**
* 合計
*/
private double wholeAmount = 0.0;
/**
* 總金額
*/
private double totalAmount = 0.0;
public static void main(String[] arg) {
Discount discount = new Discount();
discount.setType(1);
discount.setRemark("9折");
discount.setDiscount_value(10);
MemberInfo memberDiscount = new MemberInfo();
memberDiscount.setMemberName("斯八達");
memberDiscount.setMemberDiscount(20);
CouponDiscountBean couponDiscount = new CouponDiscountBean();
couponDiscount.setCouponType((byte) 2);
couponDiscount.setCouponTypeName1("立減8元");
couponDiscount.setAmount(8);
// NomalDiscount nomalDiscountBean = (NomalDiscount) shoppingCart.addNomalDiscount(discount);
// MemberDiscount memberDiscountBean = (MemberDiscount) shoppingCart.addMemberDiscount(memberDiscount);
// CouponDiscount couponDiscountBean = (CouponDiscount) shoppingCart.addCouponDiscount(couponDiscount);
//
// MultyDiscount multyDiscount = shoppingCart.getMultyDiscounts();
// double money = multyDiscount.calculate(100);
//
// System.out.println("calculate : " + money);
// System.out.println("NomalDiscount discountMoney : " + nomalDiscountBean.getDiscountMoney());
// System.out.println("MemberDiscount discountMoney : " + memberDiscountBean.getDiscountMoney());
// System.out.println("CouponDiscount discountMoney : " + couponDiscountBean.getDiscountMoney());
String[] strs = new String[]{"jack", "ann", "one", "two", "three", "four"};
Observable.fromArray(strs)
.toSortedList()//自然排序 ,升序
.subscribe(new SingleObserver<List<String>>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onSuccess(List<String> list) {
if (list != null) {
for (int i = 0; i < list.size(); i++) {
System.out.println("toList item======="
+ list.get(i));
}
}
}
@Override
public void onError(Throwable e) {
}
});
}
/**
* 具體支付類需要實現的方法
*/
public void pay(double money) {
}
}
package com.gingersoft.gsa.cloud.table.mvp.model.cart;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-09-24
* 修订历史:2020-09-24
* 描述:外賣下單購物車
*/
public class TakeawayCart extends ShoppingCart{
@Override
public void pay(double money) {
super.pay(money);
}
}
package com.gingersoft.gsa.cloud.table.mvp.model.discount;
import com.gingersoft.gsa.cloud.base.order.bean.discount.CouponDiscountBean;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
import lombok.Getter;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-09-19
* 修订历史:2020-09-19
* 描述: 優惠券折扣{@link CouponDiscountBean}
*/
@Getter
public class CouponDiscount extends MultyDiscount {
private CouponDiscountBean couponDiscount;
/**
* 本次折扣金额
*/
private Double discountMoney;
public CouponDiscount(MultyDiscount nextMultyDiscount, CouponDiscountBean couponDiscount) {
super(nextMultyDiscount);
this.couponDiscount = couponDiscount;
}
@Override
public double calculate(double money) {
if (couponDiscount != null) {
//配置了消費滿減
double totalAmount = money;
if (couponDiscount.getSpend() != null && totalAmount > couponDiscount.getSpend()) {
//未滿足消費滿條件
} else {
discountMoney = calculationCoupon(couponDiscount, money);
money = MoneyUtil.sum(money,discountMoney);
}
}
return super.calculate(money);
}
/**
* 計算優惠券金額
*
* @param couponDiscount
* @param sourceMoney
* @return
*/
public static double calculationCoupon(CouponDiscountBean couponDiscount, double sourceMoney) {
double discountMoney = 0;
if (couponDiscount.getCouponType() == 2) {
//金額折扣
discountMoney = couponDiscount.getAmount();
} else{
//百分比折扣
discountMoney = MoneyUtil.divide(MoneyUtil.multiply(sourceMoney, couponDiscount.getDiscount()), 100).doubleValue();
}
if (sourceMoney < discountMoney) {
//折扣金額不能超出總額
discountMoney = sourceMoney;
}
return -MoneyUtil.get_ItemDecimals_money(Math.abs(discountMoney));
}
/**
* 獲取優惠券折扣ID
*
* @return
*/
public Long getCouponDiscountId() {
if (couponDiscount != null) {
return couponDiscount.getId();
}
return null;
}
}
package com.gingersoft.gsa.cloud.table.mvp.model.discount;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
import lombok.Getter;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-09-19
* 修订历史:2020-09-19
* 描述: 會員折扣{@link MemberInfo#memberDiscount}
*/
@Getter
public class MemberDiscount extends MultyDiscount {
private MemberInfo memberDiscount;
/**
* 本次折扣金额
*/
private Double discountMoney;
public MemberDiscount(MultyDiscount nextMultyDiscount, MemberInfo memberDiscount) {
super(nextMultyDiscount);
this.memberDiscount = memberDiscount;
}
@Override
public double calculate(double money) {
if (memberDiscount != null) {
discountMoney = calculationMemberDiscount(memberDiscount.getMemberDiscount(), money);
money = MoneyUtil.sum(money,discountMoney);
}
return super.calculate(money);
}
public static double calculationMemberDiscount(int discountRate, double sourceMoney) {
double discountMoney = MoneyUtil.divide(MoneyUtil.multiply(sourceMoney, discountRate), 100).doubleValue();
if (sourceMoney < discountMoney) {
//折扣金額不能超出總額
discountMoney = sourceMoney;
}
return -MoneyUtil.get_ItemDecimals_money(Math.abs(discountMoney));
}
}
package com.gingersoft.gsa.cloud.table.mvp.model.discount;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-09-19
* 修订历史:2020-09-19
* 描述: 折扣抽象類{@link MultyDiscount}
*/
public abstract class MultyDiscount {
/**責任鏈中的下一個對象*/
protected MultyDiscount nextMultyDiscount;
public MultyDiscount(MultyDiscount nextMultyDiscount) {
this.nextMultyDiscount = nextMultyDiscount;
}
public double calculate(double money) {
if (nextMultyDiscount != null) {
return nextMultyDiscount.calculate(money);
}
return money;
}
}
package com.gingersoft.gsa.cloud.table.mvp.model.discount;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import lombok.Getter;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-09-19
* 修订历史:2020-09-19
* 描述: 整單折扣{@link Discount}
*/
@Getter
public class NomalDiscount extends MultyDiscount{
private Discount discount;
/**
* 本次折扣金额
*/
private Double discountMoney;
public NomalDiscount(MultyDiscount nextMultyDiscount,Discount discount) {
super(nextMultyDiscount);
this.discount = discount;
}
@Override
public double calculate(double money) {
if(discount != null){
discountMoney = calculationDiscount(discount, money);
money = MoneyUtil.sum(money,discountMoney);
}
return super.calculate(money);
}
/**
* 計算整单折扣金額
*
* @param discount
* @param sourceMoney
* @return
*/
public static double calculationDiscount(Discount discount, double sourceMoney) {
double discountMoney;
if (discount.getType() == 0) {
//金額折扣
discountMoney = discount.getAmount();
} else {
//百分比折扣
discountMoney = MoneyUtil.divide(MoneyUtil.multiply(sourceMoney, discount.getDiscount_value()), 100).doubleValue();
}
if (sourceMoney < discountMoney) {
//折扣金額不能超出總額
discountMoney = sourceMoney;
}
return -MoneyUtil.get_ItemDecimals_money(Math.abs(discountMoney));
}
}
......@@ -8,12 +8,11 @@ import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
import com.gingersoft.gsa.cloud.base.order.billItem.BillOrderMoney;
import com.gingersoft.gsa.cloud.base.order.bean.discount.CouponDiscountBean;
import com.gingersoft.gsa.cloud.base.order.billItem.BillItem;
import com.gingersoft.gsa.cloud.base.order.bean.OrderBean;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.bean.discount.OrderDiscount;
import com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage;
import com.gingersoft.gsa.cloud.base.order.billItem.BillItem;
import com.gingersoft.gsa.cloud.base.order.billItem.DiscountItem;
import com.gingersoft.gsa.cloud.base.order.billItem.RoundingItem;
import com.gingersoft.gsa.cloud.base.order.billItem.ServiceChargeItem;
......@@ -58,6 +57,7 @@ import javax.inject.Inject;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.functions.Consumer;
import io.reactivex.functions.Function;
import io.reactivex.schedulers.Schedulers;
......@@ -94,38 +94,31 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
private OrderContentActivity mOrderContentActivity;
private MealStandPresenter mMealStandPresenter;
//订单数据管理类
protected MyOrderManage myOrderManage;
// protected OpenTableManage openTableManage;
//訂單食品適配器
/**
* 訂單美食適配器
*/
protected SelectMealAdapter mSelectMealAdapter;
// protected List<OrderDetail> mOrderFoodList;
//整單相關金額適配器
/**
* 美食列表
*/
protected List<OrderDetail> mOrderMealList;
/**
* 賬單項適配器
*/
protected OrderMoneyAdapter mOrderMoneyAdapter;
// protected List<BillOrderMoney> mOrderMoneyList;
protected OrderDetail mCurrentOrderDetailBean;
//選中操作的食品下標
protected int orderSelectPosition = -1;
//币種
protected String cashStr = "$";
protected String serviceChargeStr = "服務費";
protected String roundingStr = "賬單小數";
private final String noFoodDeliveryTip = "賬單沒有食品,是否開台?";
/**
* 訂單信息
* 賬單項列表
*/
protected BaseOrder mOrder;
protected List<BillItem> mBillItemList;
/**
* 餐檯信息
*/
public TableBean.DataBean mTableInfo;
/**
* 訂單信息
*/
protected BaseOrder mOrder;
/**
* 堂食訂單信息
*/
protected DoshokuOrder mDoshokuOrder;
......@@ -138,13 +131,22 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
*/
protected ShoppingCart mShoppingCart;
/**
* 美食列表
*/
protected List<OrderDetail> mOrderMealList;
/**
* 賬單項列表
* 已下單信息
*/
protected List<BillItem> mBillItemList;
private OrderBean orderPlaced;
protected OrderDetail mCurrentOrderDetailBean;
//選中操作的食品下標
protected int orderSelectPosition = -1;
//币種
protected String cashStr = "$";
protected String serviceChargeStr = "服務費";
protected String roundingStr = "賬單小數";
private final String noFoodDeliveryTip = "賬單沒有食品,是否開台?";
private Disposable disposable;
public abstract void createOrder(boolean isPrint, Class afterToActivity);
......@@ -164,10 +166,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
this.mModel = (M) model;
this.mRootView = (V) rootView;
this.mBaseOrderPresenter = this;
this.IActivity = (Activity) mRootView;
// this.openTableManage = mDoshokuOrder.getOpenTableInfo();
this.myOrderManage = MyOrderManage.getInstance();
if (IActivity instanceof OrderContentActivity) {
mOrderContentActivity = (OrderContentActivity) IActivity;
......@@ -176,9 +175,8 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
mMealStandPresenter = (MealStandPresenter) this;
}
/****************************************************/
mOrder = OrderFactory.createOrder(FoodSummaryConstans.RESTAURANT_MODE);
if (BaseOrder.orderType == FoodSummaryConstans.RESTAURANT_MODE) {
if (BaseOrder.isCurrentOrderType(FoodSummaryConstans.RESTAURANT_MODE)) {
mDoshokuOrder = (DoshokuOrder) mOrder;
mTableInfo = mDoshokuOrder.getOpenTableInfo();
} else {
......@@ -187,24 +185,16 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
mShoppingCart = mOrder.getShoppingCart();
mOrderMealList = mShoppingCart.getOrderCommodityList();
mBillItemList = mShoppingCart.getBillItemList();
/****************************************************/
if (mMealStandPresenter != null) {
orderPlaced = mDoshokuOrder.getOrderPlaced();
}
resetSelected();
initOrderAdapter();
initItemClickListener();
// if (!containsTableService()) {
// addTableServiceAmount();
// }
// if (this instanceof MealStandPresenter) {
// addSentOrderDiscount();
// addOrderRounding();
// //設置賬單總金額
// myOrderManage.setTotalAmount(getTotalAmount());
// } else {
// updateBillOrderItem();
updateBillInfo();
// }
}
@Override
......@@ -213,23 +203,31 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
this.mErrorHandler = null;
this.mAppManager = null;
this.mApplication = null;
if (disposable != null && !disposable.isDisposed()) {
disposable.dispose();
}
}
/**
* 更新賬單信息
* 1、更新合計
* 2、更新食品折扣
* 3、更新服務費項
* 4、更新賬單折扣項{@link NomalDiscount}
* 5、更新賬單小數項
* 6、總金額
* 1、更新食品折扣
* 2、更新合計
* 3、更新食品折扣
* 4、更新服務費項
* 5、更新賬單折扣項{@link NomalDiscount}
* 6、更新賬單小數項
* 7、總金額
*/
public void updateBillInfo() {
double wholeAmount = getFoodTotal();
mShoppingCart.resetBeforeBillCalculation();
//更新食品折扣
updateFoodDiscount();
//更新合計
double wholeAmount = getFoodTotal();
mShoppingCart.setWholeAmount(wholeAmount);
Observable.just(wholeAmount)
disposable = Observable.just(wholeAmount)
.subscribeOn(Schedulers.computation())
/**
* 計算服務費
......@@ -237,28 +235,15 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
.map(new Function<Double, Double>() {
@Override
public Double apply(Double totalAmount) throws Exception {
ServiceChargeItem serviceChargeItem = (ServiceChargeItem) findBillItemByClass(ServiceChargeItem.class);
int serviceCharge = mDoshokuOrder.getOpenTableInfo().getServiceCharge();
if (serviceChargeItem != null) {
totalAmount = serviceChargeItem.updateBillItem(totalAmount, serviceCharge);
if (Double.doubleToLongBits(totalAmount) != 0.0) {
//更新服務費
mShoppingCart.setServiceCharge(totalAmount);
}else {
//刪除服務費
mBillItemList.remove(serviceChargeItem);
mShoppingCart.setServiceCharge(null);
}
} else {
if (serviceCharge != 0) {
if (serviceCharge > 0) {
ServiceChargeItem item = new ServiceChargeItem(serviceChargeStr);
totalAmount = item.updateBillItem(totalAmount, serviceCharge);
if (Double.doubleToLongBits(totalAmount) != 0.0) {
if (Double.doubleToLongBits(item.getMoney()) != 0.0) {
mBillItemList.add(item);
mShoppingCart.setServiceCharge(item.getMoney());
}
}
}
return totalAmount;
}
})
......@@ -268,14 +253,52 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
.map(new Function<Double, Double>() {
@Override
public Double apply(Double totalAmount) throws Exception {
if (orderPlaced != null) {
//添加已送單折扣
List<OrderDiscount.Respose> orderDiscounts = orderPlaced.getDiscountDetails();
if (orderDiscounts != null) {
for (OrderDiscount.Respose orderDiscount : orderDiscounts) {
if (orderDiscount.getType() == OrderDiscount.ORDER_DISCOUNT) {
//整單折扣
Discount discount = new Discount();
discount.setId(orderDiscount.getDiscountId());
discount.setRemark(orderDiscount.getRemark());
if (orderDiscount.getDiscountValue() != 0) {
//百分比折扣
discount.setType(1);
discount.setDiscount_value(orderDiscount.getDiscountValue());
}
if (orderDiscount.getDiscountAmount() != 0) {
//金額折扣
discount.setType(0);
discount.setAmount(orderDiscount.getDiscountAmount());
}
mShoppingCart.addMultyDiscount(mShoppingCart.createNomalDiscount(discount));
} else if (orderDiscount.getType() == OrderDiscount.MEMBER_DISCOUNT) {
//會員折扣
MemberInfo memberInfo = mDoshokuOrder.getMemberInfo();
if (memberInfo != null) {
mShoppingCart.addMultyDiscount(mShoppingCart.createMemberDiscount(memberInfo));
}
} else if (orderDiscount.getType() == OrderDiscount.COUPON_DISCOUNT) {
//優惠券折扣
CouponDiscountBean couponDiscount = new CouponDiscountBean();
couponDiscount.setCouponTypeName1(orderDiscount.getRemark());
couponDiscount.setCouponTypeName2(orderDiscount.getRemark2());
couponDiscount.setCouponTypeName3(orderDiscount.getRemark3());
couponDiscount.setAccumulate(orderDiscount.getAccumulate());
couponDiscount.setSpend(orderDiscount.getSpend());
couponDiscount.setDiscount(orderDiscount.getDiscountValue());
couponDiscount.setAmount(orderDiscount.getDiscountAmount());
mShoppingCart.addMultyDiscount(mShoppingCart.createCouponDiscount(couponDiscount));
}
}
}
}
double discountableMoney = getDiscountableFoodTotal2();
boolean calculatedDiscount = false;
for (BillItem item : mBillItemList) {
if (item instanceof DiscountItem && calculatedDiscount == false) {
calculatedDiscount = true;
if (discountableMoney > 0 && mShoppingCart.getMultyDiscountList().size() > 0) {
//調用折扣鏈進行計算
totalAmount = mShoppingCart.calculateLinkedDiscounts(discountableMoney);
}
totalAmount = MoneyUtil.sub(totalAmount, mShoppingCart.calculateLinkedDiscounts(discountableMoney));
}
return totalAmount;
}
......@@ -287,21 +310,10 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
@Override
public Double apply(Double totalAmount) throws Exception {
double roundingTotalAmount = getTotalAmountFilterByType(BillItem.ROUNDING_TYPE);
RoundingItem roundingItem = (RoundingItem) findBillItemByClass(RoundingItem.class);
if (roundingItem != null) {
totalAmount = roundingItem.updateBillItem(roundingTotalAmount);
if (Double.doubleToLongBits(totalAmount) != 0.0) {
//更新賬單小數
mShoppingCart.setRounding(totalAmount);
}else {
//刪除賬單小數
mBillItemList.remove(roundingItem);
mShoppingCart.setRounding(null);
}
} else {
if (roundingTotalAmount > 0) {
RoundingItem item = new RoundingItem(roundingStr);
totalAmount = item.updateBillItem(roundingTotalAmount);
if (Double.doubleToLongBits(totalAmount) != 0.0) {
if (Double.doubleToLongBits(item.getMoney()) != 0.0) {
mBillItemList.add(item);
mShoppingCart.setRounding(item.getMoney());
}
......@@ -313,6 +325,9 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
.subscribe(new Consumer<Double>() {
@Override
public void accept(Double totalAmount) throws Exception {
if (mOrderContentActivity != null) {
mOrderContentActivity.initOrderBill(wholeAmount, totalAmount);
}
//更新總金額
mShoppingCart.setTotalAmount(totalAmount);
//刷新賬單Item數據
......@@ -322,7 +337,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
}
/**
* 查詢對應的BillItem類是否存在
* 查詢對應的BillItem類
*
* @param cla
* @return
......@@ -368,9 +383,6 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
changeNumber(datasBean.getNumber() - 1);
}
mSelectMealAdapter.notifyDataSetChanged();
if (mOrderContentActivity != null) {
mOrderContentActivity.initOrderDetail();
}
//更新折扣
updateBillInfo();
}
......@@ -379,9 +391,6 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
public void onMealCountAdd(OrderDetail datasBean, int position) {
mRootView.recordOperat(true);
changeNumber(datasBean.getNumber() + 1);
if (mOrderContentActivity != null) {
mOrderContentActivity.initOrderDetail();
}
//更新折扣
updateBillInfo();
}
......@@ -422,7 +431,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
if (!changeNumberCondition(number)) {
return;
}
myOrderManage.changeNumber(number);
// myOrderManage.changeNumber(number);
if (mMealStandPresenter != null) {
mMealStandPresenter.updateMealSoldoutCtrData();
mMealStandPresenter.updateOrderFoodNumber();
......@@ -432,35 +441,35 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
}
public boolean changeNumberCondition(int i) {
if (MyOrderManage.getInstance().getSize() <= 0) {
if (mOrderMealList.size() <= 0) {
return false;
}
if (mSelectMealAdapter.getSelect_start_position() == -1 || mSelectMealAdapter.getSelect_start_position() >= mSelectMealAdapter.getInfos().size()) {
return false;
}
if (myOrderManage.getOrderFoodList().get(mSelectMealAdapter.getSelect_start_position()).isIsfood() == false) {
if (mOrderMealList.get(mSelectMealAdapter.getSelect_start_position()).isIsfood() == false) {
return false;
}
//旧食品不可以修改数量
if (!myOrderManage.isModifyOrder() && myOrderManage.getOrderFoodList().get(mSelectMealAdapter.getSelect_start_position()).isNew() == false && i != 0) {
if (!mDoshokuOrder.isModifyOrder() && mOrderMealList.get(mSelectMealAdapter.getSelect_start_position()).isNew() == false && i != 0) {
return false;
}
if (mSelectMealAdapter.getSelect_position() == -1) {
return false;
}
if (myOrderManage.getOrderFoodList().size() <= 0) {
if (mOrderMealList.size() <= 0) {
return false;
}
if (myOrderManage.getSelmainstartpositon() > myOrderManage.getOrderFoodList().size()) {
return false;
}
OrderDetail orderMainFood = myOrderManage.getOrderFoodList().get(myOrderManage.getSelmainstartpositon());
if (mMealStandPresenter != null && orderMainFood != null) {
//積分是否滿足
if (!mMealStandPresenter.memberPointsCondition(orderMainFood.getPointsRedeem() * i, orderMainFood.getProductName())) {
return false;
}
}
// if (myOrderManage.getSelmainstartpositon() > mOrderMealList.size()) {
// return false;
// }
// OrderDetail orderMainFood = mOrderMealList.get(myOrderManage.getSelmainstartpositon());
// if (mMealStandPresenter != null && orderMainFood != null) {
// //積分是否滿足
// if (!mMealStandPresenter.memberPointsCondition(orderMainFood.getPointsRedeem() * i, orderMainFood.getProductName())) {
// return false;
// }
// }
return true;
}
......@@ -473,7 +482,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
if (!sendOrderConditionFilter()) {
return;
}
if (MyOrderManage.getInstance().getOrderId() < 1) {
if (mDoshokuOrder.getOrderId() < 1) {
if (getFoodSize() == 0) {
Class[] parameterTypes = {boolean.class, Class.class};
Object[] parameters = {isPrint, afterToActivity};
......@@ -501,7 +510,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
* @return
*/
public boolean sendOrderConditionFilter() {
MemberInfo memberInfo = MyOrderManage.getInstance().getMemberInfo();
MemberInfo memberInfo = mDoshokuOrder.getMemberInfo();
if (memberInfo == null) {
for (OrderDetail item : getNewOrderFoodLists()) {
if (item.getPointsAdd() != 0 || item.getPointsRedeem() != 0) {
......@@ -516,330 +525,6 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
}
/**
* 更新賬單金額
*/
// public void updateBillOrderItem() {
// if (!containsTableService()) {
// addTableServiceAmount();
// }
// updateFoodDiscount();
// updateTableServiceAmount();
// updateOrderDiscount();
// updateMemberDiscount();
// updateMemberCoupon();
// updateOrderRounding();
// myOrderManage.setTotalAmount(getTotalAmount());
// }
/**
* 添加已送單折扣
*/
// private void addSentOrderDiscount() {
// OrderBean orderBean = myOrderManage.getOrderBean();
// if (orderBean != null) {
// DiscountResult discountResult = orderBean.getDiscountDetail();
// if (discountResult != null) {
// Discount discount = discountResult.getDiscount();
// MemberInfo memberDiscount = discountResult.getMemberDiscount();
// CouponDiscountBean memberCoupon = discountResult.getMemberCoupon();
// if (memberDiscount != null) {
// //整單折扣
// if (discount.getDiscount_value() != 0) {
// //百分比折扣
// discount.setType(1);
// addOrderDiscount(true, discount, BillOrderMoney.BILL_ITEM_ORDER_SENT_STATUS);
// } else {
// //金額折扣
// discount.setType(0);
// addOrderDiscount(true, discount, BillOrderMoney.BILL_ITEM_ORDER_SENT_STATUS);
// }
// }
// if (memberCoupon != null) {
// //會員優惠券
// if (memberDiscount != null) {
// addMemberCoupon(memberCoupon, memberDiscount.getId(), BillOrderMoney.BILL_ITEM_ORDER_SENT_STATUS);
// }
// }
// if (memberDiscount != null) {
// //會員折扣
// addMemberDiscount(memberDiscount.getId(), memberDiscount.getMemberDiscount(), memberDiscount.getMemberName(), memberDiscount.getLevelName1(), BillOrderMoney.BILL_ITEM_ORDER_SENT_STATUS);
// }
// }
// }
// }
// protected void addSentOrderDiscount() {
// OrderBean orderBean = myOrderManage.getOrderBean();
// if (orderBean != null) {
// List<OrderDiscount.Respose> discountDetails = orderBean.getDiscountDetails();
// if (discountDetails != null) {
// for (int i = 0; i < discountDetails.size(); i++) {
// OrderDiscount.Respose orderDiscount = discountDetails.get(i);
// if (orderDiscount.getType() == OrderDiscount.ORDER_DISCOUNT) {
// //整單折扣
// Discount discount = new Discount();
// discount.setId(orderDiscount.getDiscountId());
// discount.setRemark(orderDiscount.getRemark());
// if (orderDiscount.getDiscountValue() != 0) {
// //百分比折扣
// discount.setType(1);
// discount.setDiscount_value(orderDiscount.getDiscountValue());
// addOrderDiscount(true, discount, BillOrderMoney.BILL_ITEM_ORDER_SENT_STATUS);
// continue;
// }
// if (orderDiscount.getDiscountAmount() != 0) {
// //金額折扣
// discount.setType(0);
// discount.setAmount(orderDiscount.getDiscountAmount());
// addOrderDiscount(true, discount, BillOrderMoney.BILL_ITEM_ORDER_SENT_STATUS);
// continue;
// }
// } else if (orderDiscount.getType() == OrderDiscount.MEMBER_DISCOUNT) {
// //會員折扣
// MemberInfo memberInfo = myOrderManage.getMemberInfo();
// if (memberInfo != null) {
// addMemberDiscount(memberInfo.getId(), orderDiscount.getDiscountValue(), memberInfo.getMemberName(), memberInfo.getLevelName1(), BillOrderMoney.BILL_ITEM_ORDER_SENT_STATUS);
// }
// } else if (orderDiscount.getType() == OrderDiscount.COUPON_DISCOUNT) {
// CouponDiscountBean couponDiscount = new CouponDiscountBean();
// couponDiscount.setCouponTypeName1(orderDiscount.getRemark());
// couponDiscount.setCouponTypeName2(orderDiscount.getRemark2());
// couponDiscount.setCouponTypeName3(orderDiscount.getRemark3());
// couponDiscount.setAccumulate(orderDiscount.getAccumulate());
// couponDiscount.setSpend(orderDiscount.getSpend());
// couponDiscount.setDiscount(orderDiscount.getDiscountValue());
// couponDiscount.setAmount(orderDiscount.getDiscountAmount());
//
// MemberInfo memberInfo = myOrderManage.getMemberInfo();
// if (memberInfo != null) {
// addCouponDiscount(couponDiscount, myOrderManage.getMemberInfo().getId(), BillOrderMoney.BILL_ITEM_ORDER_SENT_STATUS);
// }
// }
// }
// }
// }
// }
/**
* 添加餐檯服務費
*/
// protected void addTableServiceAmount() {
// TableBean.DataBean dataBean = mDoshokuOrder.getOpenTableInfo().getTableBean();
// if (dataBean == null) {
// return;
// }
// double serviceAmount = MoneyUtil.divide(MoneyUtil.multiply(getScAbleFoodTotal(), dataBean.getServiceCharge()).doubleValue(), 100, MoneyUtil.ItemDecimals);
// if (serviceAmount > 0) {
// BillOrderMoney orderMoney = new BillOrderMoney();
// orderMoney.setMoney(MoneyUtil.get_ItemDecimals_money(serviceAmount));
// orderMoney.setTitle(dataBean.getServiceCharge() + "%" + serviceChargeStr);
// orderMoney.setStatus(BillOrderMoney.BILL_ITEM_ORDER_SENT_STATUS);
// orderMoney.setType(BillOrderMoney.SERVERCHARGE_TYPE);
// orderMoney.setTextColor(ArmsUtils.getColor(IActivity, R.color.theme_black));
// BillOrderMoney discountBill = getBillOrderItemByType(BillOrderMoney.ORDER_DISCOUNT_TYPE);
// if (discountBill != null) {
// mOrderMoneyList.add(0, orderMoney);
// } else {
// mOrderMoneyList.add(orderMoney);
// }
// mOrderMoneyAdapter.notifyDataSetChanged();
// }
// }
/**
* 更新服务费
*/
// private void updateTableServiceAmount() {
// BillOrderMoney billOrderMoney = getBillOrderItemByType(BillOrderMoney.SERVERCHARGE_TYPE);
// if (billOrderMoney != null) {
// TableBean.DataBean dataBean = mDoshokuOrder.getOpenTableInfo().getTableBean();
//// double serviceAmount = getTotalAmountFilterByType(BillOrderMoney.SERVERCHARGE_TYPE, BillOrderMoney.DISCOUNT_TYPE, BillOrderMoney.ROUNDING_TYPE) * dataBean.getServiceCharge() / 100;
// double serviceAmount = getScAbleFoodTotal() * dataBean.getServiceCharge() / 100;
// if (serviceAmount > 0) {
// billOrderMoney.setMoney(MoneyUtil.get_ItemDecimals_money(serviceAmount));
// } else {
// mOrderMoneyList.remove(billOrderMoney);
// }
// mOrderMoneyAdapter.notifyDataSetChanged();
// }
// }
/**
* 添加賬單折扣
*
* @param discount
*/
// protected void addOrderDiscount(boolean init, Discount discount, int status) {
//
// removeBillOrderItemByType(BillOrderMoney.ORDER_DISCOUNT_TYPE);
//
// double totalMoney = getDiscountableFoodTotal(BillOrderMoney.ORDER_DISCOUNT_TYPE, true);
// double discountPrice = OrderDiscount.calculationDiscount(discount, totalMoney);
// BillOrderMoney orderMoney = new BillOrderMoney();
// orderMoney.setMoney(discountPrice);
// orderMoney.setTitle(discount.getRemark());
// orderMoney.setType(BillOrderMoney.ORDER_DISCOUNT_TYPE);
// if (status == 0) {
// orderMoney.setTextColor(ArmsUtils.getColor(IActivity, R.color.theme_hint_color));
// } else {
// orderMoney.setTextColor(ArmsUtils.getColor(IActivity, R.color.theme_black));
// }
// orderMoney.setStatus(status);
// orderMoney.setDiscount(discount);
//
// mOrderMoneyList.add(orderMoney);
// mOrderMoneyAdapter.notifyDataSetChanged();
//
// //更新總金額
// if (!init && mOrderContentActivity != null) {
// //先更新下賬單小數,再計算總金額才不會錯
// updateOrderRounding();
// //更新合計 總金額信息
// mOrderContentActivity.initOrderDetail();
// }
// }
/**
* 更新整單折扣
*/
// protected void updateOrderDiscount() {
// BillOrderMoney orderMoney = getBillOrderItemByType(BillOrderMoney.ORDER_DISCOUNT_TYPE);
// if (orderMoney != null) {
// double totalMoney = getDiscountableFoodTotal(BillOrderMoney.ORDER_DISCOUNT_TYPE, false);
// double discountPrice = OrderDiscount.calculationDiscount(orderMoney.getDiscount(), totalMoney);
// orderMoney.setMoney(discountPrice);
// }
// }
/**
* 添加会员折扣
*
* @param memberId
* @param discountRate
* @param memberName
* @param levelName
*/
// public void addMemberDiscount(long memberId, int discountRate, String memberName, String levelName, int status) {
//
// removeBillOrderItemByType(BillOrderMoney.MEMBER_DISCOUNT_TYPE);
//
// double totalMoney = getDiscountableFoodTotal(BillOrderMoney.MEMBER_DISCOUNT_TYPE, true);
// if (!TextUtils.isEmpty(levelName)) {
// memberName = memberName + "(" + levelName + ")";
// }
// double discountPrice = OrderDiscount.calculationMemberDiscount(discountRate, totalMoney);
// BillOrderMoney orderMoney = new BillOrderMoney();
// orderMoney.setMoney(discountPrice);
// orderMoney.setTitle(memberName + discountRate + "%");
// orderMoney.setType(BillOrderMoney.MEMBER_DISCOUNT_TYPE);
// orderMoney.setTextColor(ArmsUtils.getColor(IActivity, R.color.theme_black));
// orderMoney.setStatus(status);
// //折扣
// Discount discount = new Discount();
// discount.setId(memberId);
// discount.setMemberId(memberId);
// discount.setType(1);
// discount.setRemark(memberName + discountRate + "%");
// discount.setDiscount_value(discountRate);
// orderMoney.setDiscount(discount);
//
// mOrderMoneyList.add(orderMoney);
// mOrderMoneyAdapter.notifyDataSetChanged();
// }
/**
* 更新会员折扣
*/
// protected void updateMemberDiscount() {
// BillOrderMoney orderMoney = getBillOrderItemByType(BillOrderMoney.MEMBER_DISCOUNT_TYPE);
// if (orderMoney != null) {
// double totalMoney = getDiscountableFoodTotal(BillOrderMoney.MEMBER_DISCOUNT_TYPE, false);
// double discountPrice = OrderDiscount.calculationDiscount(orderMoney.getDiscount(), totalMoney);
// orderMoney.setMoney(discountPrice);
// }
// }
/**
* 添加优惠券折扣
*
* @param coupon
* @param status
*/
// public void addCouponDiscount(CouponDiscountBean coupon, long memberId, int status) {
//
// removeBillOrderItemByType(BillOrderMoney.COUPON_DISCOUNT_TYPE);
//
// double totalMoney = getDiscountableFoodTotal(BillOrderMoney.COUPON_DISCOUNT_TYPE, true);
// double discountPrice = CouponDiscountBean.calculationCoupon(coupon.getDiscount(), coupon.getAmount(), totalMoney);
// BillOrderMoney orderMoney = new BillOrderMoney();
// orderMoney.setMoney(discountPrice);
// if (coupon.getDiscount() != 0) {
// orderMoney.setTitle(coupon.getName() + coupon.getDiscount() + "%");
// } else {
// orderMoney.setTitle(coupon.getName());
// }
// orderMoney.setType(BillOrderMoney.COUPON_DISCOUNT_TYPE);
// if (status == 0) {
// orderMoney.setTextColor(ArmsUtils.getColor(IActivity, R.color.theme_hint_color));
// } else {
// orderMoney.setTextColor(ArmsUtils.getColor(IActivity, R.color.theme_black));
// }
// orderMoney.setStatus(status);
// //折扣
// Discount discount = new Discount();
// discount.setId(coupon.getId());
// discount.setMemberId(memberId);
// discount.setRemark(coupon.getName() + coupon.getDiscount() + "%");
// discount.setDiscount_value(coupon.getDiscount());
// discount.setAmount(coupon.getAmount());
// if (coupon.getDiscount() != 0) {
// discount.setType(1);
// } else {
// discount.setType(0);
// }
// orderMoney.setDiscount(discount);
//
// mOrderMoneyList.add(orderMoney);
// mOrderMoneyAdapter.notifyDataSetChanged();
// }
/**
* 更新會員優惠券金額
*/
// public void updateMemberCoupon() {
// BillOrderMoney orderMoney = getBillOrderItemByType(BillOrderMoney.COUPON_DISCOUNT_TYPE);
// if (orderMoney != null) {
// double totalMoney = getDiscountableFoodTotal(BillOrderMoney.COUPON_DISCOUNT_TYPE, false);
// double discountPrice = CouponDiscountBean.calculationCoupon(orderMoney.getDiscount().getDiscount_value(), orderMoney.getDiscount().getAmount(), totalMoney);
// orderMoney.setMoney(discountPrice);
// }
// }
/**
* 根據類型刪除賬單項
*
* @param type
*/
// private void removeBillOrderItemByType(int type) {
// for (int i = mOrderMoneyList.size() - 1; i >= 0; i--) {
// BillOrderMoney item = mOrderMoneyList.get(i);
// if (item.getType() == type) {
// mOrderMoneyList.remove(i);
// mOrderMoneyAdapter.notifyItemChanged(i);
// break;
// }
// }
// }
// private BillOrderMoney getBillOrderItemByType(int type) {
// for (BillOrderMoney orderMoney : mOrderMoneyList) {
// if (orderMoney.getType() == type) {
// return orderMoney;
// }
// }
// return null;
// }
/**
* 更新食品折扣
*/
protected void updateFoodDiscount() {
......@@ -902,53 +587,12 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
}
/**
* 添加賬單小數行
*/
// protected void addOrderRounding() {
// double m1 = getTotalAmountFilterByType(BillOrderMoney.ROUNDING_TYPE);
// double m2 = MoneyUtil.getOrderRounding(m1);
// double roundingMoney = 0.0;
// if (m2 != 0) {
// roundingMoney = MoneyUtil.sub(m2, MoneyUtil.get_ItemDecimals_money(m1));
// }
// if (roundingMoney != 0.0) {
// BillOrderMoney roundingItem = new BillOrderMoney();
// roundingItem.setMoney(MoneyUtil.getDecimalMoney(roundingMoney, MoneyUtil.ItemDecimals));
// roundingItem.setTitle("賬單小數");
// roundingItem.setType(BillOrderMoney.ROUNDING_TYPE);
// mOrderMoneyList.add(roundingItem);
// mOrderMoneyAdapter.notifyDataSetChanged();
// }
// }
/**
* 刪除賬單小數
*/
// private void removeOrderRouding() {
// for (BillOrderMoney item : mOrderMoneyList) {
// if (item.getType() == BillOrderMoney.ROUNDING_TYPE) {
// mOrderMoneyList.remove(item);
// mOrderMoneyAdapter.notifyDataSetChanged();
// break;
// }
// }
// }
/**
* 更新賬單小數(在最後一行)
*/
// protected void updateOrderRounding() {
// removeOrderRouding();
// addOrderRounding();
// }
/**
* 創建訂單后保存OrderId
*
* @param orderId
*/
protected void setOrderId(double orderId) {
MyOrderManage.getInstance().setOrderId(orderId);
mDoshokuOrder.setOrderId((long) orderId);
}
/**
......@@ -964,22 +608,6 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
}
}
/***
* 獲取服務費
* @return
*/
public double getServiceCharge() {
double serviceCharge = 0.0;
for (BillItem item : mBillItemList) {
if (item.getType() == BillOrderMoney.SERVERCHARGE_TYPE) {
serviceCharge = item.getMoney();
break;
}
}
return serviceCharge;
}
/**
* 獲取食品合計
*
......@@ -1004,91 +632,6 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
return MoneyUtil.get_ItemDecimals_money(total);
}
/**
* 獲取所有可折扣食品合計
*
* @return
*/
// public double getDiscountableFoodTotal(int discountType, boolean add) {
// double total = 0.0;
// List<OrderDetail> orderFoodList = myOrderManage.getOrderFoodList();
// int orderSize = orderFoodList.size();
// for (int i = 0; i < orderSize; i++) {
// OrderDetail food = orderFoodList.get(i);
// if (food.getNumber() == 0) {
// continue;
// }
// if (food.getItemType() == 1) {
// if (food.getAblediscount() == 1) {
// total = MoneyUtil.sum(total, food.getPrice());
// }
// } else {
// int parentIndex = food.getParentIndex() - 1;
// if (orderSize > parentIndex && orderFoodList.get(parentIndex).getAblediscount() == 1) {
// if (food.getType() == DISCOUNT_TYPE) {
// //主食品参与折扣,折扣金额直接减掉
// total = MoneyUtil.sub(total, Math.abs(food.getPrice()));
// } else {
// //主食品可參與折扣 子食品才能參與折扣
// if (food.getAblediscount() == 1) {
// total = MoneyUtil.sum(total, food.getPrice());
// }
// }
// }
// }
// }
// if (add) {
// //添加折扣
// //折上折的情况,先减去上面的折扣金额再进行折扣
// for (int i = 0; i < mOrderMoneyList.size(); i++) {
// BillOrderMoney billOrderMoney = mOrderMoneyList.get(i);
// if (billOrderMoney.getType() == BillOrderMoney.ORDER_DISCOUNT_TYPE || billOrderMoney.getType() == BillOrderMoney.MEMBER_DISCOUNT_TYPE || billOrderMoney.getType() == BillOrderMoney.COUPON_DISCOUNT_TYPE) {
// double money = billOrderMoney.getMoney();
// total = MoneyUtil.sum(total, money);
// break;
// }
// }
// } else {
// //更新折扣
// int containAllDiscount = 0;
// for (int i = 0; i < mOrderMoneyList.size(); i++) {
// BillOrderMoney billOrderMoney = mOrderMoneyList.get(i);
// if (billOrderMoney.getType() == BillOrderMoney.ORDER_DISCOUNT_TYPE) {
// containAllDiscount++;
// continue;
// }
// if (billOrderMoney.getType() == BillOrderMoney.MEMBER_DISCOUNT_TYPE) {
// containAllDiscount++;
// continue;
// }
// if (billOrderMoney.getType() == BillOrderMoney.COUPON_DISCOUNT_TYPE) {
// containAllDiscount++;
// continue;
// }
// }
// if (containAllDiscount > 1) {
// //有账单折扣+会员折扣 会员优惠券
// //折上折的情况,先减去上之前的折扣金额再进行折扣
// for (int i = 0; i < mOrderMoneyList.size(); i++) {
// BillOrderMoney billOrderMoney = mOrderMoneyList.get(i);
// if (billOrderMoney.getType() == discountType) {
// //不能减掉自身再折
// break;
// }
// if (billOrderMoney.getType() == BillOrderMoney.ORDER_DISCOUNT_TYPE || billOrderMoney.getType() == BillOrderMoney.MEMBER_DISCOUNT_TYPE || billOrderMoney.getType() == BillOrderMoney.COUPON_DISCOUNT_TYPE) {
// double money = billOrderMoney.getMoney();
// total = MoneyUtil.sum(total, money);
// break;
// }
// }
// }
// }
// if (total < 0) {
// total = 0;
// }
// return MoneyUtil.get_ItemDecimals_money(total);
// }
public double getDiscountableFoodTotal2() {
double total = 0.0;
int orderSize = mOrderMealList.size();
......@@ -1121,71 +664,6 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
}
/**
* 獲取所有可服务费食品合計
*
* @return
*/
public double getScAbleFoodTotal() {
double total = 0.0;
List<OrderDetail> orderFoodList = myOrderManage.getOrderFoodList();
int orderSize = orderFoodList.size();
for (int i = 0; i < orderSize; i++) {
OrderDetail food = orderFoodList.get(i);
if (food.getNumber() == 0) {
continue;
}
if (food.getItemType() == 1) {
if (food.getScAble() == 1) {
total = MoneyUtil.sum(total, food.getPrice());
}
} else {
int parentIndex = food.getParentIndex() - 1;
if (orderSize > parentIndex && orderFoodList.get(parentIndex).getScAble() == 1) {
if (food.getType() == DISCOUNT_TYPE) {
//主食品参与服务费,折扣金额直接减掉
total = MoneyUtil.sub(total, Math.abs(food.getPrice()));
} else {
//主食品可參與服务费 子食品才能參與服务费
if (food.getScAble() == 1) {
total = MoneyUtil.sum(total, food.getPrice());
}
}
}
}
}
if (total < 0) {
total = 0;
}
return MoneyUtil.get_ItemDecimals_money(total);
}
/**
* 獲取總金額
*
* @return
*/
// public double getTotalAmountFilterByType(int... filterTypes) {
// double foodTotal = getFoodTotal();
// for (BillOrderMoney item : mOrderMoneyList) {
// if (!filterType(item.getType(), filterTypes)) {
// if (item.getType() == BillOrderMoney.SERVERCHARGE_TYPE && mOrderMoneyAdapter.getFreeServiceStauts()) {
// //TODO 免服務費
// } else {
// foodTotal = MoneyUtil.sum(foodTotal, item.getMoney());
// if (0 > foodTotal) {
// //折扣金額不能超出總額
// foodTotal = 0;
// }
// }
// }
// }
// if (foodTotal < 0) {
// foodTotal = 0;
// }
// return MoneyUtil.get_ItemDecimals_money(foodTotal);
// }
/**
* 獲取總金額
*
* @return
......@@ -1194,7 +672,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
double foodTotal = getFoodTotal();
for (BillItem item : mBillItemList) {
if (!filterType(item.getType(), filterTypes)) {
if (item.getType() == BillOrderMoney.SERVERCHARGE_TYPE && mOrderMoneyAdapter.getFreeServiceStauts()) {
if (item.getType() == BillItem.SERVERCHARGE_TYPE && mOrderMoneyAdapter.getFreeServiceStauts()) {
//TODO 免服務費
} else {
foodTotal = MoneyUtil.sum(foodTotal, item.getMoney());
......@@ -1228,7 +706,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
public double getTotalAmount() {
double foodTotal = getFoodTotal();
for (BillItem item : mBillItemList) {
if (item.getType() == BillOrderMoney.SERVERCHARGE_TYPE && mOrderMoneyAdapter.getFreeServiceStauts()) {
if (item.getType() == BillItem.SERVERCHARGE_TYPE && mOrderMoneyAdapter.getFreeServiceStauts()) {
//TODO 免服務費
} else {
foodTotal = MoneyUtil.sum(foodTotal, item.getMoney());
......@@ -1251,7 +729,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
*/
protected Double getRounding() {
for (BillItem item : mBillItemList) {
if (item.getType() == BillOrderMoney.ROUNDING_TYPE) {
if (item.getType() == BillItem.ROUNDING_TYPE) {
return item.getMoney();
}
}
......@@ -1265,7 +743,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
*/
public int getFoodCount() {
int count = 0;
for (OrderDetail food : myOrderManage.getOrderFoodList()) {
for (OrderDetail food : mOrderMealList) {
if (food.getType() != DISCOUNT_TYPE) {
//排除掉折扣
count += food.getNumber();
......@@ -1387,15 +865,15 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
setChildDiscountByMainAblediscount(newFoodList);
AddOrderRequest request = new AddOrderRequest();
request.setOrderId(MyOrderManage.getInstance().getOrderId());
request.setOrderId(mDoshokuOrder.getOrderId());
request.setTableId(mDoshokuOrder.getOpenTableInfo().getId());
if (MyOrderManage.getInstance().getMemberInfo() != null) {
request.setMemberId(MyOrderManage.getInstance().getMemberInfo().getId());
if (mDoshokuOrder.getMemberInfo() != null) {
request.setMemberId(mDoshokuOrder.getMemberInfo().getId());
}
request.setTableNumber(mDoshokuOrder.getOpenTableInfo().getTableNumber());
request.setMaps(orderDetailBeanToAddFoodRequest(newFoodList));
if (myOrderManage.getDeleteOrders() != null) {
request.setDeleteOrders(myOrderManage.getDeleteOrders());
if (mDoshokuOrder.getDeleteMealOrders() != null) {
request.setDeleteOrders(mDoshokuOrder.getDeleteMealOrders());
}
Double rounding = getRounding();
......@@ -1411,15 +889,15 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
List<OrderDiscount.Request> discountRequests = new ArrayList<>();
for (BillItem item : mBillItemList) {
if (item.getType() == BillOrderMoney.ORDER_DISCOUNT_TYPE) {
if (item.getType() == BillItem.ORDER_DISCOUNT_TYPE) {
discountRequests.add(OrderDiscount.Request.orderDiscountTransRequest((DiscountItem) item));
continue;
}
if (item.getType() == BillOrderMoney.MEMBER_DISCOUNT_TYPE) {
if (item.getType() == BillItem.MEMBER_DISCOUNT_TYPE) {
discountRequests.add(OrderDiscount.Request.memberDiscountTransRequest((DiscountItem) item));
continue;
}
if (item.getType() == BillOrderMoney.COUPON_DISCOUNT_TYPE) {
if (item.getType() == BillItem.COUPON_DISCOUNT_TYPE) {
discountRequests.add(OrderDiscount.Request.couponDiscountTransRequest((DiscountItem) item));
continue;
}
......@@ -1435,7 +913,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
//主食品ID
long mainProductId = 0;
//打印用到,清理掉之前保存的食品
MyOrderManage.getInstance().getNewFoodList().clear();
mDoshokuOrder.getNewFoodList().clear();
List<OrderBean.OrderDetailsBean> orderItems = null;
for (int i = 0; i < foodList.size(); i++) {
OrderDetail item = foodList.get(i);
......@@ -1470,7 +948,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
//這裡只添加新食品
orderItems.add(request);
//保存新食品,打印用到
MyOrderManage.getInstance().getNewFoodList().add(item);
mDoshokuOrder.getNewFoodList().add(item);
}
int nextIndex = i + 1;
if (foodList.size() > nextIndex && foodList.get(nextIndex).getType() == DISCOUNT_TYPE) {
......@@ -1501,7 +979,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
long type1 = 1;
long type2 = 2;
//打印用到,清理掉之前保存的食品
MyOrderManage.getInstance().getNewFoodList().clear();
mDoshokuOrder.getNewFoodList().clear();
//可重複的map
Map<String, List<OrderBean.OrderDetailsBean>> orderDetails = new HashMap<>();
if (foodList != null) {
......@@ -1535,7 +1013,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
OrderBean.OrderDetailsBean request = new OrderBean.OrderDetailsBean();
request.setMemberId(GsaCloudApplication.getMemberId());
request.setOrderId(MyOrderManage.getInstance().getOrderId());
request.setOrderId(mDoshokuOrder.getOrderId());
if (item.getId() != 0) {
request.setId(item.getId());
}
......@@ -1557,7 +1035,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
//這裡只添加新食品或有新折扣食品
orderItems.add(request);
//保存新食品,打印用到
MyOrderManage.getInstance().getNewFoodList().add(item);
mDoshokuOrder.getNewFoodList().add(item);
}
int nextIndex = i + 1;
if (foodList.size() > nextIndex && foodList.get(nextIndex).getType() == DISCOUNT_TYPE) {
......@@ -1740,12 +1218,12 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
* @return
*/
protected Long getCouponDiscountId() {
for (BillItem item : mBillItemList) {
if (item.getType() == BillOrderMoney.COUPON_DISCOUNT_TYPE) {
DiscountItem discountItem = (DiscountItem) item;
return discountItem.getDiscount().getId();
}
}
// for (BillItem item : mBillItemList) {
// if (item.getType() == BillItem.COUPON_DISCOUNT_TYPE) {
// DiscountItem discountItem = (DiscountItem) item;
// return discountItem.getDiscount().getId();
// }
// }
return null;
}
......@@ -1757,9 +1235,9 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
protected BillItem getNewDiscount() {
for (BillItem item : mBillItemList) {
if (item.getStatus() == 0 &&
(item.getType() == BillOrderMoney.ORDER_DISCOUNT_TYPE ||
item.getType() == BillOrderMoney.MEMBER_DISCOUNT_TYPE ||
item.getType() == BillOrderMoney.COUPON_DISCOUNT_TYPE)) {
(item.getType() == BillItem.ORDER_DISCOUNT_TYPE ||
item.getType() == BillItem.MEMBER_DISCOUNT_TYPE ||
item.getType() == BillItem.COUPON_DISCOUNT_TYPE)) {
return item;
}
}
......@@ -1817,16 +1295,6 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
return mOrderMealList;
}
// protected String getTableName() {
// String tablename = "";
// if (mDoshokuOrder.getOpenTableInfo().isSplite()) {
// tablename = mDoshokuOrder.getOpenTableInfo().getTableName() + "-" + mDoshokuOrder.getOpenTableInfo().getSplitNo();
// } else {
// tablename = mDoshokuOrder.getOpenTableInfo().getTableName();
// }
// return tablename;
// }
/**
* 修改訂單
*
......@@ -1835,7 +1303,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
*/
public void updateOrderPerson(String peopleNumber, TextView textView) {
RequestBody requestBody = new FormBody.Builder()
.add("orderId", String.valueOf(MyOrderManage.getInstance().getOrderId()))
.add("orderId", String.valueOf(mDoshokuOrder.getOrderId()))
.add("person", String.valueOf(peopleNumber))
.build();
mModel.updateOrder(requestBody)
......@@ -1860,6 +1328,10 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
});
}
public DoshokuOrder getDoshokuOrder() {
return mDoshokuOrder;
}
public ShoppingCart getShoppingCart() {
return mShoppingCart;
}
......
......@@ -5,8 +5,10 @@ import android.app.Application;
import android.content.Context;
import android.text.TextUtils;
import android.view.View;
import com.gingersoft.gsa.cloud.base.order.cart.ShoppingCart;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage;
import com.gingersoft.gsa.cloud.base.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.base.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.base.utils.VibratorUtils;
import com.gingersoft.gsa.cloud.table.R;
......@@ -453,8 +455,9 @@ public class FineItemAllPresenter extends BasePresenter<FineItemAllContract.Mode
*/
protected List<OrderDetail> getNewOrderFoodLists() {
List<OrderDetail> orderDetails = new ArrayList<>();
for (int i = 0; i < MyOrderManage.getInstance().getOrderFoodList().size(); i++) {
OrderDetail orderDetail = MyOrderManage.getInstance().getOrderFoodList().get(i);
List<OrderDetail> orderCommodityList = DoshokuOrder.getInstance().getShoppingCart().getOrderCommodityList();
for (int i = 0; i < orderCommodityList.size(); i++) {
OrderDetail orderDetail = orderCommodityList.get(i);
if (orderDetail.isNew()) {
orderDetails.add(orderDetail);
}
......@@ -463,8 +466,9 @@ public class FineItemAllPresenter extends BasePresenter<FineItemAllContract.Mode
}
private void setFid(List<Modifier> fineItemList, long fid) {
if (fineItemList == null)
if (fineItemList == null) {
return;
}
for (int i = 0; i < fineItemList.size(); i++) {
Modifier modifier = fineItemList.get(i);
modifier.setFid(fid);
......
......@@ -14,7 +14,6 @@ import com.gingersoft.gsa.cloud.base.order.billItem.BillItem;
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.OrderDiscount;
import com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage;
import com.gingersoft.gsa.cloud.base.order.billItem.DiscountItem;
import com.gingersoft.gsa.cloud.base.order.billItem.ServiceChargeItem;
import com.gingersoft.gsa.cloud.base.order.discount.MultyDiscount;
......@@ -160,110 +159,6 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
this.mApplication = null;
}
/**
* 初始化張單項
* 1、添加服務費項 {@link ServiceChargeItem}
* 2、添加折扣項 {@link NomalDiscount}
*/
// private void initBillItem() {
//
// //1、添加服務費項
// if (mShoppingCart.getServiceCharge() != null) {
// mShoppingCart.addBillItem(createServiceChargeItem(mShoppingCart.getServiceCharge()));
// }
//
// //2、添加折扣項
// if (mDoshokuOrder != null) {
// //獲取已下單信息
// OrderBean orderPlaced = mDoshokuOrder.getOrderPlaced();
// if (orderPlaced != null) {
// List<OrderDiscount.Respose> discountDetails = orderPlaced.getDiscountDetails();
// for (OrderDiscount.Respose discount : discountDetails) {
// addDiscountItem(discount);
// addMultyDiscount(discount);
// }
// }
// } else {
//
// }
// }
//
// private BillItem createServiceChargeItem(double money) {
// BillItem billItem = new ServiceChargeItem(serviceChargeStr, money);
// return billItem;
// }
/**
* 創建折扣賬單項
*
* @param orderDiscount
* @return
*/
private void addDiscountItem(OrderDiscount.Respose orderDiscount) {
DiscountItem discountItem = new DiscountItem();
if (orderDiscount.getType() == OrderDiscount.ORDER_DISCOUNT) {
discountItem.setName(orderDiscount.getRemark());
} else if (orderDiscount.getType() == OrderDiscount.MEMBER_DISCOUNT) {
//會員折扣
if (mDoshokuOrder != null) {
discountItem.setName(mDoshokuOrder.getMemberInfo().getMemberName());
}
} else if (orderDiscount.getType() == OrderDiscount.COUPON_DISCOUNT) {
//优惠券折扣
CouponDiscountBean couponDiscount = new CouponDiscountBean();
couponDiscount.setCouponTypeName1(orderDiscount.getRemark());
couponDiscount.setCouponTypeName2(orderDiscount.getRemark2());
couponDiscount.setCouponTypeName3(orderDiscount.getRemark3());
discountItem.setName(couponDiscount.getName());
}
mShoppingCart.addBillItem(discountItem);
}
/**
* 將已送單折扣 添加到購物車
*/
private void addMultyDiscount(OrderDiscount.Respose orderDiscount) {
MultyDiscount multyDiscount = null;
if (orderDiscount.getType() == OrderDiscount.ORDER_DISCOUNT) {
Discount discount = new Discount();
discount.setId(orderDiscount.getDiscountId());
discount.setRemark(orderDiscount.getRemark());
//整單折扣
if (orderDiscount.getDiscountValue() != 0) {
//百分比折扣
discount.setType(1);
discount.setDiscount_value(orderDiscount.getDiscountValue());
}
if (orderDiscount.getDiscountAmount() != 0) {
//金額折扣
discount.setType(0);
discount.setAmount(orderDiscount.getDiscountAmount());
}
multyDiscount = mShoppingCart.addNomalDiscount(null, discount);
} else if (orderDiscount.getType() == OrderDiscount.MEMBER_DISCOUNT) {
//會員折扣
if (mDoshokuOrder != null) {
multyDiscount = mShoppingCart.addMemberDiscount(null, mDoshokuOrder.getMemberInfo());
}
} else if (orderDiscount.getType() == OrderDiscount.COUPON_DISCOUNT) {
//优惠券折扣
CouponDiscountBean couponDiscount = new CouponDiscountBean();
couponDiscount.setCouponTypeName1(orderDiscount.getRemark());
couponDiscount.setCouponTypeName2(orderDiscount.getRemark2());
couponDiscount.setCouponTypeName3(orderDiscount.getRemark3());
couponDiscount.setAccumulate(orderDiscount.getAccumulate());
couponDiscount.setSpend(orderDiscount.getSpend());
couponDiscount.setDiscount(orderDiscount.getDiscountValue());
couponDiscount.setAmount(orderDiscount.getDiscountAmount());
multyDiscount = mShoppingCart.addCouponDiscount(null, couponDiscount);
}
if (multyDiscount != null) {
mShoppingCart.addMultyDiscount(multyDiscount);
}
}
public void startScanActivity() {
toScanActivity();
}
......@@ -910,7 +805,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
if (info.getData() instanceof Double) {
//未上線,避免正式版閃退
setOrderId((Double) info.getData());
MyOrderManage.getInstance().getOrderBean().setOrderNo(((Double) info.getData()).longValue() + "");
mDoshokuOrder.setOrderNo(((Double) info.getData()).longValue() + "");
} else {
LinkedTreeMap tm = (LinkedTreeMap) info.getData();
for (Object o : tm.keySet()) {
......@@ -918,13 +813,13 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
if (key.equals("id")) {
setOrderId((Double) tm.get(key));
} else if (key.equals("orderNo")) {
MyOrderManage.getInstance().getOrderBean().setOrderNo((String) tm.get(key));
mDoshokuOrder.setOrderNo((String) tm.get(key));
}
}
}
}
mRootView.showMessage("送單成功");
MyOrderManage.getInstance().setNewFoodList(getOrderFoodLists());
mDoshokuOrder.setNewFoodList(getOrderFoodLists());
printSendOrder(true);
} else {
mRootView.showMessage(info.getErrMsg());
......@@ -937,7 +832,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
public void addOrderFood(boolean isPrint, Class afterToActivity) {
List<OrderDetail> foodLists = getOrderFoodLists();
for (OrderDetail food : foodLists) {
food.setOrderId(MyOrderManage.getInstance().getOrderId());
food.setOrderId(mDoshokuOrder.getOrderId());
}
AddOrderRequest addOrderRequest = getAddOrderRequest(foodLists);
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(addOrderRequest));
......@@ -1032,7 +927,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
//將取消信息保存到訂單信息類中
DeleteOrderRequest request = getDeleteOrderRequest(ids, reasonId, maxNumber, deleteNumber);
myOrderManage.addDeleteOrder(request);
mDoshokuOrder.addDeleteMealOrder(request);
mRootView.showBtnMealModifyRestoreVisibility(true);
......@@ -1058,7 +953,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
item.setPrice(item.getNumber() * item.getUnit_price());
}
}
myOrderManage.setDeleteOrders(null);
mDoshokuOrder.setDeleteMealOrders(null);
mSelectMealAdapter.notifyDataSetChanged();
//更新賬單金額
updateBillInfo();
......@@ -1682,7 +1577,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
* @return
*/
public boolean memberPointsCondition(double pointsRedeem, String foodName) {
MemberInfo memberInfo = myOrderManage.getMemberInfo();
MemberInfo memberInfo = mDoshokuOrder.getMemberInfo();
if (memberInfo == null) {
//当前食品需要会员积分
if (pointsRedeem > 0) {
......@@ -2188,8 +2083,8 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
*/
private DeleteOrderRequest getDeleteOrderRequest(String ids, long reasonId, int maxNumber, int deleteNumber) {
List<DeleteOrderRequest.DeleteBean> mapsDelete = getMapsDelete(ids, maxNumber, deleteNumber);
byte type = (byte) (myOrderManage.isModifyOrder() ? 2 : 1);
long orderId = MyOrderManage.getInstance().getOrderId();
byte type = (byte) (mDoshokuOrder.isModifyOrder() ? 2 : 1);
long orderId = mDoshokuOrder.getOrderId();
DeleteOrderRequest request = new DeleteOrderRequest();
request.setMapsDelete(mapsDelete);
......
......@@ -14,10 +14,11 @@ import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
import com.gingersoft.gsa.cloud.base.order.bean.OrderBean;
import com.gingersoft.gsa.cloud.base.order.billItem.BillItem;
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.bean.mealManger.MyOrderManage;
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;
import com.gingersoft.gsa.cloud.base.table.bean.TableExtBean;
......@@ -119,7 +120,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
public OrderContentPresenter(OrderContentContract.Model model, OrderContentContract.View rootView) {
super(model, rootView);
this.IActivity = (OrderContentActivity) rootView;
if (!myOrderManage.isModifyOrder()) {
if (!mDoshokuOrder.isModifyOrder()) {
//转移食品可多选
mSelectMealAdapter.setSelectedMode(SelectMealAdapter.MULTIPLE_SELECTED);
}
......@@ -209,7 +210,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
// if (!canPay()) {
// return;
// }
if (hasNesOrderFoods() || getNewDiscount() != null || myOrderManage.needUpdateMemberInfo()) {
if (hasNesOrderFoods() || getNewDiscount() != null || mDoshokuOrder.needUpdateMemberInfo()) {
Class[] parameterTypes = {boolean.class, Class.class};
Object[] parameters = {false, OrderPayActivity.class};
CommonTipDialog.showDoubtDialog(IActivity, "賬單已變化,是否送單后去結賬", BaseOrderPresenter.class, mBaseOrderPresenter,
......@@ -258,10 +259,8 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
@Override
public void onItemDeleteClick(BillItem datasBean, int position) {
removeOrderDetailItem(position);
removeBillItem(position);
updateBillInfo();
//更新總金額
IActivity.initOrderDetail();
}
});
}
......@@ -270,7 +269,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
if (mFunctionList.size() > 0) {
mFunctionList.clear();
}
if (MyOrderManage.getInstance().isModifyOrder()) {
if (BaseOrder.isCurrentOrderType(FoodSummaryConstans.RESTAURANT_MODE) && mDoshokuOrder.isModifyOrder()) {
//修改訂單隱藏送單,印單功能
mFunctionList.add(new Function("結賬", Color.parseColor("#FFFFFF"), Color.parseColor("#DC0000"), 24));
mFunctionList.add(new Function("折扣", Color.parseColor("#FFFFFF"), Color.parseColor("#008577"), 24));
......@@ -284,7 +283,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
// if (functions.size() > 0) {
// mFunctionList.addAll(functions);
// } else {
if (MyOrderManage.getInstance().getOrderType() == FoodSummaryConstans.TAKEAWAY_TYPE) {
if (BaseOrder.isCurrentOrderType(FoodSummaryConstans.TAKEAWAY_TYPE)) {
mFunctionList.add(new Function("折扣", Color.parseColor("#FFFFFF"), Color.parseColor("#008577"), 24));
mFunctionList.add(new Function("印單", Color.parseColor("#FFFFFF"), Color.parseColor("#FF8E04"), 24));
mFunctionList.add(new Function("送單信息", Color.parseColor("#FFFFFF"), Color.parseColor("#008131"), 24));
......@@ -337,7 +336,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
public void addOrderFood(boolean isPrint, Class afterToActivity) {
List<OrderDetail> foodLists = getOrderFoodLists();
for (OrderDetail food : foodLists) {
food.setOrderId(MyOrderManage.getInstance().getOrderId());
food.setOrderId(mDoshokuOrder.getOrderId());
}
AddOrderRequest addOrderRequest = getAddOrderRequest(foodLists);
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(addOrderRequest));
......@@ -421,7 +420,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
public void printOrder(long tableId, boolean isSend) {
RequestBody requestBody = new FormBody.Builder()
.add("tableId", tableId + "")
.add("tableNumber",mTableInfo.getTableNumber())
.add("tableNumber", mTableInfo.getTableNumber())
.build();
mModel.printOrder(requestBody)
.subscribeOn(Schedulers.io())
......@@ -459,7 +458,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
mRootView.showMessage("印單失敗!");
if (isSend) {
//印單失敗但提交新食品成功,更新一遍訂單數據
loadOrder(MyOrderManage.getInstance().getOrderId());
loadOrder(mDoshokuOrder.getOrderId());
}
}
}
......@@ -490,9 +489,8 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
MemberInfo memberInfo = couponResult.getMemberInfo();
if (memberInfo != null) {
updateBillItem = true;
myOrderManage.setMemberInfo(memberInfo);
mDoshokuOrder.setMemberInfo(memberInfo);
mShoppingCart.addMultyDiscount(mShoppingCart.createMemberDiscount(memberInfo));
// addMemberDiscount(memberInfo.getId(), memberInfo.getMemberDiscount(), memberInfo.getMemberName(), memberInfo.getLevelName1(), BillItem.BILL_ITEM_NO_ORDER_STATUS);
}
CouponDiscountBean couponBean = couponResult.getCouponBean();
if (couponBean != null) {
......@@ -501,13 +499,9 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
}
updateBillItem = true;
mShoppingCart.addMultyDiscount(mShoppingCart.createCouponDiscount(couponBean));
// addCouponDiscount(couponBean, myOrderManage.getMemberInfo().getId(), BillItem.BILL_ITEM_NO_ORDER_STATUS);
}
if (updateBillItem) {
updateBillInfo();
//更新總金額
IActivity.initOrderDetail();
myOrderManage.setTotalAmount(getTotalAmount());
}
}
} else {
......@@ -659,9 +653,9 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
RequestBody requestBody = new FormBody.Builder()
.add("tableId", String.valueOf(mTableInfo.getId()))
.add("targetId", String.valueOf(dataBean.getId()))
.add("tableNumber",mTableInfo.getTableNumber())
.add("tableNumber", mTableInfo.getTableNumber())
.add("targetTableNumber", dataBean.getTableNumber())
.add("orderId", String.valueOf(MyOrderManage.getInstance().getOrderId()))
.add("orderId", String.valueOf(mDoshokuOrder.getOrderId()))
.add("orderDetailsIds", ids)
.build();
......@@ -688,8 +682,6 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
updateOrderDetails(info);
updateBillInfo();
IActivity.initOrderDetail();
IActivity.backPressed();
} else {
mRootView.showMessage("獲取訂單數據失敗");
......@@ -787,7 +779,6 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
mDiscountDialog.setOnClickListener(new DiscountDialog.Builder.OnClickListener() {
@Override
public void onItemClick(Discount item, int position) {
// addOrderDiscount(false, item, BillItem.BILL_ITEM_NO_ORDER_STATUS);
mShoppingCart.addMultyDiscount(mShoppingCart.createNomalDiscount(item));
updateBillInfo();
}
......@@ -818,7 +809,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
mTableInfo.setPerson(info.getData().getPerson());
//緩存訂單信息
MyOrderManage.getInstance().setOrderBean(new OrderBean(info.getData()));
mDoshokuOrder.setOrderPlaced(new OrderBean(info.getData()));
//緩存食品信息
List<OrderDetail> orderDetailList = OrderAssemblyUtil.assemblyOrder(OrderDetail.orderTransOrderDetails(info.getData().getOrderDetails()));
......@@ -877,13 +868,20 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
return true;
}
public void removeOrderDetailItem(int index) {
public void removeBillItem(int index) {
if (index < mBillItemList.size()) {
BillItem billItem = mBillItemList.get(index);
if (billItem instanceof DiscountItem) {
//刪除折扣列表對應數據
mShoppingCart.delMultyDiscount(((DiscountItem) billItem).getDiscount());
}
mBillItemList.remove(index);
mOrderMoneyAdapter.notifyDataSetChanged();
}
}
private boolean canPrint() {
if (getFoodCount() == 0) {
mRootView.showMessage("沒有食品,不能印單");
......@@ -905,7 +903,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
mRootView.showMessage("請選擇轉移食品");
return false;
}
if (myOrderManage.getOrderFoodList().get(mSelectMealAdapter.getSelect_start_position()).isNew() == true) {
if (mOrderMealList.get(mSelectMealAdapter.getSelect_start_position()).isNew() == true) {
mRootView.showMessage("請選擇已送單食品轉移");
return false;
}
......
......@@ -2,17 +2,12 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter;
import android.app.Application;
import android.text.TextUtils;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
import com.gingersoft.gsa.cloud.base.common.bean.PayMethod;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.bean.OrderPayRequest;
import com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage;
import com.gingersoft.gsa.cloud.base.order.bean.mealManger.OpenTableManage;
import com.gingersoft.gsa.cloud.base.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.base.table.bean.TableBean;
import com.gingersoft.gsa.cloud.base.utils.JsonUtils;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.base.utils.gson.GsonUtils;
......@@ -219,7 +214,7 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
* 結賬
*/
public void toOrderPay(boolean show) {
if (myOrderManage.isModifyOrder()) {
if (mDoshokuOrder.isModifyOrder()) {
//修改訂單
updateOrderPay();
return;
......@@ -252,13 +247,13 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
if (baseResult.isSuccess()) {
OrderPayRespose orderPayRespose = JsonUtils.parseObject(baseResult.getData(), OrderPayRespose.class);
if (orderPayRespose != null) {
if (myOrderManage.getMemberInfo() != null) {
MyOrderManage.getInstance().setAddPoints(orderPayRespose.getAddPoints());
MyOrderManage.getInstance().setNowPoints(orderPayRespose.getNowPoints());
MyOrderManage.getInstance().setOldPoints(orderPayRespose.getOldPoints());
if (mDoshokuOrder.getMemberInfo() != null) {
mDoshokuOrder.setAddPoints(orderPayRespose.getAddPoints());
mDoshokuOrder.setNowPoints(orderPayRespose.getNowPoints());
mDoshokuOrder.setOldPoints(orderPayRespose.getOldPoints());
} else {
if (!TextUtils.isEmpty(orderPayRespose.getVerifyCode())) {
MyOrderManage.getInstance().setIntegralQrcode(orderPayRespose.getVerifyCode());
mDoshokuOrder.setIntegralQrcode(orderPayRespose.getVerifyCode());
}
}
}
......@@ -279,12 +274,12 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
private OrderPayRequest getOrderPayRequest(OrderPayView orderPayView) {
MemberInfo memberInfo = myOrderManage.getMemberInfo();
MemberInfo memberInfo = mDoshokuOrder.getMemberInfo();
List<PayMethod> payMethodList = orderPayView.getBillMoneyList();
OrderPayRequest payRequest = new OrderPayRequest();
payRequest.setOrderId(MyOrderManage.getInstance().getOrderId());
payRequest.setOrderId(mDoshokuOrder.getOrderId());
payRequest.setOrderPayType(orderPayType);
payRequest.setLinePayType(orderPayView.getLinePayType());
payRequest.setTableId(mTableInfo.getId());
......
......@@ -5,13 +5,11 @@ import android.content.Context;
import android.os.CountDownTimer;
import android.text.TextUtils;
import android.view.View;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.order.bean.OrderBean;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage;
import com.gingersoft.gsa.cloud.base.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.base.table.bean.TableBean;
import com.gingersoft.gsa.cloud.base.table.bean.TableExtBean;
......@@ -326,7 +324,9 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
public void onNext(@NonNull BaseOrderRespose respose) {
if (respose.isSuccess()) {
TableBean.DataBean tableInfo = DoshokuOrder.getInstance().getOpenTableInfo();
DoshokuOrder doshokuOrder = DoshokuOrder.getInstance();
TableBean.DataBean tableInfo = doshokuOrder.getOpenTableInfo();
tableInfo.setPerson(0);
//設置當前開台數據1584427984728 1584428017196 1584428086282
// TableBean.DataBean dataBean = getTableById(tableId);
......@@ -345,16 +345,16 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
List<OrderBean.OrderDetailsBean> orderDetailsBeans = respose.getData().getOrderDetails();
//緩存訂單信息
MyOrderManage.getInstance().setOrderBean(new OrderBean(orderBean));
doshokuOrder.setOrderPlaced(new OrderBean(orderBean));
//緩存食品信息
List<OrderDetail> orderDetailList = OrderAssemblyUtil.assemblyOrder(OrderDetail.orderTransOrderDetails(orderDetailsBeans));
MyOrderManage.getInstance().setOrderFoodList(orderDetailList);
doshokuOrder.getShoppingCart().setOrderCommodityList(orderDetailList);
} else {
MyOrderManage.getInstance().setOrderBean(null);
MyOrderManage.getInstance().setOrderFoodList(new ArrayList<>());
doshokuOrder.setOrderPlaced(null);
doshokuOrder.getShoppingCart().setOrderCommodityList(new ArrayList<>());
}
DoshokuOrder.getInstance().setOpenTableInfo(openTableBean);
doshokuOrder.setOpenTableInfo(openTableBean);
printParper();
} else {
......@@ -372,10 +372,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
.build()
.callAsyncCallbackOnMainThread((cc, result) -> {
//清空賬單數據
MyOrderManage.getInstance().clear();
//清空賬單數據
DoshokuOrder.getInstance().initialization();
mRootView.canceTableAction();
});
}
......@@ -415,7 +412,6 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
}
DoshokuOrder doshokuOrder = DoshokuOrder.getInstance();
doshokuOrder.setOpenTableInfo(openTableBean);
OrderBean orderBean = respose.getData();
if (orderBean != null && respose.getData().getOrderDetails() != null) {
......@@ -431,19 +427,17 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
setTopId(mealCommoditysBeans);
//設置用餐人數
doshokuOrder.getOpenTableInfo().setPerson(orderBean.getPerson());
openTableBean.setPerson(orderBean.getPerson());
//緩存訂單信息
doshokuOrder.setOrderPlaced(new OrderBean(orderBean));
doshokuOrder.getShoppingCart().addCommodityList(OrderDetail.orderTransOrderDetails(mealCommoditysBeans));
// MyOrderManage.getInstance().setOrderFoodList(mealCommodityList);
// if (orderBean.getMemberInfo() != null) {
// //设置会员信息
// MyOrderManage.getInstance().setMemberInfo(orderBean.getMemberInfo());
// MyOrderManage.getInstance().setMemberUpdateStatus(true + "-" + true);
// }else {
// MyOrderManage.getInstance().setMemberUpdateStatus(false + "-" + false);
// }
if (orderBean.getMemberInfo() != null) {
//设置会员信息
doshokuOrder.setMemberInfo(orderBean.getMemberInfo());
doshokuOrder.setMemberUpdateStatus(true + "-" + true);
}else {
doshokuOrder.setMemberUpdateStatus(false + "-" + false);
}
} else {
doshokuOrder.setOrderPlaced(null);
doshokuOrder.getShoppingCart().setOrderCommodityList(new ArrayList<>());
......
......@@ -5,13 +5,15 @@ import android.content.Context;
import android.content.Intent;
import android.text.TextUtils;
import android.util.Log;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.base.common.bean.PayMethod;
import com.gingersoft.gsa.cloud.base.order.billItem.BillItem;
import com.gingersoft.gsa.cloud.base.order.billItem.BillOrderMoney;
import com.gingersoft.gsa.cloud.base.order.bean.OrderBean;
import com.gingersoft.gsa.cloud.base.order.cart.ShoppingCart;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.bean.discount.OrderDiscount;
import com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage;
import com.gingersoft.gsa.cloud.base.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.base.table.bean.TableBean;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
......@@ -70,12 +72,17 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
private OrderCenterAdapter mOrderCenterAdapter;
private List<OrderDetailItem> mOrderItemList = new ArrayList<>();
private DoshokuOrder doshokuOrder ;
private ShoppingCart shoppingCart ;
@Inject
public AllOrderPresenter(AllOrderContract.Model model, AllOrderContract.View rootView) {
super(model, rootView);
AllOrderFragment allOrderFragment = (AllOrderFragment) rootView;
this.IActivity = (OrderCenterActivity) allOrderFragment.getCurrentActivity();
doshokuOrder = DoshokuOrder.getInstance();
shoppingCart = doshokuOrder.getShoppingCart();
}
@Override
......@@ -108,12 +115,13 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
@Override
public void onModifyClick(OrderDetailItem datasBean, int position) {
if(datasBean.getRestaurantTable() == null){
if (datasBean.getRestaurantTable() == null) {
mRootView.showMessage("餐檯不存在,無法修改訂單");
return;
}
//設置為修改訂單操作
MyOrderManage.getInstance().setModifyOrder(true);
doshokuOrder.setModifyOrder(true);
/**
* 緩存訂單信息
*/
......@@ -126,7 +134,7 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
if (datasBean.getDiscountDetails() != null) {
orderBean.setDiscountDetails(datasBean.getDiscountDetails());
}
MyOrderManage.getInstance().setOrderBean(orderBean);
doshokuOrder.setOrderPlaced(orderBean);
TableBean.DataBean tableBean = new TableBean.DataBean(datasBean.getRestaurantTable());
if (!TextUtils.isEmpty(tableBean.getTableNumber())) {
......@@ -135,14 +143,14 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
tableBean.setTableName(tableBean.getTableName());
}
tableBean.setPerson(datasBean.getPerson());
DoshokuOrder.getInstance().setOpenTableInfo(tableBean);
doshokuOrder.setOpenTableInfo(tableBean);
List<OrderBean.OrderDetailsBean> orderDetailsBeans = datasBean.getOrderDetails();
List<OrderDetail> orderDetailList = OrderAssemblyUtil.assemblyOrder(OrderDetail.orderTransOrderDetails(orderDetailsBeans));
MyOrderManage.getInstance().setOrderFoodList(orderDetailList);
doshokuOrder.getShoppingCart().addCommodityList(orderDetailList);
if (datasBean.getMemberInfo() != null) {
MyOrderManage.getInstance().setMemberInfo(datasBean.getMemberInfo());
doshokuOrder.setMemberInfo(datasBean.getMemberInfo());
}
Intent intent = new Intent(IActivity, MealStandActivity.class);
......@@ -172,29 +180,29 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
private void startPrintOrder(OrderDetailItem orderDetailItem, List<OrderDetail> orderDetailList) {
double wholeAmount = getWholeAmount(orderDetailList);
MyOrderManage.getInstance().setOrderFoodList(orderDetailList);
MyOrderManage.getInstance().setOrderMoneyList(getOrderMoneyList(orderDetailItem, wholeAmount));
MyOrderManage.getInstance().setOrderId(orderDetailItem.getId());
MyOrderManage.getInstance().setWholeAmount(wholeAmount);
MyOrderManage.getInstance().setTotalAmount(orderDetailItem.getTotalAmount());
doshokuOrder.setOrderId(orderDetailItem.getId());
shoppingCart.setOrderCommodityList(orderDetailList);
shoppingCart.setBillItemList(getOrderMoneyList(orderDetailItem, wholeAmount));
shoppingCart.setWholeAmount(wholeAmount);
shoppingCart.setTotalAmount(orderDetailItem.getTotalAmount());
TableBean.DataBean dataBean = new TableBean.DataBean();
dataBean.setTableName(orderDetailItem.getTableName());
if(!TextUtils.isEmpty(orderDetailItem.getCreateTime())) {
if (!TextUtils.isEmpty(orderDetailItem.getCreateTime())) {
dataBean.setCreateTime(TimeUtils.getStringByFormat(new Date(orderDetailItem.getCreateTime()), TimeUtils.DEFAULT_DATE_FORMAT_YMDHM));
}
dataBean.setPerson(orderDetailItem.getPerson());
DoshokuOrder.getInstance().setOpenTableInfo(dataBean);
doshokuOrder.setOpenTableInfo(dataBean);
if (orderDetailItem.getMemberInfo() != null) {
MyOrderManage.getInstance().setMemberInfo(orderDetailItem.getMemberInfo());
doshokuOrder.setMemberInfo(orderDetailItem.getMemberInfo());
} else {
MyOrderManage.getInstance().setIntegralQrcode(orderDetailItem.getVerifyCode());
doshokuOrder.setIntegralQrcode(orderDetailItem.getVerifyCode());
}
List<PayMethod> payMethodList = getPayMethodList(orderDetailItem.getOrderPays());
if (payMethodList != null) {
//設置打印所需支付方式
MyOrderManage.getInstance().setBillMoney(payMethodList);
doshokuOrder.setBillMoney(payMethodList);
}
CC.obtainBuilder("Component.Print")
.setActionName("printActivity")
......@@ -202,16 +210,13 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
.build()
.callAsyncCallbackOnMainThread((cc, result) -> {
Log.e("error", "是否成功打印:" + result.isSuccess());
MyOrderManage.getInstance().clear();
DoshokuOrder.getInstance().setOpenTableInfo(null);
doshokuOrder.initialization();
});
}
private List<BillOrderMoney> getOrderMoneyList(OrderDetailItem orderDetailItem, double totalMoney) {
private List<BillItem> getOrderMoneyList(OrderDetailItem orderDetailItem, double totalMoney) {
List<SectionTextItem3> printOrderMoneyList = new ArrayList<>();
List<BillOrderMoney> printBillOrderMoneyList = new ArrayList<>();
List<BillItem> printBillOrderMoneyList = new ArrayList<>();
SectionTextItem3 serviceAmountSection = getOrderServiceAmountSection(orderDetailItem);
if (serviceAmountSection != null) {
printOrderMoneyList.add(serviceAmountSection);
......
......@@ -28,7 +28,7 @@ import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
import com.gingersoft.gsa.cloud.base.order.bean.OrderBean;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage;
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;
import com.gingersoft.gsa.cloud.base.utils.VibratorUtils;
......@@ -307,7 +307,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
}
mPresenter.toFindMeal(inputText);
});
if (!MyOrderManage.getInstance().isModifyOrder()) {
if (BaseOrder.isCurrentOrderType(FoodSummaryConstans.RESTAURANT_MODE) && !DoshokuOrder.getInstance().isModifyOrder()) {
//根据倒计时时间自动退出当前页面
initAutoQuit();
}
......@@ -326,7 +326,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
}
private void initTableDetail() {
if (MyOrderManage.getInstance().getOrderType() == FoodSummaryConstans.TAKEAWAY_TYPE) {
if (BaseOrder.isCurrentOrderType(FoodSummaryConstans.TAKEAWAY_TYPE)) {
TableBean.DataBean tableBean = new TableBean.DataBean();
tableBean.setPerson(1);
tableBean.setTableName("外賣");
......@@ -347,7 +347,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
mPresenter.resetSelected();
mPresenter.updateOrderFoodNumber();
mPresenter.updateFoodSoldoutCtrData();
if (MyOrderManage.getInstance().getMemberInfo() != null) {
if (BaseOrder.isCurrentOrderType(FoodSummaryConstans.RESTAURANT_MODE) && DoshokuOrder.getInstance().getMemberInfo() != null) {
useMember();
}
initOrderDetail();
......@@ -589,7 +589,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
@OnClick(R2.id.btn_table)
void onClickTable() {
if (MyOrderManage.getInstance().getOrderType() == FoodSummaryConstans.TAKEAWAY_TYPE) {
if (BaseOrder.isCurrentOrderType(FoodSummaryConstans.TAKEAWAY_TYPE)) {
return;
}
//type取值:1:qrCdoetype,2:手機號,3:memberId
......@@ -612,18 +612,17 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
public void onUseMember(UseMemberDialog dialog) {
if (mMemberInfo != null) {
dialog.dismiss();
MyOrderManage.getInstance().setMemberInfo(mMemberInfo);
DoshokuOrder.getInstance().setMemberInfo(mMemberInfo);
//添加会员折扣行
mPresenter.getShoppingCart().addMultyDiscount(mPresenter.getShoppingCart().createMemberDiscount(mMemberInfo));
// mPresenter.getShoppingCart().addMultyDiscount(mMemberInfo.getId(), mMemberInfo.getMemberDiscount(), mMemberInfo.getMemberName(), mMemberInfo.getLevelName1(), BillOrderMoney.BILL_ITEM_NO_ORDER_STATUS);
useMember();
if (MyOrderManage.getInstance().needUpdateMemberInfo()) {
if (DoshokuOrder.getInstance().needUpdateMemberInfo()) {
return;
}
String[] updateMemberStatus = MyOrderManage.getInstance().getMemberUpdateStatus().split("-");
String[] updateMemberStatus = DoshokuOrder.getInstance().getMemberUpdateStatus().split("-");
if (Boolean.parseBoolean(updateMemberStatus[0]) == true) {
MyOrderManage.getInstance().setMemberUpdateStatus(updateMemberStatus[0] + "-" + true);
DoshokuOrder.getInstance().setMemberUpdateStatus(updateMemberStatus[0] + "-" + true);
}
} else {
showMessage("請輸入正確的會員號碼!");
......@@ -633,21 +632,20 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
@Override
public void clearMemberInfo() {
btn_table.setBackgroundColor(Color.parseColor("#336699"));
MyOrderManage.getInstance().setMemberInfo(null);
//刪除會員折扣行
// mPresenter.removeMemberDiscountItem();
DoshokuOrder.getInstance().setMemberInfo(null);
//更新賬單信息
mPresenter.updateBillInfo();
if (MyOrderManage.getInstance().needUpdateMemberInfo()) {
if (DoshokuOrder.getInstance().needUpdateMemberInfo()) {
return;
}
String[] updateMemberStatus = MyOrderManage.getInstance().getMemberUpdateStatus().split("-");
String[] updateMemberStatus = DoshokuOrder.getInstance().getMemberUpdateStatus().split("-");
if (Boolean.parseBoolean(updateMemberStatus[0]) == true) {
MyOrderManage.getInstance().setMemberUpdateStatus(updateMemberStatus[0] + "-" + false);
DoshokuOrder.getInstance().setMemberUpdateStatus(updateMemberStatus[0] + "-" + false);
}
}
});
}
mUseMemberDialog.setMemberInfo(DoshokuOrder.getInstance().getMemberInfo());
mUseMemberDialog.build().show();
}
......@@ -702,7 +700,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
int id = v.getId();
if (id == R.id.btn_numberman) {
if (MyOrderManage.getInstance().getOrderType() == FoodSummaryConstans.TAKEAWAY_TYPE) {
if (BaseOrder.isCurrentOrderType(FoodSummaryConstans.TAKEAWAY_TYPE)) {
return;
}
showChoosePeopleNumDialog(true);
......@@ -728,7 +726,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
mPresenter.restoreDeleteFood();
showBtnMealModifyRestoreVisibility(false);
} else if (id == R.id.btn_send_order) {
if (MyOrderManage.getInstance().getOrderType() == FoodSummaryConstans.TAKEAWAY_TYPE) {
if (BaseOrder.isCurrentOrderType(FoodSummaryConstans.TAKEAWAY_TYPE)) {
CC.obtainBuilder("ComponentDeliveryPick")
.setActionName("SendOrder")
.build()
......@@ -770,14 +768,14 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
case 3:
case 4:
case 5:
if (BuildConfig.DEBUG) {
if (BuildConfig.DEBUG && BaseOrder.isCurrentOrderType(FoodSummaryConstans.RESTAURANT_MODE)) {
if (i == 1) {
OrderBean order = MyOrderManage.getInstance().getOrderBean();
OrderBean order = DoshokuOrder.getInstance().getOrderPlaced();
if (order != null) {
ArmsUtils.snackbarText("訂單ID:" + order.getId());
}
} else if (i == 2) {
MemberInfo memberInfo = MyOrderManage.getInstance().getMemberInfo();
MemberInfo memberInfo = DoshokuOrder.getInstance().getMemberInfo();
if (memberInfo != null) {
showMessage("積分兌現金比例: " + memberInfo.getPointRedeemCash());
}
......@@ -793,8 +791,9 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
@Override
public void onComfirmClick(String number) {
int inumber = Integer.parseInt(number);
if (inumber == 0)
if (inumber == 0) {
return;
}
mPresenter.changeNumber(inumber);
}
......@@ -821,11 +820,10 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
returnBeforeActivity(true);
}
public void returnBeforeActivity(boolean initTable) {
SPUtils.put(this, MealConstant.EXIT_IS_PLU_MODE, isPluMode);
if (BaseOrder.isCurrentOrderType(FoodSummaryConstans.RESTAURANT_MODE) && initTable && !DoshokuOrder.getInstance().isModifyOrder()) {
TableBean.DataBean dataBean = DoshokuOrder.getInstance().getOpenTableInfo();
if (initTable && dataBean != null && !MyOrderManage.getInstance().isModifyOrder()) {
//通知更新餐台状态
EventBus.getDefault().post(new InitTableEvent(dataBean.getId(), dataBean.getTableNumber()), "initTable_status_event");
}
......@@ -1169,7 +1167,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
@Override
public void initLayoutVisible() {
if (MyOrderManage.getInstance().isModifyOrder()) {
if (BaseOrder.isCurrentOrderType(FoodSummaryConstans.RESTAURANT_MODE) && DoshokuOrder.getInstance().isModifyOrder()) {
//修改訂單隱藏送單功能
fl_send_order.setVisibility(View.GONE);
}
......
......@@ -14,7 +14,6 @@ import android.widget.Button;
import android.widget.Chronometer;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
......@@ -23,9 +22,8 @@ import androidx.recyclerview.widget.DefaultItemAnimator;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager.widget.ViewPager;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage;
import com.gingersoft.gsa.cloud.base.order.cart.ShoppingCart;
import com.gingersoft.gsa.cloud.base.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.base.table.bean.TableBean;
import com.gingersoft.gsa.cloud.base.utils.VibratorUtils;
......@@ -161,6 +159,8 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
private List<TableBean.DataBean> mTableList;
private DoshokuOrder mDoshokuOrder;
private ShoppingCart mShoppingCart;
@Override
public void setupActivityComponent(@NonNull AppComponent appComponent) {
......@@ -173,24 +173,32 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
}
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
mDoshokuOrder = DoshokuOrder.getInstance();
mShoppingCart = mDoshokuOrder.getShoppingCart();
super.onCreate(savedInstanceState);
}
@Override
public int initView(@Nullable Bundle savedInstanceState) {
return R.layout.table_activity_order_content; //如果你不需要框架帮你设置 setContentView(id) 需要自行设置,请返回 0
}
@Override
public void initData(@Nullable Bundle savedInstanceState) {
initOrderDetail();
initTopInfo();
initOrderBill(mPresenter.getFoodTotal(),mPresenter.getTotalAmount());
mPresenter.initTopFunctionData();
mPresenter.initAdapter();
mPresenter.initItemListener();
if (!MyOrderManage.getInstance().isModifyOrder()) {
if (!mDoshokuOrder.isModifyOrder()) {
//根据倒计时时间自动退出当前页面
initAutoQuit();
}
}
public void initOrderDetail() {
public void initOrderBill(double wholeAmount,double totalAmount) {
int foodCount = mPresenter.getFoodCount();
if (foodCount > 0) {
btn_order_count.setText(String.valueOf(foodCount));
......@@ -198,27 +206,22 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
} else {
btn_order_count.setVisibility(View.INVISIBLE);
}
double wholeAmount = mPresenter.getFoodTotal();
tv_whole.setText("合計 $" + wholeAmount);
tv_total.setText("$" + mPresenter.getTotalAmount());
MyOrderManage.getInstance().setWholeAmount(wholeAmount);
tv_total.setText("$" + totalAmount);
}
private void initTopInfo() {
TableBean.DataBean tableInfo = DoshokuOrder.getInstance().getOpenTableInfo();
TableBean.DataBean tableInfo = mDoshokuOrder.getOpenTableInfo();
Date dd = MyOrderManage.getInstance().getOpenTableTime();
Date dd = mDoshokuOrder.getOpenTableTime();
String openTime = String.format("%tH:%tM", dd, dd);
String tableno = "";
if (tableInfo.getSplitStatus() != 0 ) {
tableno = tableInfo.getTableName();
if (tableInfo.getSplitStatus() != 0) {
tableno = tableInfo.getTableName().trim() + "-" + tableInfo.getTableNumber().trim();
} else {
//TODO 暫未分檯功能
// tableno = GSAApplication.tableContract.getTableno().trim() + "-" + GSAApplication.tableContract.getTableno_split().trim();
tableno = tableInfo.getTableName();
}
btn_table.setText(tableno);
tv_time.setText("時間:" + openTime);
......@@ -233,7 +236,7 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
@Override
protected void onResume() {
super.onResume();
if (MyOrderManage.getInstance().getMemberInfo() != null) {
if (mDoshokuOrder.getMemberInfo() != null) {
useMember();
}
}
......@@ -463,8 +466,9 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
@Override
public void recordOperat(boolean isPressButtonSound) {
if (isPressButtonSound)
if (isPressButtonSound) {
VibratorUtils.pressButtonSound(this);
}
//关闭倒计时
if (chronometer != null) {
chronometer.stop();
......@@ -478,7 +482,7 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
public void returnTableActivity(boolean initTable) {
TableBean.DataBean tableInfo = DoshokuOrder.getInstance().getOpenTableInfo();
if (initTable && tableInfo != null && !MyOrderManage.getInstance().isModifyOrder()) {
if (initTable && tableInfo != null && !mDoshokuOrder.isModifyOrder()) {
//通知更新餐台状态
EventBus.getDefault().post(new InitTableEvent(tableInfo.getId(),tableInfo.getTableNumber()), "initTable_status_event");
}
......@@ -598,8 +602,8 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
if (qrCodeContent.length == 2) {
long couponMemberId = Long.parseLong(qrCodeContent[0]);
Long memberId = null;
if (MyOrderManage.getInstance().getMemberInfo() != null) {
memberId = MyOrderManage.getInstance().getMemberInfo().getId();
if (mDoshokuOrder.getMemberInfo() != null) {
memberId = mDoshokuOrder.getMemberInfo().getId();
if (memberId != couponMemberId) {
showMessage("請掃描當前會員的優惠券碼");
return;
......
......@@ -14,7 +14,6 @@ import com.chad.library.adapter.base.BaseQuickAdapter;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
import com.gingersoft.gsa.cloud.base.common.bean.PayMethod;
import com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage;
import com.gingersoft.gsa.cloud.base.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.base.table.bean.TableBean;
import com.gingersoft.gsa.cloud.base.utils.BigDecimalUtils;
......@@ -53,6 +52,7 @@ import javax.inject.Inject;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import butterknife.OnClick;
import butterknife.OnLongClick;
......@@ -193,21 +193,21 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
mPresenter.setFreeServiceStauts(isUseFreeServicePayMethod);
}
});
gsaPayView.setServiceCharge(mPresenter.getServiceCharge());
gsaPayView.setServiceCharge(mPresenter.getShoppingCart().getServiceCharge());
}
private void initTopInfo() {
TableBean.DataBean tableInfo = DoshokuOrder.getInstance().getOpenTableInfo();
Date dd = MyOrderManage.getInstance().getOpenTableTime();
Date dd = DoshokuOrder.getInstance().getOpenTableTime();
String openTime = String.format("%tH:%tM", dd, dd);
String tableno = "";
if (tableInfo.getSplitStatus() == 0) {
tableno =tableInfo.getTableName();
if (tableInfo.getSplitStatus() != 0) {
tableno = tableInfo.getTableName().trim() + "-" + tableInfo.getTableNumber().trim();
} else {
tableno = tableInfo.getTableName().trim() ;
tableno = tableInfo.getTableName();
}
btn_table.setText(tableno);
tv_time.setText("時間:" + openTime);
......@@ -223,12 +223,12 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
double wholeAmount = mPresenter.getFoodTotal();
tv_whole.setText("合計 $" + wholeAmount);
MyOrderManage.getInstance().setWholeAmount(wholeAmount);
DoshokuOrder.getInstance().getShoppingCart().setWholeAmount(wholeAmount);
}
private void initMemberInfo() {
//会员信息
MemberInfo memberInfo = MyOrderManage.getInstance().getMemberInfo();
MemberInfo memberInfo = DoshokuOrder.getInstance().getMemberInfo();
if (memberInfo != null) {
tv_member_info.setVisibility(View.VISIBLE);
tv_member_info.setText(getMemberInfo());
......@@ -243,7 +243,7 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
}
private String getMemberInfo() {
MemberInfo memberBean = MyOrderManage.getInstance().getMemberInfo();
MemberInfo memberBean = DoshokuOrder.getInstance().getMemberInfo();
String memberInfo;
String memberName = memberBean.getMemberName();
String LevelName1 = memberBean.getLevelName1();
......@@ -274,7 +274,7 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
memberIntegral = memberBean.getMemberPoint();
memberPointRedeemCash = memberBean.getPointRedeemCash();
//獲取積分支付抵扣金額
double consumptionPoints = gsaPayView.getPayForConsumptionPoints(null,memberPointRedeemCash);
double consumptionPoints = gsaPayView.getPayForConsumptionPoints(null, memberPointRedeemCash);
//本次積分消耗(積分支付 + 食品獲得積分 + 食品消費積分)
double thisTimePoints = BigDecimalUtils.add(BigDecimalUtils.add(consumptionPoints, mPresenter.getPointsAdd()), mPresenter.getPointsRedeem());
if (thisTimePoints > 0) {
......@@ -466,9 +466,9 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
setBillMoney();
TableBean.DataBean tableInfo = DoshokuOrder.getInstance().getOpenTableInfo();
if (!MyOrderManage.getInstance().isModifyOrder()) {
if (!DoshokuOrder.getInstance().isModifyOrder()) {
//通知更新餐台状态
EventBus.getDefault().post(new InitTableEvent(tableInfo.getId(),tableInfo.getTableNumber()), "initTable_status_event");
EventBus.getDefault().post(new InitTableEvent(tableInfo.getId(), tableInfo.getTableNumber()), "initTable_status_event");
}
showMessage("支付成功");
......@@ -503,8 +503,6 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
// if (result.isSuccess()) {
// //打印成功
// }
//清空賬單數據
MyOrderManage.getInstance().clear();
//清空開檯數據
DoshokuOrder.getInstance().initialization();
......@@ -524,7 +522,7 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
payMethod.setPayMoney(mPresenter.getTipsPrice());
billMoneyList.add(payMethod);
}
MyOrderManage.getInstance().setBillMoney(billMoneyList);
DoshokuOrder.getInstance().setBillMoney(billMoneyList);
}
public void setBillMethodAdapter(BaseQuickAdapter adapter) {
......
......@@ -14,13 +14,15 @@ import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.base.common.bean.PayMethod;
import com.gingersoft.gsa.cloud.base.order.billItem.BillItem;
import com.gingersoft.gsa.cloud.base.order.billItem.BillOrderMoney;
import com.gingersoft.gsa.cloud.base.order.bean.OrderBean;
import com.gingersoft.gsa.cloud.base.order.cart.ShoppingCart;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.bean.discount.OrderDiscount;
import com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage;
import com.gingersoft.gsa.cloud.base.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.base.table.bean.TableBean;
import com.gingersoft.gsa.cloud.base.utils.LanguageUtils;
......@@ -31,7 +33,6 @@ import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.table.di.component.DaggerOrderDetailComponent;
import com.gingersoft.gsa.cloud.table.mvp.contract.OrderDetailContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.OrderDetailItem;
import com.gingersoft.gsa.cloud.table.mvp.model.cart.DoshokuCart;
import com.gingersoft.gsa.cloud.table.mvp.model.utils.OrderAssemblyUtil;
import com.gingersoft.gsa.cloud.table.mvp.presenter.orderManager.OrderDetailPresenter;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity;
......@@ -135,6 +136,8 @@ public class OrderDetailActivity extends BaseActivity<OrderDetailPresenter> impl
private OrderCenterMoneyAdapter mOrderDetailPayMethodAdapter;
private List<SectionTextItem3> mOrderCenterPayMethodList = new ArrayList<>();
private DoshokuOrder mDoshokuOrder;
private ShoppingCart mShoppingCart;
@Override
public void setupActivityComponent(@NonNull AppComponent appComponent) {
......@@ -152,6 +155,13 @@ public class OrderDetailActivity extends BaseActivity<OrderDetailPresenter> impl
}
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
mDoshokuOrder = mDoshokuOrder;
mShoppingCart = mDoshokuOrder.getShoppingCart();
super.onCreate(savedInstanceState);
}
@Override
public void initData(@Nullable Bundle savedInstanceState) {
scrollview.post(new Runnable() {
@Override
......@@ -244,7 +254,7 @@ public class OrderDetailActivity extends BaseActivity<OrderDetailPresenter> impl
mOrderDetailPayMethodAdapter.notifyDataSetChanged();
}
//設置打印所需支付方式
MyOrderManage.getInstance().setBillMoney(payMethodList);
mDoshokuOrder.setBillMoney(payMethodList);
}
public static List<SectionTextItem3> orderPayMethodTransSectionTextItem3(List<PayMethod> payMethodList) {
......@@ -438,12 +448,12 @@ public class OrderDetailActivity extends BaseActivity<OrderDetailPresenter> impl
}
private void startModifyOrder(OrderDetailItem datasBean) {
if(datasBean.getRestaurantTable() == null){
if (datasBean.getRestaurantTable() == null) {
showMessage("餐檯不存在,無法修改訂單");
return;
}
//設置為修改訂單操作
MyOrderManage.getInstance().setModifyOrder(true);
mDoshokuOrder.setModifyOrder(true);
/**
* 緩存訂單信息
*/
......@@ -457,7 +467,7 @@ public class OrderDetailActivity extends BaseActivity<OrderDetailPresenter> impl
if (datasBean.getDiscountDetails() != null) {
orderBean.setDiscountDetails(datasBean.getDiscountDetails());
}
MyOrderManage.getInstance().setOrderBean(orderBean);
mDoshokuOrder.setOrderPlaced(orderBean);
TableBean.DataBean tableBean = new TableBean.DataBean(datasBean.getRestaurantTable());
if (!TextUtils.isEmpty(tableBean.getTableNumber())) {
......@@ -466,14 +476,14 @@ public class OrderDetailActivity extends BaseActivity<OrderDetailPresenter> impl
tableBean.setTableName(tableBean.getTableName());
}
tableBean.setPerson(datasBean.getPerson());
DoshokuOrder.getInstance().setOpenTableInfo(tableBean);
mDoshokuOrder.setOpenTableInfo(tableBean);
List<OrderBean.OrderDetailsBean> orderDetailsBeans = datasBean.getOrderDetails();
List<OrderDetail> orderDetailList = OrderAssemblyUtil.assemblyOrder(OrderDetail.orderTransOrderDetails(orderDetailsBeans));
MyOrderManage.getInstance().setOrderFoodList(orderDetailList);
mDoshokuOrder.getShoppingCart().setOrderCommodityList(orderDetailList);
if (datasBean.getMemberInfo() != null) {
MyOrderManage.getInstance().setMemberInfo(datasBean.getMemberInfo());
mDoshokuOrder.setMemberInfo(datasBean.getMemberInfo());
}
Intent intent = new Intent(this, MealStandActivity.class);
......@@ -487,30 +497,30 @@ public class OrderDetailActivity extends BaseActivity<OrderDetailPresenter> impl
* @param orderDetailList
*/
private void startPrintOrder(OrderDetailItem orderDetailItem, List<OrderDetail> orderDetailList) {
MyOrderManage.getInstance().setOrderFoodList(orderDetailList);
MyOrderManage.getInstance().setOrderMoneyList(getOrderMoneyList());
MyOrderManage.getInstance().setOrderId(orderDetailItem.getId());
MyOrderManage.getInstance().setWholeAmount(getTotalMoney());
MyOrderManage.getInstance().setTotalAmount(orderDetailItem.getTotalAmount());
mShoppingCart.setOrderCommodityList(orderDetailList);
mShoppingCart.setBillItemList(getOrderMoneyList());
mDoshokuOrder.setOrderId(orderDetailItem.getId());
mShoppingCart.setWholeAmount(getTotalMoney());
mShoppingCart.setTotalAmount(orderDetailItem.getTotalAmount());
TableBean.DataBean dataBean = new TableBean.DataBean();
dataBean.setTableName(orderDetailItem.getTableName());
if(!TextUtils.isEmpty(orderDetailItem.getCreateTime())){
if (!TextUtils.isEmpty(orderDetailItem.getCreateTime())) {
dataBean.setCreateTime(TimeUtils.getStringByFormat(new Date(orderDetailItem.getCreateTime()), TimeUtils.DEFAULT_DATE_FORMAT_YMDHM));
}
dataBean.setPerson(orderDetailItem.getPerson());
DoshokuOrder.getInstance().setOpenTableInfo(dataBean);
mDoshokuOrder.setOpenTableInfo(dataBean);
List<PayMethod> payMethodList = getPayMethodList(orderDetailItem.getOrderPays());
if (payMethodList != null) {
//設置打印所需支付方式
MyOrderManage.getInstance().setBillMoney(payMethodList);
mDoshokuOrder.setBillMoney(payMethodList);
}
if (orderDetailItem.getMemberInfo() != null) {
MyOrderManage.getInstance().setMemberInfo(orderDetailItem.getMemberInfo());
}else {
MyOrderManage.getInstance().setIntegralQrcode(orderDetailItem.getVerifyCode());
mDoshokuOrder.setMemberInfo(orderDetailItem.getMemberInfo());
} else {
mDoshokuOrder.setIntegralQrcode(orderDetailItem.getVerifyCode());
}
CC.obtainBuilder("Component.Print")
......@@ -519,21 +529,19 @@ public class OrderDetailActivity extends BaseActivity<OrderDetailPresenter> impl
.build()
.callAsyncCallbackOnMainThread((cc, result) -> {
Log.e("error", "是否成功打印:" + result.isSuccess());
MyOrderManage.getInstance().clear();
DoshokuOrder.getInstance().setOpenTableInfo(null);
mDoshokuOrder.initialization();
});
}
private List<BillOrderMoney> getOrderMoneyList() {
List<BillOrderMoney> billOrderMoneyList = new ArrayList<>();
private List<BillItem> getOrderMoneyList() {
List<BillItem> billOrderMoneyList = new ArrayList<>();
if (mOrderCenterMoneyList != null) {
for (SectionTextItem3 item : mOrderCenterMoneyList) {
BillOrderMoney billOrderMoney = new BillOrderMoney();
billOrderMoney.setName(item.getLeftText());
billOrderMoney.setMoney(Double.parseDouble(item.getRightText()));
billOrderMoneyList.add(billOrderMoney);
BillItem billItem = new BillOrderMoney();
billItem.setName(item.getLeftText());
billItem.setMoney(Double.parseDouble(item.getRightText()));
billOrderMoneyList.add(billItem);
}
}
return billOrderMoneyList;
......
......@@ -7,11 +7,9 @@ import android.view.View;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.order.commodity.Commodity;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.constans.MealConstant;
import com.gingersoft.gsa.cloud.table.R;
......@@ -75,6 +73,7 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
public SelectMealAdapter(Context context, List<OrderDetail> data, BasePresenter presenter) {
super(data);
this.mContext = context;
this.BillListFontSize = GsaCloudApplication.uiStyleConfiguration.getBillListFontSizeValue();
if (presenter instanceof MealStandPresenter) {
// this.mMealStandPresenter = (MealStandPresenter) presenter;
this.mMealStandActivity = (MealStandActivity) context;
......@@ -621,13 +620,13 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
}
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);
// 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);
}
/**
......
......@@ -17,10 +17,9 @@ import android.view.animation.DecelerateInterpolator;
import android.view.animation.TranslateAnimation;
import android.widget.ImageView;
import android.widget.LinearLayout;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
import com.gingersoft.gsa.cloud.base.order.bean.mealManger.MyOrderManage;
import com.gingersoft.gsa.cloud.base.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.MemberInfoAdapter;
import com.gingersoft.gsa.cloud.ui.bean.view.SectionTextItem;
......@@ -73,6 +72,8 @@ public class UseMemberDialog extends Dialog {
private MemberInfoAdapter mMemberInfoAdapter;
private List<SectionTextItem> mMemberInfoList;
private MemberInfo memberInfo;
public UseMemberDialog(Context context) {
super(context, R.style.QMUI_BottomSheet);
......@@ -214,7 +215,7 @@ public class UseMemberDialog extends Dialog {
mDialog = new UseMemberDialog(mContext);
View contentView = buildViews();
mDialog.setContentView(contentView, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, (int) (QMUIDisplayHelper.getScreenHeight(mContext) * 0.65)));
updateMemberInfo(MyOrderManage.getInstance().getMemberInfo());
updateMemberInfo(memberInfo);
return mDialog;
}
......@@ -348,6 +349,10 @@ public class UseMemberDialog extends Dialog {
btn_scan.setVisibility(!show ? View.VISIBLE : View.GONE);
}
public void setMemberInfo(MemberInfo memberInfo) {
this.memberInfo = memberInfo;
}
private String getTvPhone() {
return ed_phone.getText().toString();
}
......@@ -356,6 +361,7 @@ public class UseMemberDialog extends Dialog {
return R.layout.meal_dialog_use_member;
}
private OnLayoutClickListener onLayoutClickListener;
public UseMemberDialog setOnLayoutClickListener(OnLayoutClickListener onLayoutClickListener) {
......
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