Commit 28b1c416 by 宁斌

1、新增沽清頁

parent ffb75ea0
......@@ -215,7 +215,7 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N
functions.add(new Function((long) 144, 151, 5, "打印管理", R.drawable.ic_print_management, 0));
functions.add(new Function((long) 145, 151, 5, "支付管理", R.drawable.ic_pay_management_close, 1));
functions.add(new Function((long) 146, 151, 5, "折扣管理", R.drawable.ic_discount_management_close, 1));
functions.add(new Function((long) 147, 151, 5, "沽清管理", R.drawable.ic_meals_menu_management, 1));
functions.add(new Function((long) 147, 151, 5, "沽清管理", R.drawable.ic_meals_menu_management, 0));
functions.add(new Function((long) 152, 0, 5, "員工", 0, 0));
functions.add(new Function((long) 147, 152, 5, "員工管理", R.drawable.ic_staff_management_close, 1));
......@@ -284,8 +284,8 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N
.setActionName("orderActivity")
.build()
.call();
}else if (name.equals("沽清管理")) {
CC.obtainBuilder("Component.Manager")
} else if (name.equals("沽清管理")) {
CC.obtainBuilder("Component.Table")
.setActionName("showSoldoutCtrlActivity")
.build()
.call();
......@@ -407,7 +407,7 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N
public void onClick(View v) {
if (v.getId() == R.id.layout_login_out) {
//登出
mPresenter.loginOut();
CommonTipDialog.showDoubtDialog(this, "退出登錄?", NewMainPresenter.class, mPresenter, "loginOut", null, null);
} else if (v.getId() == R.id.iv_personal_center) {
slideMenu.toggle();
} else if (v.getId() == R.id.tv_restaurant_name) {
......
ext.alwaysLib = true //虽然apply了cc-settings-2.gradle,但一直作为library编译,否则别的组件依赖此module时会报错
apply from: rootProject.file("cc-settings.gradle")
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-android'
apply from: rootProject.file('cc-settings.gradle')
apply plugin: 'com.jakewharton.butterknife'
android {
......@@ -55,5 +52,5 @@ dependencies {
testImplementation rootProject.ext.dependencies["junit"]
implementation rootProject.ext.dependencies["BaseRecyclerViewAdapter"]
implementation "androidx.core:core-ktx:+"
// implementation "androidx.core:core-ktx:+"
}
......@@ -3,11 +3,9 @@
xmlns:tools="http://schemas.android.com/tools"
package="com.gingersoft.gsa.cloud.manager">
<uses-permission android:name="android.permission.INTERNET" />
<application>
<!-- arms配置 -->
<meta-data
android:name="com.gingersoft.gsa.cloud.globalconfig.GlobalConfiguration"
android:value="ConfigModule" />
</application>
</manifest>
<uses-permission android:name="android.permission.INTERNET" />
</manifest>
\ No newline at end of file
......@@ -2,32 +2,32 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.gingersoft.gsa.cloud.manager">
<!-- <application-->
<!-- android:name="com.gingersoft.gsa.cloud.base.application.GsaCloudApplication"-->
<!-- android:allowBackup="true"-->
<!-- android:icon="@mipmap/ic_launcher"-->
<!-- android:label="@string/app_name"-->
<!-- android:networkSecurityConfig="@xml/network_android"-->
<!-- android:roundIcon="@mipmap/ic_launcher_round"-->
<!-- android:supportsRtl="true"-->
<!-- android:theme="@style/AppTheme">-->
<application
android:name="com.gingersoft.gsa.cloud.base.application.GsaCloudApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:networkSecurityConfig="@xml/network_android"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<!-- arms配置 -->
<meta-data
android:name="com.gingersoft.gsa.cloud.globalconfig.GlobalConfiguration"
android:value="ConfigModule" />
<meta-data
android:name="design_width_in_dp"
android:value="360" />
<meta-data
android:name="design_height_in_dp"
android:value="540" />
</application>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!-- <meta-data-->
<!-- android:name="com.gingersoft.gsa.cloud.globalconfig.GlobalConfiguration"-->
<!-- android:value="ConfigModule" />-->
<!-- <meta-data-->
<!-- android:name="design_width_in_dp"-->
<!-- android:value="360" />-->
<!-- <meta-data-->
<!-- android:name="design_height_in_dp"-->
<!-- android:value="540" />-->
<!-- </application>-->
<!-- <uses-permission android:name="android.permission.INTERNET" />-->
<!-- <uses-permission android:name="android.permission.WAKE_LOCK" />-->
<!-- <uses-permission android:name="android.permission.READ_PHONE_STATE" />-->
<!-- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />-->
<!-- <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />-->
<!-- <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />-->
<uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
</manifest>
package com.gingersoft.gsa.cloud.table;
package com.gingersoft.gsa.cloud.manager;
import com.billy.cc.core.component.CC;
import com.billy.cc.core.component.CCResult;
import com.billy.cc.core.component.CCUtil;
import com.billy.cc.core.component.IComponent;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.orderManager.OrderCenterActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.OrderPayActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.TableActivity;
public class ComponentTable implements IComponent {
public class ComponentManager implements IComponent {
@Override
public String getName() {
......@@ -30,11 +26,8 @@ public class ComponentTable implements IComponent {
public boolean onCall(CC cc) {
String actionName = cc.getActionName();
switch (actionName) {
case "showOrderManagerActivity":
openOrderManagerActivity(cc);
break;
case "showTagManagerActivity":
openTagManagerActivity(cc);
case "showSoldoutCtrlActivity":
openSoldoutCtrlActivity(cc);
break;
default:
//这个逻辑分支上没有调用CC.sendCCResult(...),是一种错误的示例
......@@ -45,14 +38,10 @@ public class ComponentTable implements IComponent {
return false;
}
private void openOrderManagerActivity(CC cc) {
// CCUtil.navigateTo(cc, TableActivity.class);
private void openSoldoutCtrlActivity(CC cc) {
// CCUtil.navigateTo(cc, SoldoutCtrlActivity.class);
// CC.sendCCResult(cc.getCallId(), CCResult.success());
}
private void openTagManagerActivity(CC cc) {
// CCUtil.navigateTo(cc, OrderPayActivity.class);
// CC.sendCCResult(cc.getCallId(), CCResult.success());
}
}
package com.gingersoft.gsa.cloud.manager.mvp.ui.adapter.soldout;
import android.content.Context;
import android.view.View;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.jess.arms.base.BaseHolder;
import com.jess.arms.base.DefaultAdapter;
import java.util.List;
import butterknife.BindView;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2018/6/27
* 修订历史:2018/6/27
* 描述:
*/
public class CurrentSlodoutFoodAdapter extends DefaultAdapter<Object> {
public CurrentSlodoutFoodAdapter(List<Object> infos) {
super(infos);
}
@Override
public BaseHolder<Object> getHolder(View v, int viewType) {
return null;
}
@Override
public int getLayoutId(int viewType) {
return 0;
}
//
// private Context mContext;
// private View convertView;
// //字体大小
// private int mFoodlListFontSize;
//
// private int select_position = 0;
//
// public void setSelectPosition(int select_position) {
// this.select_position = select_position;
// set_SelectPosition();
// }
//
// private void set_SelectPosition() {
//
// //查找自己的
// if (select_position == -1 || mInfos == null || mInfos.size() < 1) {
// return;
// }
//
// List<CurrentSoldoutFood.DatasBean> datasBeans = mInfos;
//
// for (int i = 0; i < datasBeans.size(); i++) {
// if (i == select_position) {
// datasBeans.get(i).setSelected(2);
// } else {
// datasBeans.get(i).setSelected(0);
// }
// }
// }
//
// public CurrentSlodoutFoodAdapter(Context context, List<CurrentSoldoutFood.DatasBean> infos, int foodlListFontSize) {
// super(infos);
// this.mContext = context;
// this.mFoodlListFontSize = foodlListFontSize;
// }
//
// @Override
// public int getItemCount() {
// return mInfos.size();
// }
//
// @Override
// public BaseHolder<CurrentSoldoutFood.DatasBean> getHolder(View v, int viewType) {
// convertView = v;
// return new DateTimeItemHolder(v);
// }
//
// @Override
// public int getLayoutId(int viewType) {
// return R.layout.item_current_soldout_food;
// }
//
// class DateTimeItemHolder extends BaseHolder<CurrentSoldoutFood.DatasBean> {
//
// @BindView(R.id.rl_select)
// RelativeLayout rl_select;
// @BindView(R.id.tv_number)
// TextView tv_number;
// @BindView(R.id.tv_name)
// TextView tv_name;
// @BindView(R.id.tv_value)
// TextView tv_value;
//
// public DateTimeItemHolder(View itemView) {
// super(itemView);
// }
//
// @Override
// public void setData(CurrentSoldoutFood.DatasBean datasBean, int position) {
//
// String name = datasBean.getName();
// if (name != null) {
// tv_name.setText(name);
// }
//
// if (datasBean.getItemdesc1() == null || datasBean.getItemdesc1().equals("0")) {
// tv_number.setText("");
// } else {
// tv_number.setText("1");
// }
//
// String qtyValue = String.valueOf(datasBean.getOR_Qty());
//
// if (datasBean.getOR_Qty() == 0) {
// qtyValue = "暫停";
// } else {
// if (datasBean.getOR_Qty() - datasBean.getUsed_Qty() == 0) {
// qtyValue = "售罄";
// }
// }
//
// tv_value.setText(qtyValue);
//
// //显示
// convertView.setBackgroundColor(mContext.getResources().getColor(R.color.black));
// rl_select.setBackgroundColor(mContext.getResources().getColor(R.color.black));
// tv_number.setTextColor(mContext.getResources().getColor(R.color.theme_white_color));
// tv_name.setTextColor(mContext.getResources().getColor(R.color.theme_white_color));
// tv_value.setTextColor(mContext.getResources().getColor(R.color.theme_white_color));
// int selected = datasBean.getSelected();
// switch (selected) {
// case 0://未选 中。黑底白字
// rl_select.setBackgroundColor(mContext.getResources().getColor(R.color.black));
// tv_number.setTextColor(mContext.getResources().getColor(R.color.theme_white_color));
// tv_name.setTextColor(mContext.getResources().getColor(R.color.theme_white_color));
// tv_value.setTextColor(mContext.getResources().getColor(R.color.theme_white_color));
// break;
// case 1://选中,第一层选中.
// rl_select.setBackgroundColor(mContext.getResources().getColor(R.color.theme_color));
// tv_number.setTextColor(mContext.getResources().getColor(R.color.theme_white_color));
// tv_name.setTextColor(mContext.getResources().getColor(R.color.theme_white_color));
// tv_value.setTextColor(mContext.getResources().getColor(R.color.theme_white_color));
// break;
// case 2://选中,作为主体被选中
// rl_select.setBackgroundColor(mContext.getResources().getColor(R.color.colorAccent));
// tv_number.setTextColor(mContext.getResources().getColor(R.color.theme_white_color));
// tv_name.setTextColor(mContext.getResources().getColor(R.color.theme_white_color));
// tv_value.setTextColor(mContext.getResources().getColor(R.color.theme_white_color));
// break;
// }
//
// //设置字体
// tv_value.setTextSize(mFoodlListFontSize);
// tv_name.setTextSize(mFoodlListFontSize);
// tv_number.setTextSize(mFoodlListFontSize);
//
// rl_select.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View v) {
// if (mOnItemClickListener != null)
// mOnItemClickListener.onItemClick(datasBean, position);
// }
// });
// }
// }
//
//
// public int getSelectPosition() {
// return this.select_position;
// }
//
// private OnItemClickListener mOnItemClickListener;
//
// public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
// mOnItemClickListener = onItemClickListener;
// }
//
// public interface OnItemClickListener {
//
// void onItemClick(CurrentSoldoutFood.DatasBean datasBean, int position);
//
// }
//
}
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="main_colorPrimary">#008577</color>
<color name="main_colorPrimaryDark">#00574B</color>
<color name="main_colorAccent">#D81B60</color>
<!-- 報表虛線顏色-->
<color name="report_dotted_line_color">#8CA0B3</color>
<color name="report_left_scale">#018EF2</color>
<!-- 報表“昨日”線條顏色-->
<color name="today_line">#FFCC8F</color>
<color name="payment_method_color1">#FF3F4E</color>
<color name="payment_method_color2">#8FC31F</color>
<color name="payment_method_color3">#F19EC2</color>
<color name="payment_method_color4">#EB6100</color>
<color name="payment_method_color5">#AA89BD</color>
<color name="payment_method_color6">#00A0E9</color>
<color name="payment_method_color7">#EFE75E</color>
<color name="payment_method_color8">#5358F1</color>
<color name="payment_method_color9">#ff2d51</color>
<color name="payment_method_color10">#426666</color>
<color name="payment_method_color11">#bce672</color>
<color name="payment_method_color12">#44cef6</color>
<color name="payment_method_color13">#ffa631</color>
<color name="payment_method_color14">#a3d900</color>
<color name="payment_method_color15">#f00056</color>
<color name="payment_method_color16">#bf242a</color>
<color name="payment_method_color17">#a1afc9</color>
<color name="payment_method_color18">#c89c23</color>
<color name="payment_method_color19">#e4c6d0</color>
<color name="payment_method_color20">#103371</color>
</resources>
<resources>
<dimen name="main_fab_margin">16dp</dimen>
<dimen name="main_recyclerview_marginLeft">@dimen/dp_15</dimen>
<dimen name="main_recyclerview_marginRight">@dimen/dp_15</dimen>
<dimen name="main_page_radius">@dimen/dp_12</dimen>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="main_home_refresh" type="id"/>
<item name="main_home_msg" type="id"/>
</resources>
\ No newline at end of file
......@@ -39,7 +39,7 @@ public class CurrentAndroidSetting {
private int LayoutQuitHeight = 40;
private int LayoutFoodTypeHeight = 100;
private int FoodBtnHeight = 120;
private int ModBtnHeight = 68;
private int ModBtnHeight = 75;
private int FoodTypeCol = 4;
private int FoodTypeRow = 1;
private int FoodCol = 4;
......
......@@ -183,6 +183,10 @@ public class OrderBean {
private long parentId;
private long orderId;
/**
* 打印設定, 用逗號分隔, *=切紙
*/
private String printSeting;
/**
* 是否参与折扣#0:不參與;1:參與;
*/
private long ablediscount;
......@@ -311,6 +315,14 @@ public class OrderBean {
this.orderId = orderId;
}
public String getPrintSeting() {
return printSeting;
}
public void setPrintSeting(String printSeting) {
this.printSeting = printSeting;
}
public long getAblediscount() {
return ablediscount;
}
......
......@@ -152,6 +152,10 @@ public class OrderDetail implements Serializable {
*/
private Date createTime = new Date();
/**
* 打印設定, 用逗號分隔, *=切紙
*/
private String printSeting;
/**
* 是否参与折扣#0:不參與;1:參與;
*/
private long ablediscount;
......@@ -168,6 +172,10 @@ public class OrderDetail implements Serializable {
*/
private Discount discount;
/**
* 折扣狀態#0:未送單;1:已送單;
*/
private int discountStatus;
/**
* 状态#0:正常;1:删除;
*/
private Byte status = STATUS_NORMAL;
......@@ -186,11 +194,54 @@ public class OrderDetail implements Serializable {
public static final byte MODIFIER_TYPE = 4;
public static final byte DISCOUNT_TYPE = 5;
private String printseting;
public OrderDetail() {
}
public OrderDetail(OrderDetail orderDetail) {
this.selected = orderDetail.selected;
this.isIsfood = orderDetail.isIsfood;
this.parentIndex = orderDetail.parentIndex;
this.myIndex = orderDetail.myIndex;
this.isNew = orderDetail.isNew;
this.visible = orderDetail.visible;
this.autoMod = orderDetail.autoMod;
this.limitQty = orderDetail.limitQty;
this.PERCENTAGE = orderDetail.PERCENTAGE;
this.comid = orderDetail.comid;
this.mid = orderDetail.mid;
this.changeBeforeQty = orderDetail.changeBeforeQty;
this.hasChild = orderDetail.hasChild;
this.bgColor = orderDetail.bgColor;
this.fontColor = orderDetail.fontColor;
this.ComboLevel = orderDetail.ComboLevel;
this.isComboAuto = orderDetail.isComboAuto;
this.prop = orderDetail.prop;
this.itemType = orderDetail.itemType;
this.id = orderDetail.id;
this.parentId = orderDetail.parentId;
this.orderId = orderDetail.orderId;
this.productName = orderDetail.productName;
this.productId = orderDetail.productId;
this.topId = orderDetail.topId;
this.price = orderDetail.price;
this.unit_price = orderDetail.unit_price;
this.lunchboxPrice = orderDetail.lunchboxPrice;
this.itemsPrice = orderDetail.itemsPrice;
this.number = orderDetail.number;
this.userCouponNo = orderDetail.userCouponNo;
this.type = orderDetail.type;
this.qmUseData = orderDetail.qmUseData;
this.remark = orderDetail.remark;
this.items = orderDetail.items;
this.createTime = orderDetail.createTime;
this.ablediscount = orderDetail.ablediscount;
this.ftName = orderDetail.ftName;
this.majorName = orderDetail.majorName;
this.discount = orderDetail.discount;
this.discountStatus = orderDetail.discountStatus;
this.status = orderDetail.status;
this.printSeting = orderDetail.printSeting;
}
public int getSelected() {
return selected;
......@@ -513,11 +564,11 @@ public class OrderDetail implements Serializable {
}
public String getPrintseting() {
return printseting == null ? "" : printseting;
return printSeting == null ? "" : printSeting;
}
public void setPrintseting(String printseting) {
this.printseting = printseting;
this.printSeting = printseting;
}
public long getTopId() {
......@@ -528,6 +579,14 @@ public class OrderDetail implements Serializable {
this.topId = topId;
}
public int getDiscountStatus() {
return discountStatus;
}
public void setDiscountStatus(int discountStatus) {
this.discountStatus = discountStatus;
}
/**
* 已送單食品轉換
*
......@@ -539,7 +598,7 @@ public class OrderDetail implements Serializable {
OrderDetail parentOrderDetail = null;
long parentId = 0;
//每個套餐食品折扣總額
double discountAmount = 0;
double discountSourcePrice = 0;
//已到結尾或者下一個食品是主食品
for (int i = 0; i < orderList.size(); i++) {
OrderBean.OrderDetailsBean orderDetailsBean = orderList.get(i);
......@@ -553,6 +612,7 @@ public class OrderDetail implements Serializable {
orderDetail.setNumber(orderDetailsBean.getNumber());
orderDetail.setPrice(orderDetailsBean.getPrice() * orderDetailsBean.getNumber());
orderDetail.setVisible(orderDetailsBean.getStatus() == 0);
orderDetail.setPrintseting(orderDetailsBean.getPrintSeting());
// orderDetail.setAutomod(foods.getAutomod());
orderDetail.setIsfood(orderDetailsBean.getType() == FOOD_TYPE);
orderDetail.setNew(false);
......@@ -562,18 +622,21 @@ public class OrderDetail implements Serializable {
if (orderDetail.getItemType() == 1) {
parentId = orderDetail.getId();
discountAmount = 0;
discountSourcePrice = 0;
}
if (orderDetailsBean.getRestaurantDiscountVO() != null) {
discountAmount = MoneyUtil.sum(discountAmount, orderDetail.getPrice());
//累加折扣總額
discountSourcePrice = MoneyUtil.sum(discountSourcePrice, orderDetail.getPrice());
//食品折扣狀態為已送單
orderDetail.setDiscountStatus(1);
//往下找
int nextIndex = i + 1;
if (orderList.size() == nextIndex || orderList.get(nextIndex).getParentId() == 0) {
//已到結尾或者下一個食品是主食品
Discount discount = getDiscountItem(orderDetailsBean.getRestaurantDiscountVO(), parentId, discountAmount);
Discount discount = getDiscountItem(orderDetailsBean.getRestaurantDiscountVO(), parentId, discountSourcePrice);
if (discount != null) {
orderDetailList.add(discountTransOrderDetail(discount,false, parentId, discountAmount));
orderDetailList.add(discountTransOrderDetail(discount, false, parentId, discountSourcePrice));
}
}
}
......@@ -648,6 +711,7 @@ public class OrderDetail implements Serializable {
orderDetail.setPrice(number * orderDetail.getUnit_price());
orderDetail.setNumber(number);
orderDetail.setOrderId(MyOrderManage.getInstance().getOrderId());
orderDetail.setPrintseting(foods.getPrintSeting());
orderDetail.setIsfood(true);
orderDetail.setNew(true);
orderDetail.setType(FOOD_TYPE);
......@@ -735,7 +799,7 @@ public class OrderDetail implements Serializable {
* @param discount
* @return
*/
public static OrderDetail discountTransOrderDetail(Discount discount, boolean isNew,long id, double sourcePrice) {
public static OrderDetail discountTransOrderDetail(Discount discount, boolean isNew, long id, double sourcePrice) {
double discountPrice = Discount.calculationDiscount(discount, sourcePrice);
......
......@@ -17,7 +17,7 @@ public class MoneyUtil {
// 總金額小數位
public static int rounding, RoundingDecimal;
// (直接截取) : 食品 細項 折扣 會員折扣 合計 服務費
public static int ItemDecimals = 1;
public static int ItemDecimals = 2;
public static double get_ItemDecimals_money(double money) {
double rMoney = money;
......
package com.gingersoft.gsa.cloud.table.mvp.model.constant;
package com.gingersoft.gsa.cloud.constans;
/**
* 作者:ELEGANT_BIN
......
......@@ -61,6 +61,8 @@ public class Discount {
private Date begin_time;
private Date end_time;
@Generated(hash = 1370540661)
public Discount(Long id, int restaurant_id, double amount, double discount_value,
int type, int status, String remark, Date begin_time, Date end_time) {
......
package com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal;
package com.gingersoft.gsa.cloud.ui.adapter.meal;
import android.content.Context;
import android.graphics.drawable.GradientDrawable;
......@@ -7,12 +7,11 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.R;
import com.gingersoft.gsa.cloud.base.R2;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2;
import com.jess.arms.base.BaseHolder;
import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.utils.ArmsUtils;
......@@ -67,7 +66,7 @@ public class ComboAdapter extends DefaultAdapter<ComboItem> {
@Override
public int getLayoutId(int viewType) {
return R.layout.ui_item_combo;
return R.layout.ui_meal_item_combo;
}
class ComboItemHolder extends BaseHolder<ComboItem> {
......
package com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal;
package com.gingersoft.gsa.cloud.ui.adapter.meal;
import android.content.Context;
import android.graphics.Color;
......@@ -8,12 +8,11 @@ import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.gingersoft.gsa.cloud.aspectj.XClickUtil;
import com.gingersoft.gsa.cloud.base.R;
import com.gingersoft.gsa.cloud.base.R2;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2;
import com.jess.arms.base.BaseHolder;
import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.utils.ArmsUtils;
......@@ -72,7 +71,7 @@ public class FoodAdapter extends DefaultAdapter<Food> {
@Override
public int getLayoutId(int viewType) {
return R.layout.ui_item_food;
return R.layout.ui_meal_item_food;
}
class FoodItemHolder extends BaseHolder<Food> {
......
package com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal;
package com.gingersoft.gsa.cloud.ui.adapter.meal;
import android.content.Context;
import android.view.Gravity;
......@@ -6,21 +6,18 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.gingersoft.gsa.cloud.aspectj.XClickUtil;
import com.gingersoft.gsa.cloud.base.R;
import com.gingersoft.gsa.cloud.base.R2;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2;
import com.jess.arms.base.BaseHolder;
import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.DeviceUtils;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import java.util.List;
import androidx.recyclerview.widget.GridLayoutManager;
import butterknife.BindView;
/**
......@@ -77,7 +74,7 @@ public class FoodGroupAdapter extends DefaultAdapter<Food> {
@Override
public int getLayoutId(int viewType) {
return R.layout.meal_item_food_group;
return R.layout.ui_meal_item_food_group;
}
class FoodlKindItemHolder extends BaseHolder<Food> {
......
package com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal;
package com.gingersoft.gsa.cloud.ui.adapter.meal;
import android.content.Context;
import android.graphics.drawable.GradientDrawable;
import android.view.Gravity;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.gingersoft.gsa.cloud.aspectj.XClickUtil;
import com.gingersoft.gsa.cloud.base.R;
import com.gingersoft.gsa.cloud.base.R2;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2;
import com.jess.arms.base.BaseHolder;
import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.utils.ArmsUtils;
......@@ -69,7 +65,7 @@ public class ModifierAdapter extends DefaultAdapter<Modifier> {
@Override
public int getLayoutId(int viewType) {
return R.layout.ui_item_combo;
return R.layout.ui_meal_item_combo;
}
class ComboItemHolder extends BaseHolder<Modifier> {
......
......@@ -32,7 +32,6 @@ public class CommonTipDialog {
*/
public static void showDoubtDialog(Activity context,String msg, Class c, Object object, String methodName, Class[] parameterTypes, Object[] parameters) {
QMUIDialog.MessageDialogBuilder dialogBuilder = new QMUIDialog.MessageDialogBuilder(context);
dialogBuilder.setTitle("溫馨提示");
dialogBuilder.setTitleIcon(R.drawable.qmui_icon_dialog_doubt);
dialogBuilder.setMessage(msg);
if(!TextUtils.isEmpty(methodName)) {
......@@ -40,6 +39,9 @@ public class CommonTipDialog {
}
dialogBuilder.addAction(0, "確認", QMUIDialogAction.ACTION_PROP_NEGATIVE, (dialog, index) -> {
dialog.dismiss();
if(TextUtils.isEmpty(methodName)){
return;
}
try {
Method method = c.getDeclaredMethod(methodName, parameterTypes);
method.setAccessible(true);
......
......@@ -10,6 +10,7 @@ include 'cc-register',
'table-mode',
'demo_interceptors',
'print-module',
'manager',
rootProject.name = 'GSA-Cloud', 'pools', 'qm-qmui', 'qm-lintrule'
......@@ -10,6 +10,7 @@
<activity android:name=".mvp.ui.activity.OrderContentActivity" />
<activity android:name=".mvp.ui.activity.orderManager.OrderCenterActivity" />
<activity android:name=".mvp.ui.activity.orderManager.OrderDetailActivity" />
<activity android:name=".mvp.ui.activity.SoldoutCtrlActivity" />
<meta-data
android:name="com.gingersoft.gsa.cloud.globalconfig.GlobalConfiguration"
android:value="ConfigModule" />
......
......@@ -13,6 +13,7 @@
android:theme="@style/AppTheme.Base">
<activity android:name=".mvp.ui.activity.orderManager.OrderDetailActivity"/>
<activity android:name=".mvp.ui.activity.orderManager.OrderCenterActivity" />
<activity android:name=".mvp.ui.activity.SoldoutCtrlActivity" />
<activity android:name=".mvp.ui.activity.TableActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
......
......@@ -4,6 +4,7 @@ import com.billy.cc.core.component.CC;
import com.billy.cc.core.component.CCResult;
import com.billy.cc.core.component.CCUtil;
import com.billy.cc.core.component.IComponent;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.SoldoutCtrlActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.orderManager.OrderCenterActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.OrderPayActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.TableActivity;
......@@ -39,6 +40,9 @@ public class ComponentTable implements IComponent {
case "showOrderCenterActivity":
openOrderCenterActivity(cc);
break;
case "showSoldoutCtrlActivity":
openSoldoutCtrlActivity(cc);
break;
case "getLifecycleFragment":
//demo for provide fragment object to other component
getLifecycleFragment(cc);
......@@ -79,6 +83,11 @@ public class ComponentTable implements IComponent {
CC.sendCCResult(cc.getCallId(), CCResult.success("userName", userName));
}
private void openSoldoutCtrlActivity(CC cc) {
CCUtil.navigateTo(cc, SoldoutCtrlActivity.class);
CC.sendCCResult(cc.getCallId(), CCResult.success());
}
private void openTableActivity(CC cc) {
CCUtil.navigateTo(cc, TableActivity.class);
CC.sendCCResult(cc.getCallId(), CCResult.success());
......
package com.gingersoft.gsa.cloud.table.di.component;
import dagger.BindsInstance;
import dagger.Component;
import com.gingersoft.gsa.cloud.table.di.module.SoldoutCtrlModule;
import com.gingersoft.gsa.cloud.table.mvp.contract.SoldoutCtrlContract;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.SoldoutCtrlActivity;
import com.jess.arms.di.component.AppComponent;
import com.jess.arms.di.scope.ActivityScope;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 04/22/2020 10:39
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
@ActivityScope
@Component(modules = SoldoutCtrlModule.class, dependencies = AppComponent.class)
public interface SoldoutCtrlComponent {
void inject(SoldoutCtrlActivity activity);
@Component.Builder
interface Builder {
@BindsInstance
SoldoutCtrlComponent.Builder view(SoldoutCtrlContract.View view);
SoldoutCtrlComponent.Builder appComponent(AppComponent appComponent);
SoldoutCtrlComponent build();
}
}
\ No newline at end of file
package com.gingersoft.gsa.cloud.table.di.module;
import com.gingersoft.gsa.cloud.table.mvp.contract.SoldoutCtrlContract;
import com.gingersoft.gsa.cloud.table.mvp.model.SoldoutCtrlModel;
import dagger.Binds;
import dagger.Module;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 04/22/2020 10:39
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
@Module
public abstract class SoldoutCtrlModule {
@Binds
abstract SoldoutCtrlContract.Model bindSoldoutCtrlModel(SoldoutCtrlModel model);
}
\ No newline at end of file
......@@ -45,7 +45,7 @@ public interface MealStandContract {
void initFineItemTabBarViewPage();
void showFinePage();
void setCurrentFinePage();
void setPluMode();
......
package com.gingersoft.gsa.cloud.table.mvp.contract;
import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.mvp.IModel;
import com.jess.arms.mvp.IView;
import java.util.List;
import androidx.recyclerview.widget.RecyclerView;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 04/22/2020 10:39
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
public interface SoldoutCtrlContract {
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface View extends IView {
void setCurrentSoldoutFoodAdapter(DefaultAdapter adapter);
void setFoodGroupAdapter(DefaultAdapter adapter);
void setFoodAdapter(DefaultAdapter adapter);
void setComboAdapter(DefaultAdapter adapter);
RecyclerView getRecycleCurrentSoldoutFood();
RecyclerView getRecycleFoodGroup();
RecyclerView getRecycleFood();
void setFoodGroupRecycleSpanCount(int size);
void setFoodRecycleSpanCount(int size);
int getSoldoutType();
boolean isInitFineItemLayout();
void initFineItemTabBarViewPage();
void showFoodLayoutVisibility();
void showFineItemLayoutVisibility();
void showViewModeVisibility(int... viewMode);
}
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends IModel {
List<Food> queryDB_FoodGroupList();
List<Food> queryDB_FoodList(long parentId);
List<ComboItem> queryDB_ComboList(long fid);
}
}
package com.gingersoft.gsa.cloud.table.mvp.model;
import android.app.Application;
import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.utils.ComboItemDaoUtils;
import com.gingersoft.gsa.cloud.database.utils.FoodDaoUtils;
import com.gingersoft.gsa.cloud.table.mvp.contract.SoldoutCtrlContract;
import com.google.gson.Gson;
import com.jess.arms.di.scope.ActivityScope;
import com.jess.arms.integration.IRepositoryManager;
import com.jess.arms.mvp.BaseModel;
import java.util.List;
import javax.inject.Inject;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 04/22/2020 10:39
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
@ActivityScope
public class SoldoutCtrlModel extends BaseModel implements SoldoutCtrlContract.Model {
@Inject
Gson mGson;
@Inject
Application mApplication;
@Inject
public SoldoutCtrlModel(IRepositoryManager repositoryManager) {
super(repositoryManager);
}
@Override
public void onDestroy() {
super.onDestroy();
this.mGson = null;
this.mApplication = null;
}
@Override
public List<Food> queryDB_FoodGroupList() {
FoodDaoUtils foodDaoUtils = new FoodDaoUtils(mApplication);
List<Food> foods = foodDaoUtils.queryFoodGroupByQueryBuilder();
return foods;
}
@Override
public List<Food> queryDB_FoodList(long parentId) {
FoodDaoUtils foodDaoUtils = new FoodDaoUtils(mApplication);
List<Food> foods = foodDaoUtils.queryFoodByQueryBuilder(parentId);
return foods;
}
@Override
public List<ComboItem> queryDB_ComboList(long fid) {
ComboItemDaoUtils comboItemDao = new ComboItemDaoUtils(mApplication);
List<ComboItem> foodCombo = comboItemDao.queryComboItemsByFidQueryBuilder(fid);
return foodCombo;
}
}
\ No newline at end of file
......@@ -177,7 +177,6 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
return discountList;
}
private void initOrderAdapter() {
if (mSelectMealAdapter == null) {
mSelectMealAdapter = new SelectMealAdapter(IActivity, mOrderFoodList, this);
......@@ -583,6 +582,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
request.setNumber(item.getNumber());
request.setPrice(item.getUnit_price());
request.setType(item.getType());
request.setPrintSeting(item.getPrintseting());
request.setAblediscount(item.getAblediscount());
request.setDiscountId(getDiscountIdByParentId(foodList, mainProductId));
request.setLunchboxPrice(0);
......@@ -666,11 +666,12 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
request.setNumber(item.getNumber());
request.setPrice(item.getUnit_price());
request.setType(item.getType());
request.setPrintSeting(item.getPrintseting());
request.setAblediscount(item.getAblediscount());
request.setDiscountId(getDiscountIdByParentId(foodList, mainParentId));
request.setLunchboxPrice(0);
if (item.isNew() || item.getAblediscount() == 1) {
//這裡只添加新食品或有折扣食品每次都更新
if (item.isNew() || item.getDiscountStatus() == 0) {
//這裡只添加新食品或有新折扣食品
orderItems.add(request);
//保存新食品,打印用到
MyOrderManage.getInstance().getNewFoodList().add(item);
......
......@@ -8,7 +8,7 @@ import android.view.View;
import com.gingersoft.gsa.cloud.base.utils.VibratorUtils;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.database.utils.ModifierDaoUtils;
import com.gingersoft.gsa.cloud.table.mvp.model.constant.MealConstant;
import com.gingersoft.gsa.cloud.constans.MealConstant;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.FineItemOneAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.FineItemTwoAdapter;
......
......@@ -8,7 +8,7 @@ import android.view.View;
import com.gingersoft.gsa.cloud.base.utils.VibratorUtils;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.database.utils.ModifierDaoUtils;
import com.gingersoft.gsa.cloud.table.mvp.model.constant.MealConstant;
import com.gingersoft.gsa.cloud.constans.MealConstant;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.FineItemOneAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.FineItemTwoAdapter;
......
......@@ -4,6 +4,7 @@ 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;
......@@ -28,16 +29,16 @@ import com.gingersoft.gsa.cloud.table.mvp.model.bean.FoodReason;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.AddOrderRequest;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.CreateOrderRequest;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.DeleteOrderRequest;
import com.gingersoft.gsa.cloud.table.mvp.model.constant.MealConstant;
import com.gingersoft.gsa.cloud.constans.MealConstant;
import com.gingersoft.gsa.cloud.table.mvp.model.utils.OrderAssemblyUtil;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.ComboAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.DiscountAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.FoodAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.FoodGroupAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.ModifierAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.SelectMealAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.widget.CancelFoodDialog;
import com.gingersoft.gsa.cloud.ui.adapter.meal.ComboAdapter;
import com.gingersoft.gsa.cloud.ui.adapter.meal.FoodAdapter;
import com.gingersoft.gsa.cloud.ui.adapter.meal.FoodGroupAdapter;
import com.gingersoft.gsa.cloud.ui.adapter.meal.ModifierAdapter;
import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.di.scope.ActivityScope;
import com.jess.arms.http.imageloader.ImageLoader;
......@@ -187,14 +188,15 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
mRootView.recordOperat(true);
RvMealClicked = true;
if (IActivity.getShowFinePage() != 2) {
//设置当前操作的食品
mCurrentOrderDetailBean = datasBean;
mSelectMealAdapter.setMyOrderManageSelectPosition();
loadComboData(datasBean, true);
if (mSelectMealAdapter.getSelectedMode() == SelectMealAdapter.MULTIPLE_SELECTED) {
return;
}
RvMealClicked = true;
//设置当前操作的食品
mCurrentOrderDetailBean = datasBean;
mSelectMealAdapter.setMyOrderManageSelectPosition();
loadComboData(datasBean, true);
}
@Override
......@@ -215,6 +217,9 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
@Override
public void onItemClick(Food datasBean, int position) {
mRootView.recordOperat(true);
if (mSelectMealAdapter.getSelectedMode() == SelectMealAdapter.MULTIPLE_SELECTED) {
return;
}
if (!foodConditionFilter(datasBean)) {
return;
}
......@@ -344,7 +349,13 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
private void addModifierItem(Modifier datasBean) {
long id = mCurrentOrderDetailBean.isNew() ? mCurrentOrderDetailBean.getProductId() : mCurrentOrderDetailBean.getId();
mCurrentOrderDetailBean = OrderDetail.modifierTransOrderDetail(datasBean, id, 1);
int addPosition = mSelectMealAdapter.addFoodItem(mCurrentOrderDetailBean);
int addPosition = mOrderFoodList.size();
if (mSelectMealAdapter.getSelectedMode() == SelectMealAdapter.MULTIPLE_SELECTED) {
addPosition = addMultipleModifierItems(mCurrentOrderDetailBean, addPosition);
} else {
addPosition = mSelectMealAdapter.addFoodItem(mCurrentOrderDetailBean);
}
mRootView.setMealRvScrollToPosition(addPosition);
}
......@@ -358,7 +369,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
id = mSelectMealAdapter.getCurrentMainOrderDetail().getId();
}
}
mCurrentOrderDetailBean = OrderDetail.discountTransOrderDetail(datasBean, true,id, getDisountPrice());
mCurrentOrderDetailBean = OrderDetail.discountTransOrderDetail(datasBean, true, id, getDisountSourcePrice());
int addPosition = mSelectMealAdapter.addFoodItem(mCurrentOrderDetailBean);
mRootView.setMealRvScrollToPosition(addPosition);
}
......@@ -804,15 +815,17 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
*/
public void deleteFoodItem(int deleteStyle) {
if (getOrderFoodLists().size() == 0 || mSelectMealAdapter.getSelect_position() >= getOrderFoodLists().size()) {
if (!mSelectMealAdapter.canDeleteFood()) {
return;
}
//未選擇食品時,設置默認選擇最後一個
if (mSelectMealAdapter.getSelect_position() == -1) {
if (getOrderFoodLists().size() > 0) {
mSelectMealAdapter.setSelectPosition(getOrderFoodLists().size() - 1);
}
}
OrderDetail deleteFood = getOrderFoodLists().get(mSelectMealAdapter.getSelect_position());
if (!deleteFood.isNew()) {
......@@ -1226,6 +1239,49 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
}
/**
* 全選
*
*/
public void setSelectAll() {
for (OrderDetail item : mOrderFoodList) {
item.setSelected(1);
}
mSelectMealAdapter.notifyDataSetChanged();
}
/**
* 反選
*/
public void setAntiSelect() {
for (OrderDetail item : mOrderFoodList) {
if (item.getSelected() == 0) {
item.setSelected(1);
}else {
item.setSelected(0);
}
}
mSelectMealAdapter.notifyDataSetChanged();
}
/**
* 添加多選細項
*/
public int addMultipleModifierItems(OrderDetail modifierItem, int addPosition) {
for (int i = 0; i < mOrderFoodList.size(); i++) {
OrderDetail item = mOrderFoodList.get(i);
if (item.getSelected() != 0) {
//往下找
int nextIndex = i + 1;
if(item.getItemType() == 1){
mOrderFoodList.add(i + 1, new OrderDetail(modifierItem));
}
}
}
mSelectMealAdapter.notifyDataSetChanged();
return addPosition;
}
/**
* 加載折扣數據
*/
public void loadDiscountData() {
......@@ -1239,10 +1295,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
mCurrentOrderDetailBean = currentOrderBean;
List<Discount> discountList = mModel.queryDB_DiscountList();
// discountList.clear();
// if (discountList.size() == 0) {
// discountList.addAll(getDiscountList());
// }
mDiscountList.clear();
mDiscountList.addAll(discountList);
//根据Item个数显示每一行的个数
......@@ -1255,7 +1308,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
*
* @return
*/
private double getDisountPrice() {
private double getDisountSourcePrice() {
double discount = 0.0;
int start_position = mSelectMealAdapter.getSelect_full_start_position();
int end_position = mSelectMealAdapter.getSelect_full_end_position();
......
......@@ -223,11 +223,18 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
@Override
public void onNext(BaseResult baseResult) {
mRootView.hideLoading();
if (baseResult.isSuccess()) {
//結賬成功
mRootView.paySuccess();
}
}
@Override
public void onError(Throwable t) {
super.onError(t);
mRootView.hideLoading();
}
});
}
......
package com.gingersoft.gsa.cloud.table.mvp.presenter;
import android.app.Application;
import com.gingersoft.gsa.cloud.constans.MealConstant;
import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.table.mvp.contract.SoldoutCtrlContract;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.SoldoutCtrlActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.CurrentSlodoutFoodAdapter;
import com.gingersoft.gsa.cloud.ui.adapter.meal.ComboAdapter;
import com.gingersoft.gsa.cloud.ui.adapter.meal.FoodAdapter;
import com.gingersoft.gsa.cloud.ui.adapter.meal.FoodGroupAdapter;
import com.jess.arms.di.scope.ActivityScope;
import com.jess.arms.http.imageloader.ImageLoader;
import com.jess.arms.integration.AppManager;
import com.jess.arms.mvp.BasePresenter;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Inject;
import me.jessyan.rxerrorhandler.core.RxErrorHandler;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 04/22/2020 10:39
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
@ActivityScope
public class SoldoutCtrlPresenter extends BasePresenter<SoldoutCtrlContract.Model, SoldoutCtrlContract.View> {
@Inject
RxErrorHandler mErrorHandler;
@Inject
Application mApplication;
@Inject
ImageLoader mImageLoader;
@Inject
AppManager mAppManager;
private SoldoutCtrlActivity IActivity;
private CurrentSlodoutFoodAdapter mCurrentSlodoutFoodAdapter;
private FoodGroupAdapter mFoodGroupAdapter;
private FoodAdapter mFoodAdapter;
private ComboAdapter mComboAdapter;
//食品数据
private List<Food> mFoodGroupList = new ArrayList<>();
private List<Food> mFoodList = new ArrayList<>();
private List<ComboItem> mFoodComboList = new ArrayList<>();
//细项数据
private List<Modifier> mModifierList = new ArrayList<>();
@Inject
public SoldoutCtrlPresenter(SoldoutCtrlContract.Model model, SoldoutCtrlContract.View rootView) {
super(model, rootView);
this.IActivity = (SoldoutCtrlActivity) rootView;
}
@Override
public void onDestroy() {
super.onDestroy();
this.mErrorHandler = null;
this.mAppManager = null;
this.mImageLoader = null;
this.mApplication = null;
}
public void initAdapter() {
// if (mCurrentSlodoutFoodAdapter == null) {
// mCurrentSlodoutFoodAdapter = new CurrentSlodoutFoodAdapter(mApplication, mCurrentSlodoutFoodList, GSAApplication.androidSetting.getFoodlListFontSize());
// mRootView.setCurrentSoldoutFoodAdapter(mCurrentSlodoutFoodAdapter);
// }
if (mFoodGroupAdapter == null) {
mFoodGroupAdapter = new FoodGroupAdapter(mApplication, mFoodGroupList);
mRootView.setFoodGroupAdapter(mFoodGroupAdapter);
}
if (mFoodAdapter == null) {
mFoodAdapter = new FoodAdapter(mApplication, mFoodList);
mRootView.setFoodAdapter(mFoodAdapter);
}
if (mComboAdapter == null) {
mComboAdapter = new ComboAdapter(IActivity, mFoodComboList);
mRootView.setComboAdapter(mComboAdapter);
}
}
public void initFoodListener() {
mFoodAdapter.setOnItemClickListener(new FoodAdapter.OnItemClickListener() {
@Override
public void onItemClick(Food datasBean, int position) {
// loadComboData(datasBean);
}
});
mComboAdapter.setOnItemClickListener(new ComboAdapter.OnItemClickListener() {
@Override
public void onItemClick(ComboItem datasBean, int position) {
}
});
}
public void initFoodData() {
List<Food> foodGroupList = mModel.queryDB_FoodGroupList();
if (foodGroupList != null && foodGroupList.size() > 0) {
mFoodGroupList.addAll(foodGroupList);
//默認選中第一組
mFoodGroupList.get(0).setSelected(true);
IActivity.initFoodGroupView(mFoodGroupList);
changedMealByParentId(mFoodGroupList.get(0).getId());
}
}
public void changedMealByParentId(long parentId) {
List<Food> foodList = mModel.queryDB_FoodList(parentId);
mFoodAdapter.resetSelect(-1, null);
if (foodList != null) {
updateFoodData(foodList);
}
}
private void loadComboData(Food food) {
long fid = food.getId();
//获取套餐细项数据
List<ComboItem> comboItems = mModel.queryDB_ComboList(fid);
//更新套餐数据
updateComboData(comboItems);
mRootView.showViewModeVisibility(MealConstant.combo_ViewMode);
}
/**
* 更新食品數據
*
* @param foodList
*/
private void updateFoodData(List<Food> foodList) {
mFoodList.clear();
mFoodList.addAll(foodList);
//根据Item个数显示每一行的个数
mRootView.setFoodRecycleSpanCount(mFoodList.size());
mFoodAdapter.notifyDataSetChanged();
}
/**
* 更新套餐數據
*
* @param foodComboList
*/
private void updateComboData(List<ComboItem> foodComboList) {
mFoodComboList.clear();
mFoodComboList.addAll(foodComboList);
mComboAdapter.notifyDataSetChanged();
}
}
......@@ -34,11 +34,9 @@ import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager.widget.ViewPager;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage;
import com.gingersoft.gsa.cloud.base.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.base.utils.VibratorUtils;
import com.gingersoft.gsa.cloud.base.utils.other.SPUtils;
import com.gingersoft.gsa.cloud.database.bean.Food;
......@@ -52,13 +50,13 @@ import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.constans.GoldConstants;
import com.gingersoft.gsa.cloud.table.di.component.DaggerMealStandComponent;
import com.gingersoft.gsa.cloud.table.mvp.contract.MealStandContract;
import com.gingersoft.gsa.cloud.table.mvp.model.constant.MealConstant;
import com.gingersoft.gsa.cloud.constans.MealConstant;
import com.gingersoft.gsa.cloud.table.mvp.presenter.MealStandPresenter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.BaseFragmentAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.FoodGroupAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.SelectMealAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.FineItemAllFragment;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.FineItemKindFragment;
import com.gingersoft.gsa.cloud.table.mvp.ui.widget.ChooseNumberDialog;
import com.gingersoft.gsa.cloud.ui.adapter.meal.FoodGroupAdapter;
import com.gingersoft.gsa.cloud.ui.recylcler.Indicator.PagerConfig;
import com.gingersoft.gsa.cloud.ui.recylcler.Indicator.PagerGridLayoutManager;
import com.gingersoft.gsa.cloud.ui.recylcler.Indicator.PagerGridSnapHelper;
......@@ -211,22 +209,26 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen
Button btn_taste;
@BindView(R2.id.btn_msg)
Button btn_msg;
// @BindView(R2.id.btn_multiple_selection)
// @BindView(R2.id.btn_multiple_selection)
// Button btn_multiple_selection;
@BindView(R2.id.btn_delete)
Button btn_delete;
@BindView(R2.id.btn_end)
Button btn_end;
private ChooseNumberDialog chooseNumberDialog;
private FragmentManager fm;
private FineItemAllFragment modMsgFineItemFragment, modSasteFineItemFragment, modCommFineItemFragment;
// private FineItemKindFragment fineItemKindFragment;
private FineItemAllFragment modMsgFineItemFragment, modSasteFineItemFragment;
//是否初始化细项布局
/**
* 是否初始化细项布局
*/
private boolean initFineItemLayout = false;
private int showFinePage = 0;
private ChooseNumberDialog chooseNumberDialog;
/**
* 公共細項頁碼:0=口味;1=特別信息
*/
private int currentFinePage = 0;
private int mCurrentViewMode;
private boolean isPluMode = false;
......@@ -377,7 +379,6 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen
for (int i = 0; i < totalPage; i++) {
//循坏加入点点图片组
ivPoints[i] = new ImageView(this);
if (i == 0) {
ivPoints[i].setImageResource(R.drawable.meal_food_group_point_focuese);
} else {
......@@ -436,7 +437,6 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen
// Fragment标签
modSasteFineItemFragment = FineItemAllFragment.newInstance();
modMsgFineItemFragment = FineItemAllFragment.newInstance();
modCommFineItemFragment = FineItemAllFragment.newInstance();
fragmentList.add(modSasteFineItemFragment);
fragmentList.add(modMsgFineItemFragment);
// fragmentList.add(modCommFineItemFragment);
......@@ -487,11 +487,7 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen
@Override
public void onPageSelected(int position) {
if (showFinePage == 2 && position != 2) {
//從多選頁離開 重置選中
mPresenter.resetSelected();
}
showFinePage = position;
currentFinePage = position;
}
@Override
......@@ -502,14 +498,14 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen
initFineItemLayout = true;
showFinePage();
setCurrentFinePage();
showViewModeVisibility(MealConstant.fine_ViewMode, MealConstant.fine_tabs_ViewMode);
}
@Override
public void showFinePage() {
pager_fine.setCurrentItem(showFinePage);
public void setCurrentFinePage() {
pager_fine.setCurrentItem(currentFinePage);
}
@Override
......@@ -545,6 +541,7 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen
return false;
}
@OnClick(R2.id.btn_meal_discount)
void onClickDiscount() {
//更新折扣数据
......@@ -553,9 +550,26 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen
showViewModeVisibility(MealConstant.discount_ViewMode);
}
@OnClick(R2.id.btn_multiple_selection)
void onClickMultipleSelection() {
currentFinePage = 0;
mPresenter.getSelectMealAdapter().setSelectedMode(SelectMealAdapter.MULTIPLE_SELECTED);
showRemarkInfo();
}
@OnClick(R2.id.btn_select_all)
void onClickSelectAll() {
mPresenter.setSelectAll();
}
@OnClick(R2.id.btn_anti_selection)
void onClickAntiSelection() {
mPresenter.setAntiSelect();
}
@OnClick({R2.id.btn_key1, R2.id.btn_key2, R2.id.btn_key3, R2.id.btn_key4, R2.id.btn_key5, R2.id.btn_keys,
R2.id.btn_numberman, R2.id.btn_fid, R2.id.btn_meal_delete, R2.id.btn_send_order, R2.id.tv_no_save_return, R2.id.fl_order_content,
R2.id.btn_taste, R2.id.btn_msg, R2.id.btn_delete, R2.id.btn_end})
R2.id.btn_taste, R2.id.btn_msg, R2.id.btn_delete, R2.id.btn_end})
public void onClick(View v) {
recordOperat(true);
......@@ -572,6 +586,8 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen
}
setPluMode();
} else if (id == R.id.btn_meal_delete) {
if(mPresenter.getSelectMealAdapter().getSelectedMode() == SelectMealAdapter.MULTIPLE_SELECTED)
return;
mPresenter.deleteFoodItem(1);
} else if (id == R.id.btn_send_order) {
mPresenter.sendOrder(false);
......@@ -581,22 +597,17 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen
} else if (id == R.id.tv_no_save_return) {
returnBeforeActivity(true);
} else if (id == R.id.btn_taste) {
showFinePage = 0;
currentFinePage = 0;
showRemarkInfo();
} else if (id == R.id.btn_msg) {
showFinePage = 1;
currentFinePage = 1;
showRemarkInfo();
}
// else if (id == R.id.btn_multiple_selection) {
// showFinePage = 2;
// showRemarkInfo();
// }
else if (id == R.id.btn_delete) {
} else if (id == R.id.btn_delete) {
mPresenter.deleteChildItem();
} else if (id == R.id.btn_end) {
showFinePage = 0;
mPresenter.getSelectMealAdapter().setSelectedMode(SelectMealAdapter.SINGLE_SELECTED);
//從多選頁離開 重置選中
// mPresenter.resetSelected();
mPresenter.resetSelected();
showViewModeVisibility(MealConstant.food_group_ViewMode, MealConstant.food_ViewMode);
} else if (id == R.id.btn_key1 || id == R.id.btn_key2 || id == R.id.btn_key3 || id == R.id.btn_key4 || id == R.id.btn_key5 || id == R.id.btn_keys) {
......@@ -904,6 +915,7 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen
case MealConstant.combo_ViewMode:
case MealConstant.modifier_ViewMode:
case MealConstant.discount_ViewMode:
case MealConstant.fine_ViewMode:
showModifyLayoutVisibility(true);
break;
}
......@@ -1029,7 +1041,7 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen
// modCommFineItemFragment.onModCommEvent(mPresenter.getCurrentOrderDetailBean().getProductId());
showFinePage();
setCurrentFinePage();
showViewModeVisibility(MealConstant.fine_ViewMode, MealConstant.fine_tabs_ViewMode);
}
......@@ -1135,8 +1147,4 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen
btn_end.setCompoundDrawables(endDrawable, null, null, null);
}
public int getShowFinePage() {
return showFinePage;
}
}
......@@ -29,14 +29,12 @@ import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage;
import com.gingersoft.gsa.cloud.base.qmui.arch.QMUIFragmentPagerAdapter;
import com.gingersoft.gsa.cloud.base.utils.VibratorUtils;
import com.gingersoft.gsa.cloud.base.utils.log.LogUtil;
import com.gingersoft.gsa.cloud.base.utils.other.SPUtils;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.table.app.OrderConentOperatTypeConstant;
import com.gingersoft.gsa.cloud.table.app.TableOperatTypeConstant;
import com.gingersoft.gsa.cloud.table.di.component.DaggerOrderContentComponent;
import com.gingersoft.gsa.cloud.table.mvp.contract.OrderContentContract;
import com.gingersoft.gsa.cloud.table.mvp.model.constant.MealConstant;
import com.gingersoft.gsa.cloud.table.mvp.presenter.OrderContentPresenter;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.AllTableFragment;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.InputTableFragment;
......@@ -49,8 +47,6 @@ import com.jess.arms.integration.AppManager;
import com.jess.arms.utils.ArmsUtils;
import com.qmuiteam.qmui.alpha.QMUIAlphaButton;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
import com.qmuiteam.qmui.widget.popup.QMUIPopup;
import com.qmuiteam.qmui.widget.popup.QMUIPopups;
import com.qmuiteam.qmui.widget.tab.QMUITab;
......
......@@ -327,6 +327,10 @@ public class OrderDetailActivity extends BaseActivity<OrderDetailPresenter> impl
orderBean.setStatus(datasBean.getStatus());
orderBean.setOrderNo(datasBean.getOrderNo());
orderBean.setPerson(datasBean.getPerson());
orderBean.setType(datasBean.getType());
orderBean.setRemark(datasBean.getRemark());
orderBean.setDiscountAmount(datasBean.getDiscountAmount());
orderBean.setDiscountValue(datasBean.getDiscountValue());
orderBean.setCreateTime(datasBean.getCreateTime());
MyOrderManage.getInstance().setOrderBean(orderBean);
......@@ -355,10 +359,12 @@ public class OrderDetailActivity extends BaseActivity<OrderDetailPresenter> impl
MyOrderManage.getInstance().setOrderFoodList(orderDetailList);
MyOrderManage.getInstance().setOrderId(orderDetailItem.getId());
OpenTableManage.getDefault().setPeopleNumber(orderDetailItem.getPerson());
TableBean.DataBean dataBean = new TableBean.DataBean();
dataBean.setTableName(orderDetailItem.getTableName());
dataBean.setCreateTime(TimeUtil.getStringByFormat(new Date(orderDetailItem.getCreateTime()), TimeUtil.dateFormatYMDHM));
OpenTableManage.getDefault().setTableBean(dataBean);
CC.obtainBuilder("Component.Print")
.setActionName("printActivity")
.addParam("type", 2)
......
package com.gingersoft.gsa.cloud.table.mvp.ui.adapter;
import android.view.View;
import com.jess.arms.base.BaseHolder;
import com.jess.arms.base.DefaultAdapter;
import java.util.List;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2018/6/27
* 修订历史:2018/6/27
* 描述:
*/
public class CurrentSlodoutFoodAdapter extends DefaultAdapter<Object> {
public CurrentSlodoutFoodAdapter(List<Object> infos) {
super(infos);
}
@Override
public BaseHolder<Object> getHolder(View v, int viewType) {
return null;
}
@Override
public int getLayoutId(int viewType) {
return 0;
}
//
// private Context mContext;
// private View convertView;
// //字体大小
// private int mFoodlListFontSize;
//
// private int select_position = 0;
//
// public void setSelectPosition(int select_position) {
// this.select_position = select_position;
// set_SelectPosition();
// }
//
// private void set_SelectPosition() {
//
// //查找自己的
// if (select_position == -1 || mInfos == null || mInfos.size() < 1) {
// return;
// }
//
// List<CurrentSoldoutFood.DatasBean> datasBeans = mInfos;
//
// for (int i = 0; i < datasBeans.size(); i++) {
// if (i == select_position) {
// datasBeans.get(i).setSelected(2);
// } else {
// datasBeans.get(i).setSelected(0);
// }
// }
// }
//
// public CurrentSlodoutFoodAdapter(Context context, List<CurrentSoldoutFood.DatasBean> infos, int foodlListFontSize) {
// super(infos);
// this.mContext = context;
// this.mFoodlListFontSize = foodlListFontSize;
// }
//
// @Override
// public int getItemCount() {
// return mInfos.size();
// }
//
// @Override
// public BaseHolder<CurrentSoldoutFood.DatasBean> getHolder(View v, int viewType) {
// convertView = v;
// return new DateTimeItemHolder(v);
// }
//
// @Override
// public int getLayoutId(int viewType) {
// return R.layout.item_current_soldout_food;
// }
//
// class DateTimeItemHolder extends BaseHolder<CurrentSoldoutFood.DatasBean> {
//
// @BindView(R.id.rl_select)
// RelativeLayout rl_select;
// @BindView(R.id.tv_number)
// TextView tv_number;
// @BindView(R.id.tv_name)
// TextView tv_name;
// @BindView(R.id.tv_value)
// TextView tv_value;
//
// public DateTimeItemHolder(View itemView) {
// super(itemView);
// }
//
// @Override
// public void setData(CurrentSoldoutFood.DatasBean datasBean, int position) {
//
// String name = datasBean.getName();
// if (name != null) {
// tv_name.setText(name);
// }
//
// if (datasBean.getItemdesc1() == null || datasBean.getItemdesc1().equals("0")) {
// tv_number.setText("");
// } else {
// tv_number.setText("1");
// }
//
// String qtyValue = String.valueOf(datasBean.getOR_Qty());
//
// if (datasBean.getOR_Qty() == 0) {
// qtyValue = "暫停";
// } else {
// if (datasBean.getOR_Qty() - datasBean.getUsed_Qty() == 0) {
// qtyValue = "售罄";
// }
// }
//
// tv_value.setText(qtyValue);
//
// //显示
// convertView.setBackgroundColor(mContext.getResources().getColor(R.color.black));
// rl_select.setBackgroundColor(mContext.getResources().getColor(R.color.black));
// tv_number.setTextColor(mContext.getResources().getColor(R.color.theme_white_color));
// tv_name.setTextColor(mContext.getResources().getColor(R.color.theme_white_color));
// tv_value.setTextColor(mContext.getResources().getColor(R.color.theme_white_color));
// int selected = datasBean.getSelected();
// switch (selected) {
// case 0://未选 中。黑底白字
// rl_select.setBackgroundColor(mContext.getResources().getColor(R.color.black));
// tv_number.setTextColor(mContext.getResources().getColor(R.color.theme_white_color));
// tv_name.setTextColor(mContext.getResources().getColor(R.color.theme_white_color));
// tv_value.setTextColor(mContext.getResources().getColor(R.color.theme_white_color));
// break;
// case 1://选中,第一层选中.
// rl_select.setBackgroundColor(mContext.getResources().getColor(R.color.theme_color));
// tv_number.setTextColor(mContext.getResources().getColor(R.color.theme_white_color));
// tv_name.setTextColor(mContext.getResources().getColor(R.color.theme_white_color));
// tv_value.setTextColor(mContext.getResources().getColor(R.color.theme_white_color));
// break;
// case 2://选中,作为主体被选中
// rl_select.setBackgroundColor(mContext.getResources().getColor(R.color.colorAccent));
// tv_number.setTextColor(mContext.getResources().getColor(R.color.theme_white_color));
// tv_name.setTextColor(mContext.getResources().getColor(R.color.theme_white_color));
// tv_value.setTextColor(mContext.getResources().getColor(R.color.theme_white_color));
// break;
// }
//
// //设置字体
// tv_value.setTextSize(mFoodlListFontSize);
// tv_name.setTextSize(mFoodlListFontSize);
// tv_number.setTextSize(mFoodlListFontSize);
//
// rl_select.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View v) {
// if (mOnItemClickListener != null)
// mOnItemClickListener.onItemClick(datasBean, position);
// }
// });
// }
// }
//
//
// public int getSelectPosition() {
// return this.select_position;
// }
//
// private OnItemClickListener mOnItemClickListener;
//
// public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
// mOnItemClickListener = onItemClickListener;
// }
//
// public interface OnItemClickListener {
//
// void onItemClick(CurrentSoldoutFood.DatasBean datasBean, int position);
//
// }
//
}
......@@ -77,7 +77,7 @@ public class FineItemOneAdapter extends DefaultAdapter<Modifier> {
@Override
public int getLayoutId(int viewType) {
return R.layout.ui_item_food;
return R.layout.ui_meal_item_food;
}
class DateTimeItemHolder extends BaseHolder<Modifier> {
......
......@@ -77,7 +77,7 @@ public class FineItemTwoAdapter extends DefaultAdapter<Modifier> {
@Override
public int getLayoutId(int viewType) {
return R.layout.ui_item_food;
return R.layout.ui_meal_item_food;
}
class FineItemHolder extends BaseHolder<Modifier> {
......
......@@ -8,11 +8,9 @@ import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtil;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.OrderDetailItem;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.ModifierAdapter;
import com.jess.arms.base.BaseHolder;
import com.jess.arms.base.DefaultAdapter;
import com.qmuiteam.qmui.alpha.QMUIAlphaButton;
......
......@@ -33,7 +33,12 @@ public class OrderCenterDetailFoodAdapter extends BaseQuickAdapter<SectionTextIt
} else {
helper.setVisible(R.id.tv_center, false);
}
helper.setText(R.id.tv_right, "$" + item.getRightText());
if (Double.parseDouble(item.getRightText()) < 0) {
//折扣
helper.setText(R.id.tv_right, "-$" + Math.abs(Double.parseDouble(item.getRightText())));
} else {
helper.setText(R.id.tv_right, "$" + item.getRightText());
}
}
}
......@@ -14,7 +14,7 @@ import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
import com.gingersoft.gsa.cloud.table.mvp.model.constant.MealConstant;
import com.gingersoft.gsa.cloud.constans.MealConstant;
import com.gingersoft.gsa.cloud.table.mvp.presenter.MealStandPresenter;
import com.gingersoft.gsa.cloud.table.mvp.presenter.OrderContentPresenter;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity;
......@@ -64,6 +64,14 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
public int select_full_start_position = 0;
public int select_full_end_position = 0;
/**
* 選中模式(1=單選,2=多選)
*/
public static final int SINGLE_SELECTED = 1;
public static final int MULTIPLE_SELECTED = 2;
private int selectedMode = SINGLE_SELECTED;
public SelectMealAdapter(Context context, List<OrderDetail> data, BasePresenter presenter) {
super(data);
this.mContext = context;
......@@ -139,11 +147,12 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
if (mOnItemClickListener != null) {
int position = this.getPosition();
if (position < mInfos.size()) {
// if (mMealStandActivity != null) {
//
// } else {
setSelectPosition(position);
// }
if (selectedMode == MULTIPLE_SELECTED) {
if (mInfos.get(position).getSelected() != 0 && mInfos.get(position).getItemType() != 1) {
return;
}
}
setSelectPosition(position);
//设置当前选中的食品或食品组
mOnItemClickListener.onItemClick(mInfos.get(position), position);
}
......@@ -322,7 +331,7 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
return addPosition;
}
private int addPositionItem(OrderDetail addFoodBean) {
public int addPositionItem(OrderDetail addFoodBean) {
int addPosition = select_position;
boolean upAdd = true;
......@@ -767,6 +776,12 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
}
}
if (resetMultipleSelected()) {
//再次點擊直接恢復
notifyDataSetChanged();
return;
}
while (checkOrder.getItemType() != 1) {
checkOrder.setSelected(3);
select_full_end_position = k;
......@@ -847,7 +862,30 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
}
}
if(mMealStandActivity == null || mMealStandActivity.getShowFinePage() != 2){
// if (mMealStandActivity == null || mMealStandActivity.isMultipleSelectionMode()) {
// for (int v = 0; v < mainStartPos; v++) {
// if (v < mInfos.size()) {
// mInfos.get(v).setSelected(0);
// }
// }
// for (int v = mainEndPos + 1; v < mInfos.size(); v++) {
// mInfos.get(v).setSelected(0);
// }
// } else {
// for (int v = 0; v < mainStartPos; v++) {
// if (v < mInfos.size()) {
// mInfos.get(v).setSelected(0);
// }
// }
// for (int v = mainEndPos + 1; v < mInfos.size(); v++) {
// mInfos.get(v).setSelected(0);
// }
// }
if (selectedMode == MULTIPLE_SELECTED) {
//
} else {
//重置未選中的食品狀態(單選)
for (int v = 0; v < mainStartPos; v++) {
if (v < mInfos.size()) {
mInfos.get(v).setSelected(0);
......@@ -911,6 +949,22 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
notifyDataSetChanged();
}
/**
* 重置已選中食品(多選)
*/
public boolean resetMultipleSelected() {
boolean reset = false;
if (selectedMode == MULTIPLE_SELECTED) {
for (int i = 0; i < mInfos.size(); i++) {
OrderDetail datasBean = mInfos.get(i);
if (select_full_start_position <= i && i <= select_full_end_position && datasBean.getSelected() != 0) {
reset = true;
datasBean.setSelected(0);
}
}
}
return reset;
}
/**
* 获取食品子项最后一个子项位置
......@@ -929,6 +983,19 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
return edgeIndex;
}
public boolean canDeleteFood(){
boolean can = false;
for (OrderDetail item: mInfos) {
if(item.getSelected() != 0){
can = true;
}
}
if (mInfos.size() == 0 || select_position >= mInfos.size()) {
can = false;
}
return can;
}
public List<OrderDetail> getInfos() {
return mInfos;
}
......@@ -969,6 +1036,14 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
return mainEndPos;
}
public int getSelectedMode() {
return selectedMode;
}
public void setSelectedMode(int selectedMode) {
this.selectedMode = selectedMode;
}
public OrderDetail getCurrentOrderDetail() {
if (select_position != -1) {
return mInfos.get(select_position);
......
......@@ -93,26 +93,19 @@ public class FineItemAllFragment extends BaseFragment<FineItemAllPresenter> impl
}
public void onModSasteEvent(long mid) {
if (mid == 0) {
return;
}
// if (mid == 0) {
// return;
// }
mPresenter.initModSasteFineItemKindData(mid);
}
public void onModMsgMidEvent(long mid) {
if (mid == 0) {
return;
}
// if (mid == 0) {
// return;
// }
mPresenter.initModMsgFineItemData(mid);
}
public void onModCommEvent(long mid) {
if (mid == 0) {
return;
}
mPresenter.initModCommFineItemKindData(mid);
}
@Override
public void showLoading(String message) {
......
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/theme_white_color">
<LinearLayout
android:id="@+id/ll_meals"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_220"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="30dp"
android:background="@color/theme_color"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_sold_hmmc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginTop="5dp"
android:text="項目名稱"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/theme_white_color" />
<TextView
android:id="@+id/tv_sold_hmsl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginTop="5dp"
android:layout_marginRight="20dp"
android:text="數量"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/theme_white_color" />
</RelativeLayout>
<LinearLayout
android:id="@+id/ll_meals_main"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycle_current_soldout_food"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="@null"
android:fadeScrollbars="false" />
</LinearLayout>
</LinearLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/ll_meals"
android:layout_marginBottom="35dp"
android:orientation="vertical">
<LinearLayout
android:id="@+id/ll_food_group"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycle_food_group"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<LinearLayout
android:id="@+id/ll_food_group_point"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_5"
android:background="@color/theme_grey_color"
android:orientation="horizontal"
android:visibility="invisible" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycle_food"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/ll_food_group"/>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycle_combo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/ll_food_group"
android:divider="@null"
android:fadeScrollbars="false"
android:orientation="vertical"
android:visibility="invisible"
app:spanCount="4"
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"/>
</RelativeLayout>
<LinearLayout
android:id="@+id/ll_fine_item"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/ll_meals"
android:layout_above="@+id/ll_stand_oper"
android:orientation="vertical"
android:visibility="invisible">
<RelativeLayout
android:id="@+id/rl_tabs"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_40"
android:background="@color/theme_background_color">
<ImageView
android:id="@+id/iv_fine_item_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="@dimen/normal_space"
android:contentDescription="@string/app_name"
android:src="@drawable/ic_black_back"
android:visibility="visible" />
<com.qmuiteam.qmui.widget.tab.QMUITabSegment
android:id="@+id/tabSegment"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_centerInParent="true"
android:background="@drawable/shape_tab_panel_bg"/>
</RelativeLayout>
<androidx.viewpager.widget.ViewPager
android:id="@+id/contentViewPager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_stand_oper"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_38"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true">
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id="@+id/tv_soldout"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_weight="1"
android:background="@color/theme_color"
android:gravity="center"
android:text="沽清控制--食品"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/theme_white_color"
android:textSize="@dimen/sp_20" />
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id="@+id/tv_return"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@color/theme_hint_color"
android:gravity="center"
android:text="返 回"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/theme_white_color"
android:textSize="@dimen/sp_20" />
</LinearLayout>
</RelativeLayout>
\ No newline at end of file
......@@ -115,6 +115,20 @@
android:textColor="@color/theme_black"
android:textSize="@dimen/sp_12"/>
<TextView
android:id="@+id/btn_multiple_selection"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/meal_multiple_selection"
android:drawablePadding="@dimen/dp_1"
android:layout_marginTop="@dimen/dp_8"
android:background="@drawable/ui_selector_item_background"
android:textAllCaps="false"
android:gravity="center"
android:drawableTop="@drawable/meal_muleiple_selection"
android:textColor="@color/theme_black"
android:textSize="@dimen/sp_12"/>
<!-- <ImageButton-->
<!-- android:id="@+id/btn_meal_discount"-->
<!-- style="@style/ButtonBorderless"-->
......@@ -263,6 +277,30 @@
android:visibility="invisible">
<com.qmuiteam.qmui.alpha.QMUIAlphaButton
android:id="@+id/btn_select_all"
style="@style/ButtonBorderless"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginRight="1dp"
android:layout_weight="0.1"
android:background="#00B9F7"
android:text="@string/all_selection"
android:textColor="@color/theme_white_color"
android:textSize="@dimen/sp_14"/>
<com.qmuiteam.qmui.alpha.QMUIAlphaButton
android:id="@+id/btn_anti_selection"
style="@style/ButtonBorderless"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginRight="1dp"
android:layout_weight="0.1"
android:background="#00B9F7"
android:text="@string/anti_selection"
android:textColor="@color/theme_white_color"
android:textSize="@dimen/sp_14"/>
<com.qmuiteam.qmui.alpha.QMUIAlphaButton
android:id="@+id/btn_taste"
style="@style/ButtonBorderless"
android:layout_width="match_parent"
......@@ -291,19 +329,6 @@
android:textColor="@color/theme_white_color"
android:textSize="@dimen/sp_14"/>
<!-- <com.qmuiteam.qmui.alpha.QMUIAlphaButton-->
<!-- android:id="@+id/btn_multiple_selection"-->
<!-- style="@style/ButtonBorderless"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="match_parent"-->
<!-- android:layout_marginRight="1dp"-->
<!-- android:layout_weight="0.1"-->
<!-- android:background="#00B9F7"-->
<!-- android:drawableLeft="@mipmap/meal_fine_taste"-->
<!-- android:text="@string/multiple_selection"-->
<!-- android:textColor="@color/theme_white_color"-->
<!-- android:textSize="@dimen/sp_14"/>-->
<com.qmuiteam.qmui.alpha.QMUIAlphaButton
android:id="@+id/btn_delete"
style="@style/ButtonBorderless"
......
......@@ -30,6 +30,7 @@
<string name="loading">加載中...</string>
<string name="meal_return">返回</string>
<string name="meal_discount">折扣</string>
<string name="meal_multiple_selection">多選</string>
<string name="meal_move">轉移</string>
<string name="meal_print">印單</string>
<string name="meal_send">送單</string>
......@@ -97,7 +98,8 @@
<string name="Addordelete">加/減</string>
<string name="taste">口味</string>
<string name="msg">訊息</string>
<string name="multiple_selection">多選</string>
<string name="all_selection">多選</string>
<string name="anti_selection">反選</string>
<string name="remove">刪除</string>
<string name="end">完成</string>
<string name="Vertical">豎向</string>
......
......@@ -81,6 +81,7 @@ dependencies {
addComponent 'table-mode'
addComponent 'print-module'
addComponent 'other_order_mode'
addComponent 'manager'
annotationProcessor rootProject.ext.dependencies["dagger2-compiler"]
implementation rootProject.ext.dependencies["autosize"]
......
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