Commit 1a28da3b by 宁斌

餐檯下單優化

parent d6728069
......@@ -17,7 +17,8 @@ public class UIStyleExtendedConfiguration {
* 食品組、食品、細項、折扣行列寬高
*/
private ExpandInfoSetting foodGroupRow = ExpandInfoSetting.builder()
.valueInt(2)
// .valueInt(2)
.valueChar("foodGroupRow類型")
.remark("食品組行數")
.build();
private ExpandInfoSetting foodGroupColumn = ExpandInfoSetting.builder()
......
......@@ -16,8 +16,8 @@ import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.gingersoft.gsa.cloud.base.order.bean.BillOrderMoney;
import com.gingersoft.gsa.cloud.base.order.bean.OrderDetail;
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.utils.other.TextUtil;
import com.gingersoft.gsa.cloud.base.utils.time.TimePickerUtils;
......@@ -197,7 +197,7 @@ public class SendOrderActivity extends BaseActivity<SendOrderPresenter> implemen
List<BillBean> billBeans = new ArrayList<>();
for (BillOrderMoney billOrderMoney : orderMoneyList) {
BillBean billBean = new BillBean();
billBean.setName(billOrderMoney.getTitle());
billBean.setName(billOrderMoney.getName());
billBean.setAmount(billOrderMoney.getMoney());
}
billBeans.add(new BillBean("合計:", MyOrderManage.getInstance().getWholeAmount(), 0));
......
package com.gingersoft.gsa.cloud.order.base;
import android.content.Context;
import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
/**
* Instrumented test, which will execute on an Android device.
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
assertEquals("com.gingersoft.gsa.cloud.order.base.test", appContext.getPackageName());
}
}
......@@ -2,8 +2,8 @@ package com.gingersoft.gsa.cloud.base.order;
import com.billy.cc.core.component.CC;
import com.billy.cc.core.component.IComponent;
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.order.order.TakeawayOrder;
public class ComponentBaseOrder implements IComponent {
......@@ -28,7 +28,7 @@ public class ComponentBaseOrder implements IComponent {
String actionName = cc.getActionName();
switch (actionName) {
case "clearDoshokuOrder":
clearDoshokuOrder(cc);
clearOrder(cc);
break;
default:
//这个逻辑分支上没有调用CC.sendCCResult(...),是一种错误的示例
......@@ -39,11 +39,11 @@ public class ComponentBaseOrder implements IComponent {
return false;
}
private void clearDoshokuOrder(CC cc) {
//清空賬單數據
MyOrderManage.getInstance().clear();
//清空開檯數據
OpenTableManage.getDefault().clear();
private void clearOrder(CC cc) {
//初始化堂食賬單類
DoshokuOrder.getInstance().initialization();
//初始化外賣賬單類
TakeawayOrder.getInstance().initialization();
}
}
......@@ -6,7 +6,7 @@ import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
* @author : bin
* @create date: 2020-10-15
* @update date: 2020-10-15
* @description:會員接口 需要使用到會員須實現這個接口
* @description:會員接口
*
*/
public interface Member {
......
package com.gingersoft.gsa.cloud.base.order;
/**
* @author : bin
* @create date: 2020-10-15
* @update date: 2020-10-15
* @description:餐牌下單 食品,折扣都需要實現這個接口
* */
public interface OrderItem {
}
......@@ -9,7 +9,7 @@ import androidx.annotation.Nullable;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.viewholder.BaseViewHolder;
import com.gingersoft.gsa.cloud.base.R;
import com.gingersoft.gsa.cloud.base.order.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import java.util.List;
......
......@@ -5,7 +5,7 @@ import android.widget.TextView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.viewholder.BaseViewHolder;
import com.gingersoft.gsa.cloud.base.R;
import com.gingersoft.gsa.cloud.base.order.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
import java.math.BigDecimal;
import java.util.List;
......
package com.gingersoft.gsa.cloud.base.order.bean;
import android.graphics.Color;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import lombok.Data;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-01-19
* 修订历史:2020-01-19
* 描述:
*/
@Data
public class BillOrderMoney {
private String title;
private double money;
private int textSize;
private int textColor = Color.parseColor("#000000");
private int bgColor;
/**是否已送單#0=未送單;1=已送單*/
private int status = 0;
public static final byte BILL_ITEM_NO_ORDER_STATUS = 0;
public static final byte BILL_ITEM_ORDER_SENT_STATUS = 1;
private byte type = ORDER_DISCOUNT_TYPE;
/**整單折扣*/
public static final byte ORDER_DISCOUNT_TYPE = 0;
/**會員等級折扣*/
public static final byte MEMBER_DISCOUNT_TYPE = 1;
/**會員優惠券折扣*/
public static final byte COUPON_DISCOUNT_TYPE = 2;
/**服務費*/
public static final byte SERVERCHARGE_TYPE = 3;
/**賬單小數*/
public static final byte ROUNDING_TYPE = 4;
/**折扣實體*/
private Discount discount;
public BillOrderMoney() {
}
public BillOrderMoney(String title, double money, int textSize, int textColor, int bgColor) {
this.title = title;
this.money = money;
this.textSize = textSize;
this.textColor = textColor;
this.bgColor = bgColor;
}
public BillOrderMoney(String title, double money) {
this.title = title;
this.money = money;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}
public int getTextSize() {
return textSize;
}
public void setTextSize(int textSize) {
this.textSize = textSize;
}
public int getTextColor() {
return textColor;
}
public void setTextColor(int textColor) {
this.textColor = textColor;
}
public int getBgColor() {
return bgColor;
}
public void setBgColor(int bgColor) {
this.bgColor = bgColor;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public static byte getBillItemNoOrderStatus() {
return BILL_ITEM_NO_ORDER_STATUS;
}
public static byte getBillItemOrderSentStatus() {
return BILL_ITEM_ORDER_SENT_STATUS;
}
public byte getType() {
return type;
}
public void setType(byte type) {
this.type = type;
}
public static byte getOrderDiscountType() {
return ORDER_DISCOUNT_TYPE;
}
public static byte getMemberDiscountType() {
return MEMBER_DISCOUNT_TYPE;
}
public static byte getCouponDiscountType() {
return COUPON_DISCOUNT_TYPE;
}
public static byte getServerchargeType() {
return SERVERCHARGE_TYPE;
}
public static byte getRoundingType() {
return ROUNDING_TYPE;
}
public Discount getDiscount() {
return discount;
}
public void setDiscount(Discount discount) {
this.discount = discount;
}
}
......@@ -3,6 +3,7 @@ package com.gingersoft.gsa.cloud.base.order.bean.discount;
import android.text.TextUtils;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.base.utils.other.TextUtil;
import lombok.Data;
......@@ -68,13 +69,13 @@ public class CouponDiscountBean {
public String getName(){
if(!TextUtils.isEmpty(couponTypeName1)) {
return couponTypeName1;
return this.couponTypeName1;
}
if(!TextUtils.isEmpty(couponTypeName2)) {
return couponTypeName2;
return this.couponTypeName2;
}
if(!TextUtils.isEmpty(couponTypeName3)) {
return couponTypeName3;
return this.couponTypeName3;
}
return "";
}
......
package com.gingersoft.gsa.cloud.base.order.bean.discount;
import com.gingersoft.gsa.cloud.base.order.bean.BillOrderMoney;
import com.gingersoft.gsa.cloud.base.order.billItem.DiscountItem;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.database.bean.Discount;
......@@ -99,7 +99,7 @@ public class OrderDiscount {
this.scAble = scAble;
}
public static Request orderDiscountTransRequest(BillOrderMoney discount) {
public static Request orderDiscountTransRequest(DiscountItem discount) {
Request request = new Request();
request.setType(ORDER_DISCOUNT);
if(discount.getDiscount() != null) {
......@@ -110,8 +110,7 @@ public class OrderDiscount {
return request;
}
public static Request memberDiscountTransRequest(BillOrderMoney discount) {
public static Request memberDiscountTransRequest(DiscountItem discount) {
Request request = new Request();
request.setType(MEMBER_DISCOUNT);
if(discount.getDiscount() != null) {
......@@ -123,7 +122,7 @@ public class OrderDiscount {
return request;
}
public static Request couponDiscountTransRequest(BillOrderMoney discount) {
public static Request couponDiscountTransRequest(DiscountItem discount) {
Request request = new Request();
request.setType(COUPON_DISCOUNT);
if(discount.getDiscount() != null) {
......
......@@ -5,10 +5,10 @@ import android.text.TextUtils;
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.BillOrderMoney;
import com.gingersoft.gsa.cloud.base.order.billItem.BillOrderMoney;
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.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.constans.FoodSummaryConstans;
import com.gingersoft.gsa.cloud.print.bean.OrderDetails;
import com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog;
......@@ -293,27 +293,6 @@ public class MyOrderManage {
return orderFoodList != null ? orderFoodList.size() : 0;
}
public void close() {
if (orderFoodList != null) {
orderFoodList.clear();
}
// if (comboOrders != null) {
// comboOrders.clear();
// }
// if (MixOldOrders != null) {
// MixOldOrders.clear();
// }
// if (mixComboGroup_Discounts != null) {
// mixComboGroup_Discounts.clear();
// }
//
// if (MixComboGroups != null) {
// MixComboGroups.clear();
// }
// allowAddAutoDiscount = false;
// MixComboGroups = null;
}
public void clear() {
setMemberInfo(null);
if (orderFoodList != null) {
......
package com.gingersoft.gsa.cloud.base.order.billItem;
import android.graphics.Color;
import lombok.Data;
/**
......@@ -13,6 +15,14 @@ public abstract class BillItem {
protected String name;
protected double money = 0.0;
protected int textSize;
protected int textColor = Color.parseColor("#000000");
protected int bgColor;
/**是否已送單#0=未送單;1=已送單*/
protected int status = 0;
public static final byte BILL_ITEM_NO_ORDER_STATUS = 0;
public static final byte BILL_ITEM_ORDER_SENT_STATUS = 1;
public byte type = ORDER_DISCOUNT_TYPE;
/**整單折扣*/
......
package com.gingersoft.gsa.cloud.base.order.billItem;
import com.gingersoft.gsa.cloud.base.order.billItem.BillItem;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import lombok.Data;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-01-19
* 修订历史:2020-01-19
* 描述:
*/
@Data
public class BillOrderMoney extends BillItem {
/**折扣實體*/
private Discount discount;
public BillOrderMoney() {
}
public Discount getDiscount() {
return discount;
}
public void setDiscount(Discount discount) {
this.discount = discount;
}
}
package com.gingersoft.gsa.cloud.base.order.billItem;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import lombok.Getter;
import lombok.Setter;
......@@ -13,6 +15,7 @@ import lombok.Setter;
@Setter
public class DiscountItem extends BillItem {
private Discount discount;
public DiscountItem() {
}
......@@ -21,7 +24,9 @@ public class DiscountItem extends BillItem {
super(name, money);
}
public void updateBillItem() {
public void updateBillItem(int type) {
}
}
......@@ -10,21 +10,20 @@ import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
*/
public class RoundingItem extends BillItem {
public RoundingItem(String name, double totalAmout) {
public RoundingItem(String name) {
super(BillItem.ROUNDING_TYPE, name);
updateBillItem(totalAmout);
}
public void updateBillItem(double totalAmout) {
double m2 = MoneyUtil.getOrderRounding(totalAmout);
public double updateBillItem(double totalAmount) {
double m2 = MoneyUtil.getOrderRounding(totalAmount);
double roundingMoney = 0.0;
if (m2 != 0) {
roundingMoney = MoneyUtil.sub(m2, MoneyUtil.get_ItemDecimals_money(totalAmout));
roundingMoney = MoneyUtil.sub(m2, MoneyUtil.get_ItemDecimals_money(totalAmount));
}
if (roundingMoney != 0.0) {
setMoney(roundingMoney);
setMoney(MoneyUtil.get_ItemDecimals_money(roundingMoney));
}
return MoneyUtil.get_ItemDecimals_money(MoneyUtil.sum(totalAmount,roundingMoney));
}
}
......@@ -11,16 +11,16 @@ import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
*/
public class ServiceChargeItem extends BillItem {
public ServiceChargeItem(String name, double totalAmout, int serviceCharge) {
super(BillItem.SERVERCHARGE_TYPE, name);
updateBillItem(totalAmout,serviceCharge);
public ServiceChargeItem(String name) {
super(name);
}
public void updateBillItem(double totalAmout, int serviceCharge) {
double serviceAmount = MoneyUtil.divide(MoneyUtil.multiply(totalAmout, serviceCharge).doubleValue(), 100, GsaCloudApplication.functionConfiguration.getItemDecimals());
public double updateBillItem(double wholeAmount, int serviceCharge) {
int itemDecimals = GsaCloudApplication.functionConfiguration.getItemDecimalsVaule();
double serviceAmount = MoneyUtil.divide(MoneyUtil.multiply(wholeAmount, serviceCharge).doubleValue(), 100, itemDecimals);
if (serviceAmount > 0) {
setMoney(serviceAmount);
setMoney(MoneyUtil.get_ItemDecimals_money(serviceAmount));
}
return MoneyUtil.get_ItemDecimals_money(MoneyUtil.sum(wholeAmount, serviceAmount));
}
}
......@@ -6,10 +6,13 @@ import com.gingersoft.gsa.cloud.base.order.billItem.BillItem;
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;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.discount.CouponDiscount;
import com.gingersoft.gsa.cloud.base.order.discount.MemberDiscount;
import com.gingersoft.gsa.cloud.base.order.discount.MultyDiscount;
import com.gingersoft.gsa.cloud.base.order.discount.NomalDiscount;
import com.gingersoft.gsa.cloud.constans.FoodSummaryConstans;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.jess.arms.utils.Preconditions;
import java.util.ArrayList;
......@@ -41,7 +44,7 @@ public class ShoppingCart {
/**
* 商品列表
*/
protected List<Commodity> orderCommodityList = new ArrayList<>();
protected List<OrderDetail> orderCommodityList = new ArrayList<>();
/**
* 賬單項列表
*/
......@@ -55,13 +58,13 @@ public class ShoppingCart {
*/
protected List<MultyDiscount> multyDiscountList = new ArrayList<>();
/**
* 所有折扣實體
* 服務費
*/
private MultyDiscount multyDiscounts;
protected Double serviceCharge;
/**
* 服務費
* 賬單小數
*/
protected Integer serviceCharge;
protected Double rounding;
/**
* 合計
*/
......@@ -71,14 +74,14 @@ public class ShoppingCart {
*/
protected double totalAmount = 0.0;
/**
* 將商品添加到購物車
*
* @param commodityList
*/
public void addCommodityList(List<Commodity> commodityList) {
orderCommodityList.addAll(commodityList);
public void addCommodityList(List<OrderDetail> commodityList) {
getOrderCommodityList().addAll(commodityList);
}
/**
......@@ -86,8 +89,8 @@ public class ShoppingCart {
*
* @param commodity
*/
public void addCommodity(Commodity commodity) {
orderCommodityList.add(commodity);
public void addCommodity(OrderDetail commodity) {
getOrderCommodityList().add(commodity);
}
/**
......@@ -95,8 +98,8 @@ public class ShoppingCart {
*
* @param commodity
*/
public void delCommodity(Commodity commodity) {
orderCommodityList.remove(commodity);
public void delCommodity(OrderDetail commodity) {
getOrderCommodityList().remove(commodity);
}
/**
......@@ -104,14 +107,14 @@ public class ShoppingCart {
*
* @param commodity
*/
public void setCommodityNum(Commodity commodity, int number) {
for (Commodity c : orderCommodityList) {
if (c == commodity) {
c.setNumber(number);
break;
}
}
}
// public void setCommodityNum(Commodity commodity, int number) {
// for (Commodity c : orderCommodityList) {
// if (c == commodity) {
// c.setNumber(number);
// break;
// }
// }
// }
/**
* 添加賬單項
......@@ -119,47 +122,43 @@ public class ShoppingCart {
* @param billItem
*/
public void addBillItem(BillItem billItem) {
billItemList.add(billItem);
getBillItemList().add(billItem);
}
/**
* 刪除張單項
* 添加賬單項
*
* @param billItem
* @param billItems
*/
public void delBillItem(BillItem billItem) {
billItemList.remove(billItem);
public void addBillItems(List<BillItem> billItems) {
getBillItemList().addAll(billItems);
}
/**
* 獲取堂食數據
* 刪除張單項
*
* @param position
* @return
* @param billItem
*/
public MealCommodity getMealCommodity(int position) {
Preconditions.checkElementIndex(orderCommodityList.size(), position);
return (MealCommodity) orderCommodityList.get(position);
public void delBillItem(BillItem billItem) {
getBillItemList().remove(billItem);
}
/**
* 獲取外賣數據
* 添加折扣
*
* @param position
* @return
* @param multyDiscount
*/
public MealTakeaway getMealTakeaway(int position) {
Preconditions.checkElementIndex(orderCommodityList.size(), position);
return (MealTakeaway) orderCommodityList.get(position);
public void addMultyDiscount(MultyDiscount multyDiscount) {
getMultyDiscountList().add(multyDiscount);
}
/**
* 添加折扣
* 刪除折扣
*
* @param multyDiscount
*/
public void addMultyDiscount(MultyDiscount multyDiscount) {
multyDiscountList.add(multyDiscount);
public void delMultyDiscount(MultyDiscount multyDiscount) {
getMultyDiscountList().remove(multyDiscount);
}
/**
......@@ -168,10 +167,10 @@ public class ShoppingCart {
* @param discount
* @return
*/
// public MultyDiscount addNomalDiscount(Discount discount) {
// multyDiscounts = new NomalDiscount(discount.getRemark(), multyDiscounts, discount);
// return multyDiscounts;
// }
public MultyDiscount addNomalDiscount(MultyDiscount multyDiscounts, Discount discount) {
MultyDiscount nomalDiscount = new NomalDiscount(discount.getRemark(), multyDiscounts, discount);
return nomalDiscount;
}
/**
* 將會員等級折扣添加到鏈條中
......@@ -179,9 +178,9 @@ public class ShoppingCart {
* @param discount
* @return
*/
public MultyDiscount addMemberDiscount(MemberInfo discount) {
multyDiscounts = new MemberDiscount(discount.getMemberName(), multyDiscounts, discount);
return multyDiscounts;
public MultyDiscount addMemberDiscount(MultyDiscount multyDiscounts, MemberInfo discount) {
MultyDiscount memberDiscount = new MemberDiscount(discount.getMemberName(), multyDiscounts, discount);
return memberDiscount;
}
/**
......@@ -190,9 +189,25 @@ public class ShoppingCart {
* @param discount
* @return
*/
public MultyDiscount addCouponDiscount(CouponDiscountBean discount) {
multyDiscounts = new CouponDiscount(discount.getName(), multyDiscounts, discount);
return multyDiscounts;
public MultyDiscount addCouponDiscount(MultyDiscount multyDiscounts, CouponDiscountBean discount) {
MultyDiscount couponDiscount = new CouponDiscount(discount.getName(), multyDiscounts, discount);
return couponDiscount;
}
public MultyDiscount createNomalDiscount(Discount discount) {
MultyDiscount nomalDiscount = new NomalDiscount(discount.getRemark(), null, discount);
return nomalDiscount;
}
public MultyDiscount createMemberDiscount(MemberInfo discount) {
MultyDiscount memberDiscount = new MemberDiscount(discount.getMemberName(), null, discount);
return memberDiscount;
}
public MultyDiscount createCouponDiscount(CouponDiscountBean discount) {
MultyDiscount couponDiscount = new CouponDiscount(discount.getName(), null, discount);
return couponDiscount;
}
/**
......@@ -202,13 +217,12 @@ public class ShoppingCart {
MultyDiscount multyDiscounts = null;
for (int i = multyDiscountList.size() - 1; i >= 0; i--) {
MultyDiscount discount = multyDiscountList.get(i);
// if (discount instanceof NomalDiscount) {
// multyDiscounts = addNomalDiscount(((NomalDiscount) discount).getDiscount());
// } else
if (discount instanceof MemberDiscount) {
multyDiscounts = addMemberDiscount(((MemberDiscount) discount).getMemberDiscount());
if (discount instanceof NomalDiscount) {
multyDiscounts = addNomalDiscount(multyDiscounts, ((NomalDiscount) discount).getDiscount());
} else if (discount instanceof MemberDiscount) {
multyDiscounts = addMemberDiscount(multyDiscounts, ((MemberDiscount) discount).getMemberDiscount());
} else if (discount instanceof CouponDiscount) {
multyDiscounts = addCouponDiscount(((CouponDiscount) discount).getCouponDiscount());
multyDiscounts = addCouponDiscount(multyDiscounts, ((CouponDiscount) discount).getCouponDiscount());
}
}
if (multyDiscounts != null) {
......@@ -217,29 +231,56 @@ public class ShoppingCart {
return money;
}
private void updateBillItemList() {
}
public List<OrderDetail> getOrderCommodityList() {
if (orderCommodityList == null) {
orderCommodityList = new ArrayList<>();
}
return orderCommodityList;
}
public List<BillItem> getBillItemList() {
if (billItemList == null) {
billItemList = new ArrayList<>();
}
return billItemList;
}
public List<MultyDiscount> getMultyDiscountList() {
if (multyDiscountList == null) {
multyDiscountList = new ArrayList<>();
}
return multyDiscountList;
}
public static void main(String[] args) {
MultyDiscount multyDiscounts = null;
ShoppingCart shoppingCart = new ShoppingCart();
MemberInfo memberInfo1 = new MemberInfo();
memberInfo1.setMemberName("黃金會員10%");
memberInfo1.setMemberDiscount(10);
MultyDiscount memberDiscount = shoppingCart.addMemberDiscount(memberInfo1);
shoppingCart.addMultyDiscount(memberDiscount);
Discount discount = new Discount();
discount.setRemark("9折");
discount.setType(1);
discount.setDiscount_value(10);
multyDiscounts = shoppingCart.addNomalDiscount(multyDiscounts, discount);
shoppingCart.addMultyDiscount(multyDiscounts);
CouponDiscountBean couponDiscountBean = new CouponDiscountBean();
couponDiscountBean.setCouponTypeName1("魚屋立減50元券");
couponDiscountBean.setAmount(50);
couponDiscountBean.setCouponType((byte) 2);
MultyDiscount couponDiscount = shoppingCart.addCouponDiscount(couponDiscountBean);
shoppingCart.addMultyDiscount(couponDiscount);
multyDiscounts = shoppingCart.addCouponDiscount(multyDiscounts, couponDiscountBean);
shoppingCart.addMultyDiscount(multyDiscounts);
MemberInfo memberInfo2 = new MemberInfo();
memberInfo2.setMemberName("白金會員20%");
memberInfo2.setMemberDiscount(20);
MultyDiscount memberDiscount2 = shoppingCart.addMemberDiscount(memberInfo2);
shoppingCart.addMultyDiscount(memberDiscount2);
multyDiscounts = shoppingCart.addMemberDiscount(multyDiscounts, memberInfo2);
shoppingCart.addMultyDiscount(multyDiscounts);
double discountAfterMoney = shoppingCart.calculateLinkedDiscounts(200);
......@@ -252,4 +293,26 @@ public class ShoppingCart {
public void pay(double money) {
}
public void initialization() {
if (orderCommodityList != null) {
orderCommodityList.clear();
// orderCommodityList = null;
}
if (billItemList != null) {
billItemList.clear();
// billItemList = null;
}
if (multyDiscountList != null) {
multyDiscountList.clear();
// multyDiscountList = null;
}
serviceCharge = null;
rounding = null;
wholeAmount = 0.0;
totalAmount = 0.0;
}
}
......@@ -7,20 +7,19 @@ import lombok.Data;
* @作者: bin
* @創建時間: 2020-10-14
* @更新時間: 2020-10-14
* @描述:商品接口 所有商品都需要實現這個類
* @描述:商品接口 所有商品都需要實現這接口
*/
@Data
public abstract class Commodity {
public interface Commodity {
protected Long id;
protected String name;
protected String name2;
protected String name3;
protected double price;
protected int number;
/**
* 类型#1:优惠卷;2:商品;3:菜品;4:细项;5:折扣;
*/
protected byte type;
// protected Long id;
// protected String name;
// protected String name2;
// protected String name3;
// protected double price;
// protected int number;
// /**
// * 类型#1:优惠卷;2:商品;3:菜品;4:细项;5:折扣;
// */
// protected byte type;
}
package com.gingersoft.gsa.cloud.base.order.commodity;
import com.gingersoft.gsa.cloud.base.order.OrderItem;
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;
......@@ -25,8 +24,9 @@ import lombok.ToString;
@Getter
@Setter
@ToString
public class MealCommodity extends Commodity implements OrderItem {
public class MealCommodity implements Commodity {
private static final long serialVersionUID = -958791295551999853L;
/**
* 是否选择
* 0 未选中
......@@ -105,6 +105,10 @@ public class MealCommodity extends Commodity implements OrderItem {
*/
private int itemType;
/**
* ID
*/
private long id;
/**
* 父级ID
*/
private long parentId;
......@@ -113,14 +117,14 @@ public class MealCommodity extends Commodity implements OrderItem {
*/
private long orderId;
/**
* 商品id
*/
private long productId;
/**
* 商品名称
*/
private String productName;
/**
* 商品id
*/
private long productId;
/**
* 父级商品ID
*/
private long parentProductId;
......@@ -129,6 +133,10 @@ public class MealCommodity extends Commodity implements OrderItem {
*/
private long topId;
/**
* 總價格(已經x數量)
*/
private double price = 0;
/**
* 單價
*/
private double unit_price = 0;
......@@ -148,10 +156,10 @@ public class MealCommodity extends Commodity implements OrderItem {
* 已經使用優惠卷卷號列表逗號分割
*/
private String userCouponNo;
// /**
// * 类型#1:优惠卷;2:商品;3:菜品;4:细项;5:折扣;
// */
// private byte type;
/**
* 类型#1:优惠卷;2:商品;3:菜品;4:细项;5:折扣;
*/
private byte type;
/**
*
*/
......
package com.gingersoft.gsa.cloud.base.order.commodity;
import com.gingersoft.gsa.cloud.base.order.OrderItem;
/**
* @author : bin
* @create date: 2020-10-15
* @update date: 2020-10-15
* @description:外賣食品
*/
public class MealTakeaway extends MealCommodity implements OrderItem {
public class MealTakeaway extends OrderDetail {
}
package com.gingersoft.gsa.cloud.base.order.bean;
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.utils.MoneyUtil;
......@@ -25,7 +26,7 @@ import lombok.Data;
* 描述:訂單實體類
*/
@Data
public class OrderDetail implements Serializable {
public class OrderDetail implements Commodity, Serializable {
private static final long serialVersionUID = -958791295551999853L;
/**
* 是否选择
......
......@@ -28,12 +28,10 @@ public class MemberDiscount extends MultyDiscount {
@Override
public double calculate(double money) {
if (memberDiscount != null) {
discountMoney = calculationMemberDiscount(memberDiscount.getMemberDiscount(), money);
money = MoneyUtil.sum(money,discountMoney);
}
return super.calculate(money);
}
......
......@@ -2,6 +2,7 @@ package com.gingersoft.gsa.cloud.base.order.order;
import com.gingersoft.gsa.cloud.base.order.cart.ShoppingCart;
import com.gingersoft.gsa.cloud.constans.FoodSummaryConstans;
import lombok.Getter;
import lombok.Setter;
......@@ -16,11 +17,19 @@ import lombok.Setter;
@Setter
public abstract class BaseOrder {
public BaseOrder() {
shoppingCart = ShoppingCart.getInstance();
}
/**
* 訂單類型
*
* @see FoodSummaryConstans#MEAL_MENU
* @see FoodSummaryConstans#TAKEAWAY_TYPE
*/
public volatile static int orderType = FoodSummaryConstans.RESTAURANT_MODE;
/**
* 訂單ID
*/
protected long id = -1;
......@@ -34,4 +43,10 @@ public abstract class BaseOrder {
protected ShoppingCart shoppingCart;
protected void initialization() {
orderType = FoodSummaryConstans.RESTAURANT_MODE;
id = -1;
orderNo = null;
shoppingCart.initialization();
}
}
......@@ -4,8 +4,10 @@ import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
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.table.bean.TableBean;
import java.util.ArrayList;
import java.util.List;
import lombok.Getter;
......@@ -63,4 +65,48 @@ public class DoshokuOrder extends BaseOrder implements Member {
* true#修改訂單
*/
private boolean modifyOrder = false;
/**
* 添加需要刪除的食品
* @param request
*/
public void addDeleteMealOrder(DeleteOrderRequest request){
getDeleteMealOrders().add(request);
}
/**
* 取消需要刪除的食品
* @param request
*/
public void delDeleteMealOrder(DeleteOrderRequest request){
getDeleteMealOrders().remove(request);
}
public List<DeleteOrderRequest> getDeleteMealOrders() {
if (deleteMealOrders == null) {
deleteMealOrders = new ArrayList<>();
}
return deleteMealOrders;
}
@Override
public void initialization() {
if (deleteMealOrders != null) {
deleteMealOrders.clear();
deleteMealOrders = null;
}
if (orderPlaced != null) {
orderPlaced = null;
}
if (openTableInfo != null) {
openTableInfo = null;
}
if (memberInfo != null) {
memberInfo = null;
}
memberUpdateStatus = null;
modifyOrder = false;
super.initialization();
}
}
package com.gingersoft.gsa.cloud.base.order.order;
import com.gingersoft.gsa.cloud.constans.FoodSummaryConstans;
/**
* @author : bin
* @create date: 2020-10-23
* @update date: 2020-10-23
* @description:訂單工廠類
*/
public class OrderFactory {
public static BaseOrder createOrder(int orderType) {
if (orderType == FoodSummaryConstans.RESTAURANT_MODE) {
return DoshokuOrder.getInstance();
} else if (orderType == FoodSummaryConstans.TAKEAWAY_TYPE) {
return TakeawayOrder.getInstance();
} else {
return DoshokuOrder.getInstance();
}
}
}
......@@ -25,4 +25,9 @@ public class TakeawayOrder extends BaseOrder {
super();
}
@Override
public void initialization() {
super.initialization();
}
}
......@@ -8,8 +8,8 @@ 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.bean.BillOrderMoney;
import com.gingersoft.gsa.cloud.base.order.bean.OrderDetail;
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.table.bean.TableBean;
......@@ -124,7 +124,7 @@ public class PrintBill extends PrinterRoot {
//添加其他金額項
if (MyOrderManage.getInstance().getOrderMoneyList().size() > 0) {
for (BillOrderMoney item : MyOrderManage.getInstance().getOrderMoneyList()) {
billingBeans.add(new BillingBean(item.getTitle(), item.getMoney()));
billingBeans.add(new BillingBean(item.getName(), item.getMoney()));
}
}
layout.addView(getDiningBillInfo(mContext, billingBeans));
......
......@@ -8,7 +8,7 @@ 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.bean.OrderDetail;
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.utils.other.TextUtil;
......
......@@ -8,7 +8,7 @@ import android.widget.LinearLayout;
import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.order.bean.OrderDetail;
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.base.utils.RestaurantExpandInfoUtils;
......
......@@ -11,7 +11,7 @@ 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.bean.OrderDetail;
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.base.utils.RestaurantExpandInfoUtils;
......
......@@ -5,7 +5,7 @@ import android.graphics.Bitmap;
import android.view.Gravity;
import android.widget.LinearLayout;
import com.gingersoft.gsa.cloud.base.order.bean.OrderDetail;
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.table.bean.TableBean;
......
......@@ -6,8 +6,8 @@ import android.view.Gravity;
import android.widget.LinearLayout;
import com.gingersoft.gsa.cloud.base.common.bean.BillingBean;
import com.gingersoft.gsa.cloud.base.order.bean.BillOrderMoney;
import com.gingersoft.gsa.cloud.base.order.bean.OrderDetail;
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.table.bean.TableBean;
......@@ -94,7 +94,7 @@ public class PrintSlip extends PrinterRoot {
//添加其他金額項
if (MyOrderManage.getInstance().getOrderMoneyList().size() > 0) {
for (BillOrderMoney item : MyOrderManage.getInstance().getOrderMoneyList()) {
billingBeans.add(new BillingBean(item.getTitle(), item.getMoney()));
billingBeans.add(new BillingBean(item.getName(), item.getMoney()));
}
}
layout.addView(getDiningBillInfo(mContext, billingBeans));
......
......@@ -7,7 +7,7 @@ import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.order.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import com.gingersoft.gsa.cloud.print.bean.OrderDetails;
......
......@@ -30,8 +30,8 @@ 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.bean.BillOrderMoney;
import com.gingersoft.gsa.cloud.base.order.bean.OrderDetail;
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.table.bean.TableBean;
......@@ -868,7 +868,7 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
//添加其他金額項
if (MyOrderManage.getInstance().getOrderMoneyList().size() > 0) {
for (BillOrderMoney item : MyOrderManage.getInstance().getOrderMoneyList()) {
amountStr.append(getPLable(item.getTitle() + " " + item.getMoney(), HTML_PRINT_GRAVITY_RIGHT));
amountStr.append(getPLable(item.getName() + " " + item.getMoney(), HTML_PRINT_GRAVITY_RIGHT));
}
}
amountStr.append(getLine(21, HTML_PRINT_GRAVITY_RIGHT));
......
......@@ -10,7 +10,7 @@ import androidx.appcompat.app.AppCompatActivity;
import com.epson.epos2.printer.Printer;
import com.epson.epos2.printer.PrinterStatusInfo;
import com.epson.epos2.printer.ReceiveListener;
import com.gingersoft.gsa.cloud.base.order.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.base.utils.okhttpUtils.OkHttp3Utils;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils;
......
......@@ -101,7 +101,7 @@ public class TableBean {
private String createBy;
private String qrCodeImg;
private int posTableId;
private long serviceCharge;
private int serviceCharge;
private long memberId;
/**
* 未開檯 0
......@@ -265,11 +265,11 @@ public class TableBean {
this.posTableId = posTableId;
}
public long getServiceCharge() {
public int getServiceCharge() {
return serviceCharge;
}
public void setServiceCharge(long serviceCharge) {
public void setServiceCharge(int serviceCharge) {
this.serviceCharge = serviceCharge;
}
......
......@@ -44,7 +44,7 @@ public class TableExtBean {
private String tableName;
private int seatCount;
private long serviceCharge;
private int serviceCharge;
private long updateTime;
private long createTime;
......@@ -129,11 +129,11 @@ public class TableExtBean {
this.seatCount = seatCount;
}
public long getServiceCharge() {
public int getServiceCharge() {
return serviceCharge;
}
public void setServiceCharge(long serviceCharge) {
public void setServiceCharge(int serviceCharge) {
this.serviceCharge = serviceCharge;
}
......
......@@ -4,7 +4,7 @@ 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.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.time.TimeUtils;
import com.gingersoft.gsa.cloud.table.mvp.contract.OrderContentContract;
......@@ -63,10 +63,11 @@ public class OrderContentModel extends BaseModel implements OrderContentContract
}
private void saveCreateTime(long createTime) {
if (OpenTableManage.getDefault().getTableBean() == null) {
OpenTableManage.getDefault().setTableBean(new TableBean.DataBean());
DoshokuOrder doshokuOrder = DoshokuOrder.getInstance();
if (doshokuOrder == null) {
doshokuOrder.setOpenTableInfo(new TableBean.DataBean());
}
OpenTableManage.getDefault().getTableBean().setCreateTime(TimeUtils.getTime(createTime, TimeUtils.DEFAULT_DATE_FORMAT));
doshokuOrder.getOpenTableInfo().setCreateTime(TimeUtils.getTime(createTime, TimeUtils.DEFAULT_DATE_FORMAT));
}
@Override
......
......@@ -2,7 +2,7 @@ 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.bean.OrderDetail;
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;
......
package com.gingersoft.gsa.cloud.table.mvp.model.utils;
import com.gingersoft.gsa.cloud.base.order.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
import java.util.ArrayList;
import java.util.List;
......
......@@ -8,30 +8,28 @@ import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
import com.gingersoft.gsa.cloud.base.order.bean.BillOrderMoney;
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.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.bean.discount.CouponDiscountBean;
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.bean.mealManger.OpenTableManage;
import com.gingersoft.gsa.cloud.base.order.billItem.BillItem;
import com.gingersoft.gsa.cloud.base.order.billItem.DiscountItem;
import com.gingersoft.gsa.cloud.base.order.billItem.RoundingItem;
import com.gingersoft.gsa.cloud.base.order.billItem.ServiceChargeItem;
import com.gingersoft.gsa.cloud.base.order.cart.ShoppingCart;
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.discount.NomalDiscount;
import com.gingersoft.gsa.cloud.base.order.order.BaseOrder;
import com.gingersoft.gsa.cloud.base.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.base.order.order.OrderFactory;
import com.gingersoft.gsa.cloud.base.order.order.TakeawayOrder;
import com.gingersoft.gsa.cloud.base.table.bean.TableBean;
import com.gingersoft.gsa.cloud.base.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.base.utils.RestaurantExpandInfoUtils;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.constans.FoodSummaryConstans;
import com.gingersoft.gsa.cloud.table.mvp.contract.BaseOrderContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.AddOrderRequest;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.CreateOrderRequest;
......@@ -46,7 +44,6 @@ import com.gingersoft.gsa.cloud.zxing.MipcaCaptureActivity;
import com.jess.arms.di.scope.ActivityScope;
import com.jess.arms.integration.AppManager;
import com.jess.arms.mvp.BasePresenter;
import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.DeviceUtils;
import com.jess.arms.utils.PermissionUtil;
import com.jess.arms.utils.RxLifecycleUtils;
......@@ -59,14 +56,17 @@ import java.util.Map;
import javax.inject.Inject;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.functions.Consumer;
import io.reactivex.functions.Function;
import io.reactivex.schedulers.Schedulers;
import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber;
import okhttp3.FormBody;
import okhttp3.RequestBody;
import static com.gingersoft.gsa.cloud.base.order.bean.OrderDetail.DISCOUNT_TYPE;
import static com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail.DISCOUNT_TYPE;
/**
......@@ -96,27 +96,24 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
//订单数据管理类
protected MyOrderManage myOrderManage;
protected OpenTableManage openTableManage;
// protected OpenTableManage openTableManage;
//訂單食品適配器
protected SelectMealAdapter mSelectMealAdapter;
protected List<OrderDetail> mOrderFoodList;
// protected List<OrderDetail> mOrderFoodList;
//整單相關金額適配器
protected OrderMoneyAdapter mOrderMoneyAdapter;
protected List<BillOrderMoney> mOrderMoneyList;
// protected List<BillOrderMoney> mOrderMoneyList;
protected OrderDetail mCurrentOrderDetailBean;
/**
* 訂單類型
*/
protected int orderType;
//選中操作的食品下標
protected int orderSelectPosition = -1;
//币種
public String cashStr = "$";
public String serviceChargeStr = "服務費";
protected String cashStr = "$";
protected String serviceChargeStr = "服務費";
protected String roundingStr = "賬單小數";
private final String noFoodDeliveryTip = "賬單沒有食品,是否開台?";
......@@ -125,6 +122,10 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
*/
protected BaseOrder mOrder;
/**
* 餐檯信息
*/
public TableBean.DataBean mTableInfo;
/**
* 堂食訂單信息
*/
protected DoshokuOrder mDoshokuOrder;
......@@ -139,21 +140,22 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
/**
* 美食列表
*/
protected List<Commodity> mOrderMealList;
protected List<OrderDetail> mOrderMealList;
/**
* 賬單項列表
*/
protected List<BillItem> mBillItemList;
public abstract void createOrder(boolean isPrint, Class afterToActivity);
public abstract void addOrderFood(boolean isPrint, Class afterToActivity);
void saveCreateTime(long createTime) {
if (OpenTableManage.getDefault().getTableBean() == null) {
OpenTableManage.getDefault().setTableBean(new TableBean.DataBean());
if (mDoshokuOrder == null) {
mDoshokuOrder.setOpenTableInfo(new TableBean.DataBean());
}
OpenTableManage.getDefault().getTableBean().setCreateTime(TimeUtils.getTime(createTime, TimeUtils.DEFAULT_DATE_FORMAT));
mDoshokuOrder.getOpenTableInfo().setCreateTime(TimeUtils.getTime(createTime, TimeUtils.DEFAULT_DATE_FORMAT));
}
......@@ -164,11 +166,8 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
this.mBaseOrderPresenter = this;
this.IActivity = (Activity) mRootView;
this.openTableManage = OpenTableManage.getDefault();
// this.openTableManage = mDoshokuOrder.getOpenTableInfo();
this.myOrderManage = MyOrderManage.getInstance();
this.mOrderFoodList = myOrderManage.getOrderFoodList();
this.mOrderMoneyList = myOrderManage.getOrderMoneyList();
this.orderType = myOrderManage.getOrderType();
if (IActivity instanceof OrderContentActivity) {
mOrderContentActivity = (OrderContentActivity) IActivity;
......@@ -177,13 +176,12 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
mMealStandPresenter = (MealStandPresenter) this;
}
/****************************************************/
if (IActivity instanceof OrderContentActivity) {
mOrder = DoshokuOrder.getInstance();
mOrder = OrderFactory.createOrder(FoodSummaryConstans.RESTAURANT_MODE);
if (BaseOrder.orderType == FoodSummaryConstans.RESTAURANT_MODE) {
mDoshokuOrder = (DoshokuOrder) mOrder;
mTableInfo = mDoshokuOrder.getOpenTableInfo();
} else {
mOrder = TakeawayOrder.getInstance();
mTakeawayOrder = (TakeawayOrder) mOrder;
}
mShoppingCart = mOrder.getShoppingCart();
......@@ -195,80 +193,159 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
resetSelected();
initOrderAdapter();
initItemClickListener();
if (!containsTableService()) {
addTableServiceAmount();
}
if (this instanceof MealStandPresenter) {
addSentOrderDiscount();
addOrderRounding();
//設置賬單總金額
myOrderManage.setTotalAmount(getTotalAmount());
} else {
updateBillOrderItem();
// if (!containsTableService()) {
// addTableServiceAmount();
// }
// if (this instanceof MealStandPresenter) {
// addSentOrderDiscount();
// addOrderRounding();
// //設置賬單總金額
// myOrderManage.setTotalAmount(getTotalAmount());
// } else {
// updateBillOrderItem();
updateBillInfo();
// }
}
@Override
public void onDestroy() {
super.onDestroy();
this.mErrorHandler = null;
this.mAppManager = null;
this.mApplication = null;
}
/**
* 更新賬單信息
* 1、更新食品折扣
* 2、更新服務費項
* 3、更新賬單折扣項{@link NomalDiscount}
* 4、更新賬單小數項
* 4、總金額
* 1、更新合計
* 2、更新食品折扣
* 3、更新服務費項
* 4、更新賬單折扣項{@link NomalDiscount}
* 5、更新賬單小數項
* 6、總金額
*/
public void updateBillInfo() {
double wholeAmount = getFoodTotal();
//更新合計
mShoppingCart.setWholeAmount(wholeAmount);
Observable.just(wholeAmount)
.subscribeOn(Schedulers.computation())
/**
* 計算服務費
*/
protected void updateBillInfo() {
if (!containsTableService()) {
addTableServiceAmount();
.map(new Function<Double, Double>() {
@Override
public Double apply(Double totalAmount) throws Exception {
ServiceChargeItem serviceChargeItem = (ServiceChargeItem) findBillItemByClass(ServiceChargeItem.class);
int serviceCharge = mDoshokuOrder.getOpenTableInfo().getServiceCharge();
if (serviceChargeItem != null) {
totalAmount = serviceChargeItem.updateBillItem(totalAmount, serviceCharge);
if (Double.doubleToLongBits(totalAmount) != 0.0) {
//更新服務費
mShoppingCart.setServiceCharge(totalAmount);
}else {
//刪除服務費
mBillItemList.remove(serviceChargeItem);
mShoppingCart.setServiceCharge(null);
}
updateBillItem();
mShoppingCart.setTotalAmount(getTotalAmount());
} else {
if (serviceCharge != 0) {
ServiceChargeItem item = new ServiceChargeItem(serviceChargeStr);
totalAmount = item.updateBillItem(totalAmount, serviceCharge);
if (Double.doubleToLongBits(totalAmount) != 0.0) {
mBillItemList.add(item);
mShoppingCart.setServiceCharge(item.getMoney());
}
protected void updateBillItem() {
double wholeAmount = getFoodTotal();
}
}
return totalAmount;
}
})
/**
* 計算折扣
*/
.map(new Function<Double, Double>() {
@Override
public Double apply(Double totalAmount) throws Exception {
double discountableMoney = getDiscountableFoodTotal2();
boolean calculatedDiscount = false;
for (BillItem item : mBillItemList) {
if (item instanceof ServiceChargeItem) {
//更新服務費項
((ServiceChargeItem) item).updateBillItem(wholeAmount, mShoppingCart.getServiceCharge());
} else if (item instanceof DiscountItem) {
if (item instanceof DiscountItem && calculatedDiscount == false) {
calculatedDiscount = true;
//調用折扣鏈進行計算
mShoppingCart.calculateLinkedDiscounts(discountableMoney);
} else if (item instanceof RoundingItem) {
//更新賬單小數項
((RoundingItem) item).updateBillItem(wholeAmount);
totalAmount = mShoppingCart.calculateLinkedDiscounts(discountableMoney);
}
}
return totalAmount;
}
private boolean containsTableService() {
for (int i = mOrderMoneyList.size() - 1; i >= 0; i--) {
BillOrderMoney billOrderMoney = mOrderMoneyList.get(i);
if (billOrderMoney.getType() == BillOrderMoney.SERVERCHARGE_TYPE) {
return true;
})
/**
* 計算賬單小數
*/
.map(new Function<Double, Double>() {
@Override
public Double apply(Double totalAmount) throws Exception {
double roundingTotalAmount = getTotalAmountFilterByType(BillItem.ROUNDING_TYPE);
RoundingItem roundingItem = (RoundingItem) findBillItemByClass(RoundingItem.class);
if (roundingItem != null) {
totalAmount = roundingItem.updateBillItem(roundingTotalAmount);
if (Double.doubleToLongBits(totalAmount) != 0.0) {
//更新賬單小數
mShoppingCart.setRounding(totalAmount);
}else {
//刪除賬單小數
mBillItemList.remove(roundingItem);
mShoppingCart.setRounding(null);
}
} else {
RoundingItem item = new RoundingItem(roundingStr);
totalAmount = item.updateBillItem(roundingTotalAmount);
if (Double.doubleToLongBits(totalAmount) != 0.0) {
mBillItemList.add(item);
mShoppingCart.setRounding(item.getMoney());
}
return false;
}
return totalAmount;
}
})
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<Double>() {
@Override
public void onDestroy() {
super.onDestroy();
this.mErrorHandler = null;
this.mAppManager = null;
this.mApplication = null;
public void accept(Double totalAmount) throws Exception {
//更新總金額
mShoppingCart.setTotalAmount(totalAmount);
//刷新賬單Item數據
mOrderMoneyAdapter.notifyDataSetChanged();
}
});
}
/**
* 查詢對應的BillItem類是否存在
*
* @param cla
* @return
*/
private BillItem findBillItemByClass(Class<?> cla) {
BillItem billItem = null;
for (BillItem item : mBillItemList) {
if (item.getClass().equals(cla)) {
billItem = item;
break;
}
}
return billItem;
}
private void initOrderAdapter() {
if (mSelectMealAdapter == null) {
mSelectMealAdapter = new SelectMealAdapter(IActivity, mOrderFoodList, this);
mSelectMealAdapter = new SelectMealAdapter(IActivity, mOrderMealList, this);
//設置子父級下標
mSelectMealAdapter.setIndex();
}
if (mOrderMoneyAdapter == null) {
mOrderMoneyAdapter = new OrderMoneyAdapter(IActivity, mOrderMoneyList, cashStr);
mOrderMoneyAdapter = new OrderMoneyAdapter(IActivity, mBillItemList, cashStr);
}
}
......@@ -295,7 +372,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
mOrderContentActivity.initOrderDetail();
}
//更新折扣
updateBillOrderItem();
updateBillInfo();
}
@Override
......@@ -306,7 +383,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
mOrderContentActivity.initOrderDetail();
}
//更新折扣
updateBillOrderItem();
updateBillInfo();
}
@Override
......@@ -350,7 +427,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
mMealStandPresenter.updateMealSoldoutCtrData();
mMealStandPresenter.updateOrderFoodNumber();
}
updateBillOrderItem();
updateBillInfo();
mSelectMealAdapter.notifyDataSetChanged();
}
......@@ -441,18 +518,18 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
/**
* 更新賬單金額
*/
public void updateBillOrderItem() {
if (!containsTableService()) {
addTableServiceAmount();
}
updateFoodDiscount();
updateTableServiceAmount();
updateOrderDiscount();
updateMemberDiscount();
updateMemberCoupon();
updateOrderRounding();
myOrderManage.setTotalAmount(getTotalAmount());
}
// public void updateBillOrderItem() {
// if (!containsTableService()) {
// addTableServiceAmount();
// }
// updateFoodDiscount();
// updateTableServiceAmount();
// updateOrderDiscount();
// updateMemberDiscount();
// updateMemberCoupon();
// updateOrderRounding();
// myOrderManage.setTotalAmount(getTotalAmount());
// }
/**
* 添加已送單折扣
......@@ -490,148 +567,148 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
// }
// }
// }
protected void addSentOrderDiscount() {
OrderBean orderBean = myOrderManage.getOrderBean();
if (orderBean != null) {
List<OrderDiscount.Respose> discountDetails = orderBean.getDiscountDetails();
if (discountDetails != null) {
for (int i = 0; i < discountDetails.size(); i++) {
OrderDiscount.Respose orderDiscount = discountDetails.get(i);
if (orderDiscount.getType() == OrderDiscount.ORDER_DISCOUNT) {
//整單折扣
Discount discount = new Discount();
discount.setId(orderDiscount.getDiscountId());
discount.setRemark(orderDiscount.getRemark());
if (orderDiscount.getDiscountValue() != 0) {
//百分比折扣
discount.setType(1);
discount.setDiscount_value(orderDiscount.getDiscountValue());
addOrderDiscount(true, discount, BillOrderMoney.BILL_ITEM_ORDER_SENT_STATUS);
continue;
}
if (orderDiscount.getDiscountAmount() != 0) {
//金額折扣
discount.setType(0);
discount.setAmount(orderDiscount.getDiscountAmount());
addOrderDiscount(true, discount, BillOrderMoney.BILL_ITEM_ORDER_SENT_STATUS);
continue;
}
} else if (orderDiscount.getType() == OrderDiscount.MEMBER_DISCOUNT) {
//會員折扣
MemberInfo memberInfo = myOrderManage.getMemberInfo();
if (memberInfo != null) {
addMemberDiscount(memberInfo.getId(), orderDiscount.getDiscountValue(), memberInfo.getMemberName(), memberInfo.getLevelName1(), BillOrderMoney.BILL_ITEM_ORDER_SENT_STATUS);
}
} else if (orderDiscount.getType() == OrderDiscount.COUPON_DISCOUNT) {
CouponDiscountBean couponDiscount = new CouponDiscountBean();
couponDiscount.setCouponTypeName1(orderDiscount.getRemark());
couponDiscount.setCouponTypeName2(orderDiscount.getRemark2());
couponDiscount.setCouponTypeName3(orderDiscount.getRemark3());
couponDiscount.setAccumulate(orderDiscount.getAccumulate());
couponDiscount.setSpend(orderDiscount.getSpend());
couponDiscount.setDiscount(orderDiscount.getDiscountValue());
couponDiscount.setAmount(orderDiscount.getDiscountAmount());
MemberInfo memberInfo = myOrderManage.getMemberInfo();
if (memberInfo != null) {
addCouponDiscount(couponDiscount, myOrderManage.getMemberInfo().getId(), BillOrderMoney.BILL_ITEM_ORDER_SENT_STATUS);
}
}
}
}
}
}
// protected void addSentOrderDiscount() {
// OrderBean orderBean = myOrderManage.getOrderBean();
// if (orderBean != null) {
// List<OrderDiscount.Respose> discountDetails = orderBean.getDiscountDetails();
// if (discountDetails != null) {
// for (int i = 0; i < discountDetails.size(); i++) {
// OrderDiscount.Respose orderDiscount = discountDetails.get(i);
// if (orderDiscount.getType() == OrderDiscount.ORDER_DISCOUNT) {
// //整單折扣
// Discount discount = new Discount();
// discount.setId(orderDiscount.getDiscountId());
// discount.setRemark(orderDiscount.getRemark());
// if (orderDiscount.getDiscountValue() != 0) {
// //百分比折扣
// discount.setType(1);
// discount.setDiscount_value(orderDiscount.getDiscountValue());
// addOrderDiscount(true, discount, BillOrderMoney.BILL_ITEM_ORDER_SENT_STATUS);
// continue;
// }
// if (orderDiscount.getDiscountAmount() != 0) {
// //金額折扣
// discount.setType(0);
// discount.setAmount(orderDiscount.getDiscountAmount());
// addOrderDiscount(true, discount, BillOrderMoney.BILL_ITEM_ORDER_SENT_STATUS);
// continue;
// }
// } else if (orderDiscount.getType() == OrderDiscount.MEMBER_DISCOUNT) {
// //會員折扣
// MemberInfo memberInfo = myOrderManage.getMemberInfo();
// if (memberInfo != null) {
// addMemberDiscount(memberInfo.getId(), orderDiscount.getDiscountValue(), memberInfo.getMemberName(), memberInfo.getLevelName1(), BillOrderMoney.BILL_ITEM_ORDER_SENT_STATUS);
// }
// } else if (orderDiscount.getType() == OrderDiscount.COUPON_DISCOUNT) {
// CouponDiscountBean couponDiscount = new CouponDiscountBean();
// couponDiscount.setCouponTypeName1(orderDiscount.getRemark());
// couponDiscount.setCouponTypeName2(orderDiscount.getRemark2());
// couponDiscount.setCouponTypeName3(orderDiscount.getRemark3());
// couponDiscount.setAccumulate(orderDiscount.getAccumulate());
// couponDiscount.setSpend(orderDiscount.getSpend());
// couponDiscount.setDiscount(orderDiscount.getDiscountValue());
// couponDiscount.setAmount(orderDiscount.getDiscountAmount());
//
// MemberInfo memberInfo = myOrderManage.getMemberInfo();
// if (memberInfo != null) {
// addCouponDiscount(couponDiscount, myOrderManage.getMemberInfo().getId(), BillOrderMoney.BILL_ITEM_ORDER_SENT_STATUS);
// }
// }
// }
// }
// }
// }
/**
* 添加餐檯服務費
*/
protected void addTableServiceAmount() {
TableBean.DataBean dataBean = OpenTableManage.getDefault().getTableBean();
if (dataBean == null) {
return;
}
double serviceAmount = MoneyUtil.divide(MoneyUtil.multiply(getScAbleFoodTotal(), dataBean.getServiceCharge()).doubleValue(), 100, MoneyUtil.ItemDecimals);
if (serviceAmount > 0) {
BillOrderMoney orderMoney = new BillOrderMoney();
orderMoney.setMoney(MoneyUtil.get_ItemDecimals_money(serviceAmount));
orderMoney.setTitle(dataBean.getServiceCharge() + "%" + serviceChargeStr);
orderMoney.setStatus(BillOrderMoney.BILL_ITEM_ORDER_SENT_STATUS);
orderMoney.setType(BillOrderMoney.SERVERCHARGE_TYPE);
orderMoney.setTextColor(ArmsUtils.getColor(IActivity, R.color.theme_black));
BillOrderMoney discountBill = getBillOrderItemByType(BillOrderMoney.ORDER_DISCOUNT_TYPE);
if (discountBill != null) {
mOrderMoneyList.add(0, orderMoney);
} else {
mOrderMoneyList.add(orderMoney);
}
mOrderMoneyAdapter.notifyDataSetChanged();
}
}
// protected void addTableServiceAmount() {
// TableBean.DataBean dataBean = mDoshokuOrder.getOpenTableInfo().getTableBean();
// if (dataBean == null) {
// return;
// }
// double serviceAmount = MoneyUtil.divide(MoneyUtil.multiply(getScAbleFoodTotal(), dataBean.getServiceCharge()).doubleValue(), 100, MoneyUtil.ItemDecimals);
// if (serviceAmount > 0) {
// BillOrderMoney orderMoney = new BillOrderMoney();
// orderMoney.setMoney(MoneyUtil.get_ItemDecimals_money(serviceAmount));
// orderMoney.setTitle(dataBean.getServiceCharge() + "%" + serviceChargeStr);
// orderMoney.setStatus(BillOrderMoney.BILL_ITEM_ORDER_SENT_STATUS);
// orderMoney.setType(BillOrderMoney.SERVERCHARGE_TYPE);
// orderMoney.setTextColor(ArmsUtils.getColor(IActivity, R.color.theme_black));
// BillOrderMoney discountBill = getBillOrderItemByType(BillOrderMoney.ORDER_DISCOUNT_TYPE);
// if (discountBill != null) {
// mOrderMoneyList.add(0, orderMoney);
// } else {
// mOrderMoneyList.add(orderMoney);
// }
// mOrderMoneyAdapter.notifyDataSetChanged();
// }
// }
/**
* 更新服务费
*/
private void updateTableServiceAmount() {
BillOrderMoney billOrderMoney = getBillOrderItemByType(BillOrderMoney.SERVERCHARGE_TYPE);
if (billOrderMoney != null) {
TableBean.DataBean dataBean = OpenTableManage.getDefault().getTableBean();
// double serviceAmount = getTotalAmountFilterByType(BillOrderMoney.SERVERCHARGE_TYPE, BillOrderMoney.DISCOUNT_TYPE, BillOrderMoney.ROUNDING_TYPE) * dataBean.getServiceCharge() / 100;
double serviceAmount = getScAbleFoodTotal() * dataBean.getServiceCharge() / 100;
if (serviceAmount > 0) {
billOrderMoney.setMoney(MoneyUtil.get_ItemDecimals_money(serviceAmount));
} else {
mOrderMoneyList.remove(billOrderMoney);
}
mOrderMoneyAdapter.notifyDataSetChanged();
}
}
// private void updateTableServiceAmount() {
// BillOrderMoney billOrderMoney = getBillOrderItemByType(BillOrderMoney.SERVERCHARGE_TYPE);
// if (billOrderMoney != null) {
// TableBean.DataBean dataBean = mDoshokuOrder.getOpenTableInfo().getTableBean();
//// double serviceAmount = getTotalAmountFilterByType(BillOrderMoney.SERVERCHARGE_TYPE, BillOrderMoney.DISCOUNT_TYPE, BillOrderMoney.ROUNDING_TYPE) * dataBean.getServiceCharge() / 100;
// double serviceAmount = getScAbleFoodTotal() * dataBean.getServiceCharge() / 100;
// if (serviceAmount > 0) {
// billOrderMoney.setMoney(MoneyUtil.get_ItemDecimals_money(serviceAmount));
// } else {
// mOrderMoneyList.remove(billOrderMoney);
// }
// mOrderMoneyAdapter.notifyDataSetChanged();
// }
// }
/**
* 添加賬單折扣
*
* @param discount
*/
protected void addOrderDiscount(boolean init, Discount discount, int status) {
removeBillOrderItemByType(BillOrderMoney.ORDER_DISCOUNT_TYPE);
double totalMoney = getDiscountableFoodTotal(BillOrderMoney.ORDER_DISCOUNT_TYPE, true);
double discountPrice = OrderDiscount.calculationDiscount(discount, totalMoney);
BillOrderMoney orderMoney = new BillOrderMoney();
orderMoney.setMoney(discountPrice);
orderMoney.setTitle(discount.getRemark());
orderMoney.setType(BillOrderMoney.ORDER_DISCOUNT_TYPE);
if (status == 0) {
orderMoney.setTextColor(ArmsUtils.getColor(IActivity, R.color.theme_hint_color));
} else {
orderMoney.setTextColor(ArmsUtils.getColor(IActivity, R.color.theme_black));
}
orderMoney.setStatus(status);
orderMoney.setDiscount(discount);
mOrderMoneyList.add(orderMoney);
mOrderMoneyAdapter.notifyDataSetChanged();
//更新總金額
if (!init && mOrderContentActivity != null) {
//先更新下賬單小數,再計算總金額才不會錯
updateOrderRounding();
//更新合計 總金額信息
mOrderContentActivity.initOrderDetail();
}
}
// protected void addOrderDiscount(boolean init, Discount discount, int status) {
//
// removeBillOrderItemByType(BillOrderMoney.ORDER_DISCOUNT_TYPE);
//
// double totalMoney = getDiscountableFoodTotal(BillOrderMoney.ORDER_DISCOUNT_TYPE, true);
// double discountPrice = OrderDiscount.calculationDiscount(discount, totalMoney);
// BillOrderMoney orderMoney = new BillOrderMoney();
// orderMoney.setMoney(discountPrice);
// orderMoney.setTitle(discount.getRemark());
// orderMoney.setType(BillOrderMoney.ORDER_DISCOUNT_TYPE);
// if (status == 0) {
// orderMoney.setTextColor(ArmsUtils.getColor(IActivity, R.color.theme_hint_color));
// } else {
// orderMoney.setTextColor(ArmsUtils.getColor(IActivity, R.color.theme_black));
// }
// orderMoney.setStatus(status);
// orderMoney.setDiscount(discount);
//
// mOrderMoneyList.add(orderMoney);
// mOrderMoneyAdapter.notifyDataSetChanged();
//
// //更新總金額
// if (!init && mOrderContentActivity != null) {
// //先更新下賬單小數,再計算總金額才不會錯
// updateOrderRounding();
// //更新合計 總金額信息
// mOrderContentActivity.initOrderDetail();
// }
// }
/**
* 更新整單折扣
*/
protected void updateOrderDiscount() {
BillOrderMoney orderMoney = getBillOrderItemByType(BillOrderMoney.ORDER_DISCOUNT_TYPE);
if (orderMoney != null) {
double totalMoney = getDiscountableFoodTotal(BillOrderMoney.ORDER_DISCOUNT_TYPE, false);
double discountPrice = OrderDiscount.calculationDiscount(orderMoney.getDiscount(), totalMoney);
orderMoney.setMoney(discountPrice);
}
}
// protected void updateOrderDiscount() {
// BillOrderMoney orderMoney = getBillOrderItemByType(BillOrderMoney.ORDER_DISCOUNT_TYPE);
// if (orderMoney != null) {
// double totalMoney = getDiscountableFoodTotal(BillOrderMoney.ORDER_DISCOUNT_TYPE, false);
// double discountPrice = OrderDiscount.calculationDiscount(orderMoney.getDiscount(), totalMoney);
// orderMoney.setMoney(discountPrice);
// }
// }
/**
* 添加会员折扣
......@@ -641,45 +718,45 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
* @param memberName
* @param levelName
*/
public void addMemberDiscount(long memberId, int discountRate, String memberName, String levelName, int status) {
removeBillOrderItemByType(BillOrderMoney.MEMBER_DISCOUNT_TYPE);
double totalMoney = getDiscountableFoodTotal(BillOrderMoney.MEMBER_DISCOUNT_TYPE, true);
if (!TextUtils.isEmpty(levelName)) {
memberName = memberName + "(" + levelName + ")";
}
double discountPrice = OrderDiscount.calculationMemberDiscount(discountRate, totalMoney);
BillOrderMoney orderMoney = new BillOrderMoney();
orderMoney.setMoney(discountPrice);
orderMoney.setTitle(memberName + discountRate + "%");
orderMoney.setType(BillOrderMoney.MEMBER_DISCOUNT_TYPE);
orderMoney.setTextColor(ArmsUtils.getColor(IActivity, R.color.theme_black));
orderMoney.setStatus(status);
//折扣
Discount discount = new Discount();
discount.setId(memberId);
discount.setMemberId(memberId);
discount.setType(1);
discount.setRemark(memberName + discountRate + "%");
discount.setDiscount_value(discountRate);
orderMoney.setDiscount(discount);
mOrderMoneyList.add(orderMoney);
mOrderMoneyAdapter.notifyDataSetChanged();
}
// public void addMemberDiscount(long memberId, int discountRate, String memberName, String levelName, int status) {
//
// removeBillOrderItemByType(BillOrderMoney.MEMBER_DISCOUNT_TYPE);
//
// double totalMoney = getDiscountableFoodTotal(BillOrderMoney.MEMBER_DISCOUNT_TYPE, true);
// if (!TextUtils.isEmpty(levelName)) {
// memberName = memberName + "(" + levelName + ")";
// }
// double discountPrice = OrderDiscount.calculationMemberDiscount(discountRate, totalMoney);
// BillOrderMoney orderMoney = new BillOrderMoney();
// orderMoney.setMoney(discountPrice);
// orderMoney.setTitle(memberName + discountRate + "%");
// orderMoney.setType(BillOrderMoney.MEMBER_DISCOUNT_TYPE);
// orderMoney.setTextColor(ArmsUtils.getColor(IActivity, R.color.theme_black));
// orderMoney.setStatus(status);
// //折扣
// Discount discount = new Discount();
// discount.setId(memberId);
// discount.setMemberId(memberId);
// discount.setType(1);
// discount.setRemark(memberName + discountRate + "%");
// discount.setDiscount_value(discountRate);
// orderMoney.setDiscount(discount);
//
// mOrderMoneyList.add(orderMoney);
// mOrderMoneyAdapter.notifyDataSetChanged();
// }
/**
* 更新会员折扣
*/
protected void updateMemberDiscount() {
BillOrderMoney orderMoney = getBillOrderItemByType(BillOrderMoney.MEMBER_DISCOUNT_TYPE);
if (orderMoney != null) {
double totalMoney = getDiscountableFoodTotal(BillOrderMoney.MEMBER_DISCOUNT_TYPE, false);
double discountPrice = OrderDiscount.calculationDiscount(orderMoney.getDiscount(), totalMoney);
orderMoney.setMoney(discountPrice);
}
}
// protected void updateMemberDiscount() {
// BillOrderMoney orderMoney = getBillOrderItemByType(BillOrderMoney.MEMBER_DISCOUNT_TYPE);
// if (orderMoney != null) {
// double totalMoney = getDiscountableFoodTotal(BillOrderMoney.MEMBER_DISCOUNT_TYPE, false);
// double discountPrice = OrderDiscount.calculationDiscount(orderMoney.getDiscount(), totalMoney);
// orderMoney.setMoney(discountPrice);
// }
// }
/**
* 添加优惠券折扣
......@@ -687,80 +764,80 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
* @param coupon
* @param status
*/
public void addCouponDiscount(CouponDiscountBean coupon, long memberId, int status) {
removeBillOrderItemByType(BillOrderMoney.COUPON_DISCOUNT_TYPE);
double totalMoney = getDiscountableFoodTotal(BillOrderMoney.COUPON_DISCOUNT_TYPE, true);
double discountPrice = CouponDiscountBean.calculationCoupon(coupon.getDiscount(), coupon.getAmount(), totalMoney);
BillOrderMoney orderMoney = new BillOrderMoney();
orderMoney.setMoney(discountPrice);
if (coupon.getDiscount() != 0) {
orderMoney.setTitle(coupon.getName() + coupon.getDiscount() + "%");
} else {
orderMoney.setTitle(coupon.getName());
}
orderMoney.setType(BillOrderMoney.COUPON_DISCOUNT_TYPE);
if (status == 0) {
orderMoney.setTextColor(ArmsUtils.getColor(IActivity, R.color.theme_hint_color));
} else {
orderMoney.setTextColor(ArmsUtils.getColor(IActivity, R.color.theme_black));
}
orderMoney.setStatus(status);
//折扣
Discount discount = new Discount();
discount.setId(coupon.getId());
discount.setMemberId(memberId);
discount.setRemark(coupon.getName() + coupon.getDiscount() + "%");
discount.setDiscount_value(coupon.getDiscount());
discount.setAmount(coupon.getAmount());
if (coupon.getDiscount() != 0) {
discount.setType(1);
} else {
discount.setType(0);
}
orderMoney.setDiscount(discount);
mOrderMoneyList.add(orderMoney);
mOrderMoneyAdapter.notifyDataSetChanged();
}
// public void addCouponDiscount(CouponDiscountBean coupon, long memberId, int status) {
//
// removeBillOrderItemByType(BillOrderMoney.COUPON_DISCOUNT_TYPE);
//
// double totalMoney = getDiscountableFoodTotal(BillOrderMoney.COUPON_DISCOUNT_TYPE, true);
// double discountPrice = CouponDiscountBean.calculationCoupon(coupon.getDiscount(), coupon.getAmount(), totalMoney);
// BillOrderMoney orderMoney = new BillOrderMoney();
// orderMoney.setMoney(discountPrice);
// if (coupon.getDiscount() != 0) {
// orderMoney.setTitle(coupon.getName() + coupon.getDiscount() + "%");
// } else {
// orderMoney.setTitle(coupon.getName());
// }
// orderMoney.setType(BillOrderMoney.COUPON_DISCOUNT_TYPE);
// if (status == 0) {
// orderMoney.setTextColor(ArmsUtils.getColor(IActivity, R.color.theme_hint_color));
// } else {
// orderMoney.setTextColor(ArmsUtils.getColor(IActivity, R.color.theme_black));
// }
// orderMoney.setStatus(status);
// //折扣
// Discount discount = new Discount();
// discount.setId(coupon.getId());
// discount.setMemberId(memberId);
// discount.setRemark(coupon.getName() + coupon.getDiscount() + "%");
// discount.setDiscount_value(coupon.getDiscount());
// discount.setAmount(coupon.getAmount());
// if (coupon.getDiscount() != 0) {
// discount.setType(1);
// } else {
// discount.setType(0);
// }
// orderMoney.setDiscount(discount);
//
// mOrderMoneyList.add(orderMoney);
// mOrderMoneyAdapter.notifyDataSetChanged();
// }
/**
* 更新會員優惠券金額
*/
public void updateMemberCoupon() {
BillOrderMoney orderMoney = getBillOrderItemByType(BillOrderMoney.COUPON_DISCOUNT_TYPE);
if (orderMoney != null) {
double totalMoney = getDiscountableFoodTotal(BillOrderMoney.COUPON_DISCOUNT_TYPE, false);
double discountPrice = CouponDiscountBean.calculationCoupon(orderMoney.getDiscount().getDiscount_value(), orderMoney.getDiscount().getAmount(), totalMoney);
orderMoney.setMoney(discountPrice);
}
}
// public void updateMemberCoupon() {
// BillOrderMoney orderMoney = getBillOrderItemByType(BillOrderMoney.COUPON_DISCOUNT_TYPE);
// if (orderMoney != null) {
// double totalMoney = getDiscountableFoodTotal(BillOrderMoney.COUPON_DISCOUNT_TYPE, false);
// double discountPrice = CouponDiscountBean.calculationCoupon(orderMoney.getDiscount().getDiscount_value(), orderMoney.getDiscount().getAmount(), totalMoney);
// orderMoney.setMoney(discountPrice);
// }
// }
/**
* 根據類型刪除賬單項
*
* @param type
*/
private void removeBillOrderItemByType(int type) {
for (int i = mOrderMoneyList.size() - 1; i >= 0; i--) {
BillOrderMoney item = mOrderMoneyList.get(i);
if (item.getType() == type) {
mOrderMoneyList.remove(i);
mOrderMoneyAdapter.notifyItemChanged(i);
break;
}
}
}
// private void removeBillOrderItemByType(int type) {
// for (int i = mOrderMoneyList.size() - 1; i >= 0; i--) {
// BillOrderMoney item = mOrderMoneyList.get(i);
// if (item.getType() == type) {
// mOrderMoneyList.remove(i);
// mOrderMoneyAdapter.notifyItemChanged(i);
// break;
// }
// }
// }
private BillOrderMoney getBillOrderItemByType(int type) {
for (BillOrderMoney orderMoney : mOrderMoneyList) {
if (orderMoney.getType() == type) {
return orderMoney;
}
}
return null;
}
// private BillOrderMoney getBillOrderItemByType(int type) {
// for (BillOrderMoney orderMoney : mOrderMoneyList) {
// if (orderMoney.getType() == type) {
// return orderMoney;
// }
// }
// return null;
// }
/**
* 更新食品折扣
......@@ -827,43 +904,43 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
/**
* 添加賬單小數行
*/
protected void addOrderRounding() {
double m1 = getTotalAmountFilterByType(BillOrderMoney.ROUNDING_TYPE);
double m2 = MoneyUtil.getOrderRounding(m1);
double roundingMoney = 0.0;
if (m2 != 0) {
roundingMoney = MoneyUtil.sub(m2, MoneyUtil.get_ItemDecimals_money(m1));
}
if (roundingMoney != 0.0) {
BillOrderMoney roundingItem = new BillOrderMoney();
roundingItem.setMoney(MoneyUtil.getDecimalMoney(roundingMoney, MoneyUtil.ItemDecimals));
roundingItem.setTitle("賬單小數");
roundingItem.setType(BillOrderMoney.ROUNDING_TYPE);
mOrderMoneyList.add(roundingItem);
mOrderMoneyAdapter.notifyDataSetChanged();
}
}
// protected void addOrderRounding() {
// double m1 = getTotalAmountFilterByType(BillOrderMoney.ROUNDING_TYPE);
// double m2 = MoneyUtil.getOrderRounding(m1);
// double roundingMoney = 0.0;
// if (m2 != 0) {
// roundingMoney = MoneyUtil.sub(m2, MoneyUtil.get_ItemDecimals_money(m1));
// }
// if (roundingMoney != 0.0) {
// BillOrderMoney roundingItem = new BillOrderMoney();
// roundingItem.setMoney(MoneyUtil.getDecimalMoney(roundingMoney, MoneyUtil.ItemDecimals));
// roundingItem.setTitle("賬單小數");
// roundingItem.setType(BillOrderMoney.ROUNDING_TYPE);
// mOrderMoneyList.add(roundingItem);
// mOrderMoneyAdapter.notifyDataSetChanged();
// }
// }
/**
* 刪除賬單小數
*/
private void removeOrderRouding() {
for (BillOrderMoney item : mOrderMoneyList) {
if (item.getType() == BillOrderMoney.ROUNDING_TYPE) {
mOrderMoneyList.remove(item);
mOrderMoneyAdapter.notifyDataSetChanged();
break;
}
}
}
// private void removeOrderRouding() {
// for (BillOrderMoney item : mOrderMoneyList) {
// if (item.getType() == BillOrderMoney.ROUNDING_TYPE) {
// mOrderMoneyList.remove(item);
// mOrderMoneyAdapter.notifyDataSetChanged();
// break;
// }
// }
// }
/**
* 更新賬單小數(在最後一行)
*/
protected void updateOrderRounding() {
removeOrderRouding();
addOrderRounding();
}
// protected void updateOrderRounding() {
// removeOrderRouding();
// addOrderRounding();
// }
/**
* 創建訂單后保存OrderId
......@@ -878,8 +955,8 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
* 重置選中狀態
*/
public void resetSelected() {
for (int i = 0; i < mOrderFoodList.size(); i++) {
OrderDetail datasBean = mOrderFoodList.get(i);
for (int i = 0; i < mOrderMealList.size(); i++) {
OrderDetail datasBean = mOrderMealList.get(i);
datasBean.setSelected(0);
}
if (mSelectMealAdapter != null) {
......@@ -893,7 +970,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
*/
public double getServiceCharge() {
double serviceCharge = 0.0;
for (BillOrderMoney item : mOrderMoneyList) {
for (BillItem item : mBillItemList) {
if (item.getType() == BillOrderMoney.SERVERCHARGE_TYPE) {
serviceCharge = item.getMoney();
break;
......@@ -910,7 +987,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
*/
public double getFoodTotal() {
double total = 0.0;
for (OrderDetail food : myOrderManage.getOrderFoodList()) {
for (OrderDetail food : mOrderMealList) {
if (food.getNumber() == 0) {
continue;
}
......@@ -933,91 +1010,90 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
*
* @return
*/
public double getDiscountableFoodTotal(int discountType, boolean add) {
double total = 0.0;
List<OrderDetail> orderFoodList = myOrderManage.getOrderFoodList();
int orderSize = orderFoodList.size();
for (int i = 0; i < orderSize; i++) {
OrderDetail food = orderFoodList.get(i);
if (food.getNumber() == 0) {
continue;
}
if (food.getItemType() == 1) {
if (food.getAblediscount() == 1) {
total = MoneyUtil.sum(total, food.getPrice());
}
} else {
int parentIndex = food.getParentIndex() - 1;
if (orderSize > parentIndex && orderFoodList.get(parentIndex).getAblediscount() == 1) {
if (food.getType() == DISCOUNT_TYPE) {
//主食品参与折扣,折扣金额直接减掉
total = MoneyUtil.sub(total, Math.abs(food.getPrice()));
} else {
//主食品可參與折扣 子食品才能參與折扣
if (food.getAblediscount() == 1) {
total = MoneyUtil.sum(total, food.getPrice());
}
}
}
}
}
if (add) {
//添加折扣
//折上折的情况,先减去上面的折扣金额再进行折扣
for (int i = 0; i < mOrderMoneyList.size(); i++) {
BillOrderMoney billOrderMoney = mOrderMoneyList.get(i);
if (billOrderMoney.getType() == BillOrderMoney.ORDER_DISCOUNT_TYPE || billOrderMoney.getType() == BillOrderMoney.MEMBER_DISCOUNT_TYPE || billOrderMoney.getType() == BillOrderMoney.COUPON_DISCOUNT_TYPE) {
double money = billOrderMoney.getMoney();
total = MoneyUtil.sum(total, money);
break;
}
}
} else {
//更新折扣
int containAllDiscount = 0;
for (int i = 0; i < mOrderMoneyList.size(); i++) {
BillOrderMoney billOrderMoney = mOrderMoneyList.get(i);
if (billOrderMoney.getType() == BillOrderMoney.ORDER_DISCOUNT_TYPE) {
containAllDiscount++;
continue;
}
if (billOrderMoney.getType() == BillOrderMoney.MEMBER_DISCOUNT_TYPE) {
containAllDiscount++;
continue;
}
if (billOrderMoney.getType() == BillOrderMoney.COUPON_DISCOUNT_TYPE) {
containAllDiscount++;
continue;
}
}
if (containAllDiscount > 1) {
//有账单折扣+会员折扣 会员优惠券
//折上折的情况,先减去上之前的折扣金额再进行折扣
for (int i = 0; i < mOrderMoneyList.size(); i++) {
BillOrderMoney billOrderMoney = mOrderMoneyList.get(i);
if (billOrderMoney.getType() == discountType) {
//不能减掉自身再折
break;
}
if (billOrderMoney.getType() == BillOrderMoney.ORDER_DISCOUNT_TYPE || billOrderMoney.getType() == BillOrderMoney.MEMBER_DISCOUNT_TYPE || billOrderMoney.getType() == BillOrderMoney.COUPON_DISCOUNT_TYPE) {
double money = billOrderMoney.getMoney();
total = MoneyUtil.sum(total, money);
break;
}
}
}
}
if (total < 0) {
total = 0;
}
return MoneyUtil.get_ItemDecimals_money(total);
}
// public double getDiscountableFoodTotal(int discountType, boolean add) {
// double total = 0.0;
// List<OrderDetail> orderFoodList = myOrderManage.getOrderFoodList();
// int orderSize = orderFoodList.size();
// for (int i = 0; i < orderSize; i++) {
// OrderDetail food = orderFoodList.get(i);
// if (food.getNumber() == 0) {
// continue;
// }
// if (food.getItemType() == 1) {
// if (food.getAblediscount() == 1) {
// total = MoneyUtil.sum(total, food.getPrice());
// }
// } else {
// int parentIndex = food.getParentIndex() - 1;
// if (orderSize > parentIndex && orderFoodList.get(parentIndex).getAblediscount() == 1) {
// if (food.getType() == DISCOUNT_TYPE) {
// //主食品参与折扣,折扣金额直接减掉
// total = MoneyUtil.sub(total, Math.abs(food.getPrice()));
// } else {
// //主食品可參與折扣 子食品才能參與折扣
// if (food.getAblediscount() == 1) {
// total = MoneyUtil.sum(total, food.getPrice());
// }
// }
// }
// }
// }
// if (add) {
// //添加折扣
// //折上折的情况,先减去上面的折扣金额再进行折扣
// for (int i = 0; i < mOrderMoneyList.size(); i++) {
// BillOrderMoney billOrderMoney = mOrderMoneyList.get(i);
// if (billOrderMoney.getType() == BillOrderMoney.ORDER_DISCOUNT_TYPE || billOrderMoney.getType() == BillOrderMoney.MEMBER_DISCOUNT_TYPE || billOrderMoney.getType() == BillOrderMoney.COUPON_DISCOUNT_TYPE) {
// double money = billOrderMoney.getMoney();
// total = MoneyUtil.sum(total, money);
// break;
// }
// }
// } else {
// //更新折扣
// int containAllDiscount = 0;
// for (int i = 0; i < mOrderMoneyList.size(); i++) {
// BillOrderMoney billOrderMoney = mOrderMoneyList.get(i);
// if (billOrderMoney.getType() == BillOrderMoney.ORDER_DISCOUNT_TYPE) {
// containAllDiscount++;
// continue;
// }
// if (billOrderMoney.getType() == BillOrderMoney.MEMBER_DISCOUNT_TYPE) {
// containAllDiscount++;
// continue;
// }
// if (billOrderMoney.getType() == BillOrderMoney.COUPON_DISCOUNT_TYPE) {
// containAllDiscount++;
// continue;
// }
// }
// if (containAllDiscount > 1) {
// //有账单折扣+会员折扣 会员优惠券
// //折上折的情况,先减去上之前的折扣金额再进行折扣
// for (int i = 0; i < mOrderMoneyList.size(); i++) {
// BillOrderMoney billOrderMoney = mOrderMoneyList.get(i);
// if (billOrderMoney.getType() == discountType) {
// //不能减掉自身再折
// break;
// }
// if (billOrderMoney.getType() == BillOrderMoney.ORDER_DISCOUNT_TYPE || billOrderMoney.getType() == BillOrderMoney.MEMBER_DISCOUNT_TYPE || billOrderMoney.getType() == BillOrderMoney.COUPON_DISCOUNT_TYPE) {
// double money = billOrderMoney.getMoney();
// total = MoneyUtil.sum(total, money);
// break;
// }
// }
// }
// }
// if (total < 0) {
// total = 0;
// }
// return MoneyUtil.get_ItemDecimals_money(total);
// }
public double getDiscountableFoodTotal2() {
double total = 0.0;
int orderSize = mOrderMealList.size();
for (int i = 0; i < orderSize; i++) {
MealCommodity food = (MealCommodity) mOrderMealList.get(i);
OrderDetail food = mOrderMealList.get(i);
if (food.getNumber() == 0) {
continue;
}
......@@ -1027,7 +1103,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
}
} else {
int parentIndex = food.getParentIndex() - 1;
MealCommodity parentFood = (MealCommodity) mOrderMealList.get(parentIndex);
OrderDetail parentFood = mOrderMealList.get(parentIndex);
if (orderSize > parentIndex && parentFood.getAblediscount() == 1) {
if (food.getType() == MealCommodity.DISCOUNT_TYPE) {
//主食品参与折扣,折扣金额直接减掉
......@@ -1088,9 +1164,35 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
*
* @return
*/
// public double getTotalAmountFilterByType(int... filterTypes) {
// double foodTotal = getFoodTotal();
// for (BillOrderMoney item : mOrderMoneyList) {
// if (!filterType(item.getType(), filterTypes)) {
// if (item.getType() == BillOrderMoney.SERVERCHARGE_TYPE && mOrderMoneyAdapter.getFreeServiceStauts()) {
// //TODO 免服務費
// } else {
// foodTotal = MoneyUtil.sum(foodTotal, item.getMoney());
// if (0 > foodTotal) {
// //折扣金額不能超出總額
// foodTotal = 0;
// }
// }
// }
// }
// if (foodTotal < 0) {
// foodTotal = 0;
// }
// return MoneyUtil.get_ItemDecimals_money(foodTotal);
// }
/**
* 獲取總金額
*
* @return
*/
public double getTotalAmountFilterByType(int... filterTypes) {
double foodTotal = getFoodTotal();
for (BillOrderMoney item : mOrderMoneyList) {
for (BillItem item : mBillItemList) {
if (!filterType(item.getType(), filterTypes)) {
if (item.getType() == BillOrderMoney.SERVERCHARGE_TYPE && mOrderMoneyAdapter.getFreeServiceStauts()) {
//TODO 免服務費
......@@ -1125,7 +1227,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
*/
public double getTotalAmount() {
double foodTotal = getFoodTotal();
for (BillOrderMoney item : mOrderMoneyList) {
for (BillItem item : mBillItemList) {
if (item.getType() == BillOrderMoney.SERVERCHARGE_TYPE && mOrderMoneyAdapter.getFreeServiceStauts()) {
//TODO 免服務費
} else {
......@@ -1148,7 +1250,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
* @return
*/
protected Double getRounding() {
for (BillOrderMoney item : mOrderMoneyList) {
for (BillItem item : mBillItemList) {
if (item.getType() == BillOrderMoney.ROUNDING_TYPE) {
return item.getMoney();
}
......@@ -1260,11 +1362,11 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
int restaurantId = GsaCloudApplication.getRestaurantId();
CreateOrderRequest request = new CreateOrderRequest();
request.setTableNumber(OpenTableManage.getDefault().getTableBean().getTableNumber());
request.setTableNumber(mDoshokuOrder.getOpenTableInfo().getTableNumber());
request.setOrderDetails(orderDetailBeanToFoodRequest(newFoodList));
request.setPerson(OpenTableManage.getDefault().getPeopleNumber());
request.setTableId(OpenTableManage.getDefault().getTableBean().getId());
request.setTableName(OpenTableManage.getDefault().getTableBean().getTableName());
request.setPerson(mDoshokuOrder.getOpenTableInfo().getPerson());
request.setTableId(mDoshokuOrder.getOpenTableInfo().getId());
request.setTableName(mDoshokuOrder.getOpenTableInfo().getTableName());
request.setRounding(getRounding());
request.setRestaurantId(restaurantId);
......@@ -1286,11 +1388,11 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
AddOrderRequest request = new AddOrderRequest();
request.setOrderId(MyOrderManage.getInstance().getOrderId());
request.setTableId(OpenTableManage.getDefault().getTableBean().getId());
request.setTableId(mDoshokuOrder.getOpenTableInfo().getId());
if (MyOrderManage.getInstance().getMemberInfo() != null) {
request.setMemberId(MyOrderManage.getInstance().getMemberInfo().getId());
}
request.setTableNumber(OpenTableManage.getDefault().getTableBean().getTableNumber());
request.setTableNumber(mDoshokuOrder.getOpenTableInfo().getTableNumber());
request.setMaps(orderDetailBeanToAddFoodRequest(newFoodList));
if (myOrderManage.getDeleteOrders() != null) {
request.setDeleteOrders(myOrderManage.getDeleteOrders());
......@@ -1308,17 +1410,17 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
List<OrderDiscount.Request> discountRequests = new ArrayList<>();
for (BillOrderMoney item : mOrderMoneyList) {
for (BillItem item : mBillItemList) {
if (item.getType() == BillOrderMoney.ORDER_DISCOUNT_TYPE) {
discountRequests.add(OrderDiscount.Request.orderDiscountTransRequest(item));
discountRequests.add(OrderDiscount.Request.orderDiscountTransRequest((DiscountItem) item));
continue;
}
if (item.getType() == BillOrderMoney.MEMBER_DISCOUNT_TYPE) {
discountRequests.add(OrderDiscount.Request.memberDiscountTransRequest(item));
discountRequests.add(OrderDiscount.Request.memberDiscountTransRequest((DiscountItem) item));
continue;
}
if (item.getType() == BillOrderMoney.COUPON_DISCOUNT_TYPE) {
discountRequests.add(OrderDiscount.Request.couponDiscountTransRequest(item));
discountRequests.add(OrderDiscount.Request.couponDiscountTransRequest((DiscountItem) item));
continue;
}
}
......@@ -1638,9 +1740,10 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
* @return
*/
protected Long getCouponDiscountId() {
for (BillOrderMoney item : mOrderMoneyList) {
if (item.getType() == BillOrderMoney.COUPON_DISCOUNT_TYPE && item.getDiscount() != null) {
return item.getDiscount().getId();
for (BillItem item : mBillItemList) {
if (item.getType() == BillOrderMoney.COUPON_DISCOUNT_TYPE) {
DiscountItem discountItem = (DiscountItem) item;
return discountItem.getDiscount().getId();
}
}
return null;
......@@ -1651,8 +1754,8 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
*
* @return
*/
protected BillOrderMoney getNewDiscount() {
for (BillOrderMoney item : mOrderMoneyList) {
protected BillItem getNewDiscount() {
for (BillItem item : mBillItemList) {
if (item.getStatus() == 0 &&
(item.getType() == BillOrderMoney.ORDER_DISCOUNT_TYPE ||
item.getType() == BillOrderMoney.MEMBER_DISCOUNT_TYPE ||
......@@ -1710,21 +1813,19 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
return false;
}
public List<OrderDetail> getOrderFoodLists() {
return myOrderManage.getOrderFoodList();
return mOrderMealList;
}
protected String getTableName() {
String tablename = "";
if (OpenTableManage.getDefault().isSplite()) {
tablename = OpenTableManage.getDefault().getTableBean().getTableName() + "-" + OpenTableManage.getDefault().getSplitNo();
} else {
tablename = OpenTableManage.getDefault().getTableBean().getTableName();
}
return tablename;
}
// protected String getTableName() {
// String tablename = "";
// if (mDoshokuOrder.getOpenTableInfo().isSplite()) {
// tablename = mDoshokuOrder.getOpenTableInfo().getTableName() + "-" + mDoshokuOrder.getOpenTableInfo().getSplitNo();
// } else {
// tablename = mDoshokuOrder.getOpenTableInfo().getTableName();
// }
// return tablename;
// }
/**
* 修改訂單
......@@ -1753,10 +1854,14 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
} else {
textView.setText("人數:" + peopleNumber);
}
OpenTableManage.getDefault().setPeopleNumber(Integer.parseInt(peopleNumber));
mDoshokuOrder.getOpenTableInfo().setPerson(Integer.parseInt(peopleNumber));
}
}
});
}
public ShoppingCart getShoppingCart() {
return mShoppingCart;
}
}
......@@ -5,7 +5,7 @@ import android.app.Application;
import android.content.Context;
import android.text.TextUtils;
import android.view.View;
import com.gingersoft.gsa.cloud.base.order.bean.OrderDetail;
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.LanguageUtils;
import com.gingersoft.gsa.cloud.base.utils.VibratorUtils;
......
......@@ -4,23 +4,27 @@ import android.app.Application;
import android.text.TextUtils;
import android.util.SparseArray;
import android.view.View;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.aspectj.XClickUtil;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
import com.gingersoft.gsa.cloud.base.order.bean.BillOrderMoney;
import com.gingersoft.gsa.cloud.base.order.bean.DeleteOrderRequest;
import com.gingersoft.gsa.cloud.base.order.bean.OrderDetail;
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.bean.mealManger.OpenTableManage;
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;
import com.gingersoft.gsa.cloud.base.order.discount.NomalDiscount;
import com.gingersoft.gsa.cloud.base.order.order.BaseOrder;
import com.gingersoft.gsa.cloud.base.utils.JsonUtils;
import com.gingersoft.gsa.cloud.base.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.base.utils.RestaurantExpandInfoUtils;
import com.gingersoft.gsa.cloud.base.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.database.utils.FunctionDaoUtils;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.mvp.contract.MealStandContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.FoodReason;
......@@ -52,7 +56,6 @@ import com.jess.arms.di.scope.ActivityScope;
import com.jess.arms.http.imageloader.ImageLoader;
import com.jess.arms.integration.AppManager;
import com.jess.arms.utils.RxLifecycleUtils;
import com.qmuiteam.qmui.util.QMUIDeviceHelper;
import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
......@@ -70,9 +73,7 @@ import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.annotations.NonNull;
import io.reactivex.disposables.Disposable;
import io.reactivex.functions.Consumer;
import io.reactivex.schedulers.Schedulers;
import lombok.Data;
import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber;
import okhttp3.FormBody;
......@@ -145,6 +146,9 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
public MealStandPresenter(MealStandContract.Model model, MealStandContract.View rootView) {
super(model, rootView);
this.IActivity = (MealStandActivity) rootView;
// initBillItem();
// updateBillInfo();
}
@Override
......@@ -156,13 +160,117 @@ 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();
}
public void initMealData() {
List<Food> foodGroupList = mModel.queryDB_FoodGroupList(orderType);
List<Food> foodGroupList = mModel.queryDB_FoodGroupList(BaseOrder.orderType);
if (foodGroupList != null && foodGroupList.size() > 0) {
......@@ -305,7 +413,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
//沽清子食品沽清數
updateComboItemSoldoutCtrData();
//更新賬單金額
updateBillOrderItem();
updateBillInfo();
//更新賬單數
updateOrderFoodNumber();
}
......@@ -363,7 +471,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
}
addDiscountItem(datasBean);
//更新賬單金額
updateBillOrderItem();
updateBillInfo();
}
});
}
......@@ -425,7 +533,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
@Subscriber(tag = MealConstant.ADD_FOOD_MODIFIER)
private void addModifierItem(Modifier datasBean) {
int addPosition = mOrderFoodList.size();
int addPosition = mOrderMealList.size();
if (mSelectMealAdapter.getSelectedMode() == SelectMealAdapter.MULTIPLE_SELECTED) {
addPosition = addMultipleModifierItems(datasBean, addPosition);
} else {
......@@ -435,7 +543,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
}
//更新賬單金額
updateBillOrderItem();
updateBillInfo();
IActivity.setFineItemSlodoutListFull(mSoldoutCtrList);
......@@ -467,7 +575,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
List<ComboItem> comboItemList = new ArrayList<>();
if (itemType == 1) {
//获取套餐细项数据
List<ComboItem> comboItems = mModel.queryDB_ComboList(fid,orderType);
List<ComboItem> comboItems = mModel.queryDB_ComboList(fid, BaseOrder.orderType);
comboItemList.addAll(comboItems);
}
List<Modifier> modifierList = mModel.queryDB_ModifierList(fid, ModifierDaoUtils.modifierMode_All);
......@@ -536,7 +644,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
//更新沽清食品數量
updateFoodSoldoutCtrData();
//更新賬單金額
updateBillOrderItem();
updateBillInfo();
}
updateOrderFoodNumber();
}
......@@ -552,14 +660,14 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
OrderDetail mainOrderDetail1 = mSelectMealAdapter.getCurrentMainOrderDetail();
if (mainOrderDetail1 != null) {
if (mainOrderDetail1.getItemType() == 1) {
for (int i = 0; i < mOrderFoodList.size(); i++) {
OrderDetail orderDetail = mOrderFoodList.get(i);
for (int i = 0; i < mOrderMealList.size(); i++) {
OrderDetail orderDetail = mOrderMealList.get(i);
if (orderDetail.getParentIndex() == mainOrderDetail1.getMyIndex() && orderDetail.getType() == OrderDetail.DISCOUNT_TYPE) {
if (!orderDetail.isNew()) {
//已送单折扣不可替换
return -100;
}
if (mOrderFoodList.get(mSelectMealAdapter.getSelect_position()).getType() == OrderDetail.DISCOUNT_TYPE) {
if (mOrderMealList.get(mSelectMealAdapter.getSelect_position()).getType() == OrderDetail.DISCOUNT_TYPE) {
//选中折扣 替换原有折扣防止将折扣添加到下面一个食品
mSelectMealAdapter.setSelect_position(mSelectMealAdapter.getSelect_position() - 1);
}
......@@ -608,9 +716,9 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
if (currentMainOrderDetail != null) {
int start_position = mSelectMealAdapter.getSelect_full_start_position();
int end_position = mSelectMealAdapter.getSelect_full_end_position();
for (int i = mOrderFoodList.size() - 1; i >= 0; i--) {
for (int i = mOrderMealList.size() - 1; i >= 0; i--) {
if (start_position <= i && i <= end_position) {
OrderDetail item = mOrderFoodList.get(i);
OrderDetail item = mOrderMealList.get(i);
if (item.getItemType() == 1) {
mainOrderNumber = item.getNumber();
}
......@@ -652,7 +760,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
int maxQty = modifier.getSelectQty() * mainOrderNumber;
if (numberAndCutPositionStr.length > 1 && !TextUtils.isEmpty(numberAndCutPositionStr[1])) {
int cutPosition = Integer.parseInt(numberAndCutPositionStr[1]);
if (maxQty <= number && cutPosition < mOrderFoodList.size()) {
if (maxQty <= number && cutPosition < mOrderMealList.size()) {
return cutPosition;
}
} else {
......@@ -672,9 +780,9 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
if (currentMainOrderDetail != null) {
int start_position = mSelectMealAdapter.getSelect_full_start_position();
int end_position = mSelectMealAdapter.getSelect_full_end_position();
for (int i = mOrderFoodList.size() - 1; i >= 0; i--) {
for (int i = mOrderMealList.size() - 1; i >= 0; i--) {
if (start_position <= i && i <= end_position) {
OrderDetail item = mOrderFoodList.get(i);
OrderDetail item = mOrderMealList.get(i);
if (item.getItemType() == 1) {
mainOrderNumber = item.getNumber();
}
......@@ -716,7 +824,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
int maxQty = comboItem.getSelectQty() * mainOrderNumber;
if (numberAndCutPositionStr.length > 1 && !TextUtils.isEmpty(numberAndCutPositionStr[1])) {
int cutPosition = Integer.parseInt(numberAndCutPositionStr[1]);
if (maxQty <= number && cutPosition < mOrderFoodList.size()) {
if (maxQty <= number && cutPosition < mOrderMealList.size()) {
return cutPosition;
}
} else {
......@@ -869,7 +977,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
if (RestaurantExpandInfoUtils.getValue(ExpandConstant.AutoPrinterPaper, true)) {
if (RestaurantExpandInfoUtils.getValue(ExpandConstant.MergeSendFood, true)) {
//合并主食品
mergeMainFoodNumber(mOrderFoodList);
mergeMainFoodNumber(mOrderMealList);
}
CC.obtainBuilder("Component.Print")
.setActionName("printActivity")
......@@ -929,14 +1037,14 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
mRootView.showBtnMealModifyRestoreVisibility(true);
//更新賬單金額
updateBillOrderItem();
updateBillInfo();
}
/**
* 恢復標記刪除的食品
*/
public void restoreDeleteFood() {
for (OrderDetail item : mOrderFoodList) {
for (OrderDetail item : mOrderMealList) {
if (!item.isModify()) {
continue;
}
......@@ -953,7 +1061,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
myOrderManage.setDeleteOrders(null);
mSelectMealAdapter.notifyDataSetChanged();
//更新賬單金額
updateBillOrderItem();
updateBillInfo();
}
public void queryMember(int type, String parm, String shopName, int tableId, String tableNumber) {
......@@ -1135,7 +1243,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
updateComboItemSoldoutCtrData();
updateModifierSoldoutCtrData();
//更新賬單金額
updateBillOrderItem();
updateBillInfo();
updateOrderFoodNumber();
}
......@@ -1170,7 +1278,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
}
public void changedMealByParentId(long parentId) {
List<Food> foodList = mModel.queryDB_FoodList(parentId,orderType);
List<Food> foodList = mModel.queryDB_FoodList(parentId, BaseOrder.orderType);
mFoodAdapter.resetSelect(-1, null);
if (foodList != null) {
updateFoodData(foodList, parentId);
......@@ -1633,8 +1741,8 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
Food foodBean = mFoodList.get(i);
foodBean.setNumber(0);
int iNumber = 0;
for (int j = 0; j < mOrderFoodList.size(); j++) {
OrderDetail datasBean = mOrderFoodList.get(j);
for (int j = 0; j < mOrderMealList.size(); j++) {
OrderDetail datasBean = mOrderMealList.get(j);
if (datasBean.isNew() && datasBean.getProductId() == foodBean.getId()) {
iNumber = iNumber + datasBean.getNumber();
foodBean.setNumber(iNumber);
......@@ -1866,7 +1974,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
* 全選
*/
public void setSelectAll() {
for (OrderDetail item : mOrderFoodList) {
for (OrderDetail item : mOrderMealList) {
item.setSelected(1);
}
mSelectMealAdapter.notifyDataSetChanged();
......@@ -1876,7 +1984,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
* 反選
*/
public void setAntiSelect() {
for (OrderDetail item : mOrderFoodList) {
for (OrderDetail item : mOrderMealList) {
if (item.getSelected() == 0) {
item.setSelected(1);
} else {
......@@ -1891,16 +1999,16 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
*/
public int addMultipleModifierItems(Modifier modifierItem, int addPosition) {
int overIndex = 0;
for (int i = 0; i < mOrderFoodList.size(); i++) {
for (int i = 0; i < mOrderMealList.size(); i++) {
if (overIndex > i)
continue;
OrderDetail item = mOrderFoodList.get(i);
OrderDetail item = mOrderMealList.get(i);
if (item.getSelected() != 0) {
if (item.getItemType() == 1) {
int j = i;
int insertPosition = getEndInsertPosition(mOrderFoodList, item, i);
int insertPosition = getEndInsertPosition(mOrderMealList, item, i);
if (insertPosition != -1) {
if (insertPosition < mOrderFoodList.size()) {
if (insertPosition < mOrderMealList.size()) {
j = insertPosition + 1;
} else {
j = insertPosition;
......@@ -1909,8 +2017,8 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
overIndex = j;
long id = item.isNew() ? item.getProductId() : item.getId();
OrderDetail modifierTransOrderDetail = OrderDetail.modifierTransOrderDetail(modifierItem, id, item.getProductId(), 1);
mOrderFoodList.add(j, modifierTransOrderDetail);
setIndex(mOrderFoodList);
mOrderMealList.add(j, modifierTransOrderDetail);
setIndex(mOrderMealList);
}
}
}
......@@ -2005,15 +2113,15 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
/**
* 刪除會員折扣,會員優惠券
*/
public void removeMemberDiscountItem() {
for (int i = mOrderMoneyList.size() - 1; i >= 0; i--) {
BillOrderMoney orderMoney = mOrderMoneyList.get(i);
if (orderMoney.getType() == BillOrderMoney.MEMBER_DISCOUNT_TYPE || orderMoney.getType() == BillOrderMoney.COUPON_DISCOUNT_TYPE) {
mOrderMoneyList.remove(i);
mOrderMoneyAdapter.notifyItemChanged(i);
}
}
}
// public void removeMemberDiscountItem() {
// for (int i = mBillItemList.size() - 1; i >= 0; i--) {
// BillItem billItem = mBillItemList.get(i);
// if (billItem.getType() == BillItem.MEMBER_DISCOUNT_TYPE || billItem.getType() == BillItem.COUPON_DISCOUNT_TYPE) {
// mBillItemList.remove(i);
// mOrderMoneyAdapter.notifyItemChanged(i);
// }
// }
// }
/**
* 加載折扣數據
......@@ -2047,9 +2155,9 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
double discount = 0.0;
int start_position = mSelectMealAdapter.getSelect_full_start_position();
int end_position = mSelectMealAdapter.getSelect_full_end_position();
for (int i = 0; i < mOrderFoodList.size(); i++) {
for (int i = 0; i < mOrderMealList.size(); i++) {
if (start_position <= i && i <= end_position) {
OrderDetail orderDetailsBean = mOrderFoodList.get(i);
OrderDetail orderDetailsBean = mOrderMealList.get(i);
if (orderDetailsBean.getProp() == OrderDetail.DISCOUNT_PROP) {
//折上折減去以折扣金額
discount = MoneyUtil.sub(discount, orderDetailsBean.getPrice());
......@@ -2086,8 +2194,8 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
DeleteOrderRequest request = new DeleteOrderRequest();
request.setMapsDelete(mapsDelete);
request.setOrderId(orderId);
request.setTableId(OpenTableManage.getDefault().getTableBean().getId());
request.setTableNumber(OpenTableManage.getDefault().getTableBean().getTableNumber());
request.setTableId(mTableInfo.getId());
request.setTableNumber(mTableInfo.getTableNumber());
request.setType(type);
request.setReasonId(reasonId);
return request;
......
......@@ -12,13 +12,13 @@ import com.gingersoft.gsa.cloud.aspectj.XClickUtil;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
import com.gingersoft.gsa.cloud.base.order.bean.BillOrderMoney;
import com.gingersoft.gsa.cloud.base.order.bean.OrderBean;
import com.gingersoft.gsa.cloud.base.order.bean.OrderDetail;
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.CouponDiscountResult;
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.table.bean.TableExtBean;
import com.gingersoft.gsa.cloud.base.utils.JsonUtils;
......@@ -202,7 +202,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
//有未送單食品先送單
sendOrder(true, null);
} else {
printOrder(OpenTableManage.getDefault().getTableBean().getId(), false);
printOrder(DoshokuOrder.getInstance().getOpenTableInfo().getId(), false);
}
break;
case "結賬":
......@@ -210,8 +210,8 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
// return;
// }
if (hasNesOrderFoods() || getNewDiscount() != null || myOrderManage.needUpdateMemberInfo()) {
Class[] parameterTypes = {boolean.class,Class.class};
Object[] parameters = {false,OrderPayActivity.class};
Class[] parameterTypes = {boolean.class, Class.class};
Object[] parameters = {false, OrderPayActivity.class};
CommonTipDialog.showDoubtDialog(IActivity, "賬單已變化,是否送單后去結賬", BaseOrderPresenter.class, mBaseOrderPresenter,
"sendOrder", parameterTypes, parameters);
//有未送單食品先送單
......@@ -252,14 +252,14 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
mOrderMoneyAdapter.setOnItemClickListener(new OrderMoneyAdapter.OnItemClickListener() {
@Override
public void onItemClick(BillOrderMoney datasBean, int position) {
public void onItemClick(BillItem datasBean, int position) {
}
@Override
public void onItemDeleteClick(BillOrderMoney datasBean, int position) {
public void onItemDeleteClick(BillItem datasBean, int position) {
removeOrderDetailItem(position);
updateBillOrderItem();
updateBillInfo();
//更新總金額
IActivity.initOrderDetail();
}
......@@ -288,7 +288,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
mFunctionList.add(new Function("折扣", Color.parseColor("#FFFFFF"), Color.parseColor("#008577"), 24));
mFunctionList.add(new Function("印單", Color.parseColor("#FFFFFF"), Color.parseColor("#FF8E04"), 24));
mFunctionList.add(new Function("送單信息", Color.parseColor("#FFFFFF"), Color.parseColor("#008131"), 24));
}else {
} else {
mFunctionList.add(new Function("送單", Color.parseColor("#FFFFFF"), Color.parseColor("#008131"), 24));
mFunctionList.add(new Function("印單", Color.parseColor("#FFFFFF"), Color.parseColor("#FF8E04"), 24));
mFunctionList.add(new Function("結賬", Color.parseColor("#FFFFFF"), Color.parseColor("#DC0000"), 24));
......@@ -360,7 +360,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
private void sendOrderRespose(BaseOrderRespose info, boolean isPrint, Class afterToActivity) {
if (info == null) {
if (isPrint) {
printOrder(OpenTableManage.getDefault().getTableBean().getId(), true);
printOrder(mTableInfo.getId(), true);
} else {
if (!hasNesOrderFoods()) {
//未新增食品點擊送單 後台不讓過直接提示即可,不調用打印
......@@ -372,7 +372,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
}
} else {
if (isPrint) {
printOrder(OpenTableManage.getDefault().getTableBean().getId(), true);
printOrder(mTableInfo.getId(), true);
} else {
mRootView.showMessage("送單成功");
//刷新食品列表
......@@ -394,7 +394,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
if (RestaurantExpandInfoUtils.getValue(ExpandConstant.AutoPrinterPaper, true)) {
if (RestaurantExpandInfoUtils.getValue(ExpandConstant.MergeSendFood, true)) {
//合并主食品
mergeMainFoodNumber(mOrderFoodList);
mergeMainFoodNumber(mOrderMealList);
}
CC.obtainBuilder("Component.Print")
.setActionName("printActivity")
......@@ -421,7 +421,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
public void printOrder(long tableId, boolean isSend) {
RequestBody requestBody = new FormBody.Builder()
.add("tableId", tableId + "")
.add("tableNumber", OpenTableManage.getDefault().getTableBean().getTableNumber())
.add("tableNumber",mTableInfo.getTableNumber())
.build();
mModel.printOrder(requestBody)
.subscribeOn(Schedulers.io())
......@@ -437,7 +437,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
if (info != null && info.isSuccess()) {
if (RestaurantExpandInfoUtils.getValue(ExpandConstant.MergeSendFood, true)) {
//合并主食品
mergeMainFoodNumber(mOrderFoodList);
mergeMainFoodNumber(mOrderMealList);
}
CC.obtainBuilder("Component.Print")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_SLIP)//印單
......@@ -467,7 +467,10 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
}
public void queryCoupon(Long memberId, long couponMemberId, String couponNo, int restaurantId) {
int tableId = openTableManage.getTableBean().getId();
if (mDoshokuOrder == null) {
return;
}
int tableId = mDoshokuOrder.getOpenTableInfo().getId();
mModel.queryCoupon(tableId, memberId, couponMemberId, couponNo, restaurantId)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
......@@ -488,7 +491,8 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
if (memberInfo != null) {
updateBillItem = true;
myOrderManage.setMemberInfo(memberInfo);
addMemberDiscount(memberInfo.getId(), memberInfo.getMemberDiscount(), memberInfo.getMemberName(), memberInfo.getLevelName1(), BillOrderMoney.BILL_ITEM_NO_ORDER_STATUS);
mShoppingCart.addMultyDiscount(mShoppingCart.createMemberDiscount(memberInfo));
// addMemberDiscount(memberInfo.getId(), memberInfo.getMemberDiscount(), memberInfo.getMemberName(), memberInfo.getLevelName1(), BillItem.BILL_ITEM_NO_ORDER_STATUS);
}
CouponDiscountBean couponBean = couponResult.getCouponBean();
if (couponBean != null) {
......@@ -496,10 +500,11 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
return;
}
updateBillItem = true;
addCouponDiscount(couponBean, myOrderManage.getMemberInfo().getId(), BillOrderMoney.BILL_ITEM_NO_ORDER_STATUS);
mShoppingCart.addMultyDiscount(mShoppingCart.createCouponDiscount(couponBean));
// addCouponDiscount(couponBean, myOrderManage.getMemberInfo().getId(), BillItem.BILL_ITEM_NO_ORDER_STATUS);
}
if (updateBillItem) {
updateBillOrderItem();
updateBillInfo();
//更新總金額
IActivity.initOrderDetail();
myOrderManage.setTotalAmount(getTotalAmount());
......@@ -652,9 +657,9 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
}
RequestBody requestBody = new FormBody.Builder()
.add("tableId", String.valueOf(OpenTableManage.getDefault().getTableBean().getId()))
.add("tableId", String.valueOf(mTableInfo.getId()))
.add("targetId", String.valueOf(dataBean.getId()))
.add("tableNumber", OpenTableManage.getDefault().getTableBean().getTableNumber())
.add("tableNumber",mTableInfo.getTableNumber())
.add("targetTableNumber", dataBean.getTableNumber())
.add("orderId", String.valueOf(MyOrderManage.getInstance().getOrderId()))
.add("orderDetailsIds", ids)
......@@ -682,7 +687,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
mRootView.showMessage("轉移成功");
updateOrderDetails(info);
updateBillOrderItem();
updateBillInfo();
IActivity.initOrderDetail();
IActivity.backPressed();
......@@ -782,8 +787,9 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
mDiscountDialog.setOnClickListener(new DiscountDialog.Builder.OnClickListener() {
@Override
public void onItemClick(Discount item, int position) {
addOrderDiscount(false, item, BillOrderMoney.BILL_ITEM_NO_ORDER_STATUS);
updateBillOrderItem();
// addOrderDiscount(false, item, BillItem.BILL_ITEM_NO_ORDER_STATUS);
mShoppingCart.addMultyDiscount(mShoppingCart.createNomalDiscount(item));
updateBillInfo();
}
@Override
......@@ -799,6 +805,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
mDiscountDialog.build().show();
}
/**
* 更新訂單詳情
*
......@@ -809,22 +816,22 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
if (info.getData().getOrderDetails() != null) {
OpenTableManage.getDefault().setPeopleNumber(info.getData().getPerson());
mTableInfo.setPerson(info.getData().getPerson());
//緩存訂單信息
MyOrderManage.getInstance().setOrderBean(new OrderBean(info.getData()));
//緩存食品信息
List<OrderDetail> orderDetailList = OrderAssemblyUtil.assemblyOrder(OrderDetail.orderTransOrderDetails(info.getData().getOrderDetails()));
mOrderFoodList.clear();
mOrderFoodList.addAll(orderDetailList);
mOrderMealList.clear();
mOrderMealList.addAll(orderDetailList);
mSelectMealAdapter.notifyDataSetChanged();
mSelectMealAdapter.setIndex();
}
for (BillOrderMoney billOrderMoney: mOrderMoneyList) {
for (BillItem billItem : mBillItemList) {
//將已有折扣 服務費狀態改為已送單
billOrderMoney.setStatus(BillOrderMoney.BILL_ITEM_ORDER_SENT_STATUS);
billOrderMoney.setTextColor(ArmsUtils.getColor(IActivity, R.color.theme_black));
billItem.setStatus(BillItem.BILL_ITEM_ORDER_SENT_STATUS);
billItem.setTextColor(ArmsUtils.getColor(IActivity, R.color.theme_black));
}
mOrderMoneyAdapter.notifyDataSetChanged();
}
......@@ -871,8 +878,8 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
}
public void removeOrderDetailItem(int index) {
if (index < mOrderMoneyList.size()) {
mOrderMoneyList.remove(index);
if (index < mBillItemList.size()) {
mBillItemList.remove(index);
mOrderMoneyAdapter.notifyDataSetChanged();
}
}
......
......@@ -7,10 +7,12 @@ 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.bean.OrderDetail;
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;
......@@ -285,8 +287,8 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
payRequest.setOrderId(MyOrderManage.getInstance().getOrderId());
payRequest.setOrderPayType(orderPayType);
payRequest.setLinePayType(orderPayView.getLinePayType());
payRequest.setTableId(OpenTableManage.getDefault().getTableBean().getId());
payRequest.setTableNumber(OpenTableManage.getDefault().getTableBean().getTableNumber());
payRequest.setTableId(mTableInfo.getId());
payRequest.setTableNumber(mTableInfo.getTableNumber());
if (memberInfo != null) {
payRequest.setMemberId(memberInfo.getId());
payRequest.setCouponId(getCouponDiscountId());
......@@ -372,7 +374,7 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
* @return
*/
private boolean hasDeleteFood() {
for (OrderDetail item : mOrderFoodList) {
for (OrderDetail item : mOrderMealList) {
if (item.isModify()) {
return true;
}
......@@ -384,7 +386,7 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
//更新服務費中劃線
mOrderMoneyAdapter.FreeServiceStauts(isUseFreeServicePayMethod);
//更新總金額
updateBillOrderItem();
updateBillInfo();
OrderPayView orderPayView = IActivity.getGsaPayView();
if (orderPayView != null) {
orderPayView.setTotalAmount(getTotalAmount());
......@@ -461,7 +463,7 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
*/
public double getPointsAdd() {
double pointsAdd = 0;
for (OrderDetail orderDetail : mOrderFoodList) {
for (OrderDetail orderDetail : mOrderMealList) {
if (orderDetail.getType() == OrderDetail.FOOD_TYPE) {
pointsAdd = MoneyUtil.sum(pointsAdd, MoneyUtil.multiply(orderDetail.getPointsAdd(), orderDetail.getNumber()));
}
......@@ -476,7 +478,7 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
*/
public double getPointsRedeem() {
double pointsRedeem = 0;
for (OrderDetail orderDetail : mOrderFoodList) {
for (OrderDetail orderDetail : mOrderMealList) {
if (orderDetail.getType() == OrderDetail.FOOD_TYPE) {
pointsRedeem = MoneyUtil.sum(pointsRedeem, MoneyUtil.multiply(orderDetail.getPointsRedeem(), orderDetail.getNumber()));
}
......
......@@ -10,9 +10,9 @@ 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.bean.OrderDetail;
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.table.bean.TableExtBean;
import com.gingersoft.gsa.cloud.base.utils.JsonUtils;
......@@ -69,8 +69,8 @@ import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber;
import okhttp3.FormBody;
import okhttp3.RequestBody;
import static com.gingersoft.gsa.cloud.base.order.bean.OrderDetail.FOOD_TYPE;
import static com.gingersoft.gsa.cloud.base.order.bean.OrderDetail.MODIFIER_TYPE;
import static com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail.FOOD_TYPE;
import static com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail.MODIFIER_TYPE;
/**
......@@ -325,7 +325,9 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
@Override
public void onNext(@NonNull BaseOrderRespose respose) {
if (respose.isSuccess()) {
OpenTableManage.getDefault().setPeopleNumber(0);
TableBean.DataBean tableInfo = DoshokuOrder.getInstance().getOpenTableInfo();
tableInfo.setPerson(0);
//設置當前開台數據1584427984728 1584428017196 1584428086282
// TableBean.DataBean dataBean = getTableById(tableId);
TableBean.DataBean openTableBean = tableBean;
......@@ -338,7 +340,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
//將開台時間設置為訂單創建時間
openTableBean.setCreateTime(TimeUtils.getFormatTime(respose.getData().getCreateTime(), TimeUtils.DEFAULT_DATE_FORMAT));
}
OpenTableManage.getDefault().setPeopleNumber(orderBean.getPerson());
tableInfo.setPerson(orderBean.getPerson());
List<OrderBean.OrderDetailsBean> orderDetailsBeans = respose.getData().getOrderDetails();
......@@ -352,7 +354,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
MyOrderManage.getInstance().setOrderBean(null);
MyOrderManage.getInstance().setOrderFoodList(new ArrayList<>());
}
OpenTableManage.getDefault().setTableBean(openTableBean);
DoshokuOrder.getInstance().setOpenTableInfo(openTableBean);
printParper();
} else {
......@@ -371,8 +373,8 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
.callAsyncCallbackOnMainThread((cc, result) -> {
//清空賬單數據
MyOrderManage.getInstance().clear();
//清空開檯數據
OpenTableManage.getDefault().clear();
//清空賬單數據
DoshokuOrder.getInstance().initialization();
mRootView.canceTableAction();
});
......@@ -411,8 +413,9 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
} else {
openTableBean = getTableById(tableId);
}
OpenTableManage.getDefault().setPeopleNumber(0);
OpenTableManage.getDefault().setPeopleNumber(openTableBean.getSeatCount());
DoshokuOrder doshokuOrder = DoshokuOrder.getInstance();
doshokuOrder.setOpenTableInfo(openTableBean);
OrderBean orderBean = respose.getData();
if (orderBean != null && respose.getData().getOrderDetails() != null) {
......@@ -420,35 +423,87 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
//將開台時間設置為訂單創建時間
openTableBean.setCreateTime(TimeUtils.getFormatTime(respose.getData().getCreateTime(), TimeUtils.DEFAULT_DATE_FORMAT));
}
OpenTableManage.getDefault().setPeopleNumber(orderBean.getPerson());
List<OrderBean.OrderDetailsBean> orderDetailsBeans = orderBean.getOrderDetails();
List<OrderBean.OrderDetailsBean> mealCommoditysBeans = orderBean.getOrderDetails();
setFoodPoints(orderDetailsBeans);
setFoodPoints(mealCommoditysBeans);
//設置套餐topId
setTopId(orderDetailsBeans);
//緩存訂單信息
MyOrderManage.getInstance().setOrderBean(new OrderBean(orderBean));
//緩存食品信息
List<OrderDetail> orderDetailList = OrderAssemblyUtil.assemblyOrder(OrderDetail.orderTransOrderDetails(orderDetailsBeans));
MyOrderManage.getInstance().setOrderFoodList(orderDetailList);
setTopId(mealCommoditysBeans);
if (orderBean.getMemberInfo() != null) {
//设置会员信息
MyOrderManage.getInstance().setMemberInfo(orderBean.getMemberInfo());
MyOrderManage.getInstance().setMemberUpdateStatus(true + "-" + true);
}else {
MyOrderManage.getInstance().setMemberUpdateStatus(false + "-" + false);
}
//設置用餐人數
doshokuOrder.getOpenTableInfo().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);
// }
} else {
MyOrderManage.getInstance().setOrderBean(null);
MyOrderManage.getInstance().setOrderFoodList(new ArrayList<>());
doshokuOrder.setOrderPlaced(null);
doshokuOrder.getShoppingCart().setOrderCommodityList(new ArrayList<>());
}
OpenTableManage.getDefault().setTableBean(openTableBean);
doshokuOrder.setOpenTableInfo(openTableBean);
mRootView.startMealStandActivity();
} else {
CommonTipDialog.showSurpisedDialog(IActivity, respose.getErrMsg(), null, null, null, null, null);
}
// if (respose.isSuccess()) {
// //設置當前開台數據
// TableBean.DataBean openTableBean;
// if (tableExtBean != null) {
// openTableBean = tableExtBean;
// if (mSplitTableDialog != null) {
// mSplitTableDialog.closeDialog();
// }
// } else {
// openTableBean = getTableById(tableId);
// }
// OpenTableManage.getDefault().setPeopleNumber(0);
// OpenTableManage.getDefault().setPeopleNumber(openTableBean.getSeatCount());
//
// OrderBean orderBean = respose.getData();
// if (orderBean != null && respose.getData().getOrderDetails() != null) {
// if (respose.getData().getCreateTime() != null && openTableBean != null) {
// //將開台時間設置為訂單創建時間
// openTableBean.setCreateTime(TimeUtils.getFormatTime(respose.getData().getCreateTime(), TimeUtils.DEFAULT_DATE_FORMAT));
// }
// OpenTableManage.getDefault().setPeopleNumber(orderBean.getPerson());
//
// List<OrderBean.OrderDetailsBean> orderDetailsBeans = orderBean.getOrderDetails();
//
// setFoodPoints(orderDetailsBeans);
// //設置套餐topId
// setTopId(orderDetailsBeans);
// //緩存訂單信息
// MyOrderManage.getInstance().setOrderBean(new OrderBean(orderBean));
// //緩存食品信息
// List<OrderDetail> orderDetailList = OrderAssemblyUtil.assemblyOrder(OrderDetail.orderTransOrderDetails(orderDetailsBeans));
// MyOrderManage.getInstance().setOrderFoodList(orderDetailList);
//
// if (orderBean.getMemberInfo() != null) {
// //设置会员信息
// MyOrderManage.getInstance().setMemberInfo(orderBean.getMemberInfo());
// MyOrderManage.getInstance().setMemberUpdateStatus(true + "-" + true);
// }else {
// MyOrderManage.getInstance().setMemberUpdateStatus(false + "-" + false);
// }
// } else {
// MyOrderManage.getInstance().setOrderBean(null);
// MyOrderManage.getInstance().setOrderFoodList(new ArrayList<>());
// }
// OpenTableManage.getDefault().setTableBean(openTableBean);
// mRootView.startMealStandActivity();
// } else {
// CommonTipDialog.showSurpisedDialog(IActivity, respose.getErrMsg(), null, null, null, null, null);
// }
}
});
}
......
......@@ -5,15 +5,14 @@ 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.bean.BillOrderMoney;
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.bean.OrderDetail;
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.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.MoneyUtil;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
......@@ -135,8 +134,8 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
} else {
tableBean.setTableName(tableBean.getTableName());
}
OpenTableManage.getDefault().setTableBean(tableBean);
OpenTableManage.getDefault().setPeopleNumber(datasBean.getPerson());
tableBean.setPerson(datasBean.getPerson());
DoshokuOrder.getInstance().setOpenTableInfo(tableBean);
List<OrderBean.OrderDetailsBean> orderDetailsBeans = datasBean.getOrderDetails();
List<OrderDetail> orderDetailList = OrderAssemblyUtil.assemblyOrder(OrderDetail.orderTransOrderDetails(orderDetailsBeans));
......@@ -179,13 +178,13 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
MyOrderManage.getInstance().setWholeAmount(wholeAmount);
MyOrderManage.getInstance().setTotalAmount(orderDetailItem.getTotalAmount());
OpenTableManage.getDefault().setPeopleNumber(orderDetailItem.getPerson());
TableBean.DataBean dataBean = new TableBean.DataBean();
dataBean.setTableName(orderDetailItem.getTableName());
if(!TextUtils.isEmpty(orderDetailItem.getCreateTime())) {
dataBean.setCreateTime(TimeUtils.getStringByFormat(new Date(orderDetailItem.getCreateTime()), TimeUtils.DEFAULT_DATE_FORMAT_YMDHM));
}
OpenTableManage.getDefault().setTableBean(dataBean);
dataBean.setPerson(orderDetailItem.getPerson());
DoshokuOrder.getInstance().setOpenTableInfo(dataBean);
if (orderDetailItem.getMemberInfo() != null) {
MyOrderManage.getInstance().setMemberInfo(orderDetailItem.getMemberInfo());
......@@ -205,8 +204,8 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
Log.e("error", "是否成功打印:" + result.isSuccess());
MyOrderManage.getInstance().clear();
OpenTableManage.getDefault().setPeopleNumber(0);
OpenTableManage.getDefault().setTableBean(null);
DoshokuOrder.getInstance().setOpenTableInfo(null);
});
}
......@@ -229,7 +228,7 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
}
for (SectionTextItem3 item : printOrderMoneyList) {
BillOrderMoney billOrderMoney = new BillOrderMoney();
billOrderMoney.setTitle(item.getLeftText());
billOrderMoney.setName(item.getLeftText());
billOrderMoney.setMoney(Double.parseDouble(item.getRightText()));
printBillOrderMoneyList.add(billOrderMoney);
}
......
......@@ -3,7 +3,6 @@ package com.gingersoft.gsa.cloud.table.mvp.ui.activity;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.Bundle;
import android.os.SystemClock;
......@@ -23,16 +22,14 @@ import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.ScrollView;
import android.widget.TextView;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.aspectj.XClickUtil;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
import com.gingersoft.gsa.cloud.base.order.bean.BillOrderMoney;
import com.gingersoft.gsa.cloud.base.order.bean.OrderBean;
import com.gingersoft.gsa.cloud.base.order.bean.OrderDetail;
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.VibratorUtils;
import com.gingersoft.gsa.cloud.base.utils.other.SPUtils;
......@@ -70,7 +67,6 @@ import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils;
import com.qmuiteam.qmui.alpha.QMUIAlphaTextView;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.util.QMUIDrawableHelper;
import org.simple.eventbus.EventBus;
......@@ -334,12 +330,11 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
TableBean.DataBean tableBean = new TableBean.DataBean();
tableBean.setPerson(1);
tableBean.setTableName("外賣");
OpenTableManage.getDefault().setPeopleNumber(1);
OpenTableManage.getDefault().setTableBean(tableBean);
DoshokuOrder.getInstance().getOpenTableInfo().setPerson(1);
DoshokuOrder.getInstance().setOpenTableInfo(tableBean);
btn_send_order.setText("送單信息");
} else {
if (OpenTableManage.getDefault().getPeopleNumber() == 0) {
if (DoshokuOrder.getInstance().getOpenTableInfo().getPerson() == 0) {
showChoosePeopleNumDialog(false);
}
}
......@@ -359,14 +354,14 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
}
private void initOrderDetail() {
TableBean.DataBean dataBean = OpenTableManage.getDefault().getTableBean();
TableBean.DataBean dataBean = DoshokuOrder.getInstance().getOpenTableInfo();
if (dataBean != null) {
if (TextUtils.isEmpty(dataBean.getTableNumber())) {
btn_table.setText(dataBean.getTableName());
} else {
btn_table.setText(dataBean.getTableName());
}
btn_numberman.setText("人數:" + OpenTableManage.getDefault().getPeopleNumber() + "");
btn_numberman.setText("人數:" + dataBean.getPerson() + "");
}
}
......@@ -379,6 +374,9 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
if (foodGroupList.size() <= foodGroupColumn) {
Rows = 1;
}
if (Rows == 0) {
Rows = 2;
}
mLayoutManager = new PagerGridLayoutManager(Rows, foodGroupColumn, PagerGridLayoutManager.HORIZONTAL);
// 水平分页布局管理器
......@@ -601,7 +599,8 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
@Override
public void onInputPhone(UseMemberDialog dialog, String phone) {
mPresenter.queryMember(2, phone, GsaCloudApplication.getGsPosShopId(), OpenTableManage.getDefault().getTableBean().getId(), OpenTableManage.getDefault().getTableBean().getTableNumber());
TableBean.DataBean dataBean = DoshokuOrder.getInstance().getOpenTableInfo();
mPresenter.queryMember(2, phone, GsaCloudApplication.getGsPosShopId(), dataBean.getId(), dataBean.getTableNumber());
}
@Override
......@@ -615,7 +614,8 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
dialog.dismiss();
MyOrderManage.getInstance().setMemberInfo(mMemberInfo);
//添加会员折扣行
mPresenter.addMemberDiscount(mMemberInfo.getId(), mMemberInfo.getMemberDiscount(), mMemberInfo.getMemberName(), mMemberInfo.getLevelName1(), BillOrderMoney.BILL_ITEM_NO_ORDER_STATUS);
mPresenter.getShoppingCart().addMultyDiscount(mPresenter.getShoppingCart().createMemberDiscount(mMemberInfo));
// mPresenter.getShoppingCart().addMultyDiscount(mMemberInfo.getId(), mMemberInfo.getMemberDiscount(), mMemberInfo.getMemberName(), mMemberInfo.getLevelName1(), BillOrderMoney.BILL_ITEM_NO_ORDER_STATUS);
useMember();
if (MyOrderManage.getInstance().needUpdateMemberInfo()) {
......@@ -635,8 +635,8 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
btn_table.setBackgroundColor(Color.parseColor("#336699"));
MyOrderManage.getInstance().setMemberInfo(null);
//刪除會員折扣行
mPresenter.removeMemberDiscountItem();
mPresenter.updateBillOrderItem();
// mPresenter.removeMemberDiscountItem();
mPresenter.updateBillInfo();
if (MyOrderManage.getInstance().needUpdateMemberInfo()) {
return;
......@@ -824,9 +824,10 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
public void returnBeforeActivity(boolean initTable) {
SPUtils.put(this, MealConstant.EXIT_IS_PLU_MODE, isPluMode);
if (initTable && OpenTableManage.getDefault().getTableBean() != null && !MyOrderManage.getInstance().isModifyOrder()) {
TableBean.DataBean dataBean = DoshokuOrder.getInstance().getOpenTableInfo();
if (initTable && dataBean != null && !MyOrderManage.getInstance().isModifyOrder()) {
//通知更新餐台状态
EventBus.getDefault().post(new InitTableEvent(OpenTableManage.getDefault().getTableBean().getId(), OpenTableManage.getDefault().getTableBean().getTableNumber()), "initTable_status_event");
EventBus.getDefault().post(new InitTableEvent(dataBean.getId(), dataBean.getTableNumber()), "initTable_status_event");
}
killMyself();
}
......@@ -899,9 +900,10 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
@Override
public void onComfirmClick(String number) {
recordOperat(true);
TableBean.DataBean dataBean = DoshokuOrder.getInstance().getOpenTableInfo();
int maxSeatCount = 0;
if (OpenTableManage.getDefault().getTableBean() != null) {
maxSeatCount = OpenTableManage.getDefault().getTableBean().getMaxSeatCount();
if (dataBean != null) {
maxSeatCount = dataBean.getMaxSeatCount();
}
if (maxSeatCount != 0 && maxSeatCount < Integer.parseInt(number)) {
showMessage("最大就餐人數不能超過" + maxSeatCount + "人!");
......@@ -1302,7 +1304,8 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
if (TextUtils.isEmpty(qrCodeResult)) {
return;
}
mPresenter.queryMember(1, qrCodeResult, GsaCloudApplication.getGsPosShopId(), OpenTableManage.getDefault().getTableBean().getId(), OpenTableManage.getDefault().getTableBean().getTableNumber());
TableBean.DataBean dataBean = DoshokuOrder.getInstance().getOpenTableInfo();
mPresenter.queryMember(1, qrCodeResult, GsaCloudApplication.getGsPosShopId(),dataBean.getId(),dataBean.getTableNumber());
}
}
......
......@@ -26,7 +26,7 @@ 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.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.VibratorUtils;
import com.gingersoft.gsa.cloud.base.utils.encryption.DESUtil;
......@@ -208,19 +208,21 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
private void initTopInfo() {
TableBean.DataBean tableInfo = DoshokuOrder.getInstance().getOpenTableInfo();
Date dd = MyOrderManage.getInstance().getOpenTableTime();
String openTime = String.format("%tH:%tM", dd, dd);
String tableno = "";
if (!OpenTableManage.getDefault().isSplite() && OpenTableManage.getDefault().getTableBean() != null) {
tableno = OpenTableManage.getDefault().getTableBean().getTableName();
if (tableInfo.getSplitStatus() != 0 ) {
tableno = tableInfo.getTableName();
} else {
//TODO 暫未分檯功能
// tableno = GSAApplication.tableContract.getTableno().trim() + "-" + GSAApplication.tableContract.getTableno_split().trim();
}
btn_table.setText(tableno);
tv_time.setText("時間:" + openTime);
btn_people_num.setText(OpenTableManage.getDefault().getPeopleNumber() + "");
btn_people_num.setText(tableInfo.getPerson() + "");
tv_server_main.setText(GsaCloudApplication.getMemberName());
}
......@@ -475,9 +477,10 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
}
public void returnTableActivity(boolean initTable) {
if (initTable && OpenTableManage.getDefault().getTableBean() != null && !MyOrderManage.getInstance().isModifyOrder()) {
TableBean.DataBean tableInfo = DoshokuOrder.getInstance().getOpenTableInfo();
if (initTable && tableInfo != null && !MyOrderManage.getInstance().isModifyOrder()) {
//通知更新餐台状态
EventBus.getDefault().post(new InitTableEvent(OpenTableManage.getDefault().getTableBean().getId(), OpenTableManage.getDefault().getTableBean().getTableNumber()), "initTable_status_event");
EventBus.getDefault().post(new InitTableEvent(tableInfo.getId(),tableInfo.getTableNumber()), "initTable_status_event");
}
mAppManager.killActivity(MealStandActivity.class);
killMyself();
......@@ -540,10 +543,11 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
@Override
public void printSuccess() {
TableBean.DataBean tableInfo = DoshokuOrder.getInstance().getOpenTableInfo();
// 设置返回码和返回携带的数据
if (OpenTableManage.getDefault() != null) {
if (tableInfo != null) {
//通知更新餐台状态
EventBus.getDefault().post(new InitTableEvent(OpenTableManage.getDefault().getTableBean().getId(), OpenTableManage.getDefault().getTableBean().getTableNumber()), "initTable_status_event");
EventBus.getDefault().post(new InitTableEvent(tableInfo.getId(),tableInfo.getTableNumber()), "initTable_status_event");
}
setResult(Activity.RESULT_OK, null);
killMyself();
......@@ -551,9 +555,10 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
@Override
public void sendSuccess() {
if (OpenTableManage.getDefault() != null) {
TableBean.DataBean tableInfo = DoshokuOrder.getInstance().getOpenTableInfo();
if (tableInfo != null) {
//通知更新餐台状态
EventBus.getDefault().post(new InitTableEvent(OpenTableManage.getDefault().getTableBean().getId(), OpenTableManage.getDefault().getTableBean().getTableNumber()), "initTable_status_event");
EventBus.getDefault().post(new InitTableEvent(tableInfo.getId(),tableInfo.getTableNumber()), "initTable_status_event");
}
setResult(Activity.RESULT_OK, null);
killMyself();
......
......@@ -9,14 +9,14 @@ import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.TextView;
import com.billy.cc.core.component.CC;
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.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.BigDecimalUtils;
import com.gingersoft.gsa.cloud.base.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.base.utils.VibratorUtils;
......@@ -198,20 +198,20 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
private void initTopInfo() {
TableBean.DataBean tableInfo = DoshokuOrder.getInstance().getOpenTableInfo();
Date dd = MyOrderManage.getInstance().getOpenTableTime();
String openTime = String.format("%tH:%tM", dd, dd);
String tableno = "";
if (!OpenTableManage.getDefault().isSplite()) {
if (OpenTableManage.getDefault().getTableBean() != null) {
tableno = OpenTableManage.getDefault().getTableBean().getTableName();
}
if (tableInfo.getSplitStatus() == 0) {
tableno =tableInfo.getTableName();
} else {
tableno = OpenTableManage.getDefault().getTableBean().getTableName().trim() + "-" + OpenTableManage.getDefault().getSplitNo().trim();
tableno = tableInfo.getTableName().trim() ;
}
btn_table.setText(tableno);
tv_time.setText("時間:" + openTime);
btn_people_num.setText(OpenTableManage.getDefault().getPeopleNumber() + "");
btn_people_num.setText(tableInfo.getPerson() + "");
tv_server_main.setText(GsaCloudApplication.getMemberName());
tv_action_name.setBackgroundColor(Color.parseColor("#C50000"));
......@@ -414,8 +414,9 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
}
});
}
if (btnCancelInfo.length() == 0)
if (btnCancelInfo.length() == 0) {
btnCancelInfo = " cancel ";
}
dialogBuilder.addAction(btnCancelInfo, new QMUIDialogAction.ActionListener() {
@Override
......@@ -449,9 +450,10 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
@Override
public void recordOperat(boolean isPressButtonSound) {
if (isPressButtonSound)
if (isPressButtonSound) {
VibratorUtils.pressButtonSound(this);
}
}
@Override
public void setFoodAdapter(DefaultAdapter adapter) {
......@@ -462,9 +464,11 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
public void paySuccess() {
//修改結賬方式數據
setBillMoney();
if (!MyOrderManage.getInstance().isModifyOrder() && OpenTableManage.getDefault() != null && OpenTableManage.getDefault().getTableBean() != null) {
TableBean.DataBean tableInfo = DoshokuOrder.getInstance().getOpenTableInfo();
if (!MyOrderManage.getInstance().isModifyOrder()) {
//通知更新餐台状态
EventBus.getDefault().post(new InitTableEvent(OpenTableManage.getDefault().getTableBean().getId(), OpenTableManage.getDefault().getTableBean().getTableNumber()), "initTable_status_event");
EventBus.getDefault().post(new InitTableEvent(tableInfo.getId(),tableInfo.getTableNumber()), "initTable_status_event");
}
showMessage("支付成功");
......@@ -502,7 +506,8 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
//清空賬單數據
MyOrderManage.getInstance().clear();
//清空開檯數據
OpenTableManage.getDefault().clear();
DoshokuOrder.getInstance().initialization();
setResult(Activity.RESULT_OK, null);
killMyself();
});
......
......@@ -233,11 +233,13 @@ public class SoldoutCtrlActivity extends BaseFragmentActivity<SoldoutCtrlPresent
//总的页数向上取整
totalPage = (int) Math.ceil(foodGroupList.size() * 1.0 / GoldConstants.foodGriupPageSize);
int Rows = foodGroupRow;
if (foodGroupList.size() <= foodGroupColumn) {
Rows = 1;
}
if (Rows == 0) {
Rows = 2;
}
mLayoutManager = new PagerGridLayoutManager(Rows, foodGroupColumn, PagerGridLayoutManager.HORIZONTAL);
// 水平分页布局管理器
......
......@@ -11,8 +11,10 @@ import android.widget.LinearLayout;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.base.order.order.BaseOrder;
import com.gingersoft.gsa.cloud.base.table.bean.TableBean;
import com.gingersoft.gsa.cloud.base.utils.log.LogUtil;
import com.gingersoft.gsa.cloud.constans.FoodSummaryConstans;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.table.di.component.DaggerTableComponent;
......@@ -350,6 +352,7 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
@Override
public void startMealStandActivity() {
BaseOrder.orderType = FoodSummaryConstans.RESTAURANT_MODE;
startActivity(new Intent(this, MealStandActivity.class));
}
......
......@@ -14,15 +14,14 @@ 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.bean.BillOrderMoney;
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.bean.OrderDetail;
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.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.LanguageUtils;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
......@@ -32,6 +31,7 @@ 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;
......@@ -465,8 +465,8 @@ public class OrderDetailActivity extends BaseActivity<OrderDetailPresenter> impl
} else {
tableBean.setTableName(tableBean.getTableName());
}
OpenTableManage.getDefault().setTableBean(tableBean);
OpenTableManage.getDefault().setPeopleNumber(datasBean.getPerson());
tableBean.setPerson(datasBean.getPerson());
DoshokuOrder.getInstance().setOpenTableInfo(tableBean);
List<OrderBean.OrderDetailsBean> orderDetailsBeans = datasBean.getOrderDetails();
List<OrderDetail> orderDetailList = OrderAssemblyUtil.assemblyOrder(OrderDetail.orderTransOrderDetails(orderDetailsBeans));
......@@ -492,14 +492,15 @@ public class OrderDetailActivity extends BaseActivity<OrderDetailPresenter> impl
MyOrderManage.getInstance().setOrderId(orderDetailItem.getId());
MyOrderManage.getInstance().setWholeAmount(getTotalMoney());
MyOrderManage.getInstance().setTotalAmount(orderDetailItem.getTotalAmount());
OpenTableManage.getDefault().setPeopleNumber(orderDetailItem.getPerson());
TableBean.DataBean dataBean = new TableBean.DataBean();
dataBean.setTableName(orderDetailItem.getTableName());
if(!TextUtils.isEmpty(orderDetailItem.getCreateTime())){
dataBean.setCreateTime(TimeUtils.getStringByFormat(new Date(orderDetailItem.getCreateTime()), TimeUtils.DEFAULT_DATE_FORMAT_YMDHM));
}
OpenTableManage.getDefault().setTableBean(dataBean);
dataBean.setPerson(orderDetailItem.getPerson());
DoshokuOrder.getInstance().setOpenTableInfo(dataBean);
List<PayMethod> payMethodList = getPayMethodList(orderDetailItem.getOrderPays());
if (payMethodList != null) {
......@@ -518,10 +519,9 @@ public class OrderDetailActivity extends BaseActivity<OrderDetailPresenter> impl
.build()
.callAsyncCallbackOnMainThread((cc, result) -> {
Log.e("error", "是否成功打印:" + result.isSuccess());
MyOrderManage.getInstance().clear();
OpenTableManage.getDefault().setPeopleNumber(0);
OpenTableManage.getDefault().setTableBean(null);
DoshokuOrder.getInstance().setOpenTableInfo(null);
});
}
......@@ -531,7 +531,7 @@ public class OrderDetailActivity extends BaseActivity<OrderDetailPresenter> impl
if (mOrderCenterMoneyList != null) {
for (SectionTextItem3 item : mOrderCenterMoneyList) {
BillOrderMoney billOrderMoney = new BillOrderMoney();
billOrderMoney.setTitle(item.getLeftText());
billOrderMoney.setName(item.getLeftText());
billOrderMoney.setMoney(Double.parseDouble(item.getRightText()));
billOrderMoneyList.add(billOrderMoney);
}
......
......@@ -7,7 +7,8 @@ import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.order.bean.BillOrderMoney;
import com.gingersoft.gsa.cloud.base.order.billItem.BillOrderMoney;
import com.gingersoft.gsa.cloud.base.order.billItem.BillItem;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.OrderContentActivity;
......@@ -26,7 +27,7 @@ import butterknife.BindView;
* 描述:
*/
public class OrderMoneyAdapter extends DefaultAdapter<BillOrderMoney> {
public class OrderMoneyAdapter extends DefaultAdapter<BillItem> {
private Activity mContext;
private String cashStr;
......@@ -37,7 +38,7 @@ public class OrderMoneyAdapter extends DefaultAdapter<BillOrderMoney> {
private boolean isUseFreeServicePayMethod = false;
private int BillTotalFontSize;
public OrderMoneyAdapter(Activity context, List<BillOrderMoney> infos, String cashStr) {
public OrderMoneyAdapter(Activity context, List<BillItem> infos, String cashStr) {
super(infos);
this.mContext = context;
this.cashStr = cashStr;
......@@ -60,7 +61,7 @@ public class OrderMoneyAdapter extends DefaultAdapter<BillOrderMoney> {
}
@Override
public BaseHolder<BillOrderMoney> getHolder(View v, int viewType) {
public BaseHolder<BillItem> getHolder(View v, int viewType) {
return new OrderMoneyItemHolder(v);
}
......@@ -69,7 +70,7 @@ public class OrderMoneyAdapter extends DefaultAdapter<BillOrderMoney> {
return R.layout.table_item_order_money;
}
class OrderMoneyItemHolder extends BaseHolder<BillOrderMoney> {
class OrderMoneyItemHolder extends BaseHolder<BillItem> {
@BindView(R2.id.ll_container)
LinearLayout ll_container;
......@@ -86,9 +87,9 @@ public class OrderMoneyAdapter extends DefaultAdapter<BillOrderMoney> {
}
@Override
public void setData(BillOrderMoney datasBean, int position) {
public void setData(BillItem datasBean, int position) {
tv_title.setText(datasBean.getTitle());
tv_title.setText(datasBean.getName());
if (datasBean.getMoney() < 0) {
tv_money.setText("-" + cashStr + Math.abs(datasBean.getMoney()));
......@@ -146,8 +147,8 @@ public class OrderMoneyAdapter extends DefaultAdapter<BillOrderMoney> {
public interface OnItemClickListener {
void onItemClick(BillOrderMoney datasBean, int position);
void onItemClick(BillItem datasBean, int position);
void onItemDeleteClick(BillOrderMoney datasBean, int position);
void onItemDeleteClick(BillItem datasBean, int position);
}
}
......@@ -9,7 +9,8 @@ import android.widget.RelativeLayout;
import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.order.bean.OrderDetail;
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;
......
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