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));
}
}
......@@ -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);
......
......@@ -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);
......
......@@ -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