Commit 1e1dee0d by 宁斌

1、新增沽清管理

2、新增賬單小數
parent 28b1c416
......@@ -60,7 +60,7 @@ public abstract class BaseFragment<P extends IPresenter> extends Fragment implem
@Override
public synchronized Cache<String, Object> provideCache() {
if (mCache == null) {
mCache = ArmsUtils.obtainAppComponentFromContext(getActivity()).cacheFactory().build(CacheType.FRAGMENT_CACHE);
mCache = ArmsUtils.obtainAppComponentFromContext(mContext).cacheFactory().build(CacheType.FRAGMENT_CACHE);
}
return mCache;
}
......@@ -74,10 +74,15 @@ public abstract class BaseFragment<P extends IPresenter> extends Fragment implem
private View view;
@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
mContext = getActivity();
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
mContext = getActivity();
if (view != null) {
ViewGroup viewGroup = (ViewGroup) view.getRootView();
if (viewGroup != null) {
......
......@@ -10,5 +10,11 @@
<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="640"/>
</application>
</manifest>
......@@ -28,10 +28,10 @@
<meta-data
android:name="design_width_in_dp"
android:value="360" />
android:value="360"/>
<meta-data
android:name="design_height_in_dp"
android:value="540" />
android:value="640"/>
</application>
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.BLUETOOTH" />
......
......@@ -14,5 +14,12 @@
<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="640"/>
</application>
</manifest>
......@@ -31,10 +31,10 @@
android:value="ConfigModule" />
<meta-data
android:name="design_width_in_dp"
android:value="360" />
android:value="360"/>
<meta-data
android:name="design_height_in_dp"
android:value="540" />
android:value="640"/>
</application>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
......
......@@ -6,11 +6,40 @@ 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.function.FModule;
import com.gingersoft.gsa.cloud.main.mvp.ui.activity.MainActivity;
import com.gingersoft.gsa.cloud.main.mvp.ui.activity.NewMainActivity;
public class ComponentMain implements IComponent {
public static final class Function{
/**首頁- 點餐*/
public static final FModule[] order = {
new FModule("main/order", 0,0) ,
new FModule("main/order/table", R.drawable.ic_dining_table_mode,R.drawable.ic_dining_table_mode_close) ,
new FModule("main/order/delivery", R.drawable.ic_delivery_mode,R.drawable.ic_delivery_mode_close) ,
new FModule("main/order/takeaway", R.drawable.ic_outsourcing_model,R.drawable.ic_outsourcing_model_close),
new FModule("main/order/preorder", R.drawable.ic_pre_order_mode,R.drawable.ic_pre_order_mode_close),
};
/**首頁- 管理*/
public static final FModule [] manager = {
new FModule("main/manager", 0,0) ,
new FModule("main/manager/bill", R.drawable.ic_meals_menu_management, R.drawable.ic_meals_menu_management_close) ,
new FModule("main/manager/table", R.drawable.ic_dining_table_management,R.drawable.ic_dining_table_management_close) ,
new FModule("main/manager/printer",R.drawable.ic_print_management,R.drawable.ic_print_management_close),
new FModule("main/manager/pay", R.drawable.ic_pay_management,R.drawable.ic_pay_management_close),
new FModule("main/manager/discout",R.drawable.ic_discount_management,R.drawable.ic_discount_management_close),
new FModule("main/manager/soldoutCtr",R.drawable.ic_discount_management,R.drawable.ic_discount_management_close)
};
/**首頁- 員工管理*/
public static final FModule [] employee = {
new FModule("main/employee", 0,0) ,
new FModule("main/employee/management",R.drawable.ic_staff_management,R.drawable.ic_staff_management_close) ,
new FModule("main/employee/delivery", R.drawable.ic_authority_management,R.drawable.ic_authority_management_close) ,
new FModule("main/employee/operationRecord", R.drawable.ic_operation_record,R.drawable.ic_operation_record_close)
};
}
@Override
public String getName() {
......
......@@ -24,7 +24,10 @@ import com.gingersoft.gsa.cloud.base.utils.JsonUtils;
import com.gingersoft.gsa.cloud.base.utils.RestaurantInfoUtils;
import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils;
import com.gingersoft.gsa.cloud.database.bean.Function;
import com.gingersoft.gsa.cloud.database.utils.FunctionDaoUtils;
import com.gingersoft.gsa.cloud.function.FunctionManager;
import com.gingersoft.gsa.cloud.main.BuildConfig;
import com.gingersoft.gsa.cloud.main.ComponentMain;
import com.gingersoft.gsa.cloud.main.R;
import com.gingersoft.gsa.cloud.main.R2;
import com.gingersoft.gsa.cloud.main.di.component.DaggerNewMainComponent;
......@@ -201,12 +204,15 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N
// return;
// }
List<Function> functions = new ArrayList<>();
// functions.addAll(FunctionManager.getDefault().getFunctionByResModule(this, ComponentMain.Function.class, ComponentMain.Function.order,"order"));
functions.add(new Function((long) 150, 0, 5, "點餐", 0, 0));
functions.add(new Function((long) 138, 150, 5, "餐臺模式", R.drawable.ic_dining_table_mode, 0));
functions.add(new Function((long) 139, 150, 5, "外送模式", R.drawable.ic_delivery_mode_close, 1));
functions.add(new Function((long) 140, 150, 5, "外賣模式", R.drawable.ic_outsourcing_model_close, 1));
functions.add(new Function((long) 139, 150, 5, "外送模式", R.drawable.ic_delivery_mode_close, 0));
functions.add(new Function((long) 140, 150, 5, "外賣模式", R.drawable.ic_outsourcing_model_close, 0));
functions.add(new Function((long) 141, 150, 5, "預點餐模式", R.drawable.ic_pre_order_mode_close, 1));
// functions.addAll(FunctionManager.getDefault().getFunctionByResModule(this, ComponentMain.Function.class, ComponentMain.Function.manager,"manager"));
functions.add(new Function((long) 151, 0, 5, "管理", 0, 0));
// functions.add(new Function((long) 142, 151, 5, "餐牌管理", R.drawable.ic_meals_menu_management));
functions.add(new Function((long) 142, 151, 5, "賬單管理", R.drawable.ic_meals_menu_management, 0));
......@@ -217,10 +223,12 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N
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, 0));
// functions.addAll(FunctionManager.getDefault().getFunctionByResModule(this, ComponentMain.Function.class, ComponentMain.Function.employee,"employee"));
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));
functions.add(new Function((long) 148, 152, 5, "權限管理", R.drawable.ic_authority_management_close, 1));
functions.add(new Function((long) 149, 152, 5, "操作記錄", R.drawable.ic_operation_record_close, 1));
//將功能列表數據分組
SparseArray<String> parents = new SparseArray<>();
SparseArray<List<Function>> funMap = new SparseArray<>();
......
......@@ -109,8 +109,8 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
PrinterDeviceBean deviceBean = (PrinterDeviceBean) getIntent().getSerializableExtra("deviceBean");
// if (type != PrinterRoot.PRINT_TEST) {
//不是测试才去获取打印机列表,获取到打印机列表之后就进行打印
mPresenter.getPrinterList(GsaCloudApplication.getRestaurantId(mContext));
//不是测试才去获取打印机列表,获取到打印机列表之后就进行打印
mPresenter.getPrinterList(GsaCloudApplication.getRestaurantId(mContext));
// }
printerInIt = PrinterRoot.getPrinterByType(type);
......
......@@ -43,7 +43,7 @@ android {
/**
* 版本号
*/
schemaVersion 4
schemaVersion 5
/**
* greendao输出dao的数据库操作实体类文件夹(相对路径 包名+自定义路径名称,包将创建于包名的直接路径下)
*/
......@@ -73,6 +73,7 @@ dependencies {
implementation rootProject.ext.dependencies["fastjson"]
implementation rootProject.ext.dependencies["zxing"]
implementation rootProject.ext.dependencies["progressmanager"]
implementation rootProject.ext.dependencies["autosize"]
// test
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.2.0'
......
......@@ -25,6 +25,7 @@ import com.gingersoft.gsa.cloud.constans.HttpsConstans;
import com.gingersoft.gsa.cloud.constans.UserConstans;
import com.gingersoft.gsa.cloud.base.utils.crash.AppCrashHandler;
import com.gingersoft.gsa.cloud.base.utils.file.FileUtils;
import com.gingersoft.gsa.cloud.base.utils.log.LogUtil;
import com.gingersoft.gsa.cloud.base.utils.other.SPUtils;
import com.gingersoft.gsa.cloud.base.utils.xlog.MyBackupStrategy;
import com.gingersoft.gsa.cloud.database.DaoManager;
......@@ -40,6 +41,11 @@ import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.footer.ClassicsFooter;
import com.scwang.smartrefresh.layout.header.ClassicsHeader;
import java.util.Locale;
import me.jessyan.autosize.AutoSize;
import me.jessyan.autosize.AutoSizeConfig;
import me.jessyan.autosize.onAdaptListener;
import me.jessyan.retrofiturlmanager.RetrofitUrlManager;
/**
......@@ -97,12 +103,16 @@ public class GsaCloudApplication extends BaseApplication {
CC.enableRemoteCC(true);
//初始化上下拉刷新
initRefresh();
//初始化日誌管理庫
initXLog();
//初始化今日頭條適配方案
initAutoSize();
//初始化數據庫框架
initGreenDao();
//初始化打印相關
initPrint();
//初始化日誌管理庫
initXLog();
initDomainUrl();
//初始化crash記錄
AppCrashHandler.getInstance().init(this);
......@@ -117,6 +127,7 @@ public class GsaCloudApplication extends BaseApplication {
this.mCurrentActivity = mCurrentActivity;
}
private void initRefresh() {
ClassicsHeader.REFRESH_HEADER_PULLING = getString(R.string.srl_header_pulling);//"下拉可以刷新";
ClassicsHeader.REFRESH_HEADER_REFRESHING = getString(R.string.srl_header_refreshing);//"正在刷新...";
......@@ -137,6 +148,19 @@ public class GsaCloudApplication extends BaseApplication {
ClassicsFooter.REFRESH_FOOTER_NOTHING = getString(R.string.srl_footer_nothing);//"全部加载完成";
}
private void initDomainUrl() {
//需要單獨配置域名URL的,在接口上添加@Headers({"Domain-Name: settlement_report_server"}),不添加則是使用默認域名
setGlobalDomain();
//清機報表請求地址
RetrofitUrlManager.getInstance().putDomain("settlement_report_server", HttpsConstans.ROOT_SETTLEMENT_REPORT_SERVER_ADDRESS_FORMAL);
//gsa報表請求地址
RetrofitUrlManager.getInstance().putDomain("gsa_report", HttpsConstans.REPORT_SERVER_ADDRESS);
//微信報表請求地址
RetrofitUrlManager.getInstance().putDomain("wechat_report", HttpsConstans.WECHAR_REPORT_SERVER_ADDRESS);
//沽清控制請求地址
RetrofitUrlManager.getInstance().putDomain("soldoutctrl", HttpsConstans._SERVER_ADDRESS);
}
private void initPrint() {
if (GsaCloudApplication.mV2.contains(Build.MODEL)) {
//商米打印
......@@ -152,14 +176,6 @@ public class GsaCloudApplication extends BaseApplication {
//如果當前機型不是上面兩種,那麼設置默認打印為ip打印
SPUtils.put(this, Constans.DEFAULT_PRINT_METHOD, Constans.IP_PRINT);
}
//需要單獨配置域名URL的,在接口上添加@Headers({"Domain-Name: settlement_report_server"}),不添加則是使用默認域名
setGlobalDomain();
//清機報表請求地址
RetrofitUrlManager.getInstance().putDomain("settlement_report_server", HttpsConstans.ROOT_SETTLEMENT_REPORT_SERVER_ADDRESS_FORMAL);
//gsa報表請求地址
RetrofitUrlManager.getInstance().putDomain("gsa_report", HttpsConstans.REPORT_SERVER_ADDRESS);
//微信報表請求地址
RetrofitUrlManager.getInstance().putDomain("wechat_report", HttpsConstans.WECHAR_REPORT_SERVER_ADDRESS);
}
public static void setGlobalDomain() {
......@@ -192,6 +208,98 @@ public class GsaCloudApplication extends BaseApplication {
filePrinter);
}
private void initAutoSize(){
//当 App 中出现多进程, 并且您需要适配所有的进程, 就需要在 App 初始化时调用 initCompatMultiProcess()
//在 Demo 中跳转的三方库中的 DefaultErrorActivity 就是在另外一个进程中, 所以要想适配这个 Activity 就需要调用 initCompatMultiProcess()
AutoSize.initCompatMultiProcess(this);
//如果在某些特殊情况下出现 InitProvider 未能正常实例化, 导致 AndroidAutoSize 未能完成初始化
//可以主动调用 AutoSize.checkAndInit(this) 方法, 完成 AndroidAutoSize 的初始化后即可正常使用
// AutoSize.checkAndInit(this);
// 如何控制 AndroidAutoSize 的初始化,让 AndroidAutoSize 在某些设备上不自动启动?https://github.com/JessYanCoding/AndroidAutoSize/issues/249
/**
* 以下是 AndroidAutoSize 可以自定义的参数, {@link AutoSizeConfig} 的每个方法的注释都写的很详细
* 使用前请一定记得跳进源码,查看方法的注释, 下面的注释只是简单描述!!!
*/
AutoSizeConfig.getInstance()
//是否让框架支持自定义 Fragment 的适配参数, 由于这个需求是比较少见的, 所以须要使用者手动开启
//如果没有这个需求建议不开启
.setCustomFragment(true)
//是否屏蔽系统字体大小对 AndroidAutoSize 的影响, 如果为 true, App 内的字体的大小将不会跟随系统设置中字体大小的改变
//如果为 false, 则会跟随系统设置中字体大小的改变, 默认为 false
// .setExcludeFontScale(true)
//区别于系统字体大小的放大比例, AndroidAutoSize 允许 APP 内部可以独立于系统字体大小之外,独自拥有全局调节 APP 字体大小的能力
//当然, 在 APP 内您必须使用 sp 来作为字体的单位, 否则此功能无效, 不设置或将此值设为 0 则取消此功能
// .setPrivateFontScale(0.8f)
//屏幕适配监听器
.setOnAdaptListener(new onAdaptListener() {
@Override
public void onAdaptBefore(Object target, Activity activity) {
//使用以下代码, 可以解决横竖屏切换时的屏幕适配问题
//使用以下代码, 可支持 Android 的分屏或缩放模式, 但前提是在分屏或缩放模式下当用户改变您 App 的窗口大小时
//系统会重绘当前的页面, 经测试在某些机型, 某些情况下系统不会重绘当前页面, ScreenUtils.getScreenSize(activity) 的参数一定要不要传 Application!!!
// AutoSizeConfig.getInstance().setScreenWidth(ScreenUtils.getScreenSize(activity)[0]);
// AutoSizeConfig.getInstance().setScreenHeight(ScreenUtils.getScreenSize(activity)[1]);
LogUtil.d(String.format(Locale.ENGLISH, "%s onAdaptBefore!", target.getClass().getName()));
}
@Override
public void onAdaptAfter(Object target, Activity activity) {
LogUtil.d(String.format(Locale.ENGLISH, "%s onAdaptAfter!", target.getClass().getName()));
}
});
//是否打印 AutoSize 的内部日志, 默认为 true, 如果您不想 AutoSize 打印日志, 则请设置为 false
// .setLog(false)
//是否使用设备的实际尺寸做适配, 默认为 false, 如果设置为 false, 在以屏幕高度为基准进行适配时
//AutoSize 会将屏幕总高度减去状态栏高度来做适配
//设置为 true 则使用设备的实际屏幕高度, 不会减去状态栏高度
//在全面屏或刘海屏幕设备中, 获取到的屏幕高度可能不包含状态栏高度, 所以在全面屏设备中不需要减去状态栏高度,所以可以 setUseDeviceSize(true)
// .setUseDeviceSize(true)
//是否全局按照宽度进行等比例适配, 默认为 true, 如果设置为 false, AutoSize 会全局按照高度进行适配
// .setBaseOnWidth(false)
//设置屏幕适配逻辑策略类, 一般不用设置, 使用框架默认的就好
// .setAutoAdaptStrategy(new AutoAdaptStrategy())
customAdaptForExternal();
}
/**
* 给外部的三方库 {@link Activity} 自定义适配参数, 因为三方库的 {@link Activity} 并不能通过实现
* {@link CustomAdapt} 接口的方式来提供自定义适配参数 (因为远程依赖改不了源码)
* 所以使用 {@link ExternalAdaptManager} 来替代实现接口的方式, 来提供自定义适配参数
*/
private void customAdaptForExternal() {
/**
* {@link ExternalAdaptManager} 是一个管理外部三方库的适配信息和状态的管理类, 详细介绍请看 {@link ExternalAdaptManager} 的类注释
*/
AutoSizeConfig.getInstance().getExternalAdaptManager();
//加入的 Activity 将会放弃屏幕适配, 一般用于三方库的 Activity, 详情请看方法注释
//如果不想放弃三方库页面的适配, 请用 addExternalAdaptInfoOfActivity 方法, 建议对三方库页面进行适配, 让自己的 App 更完美一点
// .addCancelAdaptOfActivity(DefaultErrorActivity.class)
//为指定的 Activity 提供自定义适配参数, AndroidAutoSize 将会按照提供的适配参数进行适配, 详情请看方法注释
//一般用于三方库的 Activity, 因为三方库的设计图尺寸可能和项目自身的设计图尺寸不一致, 所以要想完美适配三方库的页面
//就需要提供三方库的设计图尺寸, 以及适配的方向 (以宽为基准还是高为基准?)
//三方库页面的设计图尺寸可能无法获知, 所以如果想让三方库的适配效果达到最好, 只有靠不断的尝试
//由于 AndroidAutoSize 可以让布局在所有设备上都等比例缩放, 所以只要您在一个设备上测试出了一个最完美的设计图尺寸
//那这个三方库页面在其他设备上也会呈现出同样的适配效果, 等比例缩放, 所以也就完成了三方库页面的屏幕适配
//即使在不改三方库源码的情况下也可以完美适配三方库的页面, 这就是 AndroidAutoSize 的优势
//但前提是三方库页面的布局使用的是 dp 和 sp, 如果布局全部使用的 px, 那 AndroidAutoSize 也将无能为力
//经过测试 DefaultErrorActivity 的设计图宽度在 380dp - 400dp 显示效果都是比较舒服的
// .addExternalAdaptInfoOfActivity(DefaultErrorActivity.class, new ExternalAdaptInfo(true, 400));
}
private void initGreenDao() {
DaoManager mManager = DaoManager.getInstance();
mManager.init(this);
......
......@@ -26,6 +26,7 @@ public class BillOrderMoney {
private byte type = DISCOUNT_TYPE;
public static final byte DISCOUNT_TYPE = 1;
public static final byte SERVERCHARGE_TYPE = 2;
public static final byte ROUNDING_TYPE = 3;
private Discount discount;
......
......@@ -33,7 +33,7 @@ public class CurrentAndroidSetting {
private int ModFontSize = 14;
private int BillListFontSize = 12;
private int BillTotalFontSize = 12;
private int FoodlListFontSize = 12;
private int FoodlListFontSize = 18;
private int LayoutBillListHeight = 40;
private int LayoutQtyHeight = 40;
private int LayoutQuitHeight = 40;
......
......@@ -160,21 +160,21 @@ public class OrderDetail implements Serializable {
*/
private long ablediscount;
/**
* 食品組
* 折扣實體
*/
private String ftName;
private Discount discount;
/**
* 自定義組
* 折扣狀態#0:沒有折扣;1:折扣未送單;2:折扣已送單;
*/
private String majorName;
private int discountStatus;
/**
* 折扣實體
* 食品組
*/
private Discount discount;
private String ftName;
/**
* 折扣狀態#0:未送單;1:已送單;
* 自定義組
*/
private int discountStatus;
private String majorName;
/**
* 状态#0:正常;1:删除;
*/
......@@ -629,7 +629,7 @@ public class OrderDetail implements Serializable {
//累加折扣總額
discountSourcePrice = MoneyUtil.sum(discountSourcePrice, orderDetail.getPrice());
//食品折扣狀態為已送單
orderDetail.setDiscountStatus(1);
orderDetail.setDiscountStatus(2);
//往下找
int nextIndex = i + 1;
if (orderList.size() == nextIndex || orderList.get(nextIndex).getParentId() == 0) {
......@@ -639,6 +639,8 @@ public class OrderDetail implements Serializable {
orderDetailList.add(discountTransOrderDetail(discount, false, parentId, discountSourcePrice));
}
}
}else {
orderDetail.setDiscountStatus(0);
}
if (orderDetail.isIsfood()) {
......@@ -658,8 +660,7 @@ public class OrderDetail implements Serializable {
return discount;
}
public static int getItemType(OrderBean.OrderDetailsBean orderDetailsBean, OrderDetail
parentOrderDetail) {
public static int getItemType(OrderBean.OrderDetailsBean orderDetailsBean, OrderDetail parentOrderDetail) {
if (orderDetailsBean != null) {
if (orderDetailsBean.getParentId() == 0) {
return 1;
......
......@@ -55,7 +55,7 @@ public class CommonConfiguration {
*/
public void saveModifierTopIdConfiguration(List<Modifier> datas) {
for (Modifier datasBean : datas) {
if (datasBean.getMid() != null && datasBean.getTopId() != null && datasBean.getMid() != 0 && datasBean.getTopId() != 0) {
if (datasBean.getTopId() != null && datasBean.getMid() != 0 && datasBean.getTopId() != 0) {
mModifierTopIdList.put(Integer.parseInt(datasBean.getMid() + ""), datasBean.getTopId());
}
}
......
......@@ -15,7 +15,7 @@ import static java.math.BigDecimal.ROUND_HALF_UP;
public class MoneyUtil {
// 總金額小數位
public static int rounding, RoundingDecimal;
public static int rounding = 0, RoundingDecimal = 1;
// (直接截取) : 食品 細項 折扣 會員折扣 合計 服務費
public static int ItemDecimals = 2;
......@@ -30,220 +30,117 @@ public class MoneyUtil {
return rMoney;
}
public static double get_Count_money(double countmoney) {
public static double getOrderRounding(double vprice) {
//计算并返回最后的符合规定的取值
XLog.tag("MoneyUtil").d("计算账单小数前金额get_Count_money: " + countmoney);
int vNum = 0, x, y;
double xvPrice = vprice;
double Result = vprice;
//帐单小数
//Sys_AndroidSetting \Rounding 帳單小數算法
//例如: e.g
//Rounding=0 0.1-0.9=0.0 /
//Rounding=1 0.1-0.9=1.0 /
//Rounding=2 0.1-0.4=0.0 and 0.5-0.9=1.0 即 4 捨 5 入
//Rounding=3 0.1-0.5=0.5 and 0.6-0.9=1.0
//Sys_AndroidSetting \RoundingDecimal 整單的小數位
//例如:帳單總金額 13.456
//RoundingDecimal=1 小數後1個位進行四捨五入, 總金額結果= 13.00
//RoundingDecimal=2 小數後2個位進行四捨五入, 總金額結果= 13.50
//12.25 RoundingDecimal=1 RoundingDecimal=2 RoundingDecimal=3
//Rounding=0(0.1-0.9=0.0) 12.00 12.20 12.25
//Rounding=1(0.1-0.9=1.0) 13.00 12.30 12.25
//Rounding=2(0.1-0.4=0.0 and 0.5-0.9=1.0) 12.00 12.30 12.25
//Rounding=3(0.1-0.5=0.0 and 0.6-0.9=1.0) 12.00 12.20 12.25
double dMoney = 0.00;
//Locale.setDefault(Locale.GERMAN);
// countmoney=round(countmoney, RoundingDecimal+1);//首先产生包含了正确的数值
DecimalFormat df = new DecimalFormat("#.000000000");
if (countmoney < 1) {
countmoney = Math.round(countmoney);
if (RoundingDecimal > 0) {
vNum = (int) (Math.floor(vprice * (Math.pow(10, RoundingDecimal))) - Math.floor(vprice * (Math.pow(10, RoundingDecimal)) / 10) * 10);
} else if (RoundingDecimal < 0) {
x = (int) Math.floor(vprice * (Math.pow(10, RoundingDecimal)) * 10);
y = (int) Math.floor(vprice * (Math.pow(10, RoundingDecimal)) * 10);
vNum = x - y;
}
String cm = df.format(countmoney);
String[] stringarray = cm.split("[.]");
String Int_v = stringarray[0]; //整数部分
String litt_v = stringarray[1];//小数部分
if (Int_v.length() == 0) {
return 0.00;
}
int endIndex = RoundingDecimal - 1;
if (litt_v.length() <= endIndex) {
return countmoney;
}
String midd = litt_v.substring(0, RoundingDecimal - 1);
String mid = litt_v.substring(RoundingDecimal - 1, RoundingDecimal);
// //帐单小数
// //Sys_AndroidSetting \Rounding 帳單小數算法
// //例如: e.g
// //Rounding=0 0.1-0.9=0.0 /
// //Rounding=1 0.1-0.9=1.0 /
// //Rounding=2 0.1-0.4=0.0 and 0.5-0.9=1.0 即 4 捨 5 入
// //Rounding=3 0.1-0.5=0.5 and 0.6-0.9=1.0
//
// //Sys_AndroidSetting \RoundingDecimal 整單的小數位
// //例如:帳單總金額 13.456
// //RoundingDecimal=1 小數後1個位進行四捨五入, 總金額結果= 13.00
// //RoundingDecimal=2 小數後2個位進行四捨五入, 總金額結果= 13.50
//
// //12.25 RoundingDecimal=1 RoundingDecimal=2
// //Rounding=0(0.1-0.9=0.0) 12.00 12.20
// //Rounding=1(0.1-0.9=1.0) 13.00 12.30
// //Rounding=2(0.1-0.4=0.0 and 0.5-0.9=1.0) 12.00 12.30
// //Rounding=3(0.1-0.5=0.5 and 0.6-0.9=1.0) 12.50 12.25
switch (rounding) {
case 0:
//计算出countmoney的值
mid = "0";
mid = Int_v + "." + midd + mid;
dMoney = Double.parseDouble(mid);
break;
case 1://取出来的位置如果大于0,则需要在前面加1
if (!mid.equals("0")) {
if (RoundingDecimal == 1) {
Int_v = String.valueOf(Integer.parseInt(Int_v) + 1);
mid = "0";
} else {
midd = String.valueOf(Integer.parseInt(midd) + 1);
mid = "0";
}
if (RoundingDecimal == 1) {
xvPrice = Math.floor(vprice);
} else if (RoundingDecimal > 0) {
xvPrice = Math.floor(vprice * (Math.pow(10, RoundingDecimal - 1))) / (Math.pow(10, RoundingDecimal - 1));
} else {
xvPrice = Math.floor(vprice * (Math.pow(10, RoundingDecimal))) / (Math.pow(10, RoundingDecimal));
}
mid = Int_v + "." + midd + mid;
dMoney = Double.parseDouble(mid);
break;
case 2:
if (!mid.equals("0")) {
if (Integer.parseInt(mid) > 4) {
if (RoundingDecimal == 1) {
Int_v = String.valueOf(Integer.parseInt(Int_v) + 1);
mid = "0";
} else {
midd = String.valueOf(Integer.parseInt(midd) + 1);
mid = "0";
}
case 1:
if (RoundingDecimal == 1) {
if (vNum > 0) {
xvPrice = Math.floor(vprice) + 1;
} else {
//小于4不进位
mid = "0";
xvPrice = Math.floor(vprice);
}
}
mid = Int_v + "." + midd + mid;
dMoney = Double.parseDouble(mid);
break;
case 3:
if (!mid.equals("0")) {
if (Integer.parseInt(mid) > 5) {
if (RoundingDecimal == 1) {
Int_v = String.valueOf(Integer.parseInt(Int_v) + 1);
mid = "0";
} else {
if (vNum > 0) {
if (RoundingDecimal > 0) {
xvPrice = (Math.floor(vprice * (Math.pow(10, RoundingDecimal - 1))) + 1) / (Math.pow(10, RoundingDecimal - 1));
} else {
midd = String.valueOf(Integer.parseInt(midd) + 1);
mid = "0";
xvPrice = (Math.floor(vprice * (Math.pow(10, RoundingDecimal))) + 1) / (Math.pow(10, RoundingDecimal));
}
} else {
//小于5不进位
mid = "5";
xvPrice = Math.floor(vprice * (Math.pow(10, RoundingDecimal))) / (Math.pow(10, RoundingDecimal));
}
}
mid = Int_v + "." + midd + mid;
dMoney = Double.parseDouble(mid);
break;
default:
dMoney = Double.parseDouble(new DecimalFormat("#.00").format(countmoney));
break;
}
XLog.tag("MoneyUtil").d("计算账单小数后金额get_Count_money: " + dMoney);
return dMoney;
}
public static double get_Count_money2(double countmoney) {
//计算并返回最后的符合规定的取值
XLog.tag("MoneyUtil").d("计算账单小数前金额get_Count_money: " + countmoney);
double dMoney = 0.00;
DecimalFormat df = new DecimalFormat("#.000000000");
if (countmoney < 1) {
countmoney = Math.round(countmoney);
}
String cm = df.format(countmoney);
String[] stringarray = cm.split("[.]");
String Int_v = stringarray[0]; //整数部分
String litt_v = stringarray[1];//小数部分
if (Int_v.length() == 0) {
return 0.00;
}
int endIndex = RoundingDecimal - 1;
if (litt_v.length() <= endIndex) {
return countmoney;
}
String midd = litt_v.substring(0, RoundingDecimal - 1);
String mid = litt_v.substring(RoundingDecimal - 1, RoundingDecimal);
switch (rounding) {
case 0:
//计算出countmoney的值
mid = "0";
mid = Int_v + "." + midd + mid;
dMoney = Double.parseDouble(mid);
break;
case 1://取出来的位置如果大于0,则需要在前面加1
if (!mid.equals("0")) {
if (RoundingDecimal == 1) {
Int_v = String.valueOf(Integer.parseInt(Int_v) + 1);
mid = "0";
case 2:
if (RoundingDecimal == 1) {
if (vNum > 4) {
xvPrice = Math.floor(vprice) + 1;
} else {
midd = String.valueOf(Integer.parseInt(midd) + 1);
mid = "0";
xvPrice = Math.floor(vprice);
}
}
mid = Int_v + "." + midd + mid;
dMoney = Double.parseDouble(mid);
break;
case 2:
if (!mid.equals("0")) {
if (Integer.parseInt(mid) > 4) {
if (RoundingDecimal == 1) {
Int_v = String.valueOf(Integer.parseInt(Int_v) + 1);
mid = "0";
} else {
if (vNum > 4) {
if (RoundingDecimal > 0) {
xvPrice = (Math.floor(vprice * (Math.pow(10, RoundingDecimal - 1))) + 1) / (Math.pow(10, RoundingDecimal - 1));
} else {
midd = String.valueOf(Integer.parseInt(midd) + 1);
mid = "0";
xvPrice = (Math.floor(vprice * (Math.pow(10, RoundingDecimal))) + 1) / (Math.pow(10, RoundingDecimal));
}
} else {
//小于4不进位
mid = "0";
if (RoundingDecimal > 0) {
xvPrice = (Math.floor(vprice * (Math.pow(10, RoundingDecimal - 1)))) / (Math.pow(10, RoundingDecimal - 1));
} else {
xvPrice = (Math.floor(vprice * (Math.pow(10, RoundingDecimal)))) / (Math.pow(10, RoundingDecimal));
}
}
}
mid = Int_v + "." + midd + mid;
dMoney = Double.parseDouble(mid);
break;
case 3:
if (!mid.equals("0")) {
if (Integer.parseInt(mid) > 5) {
if (RoundingDecimal == 1) {
Int_v = String.valueOf(Integer.parseInt(Int_v) + 1);
mid = "0";
if (vNum > 5) {
if (RoundingDecimal == 1) {
xvPrice = Math.floor(vprice) + 1;
} else if (RoundingDecimal > 0) {
xvPrice = Math.floor(vprice * (Math.pow(10, (RoundingDecimal - 1))) + 1) / (Math.pow(10, RoundingDecimal - 1));
} else {
xvPrice = Math.floor(vprice * (Math.pow(10, (RoundingDecimal))) + 1) / (Math.pow(10, RoundingDecimal));
}
} else {
if (RoundingDecimal == 1) {
if (vNum == 0) {
xvPrice = Math.floor(vprice);
} else {
midd = String.valueOf(Integer.parseInt(midd) + 1);
mid = "0";
xvPrice = (Math.floor(vprice) * 10 + 5) / 10;
}
} else if (RoundingDecimal > 0) {
xvPrice = (Math.floor(vprice * (Math.pow(10, RoundingDecimal - 1))) * 10 + 5) / (Math.pow(10, RoundingDecimal));
} else {
//小于5不进位
mid = "5";
xvPrice = (Math.floor(vprice * (Math.pow(10, RoundingDecimal))) * 10 + 5) / (Math.pow(10, RoundingDecimal + 1));
}
}
mid = Int_v + "." + midd + mid;
dMoney = Double.parseDouble(mid);
break;
}
XLog.tag("MoneyUtil").d("计算账单小数后金额get_Count_money: " + dMoney);
return dMoney;
Result = getDecimalMoney(xvPrice, 2);
return Result;
}
public static double getDecimalMoney(double money, int decimal) {
......
......@@ -6,14 +6,14 @@ package com.gingersoft.gsa.cloud.constans;
public class HttpsConstans {
//默認為香港
public static String ROOT_SERVER_ADDRESS_FORMAL = "http://a.ricepon.com:58201/ricepon-cloud-gsa/api/";
public static final String ROOT_SERVER_ADDRESS_FORMAL_SZ = "http://gingersoft.tpddns.cn:58201/ricepon-cloud-gsa/api/";// 深圳服务器
public static final String ROOT_SERVER_ADDRESS_FORMAL_HK = "http://a.ricepon.com:58201/ricepon-cloud-gsa/api/";// 香港服务器
public static final String ROOT_SERVER_ADDRESS_FORMAL_SZ = "http://gingersoft.tpddns.cn:58201/ricepon-cloud-gsa/api/";//深圳服务器
public static final String ROOT_SERVER_ADDRESS_FORMAL_HK = "http://a.ricepon.com:58201/ricepon-cloud-gsa/api/";//香港服务器
public static String ROOT_SERVER_YOU_CHANG_HK = "http://192.168.1.142:9012/api/"; //友常本地
public static String ROOT_SERVER_ADDRESS_FORMAL2 = "http://gingersoft.tpddns.cn:53000/mock/49/ricepon-cloud-gsa/api/";//測試服務器
public static String ROOT_SETTLEMENT_REPORT_SERVER_ADDRESS_FORMAL = "http://a.ricepon.com:58201/";//清機接口地址
public static String REPORT_SERVER_ADDRESS = "http://a.ricepon.com:58201/ricepon-report/api/";//報表地址
public static String WECHAR_REPORT_SERVER_ADDRESS = "http://a.ricepon.com:61177/member-web/api/";//微信公眾號報表地址:首頁曲線圖數據,支付分析報表數據
public static String _SERVER_ADDRESS = "http://a.ricepon.com:61177/member-web/api/";//報表地址
}
......@@ -28,7 +28,7 @@ public interface MealConstant {
String ADD_FOOD_MODIFIER = "add_food_modifier";
String UPDATE_MODIFIER_MAX_QTY = "update_modifier_max_qty";
String SOLDOUT_MODIFIER = "soldout_modifier";
String EXIT_IS_PLU_MODE = "ExitIsPluMode";
......
......@@ -68,6 +68,8 @@ public class DaoManager {
}
sDaoSession = sDaoMaster.newSession();
}
//清除Greendao緩存
sDaoSession.clear();
return sDaoSession;
}
......
package com.gingersoft.gsa.cloud.database.bean;
import org.greenrobot.greendao.annotation.Entity;
import org.greenrobot.greendao.annotation.Id;
import org.greenrobot.greendao.annotation.Property;
import org.greenrobot.greendao.annotation.Generated;
import java.util.Date;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-05-08
* 修订历史:2020-05-08
* 描述:餐廳擴展設置表
*/
@Entity
public class ExpandInfo {
@Property(nameInDb = "_id")
@Id(autoincrement = true)
private Long id;
private int restaurant_id;
/**功能建名称*/
private String settingName;
/**功能值*/
private Integer valueInt;
private String valueChar;
private Date valueDatetime;
/**功能说明*/
private String remark;
@Generated(hash = 1943112611)
public ExpandInfo(Long id, int restaurant_id, String settingName,
Integer valueInt, String valueChar, Date valueDatetime, String remark) {
this.id = id;
this.restaurant_id = restaurant_id;
this.settingName = settingName;
this.valueInt = valueInt;
this.valueChar = valueChar;
this.valueDatetime = valueDatetime;
this.remark = remark;
}
@Generated(hash = 9429432)
public ExpandInfo() {
}
public Long getId() {
return this.id;
}
public void setId(Long id) {
this.id = id;
}
public int getRestaurant_id() {
return restaurant_id;
}
public void setRestaurant_id(int restaurant_id) {
this.restaurant_id = restaurant_id;
}
public String getSettingName() {
return settingName;
}
public void setSettingName(String settingName) {
this.settingName = settingName;
}
public Integer getValueInt() {
return valueInt;
}
public void setValueInt(Integer valueInt) {
this.valueInt = valueInt;
}
public String getValueChar() {
return valueChar;
}
public void setValueChar(String valueChar) {
this.valueChar = valueChar;
}
public Date getValueDatetime() {
return valueDatetime;
}
public void setValueDatetime(Date valueDatetime) {
this.valueDatetime = valueDatetime;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
}
......@@ -573,26 +573,29 @@ public class Food {
* 自定義字段
*/
@Transient
/**選中數量*/
@Transient
private int number;
/**食品組ID*/
@Transient
private long topId;
@Transient
/**背景顏色*/
private int bgColor = Color.parseColor("#03a9f4");
@Transient
private int bgColor = Color.parseColor("#03a9f4");
/**字體顏色*/
private int fontColor = Color.parseColor("#FFFFFF");
@Transient
private int fontColor = Color.parseColor("#FFFFFF");
/**最大選中數*/
private int maxNumber = 99;
@Transient
private String maxNumber = "";
/**動態的最大選中數*/
@Transient
private String currentMaxNumber= "";
/**是否選中*/
private boolean selected;
@Transient
private boolean selected;
/**是否组合食品*/
@Transient
private boolean isComboFood = false;
......@@ -1257,14 +1260,22 @@ public class Food {
this.fontColor = fontColor;
}
public int getMaxNumber() {
public String getMaxNumber() {
return maxNumber;
}
public void setMaxNumber(int maxNumber) {
public void setMaxNumber(String maxNumber) {
this.maxNumber = maxNumber;
}
public String getCurrentMaxNumber() {
return currentMaxNumber;
}
public void setCurrentMaxNumber(String currentMaxNumber) {
this.currentMaxNumber = currentMaxNumber;
}
public boolean isSelected() {
return selected;
}
......
......@@ -57,6 +57,9 @@ public class Function {
@Transient
private int iconRes;
@Transient
private String lable;
@Generated(hash = 816556116)
public Function(Long dbid, @NotNull Long id, int parentId, int groupId, int status,
long effectiveTime, String resName, String resUrl, String imageURL, int icRes) {
......@@ -256,6 +259,14 @@ public class Function {
this.icRes = icRes;
}
public String getLable() {
return lable;
}
public void setLable(String lable) {
this.lable = lable;
}
@Override
public String toString() {
return "Function{" +
......@@ -277,6 +288,7 @@ public class Function {
", backgroundColorRes=" + backgroundColorRes +
", textSizeRes=" + textSizeRes +
", iconRes=" + iconRes +
", lable='" + lable + '\'' +
'}';
}
}
......@@ -389,9 +389,7 @@ public class Modifier {
/**
* 自定義字段
*/
/**
* 當前食品ID
*/
/** 當前食品ID*/
@Transient
private long fid;
@Transient
......@@ -405,13 +403,14 @@ public class Modifier {
private int fontColor = Color.parseColor("#FFFFFF");
@Transient
/**最大選中數*/
private int maxNumber = 99;
private String maxNumber = "";
/**動態的最大選中數*/
@Transient
/**最小選中數*/
private int minNumber = 1;
/**
* 默認選中數
*/
private String currentMaxNumber= "";
/**是否售罄*/
@Transient
private boolean isSoldout = false;
/** 默認選中數*/
@Transient
private String defmodifier = "0";
@Transient
......@@ -428,8 +427,6 @@ public class Modifier {
}
@Generated(hash = 1490458360)
public Modifier(Long dbid, long mid, long topId, long restaurantId,
String modifierName, long seqNo, double marketPrice, double price,
......@@ -496,13 +493,11 @@ public class Modifier {
}
public Long getDbid() {
return dbid;
}
public Long getMid() {
public long getMid() {
return mid;
}
......@@ -717,10 +712,18 @@ public class Modifier {
return fontColor;
}
public int getMaxNumber() {
public String getMaxNumber() {
return maxNumber;
}
public String getCurrentMaxNumber() {
return currentMaxNumber;
}
public void setCurrentMaxNumber(String currentMaxNumber) {
this.currentMaxNumber = currentMaxNumber;
}
public boolean isSelected() {
return selected;
}
......@@ -733,10 +736,6 @@ public class Modifier {
this.dbid = dbid;
}
public void setMid(Long mid) {
this.mid = mid;
}
public void setTopId(Long topId) {
this.topId = topId;
}
......@@ -941,16 +940,16 @@ public class Modifier {
this.fontColor = fontColor;
}
public void setMaxNumber(int maxNumber) {
public void setMaxNumber(String maxNumber) {
this.maxNumber = maxNumber;
}
public int getMinNumber() {
return minNumber;
public boolean isSoldout() {
return isSoldout;
}
public void setMinNumber(int minNumber) {
this.minNumber = minNumber;
public void setSoldout(boolean soldout) {
isSoldout = soldout;
}
public void setSelected(boolean selected) {
......
......@@ -14,10 +14,10 @@ import org.greenrobot.greendao.identityscope.IdentityScopeType;
// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
/**
* Master of DAO (schema version 4): knows all DAOs.
* Master of DAO (schema version 5): knows all DAOs.
*/
public class DaoMaster extends AbstractDaoMaster {
public static final int SCHEMA_VERSION = 4;
public static final int SCHEMA_VERSION = 5;
/** Creates underlying database table using DAOs. */
public static void createAllTables(Database db, boolean ifNotExists) {
......@@ -29,6 +29,7 @@ public class DaoMaster extends AbstractDaoMaster {
FunctionDao.createTable(db, ifNotExists);
ModifierDao.createTable(db, ifNotExists);
PrinterDeviceBeanDao.createTable(db, ifNotExists);
ExpandInfoDao.createTable(db, ifNotExists);
}
/** Drops underlying database table using DAOs. */
......@@ -41,6 +42,7 @@ public class DaoMaster extends AbstractDaoMaster {
FunctionDao.dropTable(db, ifExists);
ModifierDao.dropTable(db, ifExists);
PrinterDeviceBeanDao.dropTable(db, ifExists);
ExpandInfoDao.dropTable(db, ifExists);
}
/**
......@@ -67,6 +69,7 @@ public class DaoMaster extends AbstractDaoMaster {
registerDaoClass(FunctionDao.class);
registerDaoClass(ModifierDao.class);
registerDaoClass(PrinterDeviceBeanDao.class);
registerDaoClass(ExpandInfoDao.class);
}
public DaoSession newSession() {
......
......@@ -16,6 +16,7 @@ import com.gingersoft.gsa.cloud.database.bean.FoodModifier;
import com.gingersoft.gsa.cloud.database.bean.Function;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import com.gingersoft.gsa.cloud.database.bean.ExpandInfo;
import com.gingersoft.gsa.cloud.database.greendao.ComboItemDao;
import com.gingersoft.gsa.cloud.database.greendao.DiscountDao;
......@@ -25,6 +26,7 @@ import com.gingersoft.gsa.cloud.database.greendao.FoodModifierDao;
import com.gingersoft.gsa.cloud.database.greendao.FunctionDao;
import com.gingersoft.gsa.cloud.database.greendao.ModifierDao;
import com.gingersoft.gsa.cloud.database.greendao.PrinterDeviceBeanDao;
import com.gingersoft.gsa.cloud.database.greendao.ExpandInfoDao;
// THIS CODE IS GENERATED BY greenDAO, DO NOT EDIT.
......@@ -43,6 +45,7 @@ public class DaoSession extends AbstractDaoSession {
private final DaoConfig functionDaoConfig;
private final DaoConfig modifierDaoConfig;
private final DaoConfig printerDeviceBeanDaoConfig;
private final DaoConfig expandInfoDaoConfig;
private final ComboItemDao comboItemDao;
private final DiscountDao discountDao;
......@@ -52,6 +55,7 @@ public class DaoSession extends AbstractDaoSession {
private final FunctionDao functionDao;
private final ModifierDao modifierDao;
private final PrinterDeviceBeanDao printerDeviceBeanDao;
private final ExpandInfoDao expandInfoDao;
public DaoSession(Database db, IdentityScopeType type, Map<Class<? extends AbstractDao<?, ?>>, DaoConfig>
daoConfigMap) {
......@@ -81,6 +85,9 @@ public class DaoSession extends AbstractDaoSession {
printerDeviceBeanDaoConfig = daoConfigMap.get(PrinterDeviceBeanDao.class).clone();
printerDeviceBeanDaoConfig.initIdentityScope(type);
expandInfoDaoConfig = daoConfigMap.get(ExpandInfoDao.class).clone();
expandInfoDaoConfig.initIdentityScope(type);
comboItemDao = new ComboItemDao(comboItemDaoConfig, this);
discountDao = new DiscountDao(discountDaoConfig, this);
foodDao = new FoodDao(foodDaoConfig, this);
......@@ -89,6 +96,7 @@ public class DaoSession extends AbstractDaoSession {
functionDao = new FunctionDao(functionDaoConfig, this);
modifierDao = new ModifierDao(modifierDaoConfig, this);
printerDeviceBeanDao = new PrinterDeviceBeanDao(printerDeviceBeanDaoConfig, this);
expandInfoDao = new ExpandInfoDao(expandInfoDaoConfig, this);
registerDao(ComboItem.class, comboItemDao);
registerDao(Discount.class, discountDao);
......@@ -98,6 +106,7 @@ public class DaoSession extends AbstractDaoSession {
registerDao(Function.class, functionDao);
registerDao(Modifier.class, modifierDao);
registerDao(PrinterDeviceBean.class, printerDeviceBeanDao);
registerDao(ExpandInfo.class, expandInfoDao);
}
public void clear() {
......@@ -109,6 +118,7 @@ public class DaoSession extends AbstractDaoSession {
functionDaoConfig.clearIdentityScope();
modifierDaoConfig.clearIdentityScope();
printerDeviceBeanDaoConfig.clearIdentityScope();
expandInfoDaoConfig.clearIdentityScope();
}
public ComboItemDao getComboItemDao() {
......@@ -143,4 +153,8 @@ public class DaoSession extends AbstractDaoSession {
return printerDeviceBeanDao;
}
public ExpandInfoDao getExpandInfoDao() {
return expandInfoDao;
}
}
......@@ -392,8 +392,7 @@ public class ModifierDaoUtils {
order.setMultiple(c.getDouble(c.getColumnIndex("MULTIPLE")));
if (fid != 0) {
//非公共細項
order.setMaxNumber(c.getInt(c.getColumnIndex("MAX_QTY")));
order.setMinNumber(c.getInt(c.getColumnIndex("MIN_QTY")));
order.setMaxNumber(String.valueOf(c.getInt(c.getColumnIndex("MAX_QTY"))));
String defmodifier = c.getString(c.getColumnIndex("DEFMODIFIER"));
if (!TextUtils.isEmpty(defmodifier) && !", ".equals(defmodifier)) {
order.setDefmodifier(defmodifier);
......
......@@ -29,20 +29,30 @@ public class FunctionManager {
}
public List<Function> getFunctionByResModule(Context context, Class c, String specific) {
public List<Function> getFunctionByResModule(Context context, Class c, FModule[] fModules, String specific) {
String resLoction = c.getSimpleName().toLowerCase() + "/" + specific;
FunctionDaoUtils daoUtils = new FunctionDaoUtils(context);
List<Function> functionList = daoUtils.queryAllFunction();
return filterFunctionByResLoction(functionList, resLoction);
return filterFunctionByResLoction(functionList, fModules, resLoction);
}
private List<Function> filterFunctionByResLoction(List<Function> functionList, String resLoction) {
private List<Function> filterFunctionByResLoction(List<Function> functionList, FModule[] fModules, String resLoction) {
List<Function> functions = new ArrayList<>();
for (int i = 0; i < functionList.size(); i++) {
Function function = functionList.get(i);
if (function.getResUrl().startsWith(resLoction)) {
for (int j = 0; j < fModules.length; j++) {
FModule module = fModules[j];
if(function.getResUrl().equals(module.getKeyRes())){
if (function.getStatus() == 0) {
function.setIconRes(module.getOpenIconRes());
} else {
function.setIconRes(module.getDisableIconRes());
}
}
}
functions.add(function);
}
}
......
package com.gingersoft.gsa.cloud.function;
import com.gingersoft.gsa.cloud.base.R;
import com.gingersoft.gsa.cloud.database.bean.Function;
/**
* 作者:ELEGANT_BIN
* 版本:1/6/0
* 创建日期:2020-04-10
* 修订历史:2020-04-10
* 描述:每個功能模塊對應的key
*/
public class FunctionModule {
public static final class Main{
/**首頁- 點餐*/
public static final FModule [] order = {
new FModule("main/order/table", R.drawable.table_splite,0) ,
new FModule("main/order/delivery", R.drawable.table_paper,0) ,
new FModule("main/order/takeaway", R.drawable.table_skyorder,0),
new FModule("main/order/preorder", R.drawable.table_skyorder,0),
};
/**首頁- 管理*/
public static final FModule [] manager = {
new FModule("main/manager/bill", R.drawable.table_splite,0) ,
new FModule("main/manager/table", R.drawable.table_paper,0) ,
new FModule("main/manager/printer", R.drawable.table_skyorder,0),
new FModule("main/manager/pay", R.drawable.table_skyorder,0),
new FModule("main/manager/discout", R.drawable.table_skyorder,0)
};
/**首頁- 員工管理*/
public static final FModule [] employee = {
new FModule("main/employee/management", R.drawable.table_splite,0) ,
new FModule("main/employee/delivery", R.drawable.table_paper,0) ,
new FModule("main/employee/takeaway", R.drawable.table_skyorder,0)
};
}
public static final class Table{
/**餐檯頁*/
public static final FModule [] bottom = {
new FModule("table/bottom/init", R.drawable.table_init,0) ,
new FModule("table/bottom/move", R.drawable.table_move,0) ,
new FModule("table/bottom/splite", R.drawable.table_splite,0) ,
new FModule("table/bottom/parper", R.drawable.table_paper,0) ,
new FModule("table/bottom/skyorder", R.drawable.table_skyorder,0)
};
/**餐牌頁*/
public static final FModule [] meal = {
new FModule("table/meal/plu", R.drawable.table_paper,0) ,
new FModule("table/meal/discount", R.drawable.table_skyorder,0)
};
/**賬單內容頁*/
public static final FModule [] order = {
new FModule("table/order/send", 0,0) ,
new FModule("table/order/print", 0,0) ,
new FModule("table/order/pay", 0,0) ,
new FModule("table/order/transfer", 0,0) ,
new FModule("table/order/discount", 0,0)
};
}
}
......@@ -21,11 +21,14 @@ import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.Matrix;
import android.widget.Adapter;
import com.gingersoft.gsa.cloud.base.R;
import com.gingersoft.gsa.cloud.constans.Constans;
import com.gingersoft.gsa.cloud.base.utils.other.SPUtils;
import com.gingersoft.gsa.cloud.base.widget.DialogUtils;
import com.gingersoft.gsa.cloud.database.bean.Function;
import com.jess.arms.base.DefaultAdapter;
import java.util.ArrayList;
import java.util.List;
......@@ -43,6 +46,8 @@ public class PrinterUtils {
"0100", "0101", "0110", "0111", "1000", "1001", "1010", "1011",
"1100", "1101", "1110", "1111"};
public static String printMachineCode;
/**
* 初始化打印机
*
......@@ -451,18 +456,29 @@ public class PrinterUtils {
/**
* 顯示修改打印方式的彈窗
*
* @param context
*/
public static void switchPrintMethod(Context context){
public static void switchPrintMethod(Context context, Function function, DefaultAdapter orderTopFunctionAdapter) {
// 顯示切換打印方式的彈窗
new DialogUtils(context, R.layout.print_select_print_method) {
@Override
public void initLayout(ViewHepler hepler, Dialog dialog) {
hepler.setViewClick(R.id.local_print, v -> {
if (function != null) {
PrinterUtils.printMachineCode = "本機";
function.setLable("本機");
orderTopFunctionAdapter.notifyDataSetChanged();
}
SPUtils.put(dialog.getContext(), Constans.DEFAULT_PRINT_METHOD, Constans.LOCAL_PRINT);
dialog.dismiss();
});
hepler.setViewClick(R.id.internet_print, v -> {
if (function != null) {
PrinterUtils.printMachineCode = "網絡";
function.setLable("網絡");
orderTopFunctionAdapter.notifyDataSetChanged();
}
SPUtils.put(dialog.getContext(), Constans.DEFAULT_PRINT_METHOD, Constans.IP_PRINT);
dialog.dismiss();
});
......
......@@ -16,19 +16,8 @@
package com.qmuiteam.qmui.lint;
import com.android.tools.lint.detector.api.Category;
import com.android.tools.lint.detector.api.Detector;
import com.android.tools.lint.detector.api.Implementation;
import com.android.tools.lint.detector.api.Issue;
import com.android.tools.lint.detector.api.JavaContext;
import com.android.tools.lint.detector.api.Project;
import com.android.tools.lint.detector.api.Scope;
import com.android.tools.lint.detector.api.Severity;
import com.intellij.psi.JavaElementVisitor;
import com.intellij.psi.PsiExpression;
import com.intellij.psi.PsiExpressionList;
import com.intellij.psi.PsiMethod;
import com.intellij.psi.PsiMethodCallExpression;
import android.icu.util.ULocale;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
......@@ -40,6 +29,8 @@ import java.io.InputStreamReader;
import java.util.Collections;
import java.util.List;
import javax.inject.Scope;
/**
* 检测是否在 getDrawable 方法中传入了 Vector Drawable,在 4.0 及以下版本的系统中会导致 Crash
* Created by Kayo on 2017/8/24.
......@@ -51,7 +42,7 @@ public class QMUIJavaVectorDrawableDetector extends Detector implements Detector
Issue.create("QMUIGetVectorDrawableWithWrongFunction",
"Should use the corresponding method to get vector drawable.",
"Using the normal method to get the vector drawable will cause a crash on Android versions below 4.0",
Category.CORRECTNESS, 8, Severity.ERROR,
ULocale.Category.CORRECTNESS, 8, Severity.ERROR,
new Implementation(QMUIJavaVectorDrawableDetector.class, Scope.JAVA_FILE_SCOPE));
@Override
......
......@@ -14,5 +14,12 @@
<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="640"/>
</application>
</manifest>
......@@ -28,10 +28,10 @@
android:value="ConfigModule" />
<meta-data
android:name="design_width_in_dp"
android:value="360" />
android:value="360"/>
<meta-data
android:name="design_height_in_dp"
android:value="540" />
android:value="640"/>
</application>
<uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
<uses-permission android:name="android.permission.INTERNET" />
......
......@@ -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.function.FModule;
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;
......@@ -11,6 +12,29 @@ import com.gingersoft.gsa.cloud.table.mvp.ui.activity.TableActivity;
public class ComponentTable implements IComponent {
public static final class Function{
/**餐檯頁*/
public static final FModule[] bottom = {
new FModule("table/bottom/init", R.mipmap.table_init,0) ,
new FModule("table/bottom/move", R.mipmap.table_move,0) ,
new FModule("table/bottom/splite", R.mipmap.table_splite,0) ,
new FModule("table/bottom/parper", R.mipmap.table_paper,0) ,
new FModule("table/bottom/skyorder", R.mipmap.table_skyorder,0)
};
/**餐牌頁*/
public static final FModule [] meal = {
new FModule("table/meal/plu", R.mipmap.table_paper,0) ,
new FModule("table/meal/discount", R.mipmap.table_skyorder,0)
};
/**賬單內容頁*/
public static final FModule [] order = {
new FModule("table/order/send", 0,0) ,
new FModule("table/order/print", 0,0) ,
new FModule("table/order/pay", 0,0) ,
new FModule("table/order/transfer", 0,0) ,
new FModule("table/order/discount", 0,0)
};
}
@Override
public String getName() {
......
......@@ -109,6 +109,8 @@ public interface MealStandContract {
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends BaseOrderContract.Model {
Observable<BaseResult> getCurrentSoldoutFood(RequestBody requestBody);
Observable<BaseRespose> loadOrder(long orderId);
// Observable<BaseRespose> deleteFood(List<Map<Byte, DeleteOrderRequest>> mapsDelete, long orderId, byte type, int reasonId);
......
package com.gingersoft.gsa.cloud.table.mvp.contract;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood;
import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.mvp.IModel;
import com.jess.arms.mvp.IView;
......@@ -9,6 +11,11 @@ import com.jess.arms.mvp.IView;
import java.util.List;
import androidx.recyclerview.widget.RecyclerView;
import io.reactivex.Observable;
import me.jessyan.retrofiturlmanager.RetrofitUrlManager;
import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.POST;
/**
......@@ -66,5 +73,12 @@ public interface SoldoutCtrlContract {
List<Food> queryDB_FoodList(long parentId);
List<ComboItem> queryDB_ComboList(long fid);
Observable<BaseResult> getCurrentSoldoutFood(RequestBody requestBody);
Observable<BaseResult> insertSoldoutCtrl( RequestBody requestBody);
Observable<BaseResult> restoreSoldoutCtrl( RequestBody requestBody);
}
}
......@@ -110,6 +110,12 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model
}
@Override
public Observable<BaseResult> getCurrentSoldoutFood(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.getCurrentSoldoutFood(requestBody);
}
@Override
public Observable<BaseRespose> loadOrder(long orderId) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.loadOrder(orderId);
......
......@@ -2,11 +2,13 @@ package com.gingersoft.gsa.cloud.table.mvp.model;
import android.app.Application;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.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.gingersoft.gsa.cloud.table.mvp.model.service.MealService;
import com.google.gson.Gson;
import com.jess.arms.di.scope.ActivityScope;
import com.jess.arms.integration.IRepositoryManager;
......@@ -16,6 +18,9 @@ import java.util.List;
import javax.inject.Inject;
import io.reactivex.Observable;
import okhttp3.RequestBody;
/**
* ================================================
......@@ -69,4 +74,22 @@ public class SoldoutCtrlModel extends BaseModel implements SoldoutCtrlContract.M
return foodCombo;
}
@Override
public Observable<BaseResult> getCurrentSoldoutFood(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.getCurrentSoldoutFood(requestBody);
}
@Override
public Observable<BaseResult> insertSoldoutCtrl(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.insertSoldoutCtrl(requestBody);
}
@Override
public Observable<BaseResult> restoreSoldoutCtrl(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.restoreSoldoutCtrl(requestBody);
}
}
\ No newline at end of file
package com.gingersoft.gsa.cloud.table.mvp.model.bean;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-04-30
* 修订历史:2020-04-30
* 描述:
*/
public class SoldoutCtrFood {
private long id;
private int restaurantId;
private long brandId;
private Long foodId;
private Long modifierId;
private byte type;
private int remainingNumber = -999999999;
private int useNumber = -999999999;
private String foodName;
private String foodName1;
private String foodName2;
private int selected;
public String getQtyName() {
if (remainingNumber == -999999999) {
return "";
}
if (useNumber == -999999999) {
useNumber = 0;
}
if (remainingNumber == 0) {
return "暫停";
}
if (remainingNumber - useNumber > 0) {
return String.valueOf(remainingNumber - useNumber);
}
if (remainingNumber - useNumber == 0) {
return "售罄";
}
return "";
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName(){
return foodName;
}
public String getFoodName() {
return foodName;
}
public void setFoodName(String foodName) {
this.foodName = foodName;
}
public String getFoodName1() {
return foodName1;
}
public void setFoodName1(String foodName1) {
this.foodName1 = foodName1;
}
public String getFoodName2() {
return foodName2;
}
public void setFoodName2(String foodName2) {
this.foodName2 = foodName2;
}
public int getRestaurantId() {
return restaurantId;
}
public void setRestaurantId(int restaurantId) {
this.restaurantId = restaurantId;
}
public long getBrandId() {
return brandId;
}
public void setBrandId(long brandId) {
this.brandId = brandId;
}
public Long getFoodId() {
return foodId;
}
public void setFoodId(Long foodId) {
this.foodId = foodId;
}
public Long getModifierId() {
return modifierId;
}
public void setModifierId(Long modifierId) {
this.modifierId = modifierId;
}
public byte getType() {
return type;
}
public void setType(byte type) {
this.type = type;
}
public int getRemainingNumber() {
return remainingNumber;
}
public void setRemainingNumber(int remainingNumber) {
this.remainingNumber = remainingNumber;
}
public int getUseNumber() {
return useNumber;
}
public void setUseNumber(int useNumber) {
this.useNumber = useNumber;
}
public int getSelected() {
return selected;
}
public void setSelected(int selected) {
this.selected = selected;
}
}
package com.gingersoft.gsa.cloud.table.mvp.model.bean.request;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2020-05-06
* 修订历史:2020-05-06
* 描述:
*/
public class SoldoutRequest {
public static class Insert {
private long brandId;
private int restaurantId;
private Long foodId;
private Long modifierId;
private int type;
private int remainingNumber;
private long uid;
public long getBrandId() {
return brandId;
}
public void setBrandId(long brandId) {
this.brandId = brandId;
}
public int getRestaurantId() {
return restaurantId;
}
public void setRestaurantId(int restaurantId) {
this.restaurantId = restaurantId;
}
public long getFoodId() {
return foodId;
}
public void setFoodId(long foodId) {
this.foodId = foodId;
}
public long getModifierId() {
return modifierId;
}
public void setModifierId(long modifierId) {
this.modifierId = modifierId;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public int getRemainingNumber() {
return remainingNumber;
}
public void setRemainingNumber(int remainingNumber) {
this.remainingNumber = remainingNumber;
}
public long getUid() {
return uid;
}
public void setUid(long uid) {
this.uid = uid;
}
}
public static class update {
private long id;
/**是否刪除 0 正常 1 刪除*/
private int deletes;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public int getDeletes() {
return deletes;
}
public void setDeletes(int deletes) {
this.deletes = deletes;
}
}
}
......@@ -15,6 +15,7 @@ import retrofit2.http.Body;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.Headers;
import retrofit2.http.POST;
import retrofit2.http.Query;
......@@ -27,6 +28,17 @@ import retrofit2.http.Query;
*/
public interface MealService {
@Headers({"Domain-Name: soldoutctrl"})
@POST("foodChecklist/list" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> getCurrentSoldoutFood(@Body RequestBody requestBody);
@Headers({"Domain-Name: soldoutctrl"})
@POST("foodChecklist/insert" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> insertSoldoutCtrl(@Body RequestBody requestBody);
@Headers({"Domain-Name: soldoutctrl"})
@POST("foodChecklist/updatePrg" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> restoreSoldoutCtrl(@Body RequestBody requestBody);
@POST("order/send" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> createOrder(@Body RequestBody requestBody);
......
......@@ -64,7 +64,7 @@ public class AllTablePresenter extends BasePresenter<AllTableContract.Model, All
super(model, rootView);
this.IView = (AllTableFragment) rootView;
Activity activity = IView.getActivity();
Activity activity = IView.getCurrentActivity();
if (activity instanceof TableActivity) {
mTableActivity = (TableActivity) activity;
} else if (activity instanceof OrderContentActivity) {
......
......@@ -128,6 +128,10 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
resetSelected();
initOrderAdapter();
initItemClickListener();
addSentOrderMoney();
addOrderRounding();
}
@Override
......@@ -139,44 +143,6 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
this.mApplication = null;
}
protected List<Discount> getDiscountList() {
List<Discount> discountList = new ArrayList<>();
Discount discount = new Discount();
discount.setId((long) 1);
discount.setDiscount_value((double) 10);
discount.setType(1);
discount.setStatus(0);
discount.setRemark("9折");
discountList.add(discount);
Discount discount2 = new Discount();
discount2.setId((long) 2);
discount2.setDiscount_value((double) 20);
discount2.setType(1);
discount2.setStatus(0);
discount2.setRemark("8折");
discountList.add(discount2);
Discount discount3 = new Discount();
discount3.setId((long) 3);
discount3.setDiscount_value((double) 30);
discount3.setType(1);
discount3.setStatus(0);
discount3.setRemark("7折");
discountList.add(discount3);
Discount discount4 = new Discount();
discount4.setId((long) 4);
discount4.setAmount((double) 20);
discount4.setType(0);
discount4.setStatus(0);
discount4.setRemark("立減20");
discountList.add(discount4);
return discountList;
}
private void initOrderAdapter() {
if (mSelectMealAdapter == null) {
mSelectMealAdapter = new SelectMealAdapter(IActivity, mOrderFoodList, this);
......@@ -186,8 +152,6 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
if (mOrderMoneyAdapter == null) {
mOrderMoneyAdapter = new OrderMoneyAdapter(IActivity, mOrderMoneyList, cashStr);
}
addSentOrderMoney();
initItemClickListener();
}
private void initItemClickListener() {
......@@ -213,7 +177,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
mOrderContentActivity.initOrderDetail();
}
//更新折扣
updateDiscountItem();
updateOrderMoneyItem();
}
@Override
......@@ -224,7 +188,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
mOrderContentActivity.initOrderDetail();
}
//更新折扣
updateDiscountItem();
updateOrderMoneyItem();
}
@Override
......@@ -241,7 +205,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
if (mMealStandPresenter != null) {
mMealStandPresenter.updateOrderFoodNumber();
}
updateDiscountItem();
updateOrderMoneyItem();
mSelectMealAdapter.notifyDataSetChanged();
}
......@@ -329,6 +293,14 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
}
/**
* 更新賬單金額
*/
protected void updateOrderMoneyItem(){
updateOrderDiscount();
updateOrderRounding();
}
/**
* 添加賬單折扣
*
* @param discount
......@@ -361,7 +333,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
/**
* 更新折扣金額
*/
protected void updateDiscountItem() {
protected void updateOrderDiscount() {
boolean updateData = false;
double totalMoney = 0;
......@@ -393,9 +365,23 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
}
//參與折扣
orderDetailsBean.setAblediscount(1);
if (!orderDetailsBean.isNew()) {
if (orderDetailsBean.getDiscountStatus() == 0) {
//此食品新增折扣
orderDetailsBean.setDiscountStatus(1);
}
}
}
}
}
} else {
for (int i = 0; i < orderDetailList.size(); i++) {
if (start_position <= i && i <= end_position) {
OrderDetail orderDetailsBean = orderDetailList.get(i);
orderDetailsBean.setAblediscount(0);
orderDetailsBean.setDiscountStatus(0);
}
}
}
if (updateData) {
mSelectMealAdapter.notifyDataSetChanged();
......@@ -403,6 +389,38 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
}
/**
* 添加賬單小數行
*/
protected void addOrderRounding() {
double m1 = getTotalAmount();
double m2 = MoneyUtil.getOrderRounding(m1);
double roundingMoney = 0.0;
if (m2 != 0) {
roundingMoney = m2 - MoneyUtil.get_ItemDecimals_money(m1);
}
if (roundingMoney != 0.00) {
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 updateOrderRounding(){
for (BillOrderMoney orderMoney: mOrderMoneyList) {
if(orderMoney.getType() == BillOrderMoney.ROUNDING_TYPE){
mOrderMoneyList.remove(orderMoney);
addOrderRounding();
}
}
}
/**
* 創建訂單后保存OrderId
*
* @param orderId
......@@ -419,7 +437,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
OrderDetail datasBean = mOrderFoodList.get(i);
datasBean.setSelected(0);
}
if(mSelectMealAdapter != null) {
if (mSelectMealAdapter != null) {
mSelectMealAdapter.notifyDataSetChanged();
}
}
......@@ -489,7 +507,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
for (int i = orderDetails.size() - 1; i >= 0; i--) {
if (start_position <= i && i <= end_position) {
OrderDetail orderDetail1 = orderDetails.get(i);
if(orderDetail1.getType() != DISCOUNT_TYPE){
if (orderDetail1.getType() != DISCOUNT_TYPE) {
builder.append(orderDetail1.getId());
builder.append(",");
}
......@@ -670,7 +688,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
request.setAblediscount(item.getAblediscount());
request.setDiscountId(getDiscountIdByParentId(foodList, mainParentId));
request.setLunchboxPrice(0);
if (item.isNew() || item.getDiscountStatus() == 0) {
if (item.isNew() || item.getDiscountStatus() == 1) {
//這裡只添加新食品或有新折扣食品
orderItems.add(request);
//保存新食品,打印用到
......@@ -729,7 +747,7 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
return null;
}
/**
* 返回未送單食品列表
*
......
......@@ -3,16 +3,20 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter;
import android.app.Activity;
import android.app.Application;
import android.content.Context;
import android.text.TextUtils;
import android.view.View;
import com.gingersoft.gsa.cloud.base.utils.LanguageUtils;
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.constans.MealConstant;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood;
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;
import com.gingersoft.gsa.cloud.table.mvp.ui.widget.ChooseNumberDialog;
import com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog;
import com.jess.arms.integration.AppManager;
import com.jess.arms.di.scope.FragmentScope;
import com.jess.arms.mvp.BasePresenter;
......@@ -60,7 +64,7 @@ public class FineItemAllPresenter extends BasePresenter<FineItemAllContract.Mode
private List<Modifier> mFineItemTwoList = new ArrayList<>();
//所有沽清数据
// private List<CurrentSoldoutFood.DatasBean> mCurrentSlodoutFoodList_Full = null;
private List<SoldoutCtrFood> mCurrentSlodoutFoodList_Full = null;
//记录第一层细项上次选中的食品种类
private int mFineItemOneLastPosition = -1;
......@@ -98,7 +102,6 @@ public class FineItemAllPresenter extends BasePresenter<FineItemAllContract.Mode
public void initItemListener(Context context) {
mFineItemAllAdapter.setOnItemClickListener(new FineItemOneAdapter.OnItemClickListener() {
@Override
public void onItemClick(Modifier datasBean, int position) {
......@@ -111,21 +114,7 @@ public class FineItemAllPresenter extends BasePresenter<FineItemAllContract.Mode
MealStandActivity mealStandActivity = (MealStandActivity) context;
if (datasBean.isParent()) {
// if (datasBean.isModKeyboard()) {
// //获取细项备注数据,这里为了拿到最大最小数
//// List<Modifier> modifierList = mealStandActivity.getMealStandModel().queryDB_ComboSelfDetailList(datasBean.getFid(), MealStandModel.modifierMode_Add);
//// for (int i = 0; i < modifierList.size(); i++) {
//// String fid1 = modifierList.get(i).getFid();
//// String fid2 = datasBean.getFid();
//// if (fid1.equals(fid2)) {
// mealStandActivity.getMealStandPresenter().addModalKeyBoardModfier(datasBean);
// mealStandActivity.getMealStandPresenter().displayModalKeyBoardDialog();
//// break;
//// }
//// }
// } else {
initChildFineItemItemData(datasBean.getMid());
// }
} else {
addModifierItem(datasBean);
}
......@@ -158,26 +147,21 @@ public class FineItemAllPresenter extends BasePresenter<FineItemAllContract.Mode
}
private void addModifierItem(Modifier datasBean) {
int OR_Qty = datasBean.getMaxNumber();
String OR_Qty = datasBean.getMaxNumber();
int Qty = datasBean.getNumber();
boolean isSoldout = false;
// if (datasBean.isSoldout() || OR_Qty.equalsIgnoreCase("售罄") || OR_Qty.equalsIgnoreCase("暫停")) {
// isSoldout = true;
// } else if (!TextUtils.isEmpty(OR_Qty)) {
// isSoldout = Integer.parseInt(OR_Qty) <= Qty;
// }
// if (isSoldout) {
// String Showtile = LanguageUtils.get_language_system(mApplication, "meal.Qty.short", "%s數量不足(meal.Qty.short)");
// Showtile = Showtile.format(Showtile, AndroidSettingUtils.getDataLanguage(datasBean.getDesc1(), datasBean.getDesc2(), datasBean.getDesc3()));
// TitleDialog.showTitledialog(IActivity, Showtile,
// LanguageUtils.get_language_system(mApplication, "comm.title", "qmui_icon_dialog_surprised"),
// LanguageUtils.get_language_system(mApplication, "comm.BtnOk", "ok"),
// "", null);
// } else {
EventBus.getDefault().post(datasBean, MealConstant.ADD_FOOD_MODIFIER);
// }
if (datasBean.isSoldout() || OR_Qty.equalsIgnoreCase("售罄") || OR_Qty.equalsIgnoreCase("暫停")) {
isSoldout = true;
} else if (!TextUtils.isEmpty(OR_Qty)) {
isSoldout = Integer.parseInt(OR_Qty) <= Qty;
}
if (isSoldout) {
String msg = LanguageUtils.get_language_system(mApplication, "meal.Qty.short", "["+datasBean+"]數量不足(meal.Qty.short)");
CommonTipDialog.showSurpisedDialog(IActivity,msg,null,null,null,null,null);
} else {
EventBus.getDefault().post(datasBean, MealConstant.ADD_FOOD_MODIFIER);
}
mFineItemAllAdapter.notifyDataSetChanged();
}
......@@ -187,48 +171,49 @@ public class FineItemAllPresenter extends BasePresenter<FineItemAllContract.Mode
if (datasBean.isParent()) {
initChildFineItemItemData(datasBean.getMid());
} else {
//操作類型(暂停操作、恢复操作)
if (!isStopOpeart(datasBean)) {
showInputNumberDialog(datasBean, context);
}
// //操作類型(暂停操作、恢复操作)
// if (!isStopOpeart(datasBean)) {
// showInputNumberDialog(datasBean, context);
// }
EventBus.getDefault().post(datasBean, MealConstant.SOLDOUT_MODIFIER);
}
}
private void showInputNumberDialog(Modifier datasBean, Context context) {
//选择沽清的数量
ChooseNumberDialog inputNumberDialog = new ChooseNumberDialog(context);
inputNumberDialog.builder();
inputNumberDialog.setOnClickListener(new ChooseNumberDialog.OnClickListener() {
@Override
public void onComfirmClick(String number) {
// EventBus.getDefault().post(new InsertSoldoutCtrlEvent(datasBean.getMID(), number), "InsertSoldoutCtrlEvent");
}
@Override
public void onBackPage() {
}
});
inputNumberDialog.setType(2);
inputNumberDialog.setCancelable(true);
inputNumberDialog.show();
}
private boolean isStopOpeart(Modifier datasBean) {
boolean isStopOpeart = false;
// if (mCurrentSlodoutFoodList_Full != null && mCurrentSlodoutFoodList_Full.size() > 0) {
// for (CurrentSoldoutFood.DatasBean csf : mCurrentSlodoutFoodList_Full) {
// if (csf.getItemID().equals(datasBean.getMID()) && csf.getType().equals("M")) {
// if (!TextUtils.isEmpty(csf.get_QtyName())) {
// isStopOpeart = true;
// //暂停或者售罄直接提示恢复
// EventBus.getDefault().post(csf, "toRestoreBeforeEvent");
// }
// }
// private void showInputNumberDialog(Modifier datasBean, Context context) {
// //选择沽清的数量
// ChooseNumberDialog inputNumberDialog = new ChooseNumberDialog(context);
// inputNumberDialog.builder();
// inputNumberDialog.setOnClickListener(new ChooseNumberDialog.OnClickListener() {
// @Override
// public void onComfirmClick(String number) {
//// EventBus.getDefault().post(new InsertSoldoutCtrlEvent(datasBean.getMID(), number), "InsertSoldoutCtrlEvent");
// }
// }
return isStopOpeart;
}
//
// @Override
// public void onBackPage() {
//
// }
// });
// inputNumberDialog.setType(2);
// inputNumberDialog.setCancelable(true);
// inputNumberDialog.show();
// }
// private boolean isStopOpeart(Modifier datasBean) {
// boolean isStopOpeart = false;
//// if (mCurrentSlodoutFoodList_Full != null && mCurrentSlodoutFoodList_Full.size() > 0) {
//// for (SoldoutCtrFood.DatasBean csf : mCurrentSlodoutFoodList_Full) {
//// if (csf.getItemID().equals(datasBean.getMID()) && csf.getType().equals("M")) {
//// if (!TextUtils.isEmpty(csf.get_QtyName())) {
//// isStopOpeart = true;
//// //暂停或者售罄直接提示恢复
//// EventBus.getDefault().post(csf, "toRestoreBeforeEvent");
//// }
//// }
//// }
//// }
// return isStopOpeart;
// }
public void initModMsgFineItemData(long mid) {
......@@ -244,7 +229,7 @@ public class FineItemAllPresenter extends BasePresenter<FineItemAllContract.Mode
return;
}
setFid(modifierList,mid);
setFid(modifierList, mid);
mFineItemOneList.clear();
mFineItemOneList.addAll(modifierList);
......@@ -313,7 +298,7 @@ public class FineItemAllPresenter extends BasePresenter<FineItemAllContract.Mode
datasBean.setBgColor(android.graphics.Color.parseColor("#FFFF0000"));
modifierList.add(0, datasBean);
setFid(modifierList,fid);
setFid(modifierList, fid);
mFineItemTwoList.clear();
mFineItemTwoList.addAll(modifierList);
......@@ -324,14 +309,14 @@ public class FineItemAllPresenter extends BasePresenter<FineItemAllContract.Mode
mRootView.getRecycle_fine_adll().setVisibility(View.INVISIBLE);
}
// public void updateCurrentSlodoutFoodList_Full(List<CurrentSoldoutFood.DatasBean> event) {
// this.mCurrentSlodoutFoodList_Full = event;
// mFineItemAllAdapter.setmCurrentSlodoutFoodList_Full(event);
// mFineItemAllAdapter.notifyDataSetChanged();
//
//// mFineItemTwoAdapter.setmCurrentSlodoutFoodList_Full(event);
// mFineItemTwoAdapter.notifyDataSetChanged();
// }
public void updateCurrentSlodoutFoodList_Full(List<SoldoutCtrFood> event) {
this.mCurrentSlodoutFoodList_Full = event;
mFineItemAllAdapter.setCurrentSlodoutFoodList_Full(event);
mFineItemAllAdapter.notifyDataSetChanged();
mFineItemTwoAdapter.setCurrentSlodoutFoodList_Full(event);
mFineItemTwoAdapter.notifyDataSetChanged();
}
private void setFid(List<Modifier> fineItemList, long fid) {
if (fineItemList == null)
......
......@@ -57,7 +57,7 @@ public class FineItemKindPresenter extends BasePresenter<FineItemKindContract.Mo
private FineItemTwoAdapter mFineItemTwoAdapter;
//所有沽清数据
// private List<CurrentSoldoutFood.DatasBean> mCurrentSlodoutFoodList_Full = null;
// private List<SoldoutCtrFood.DatasBean> mCurrentSlodoutFoodList_Full = null;
private List<Modifier> mFineItemOneList = new ArrayList<>();
private List<Modifier> mFineItemTwoList = new ArrayList<>();
......@@ -171,7 +171,7 @@ public class FineItemKindPresenter extends BasePresenter<FineItemKindContract.Mo
private void addModifierItem(Modifier datasBean) {
int OR_Qty = datasBean.getMaxNumber();
String OR_Qty = datasBean.getMaxNumber();
int Qty = datasBean.getNumber();
boolean isSoldout = false;
......@@ -219,7 +219,7 @@ public class FineItemKindPresenter extends BasePresenter<FineItemKindContract.Mo
private boolean isStopOpeart(Modifier datasBean) {
boolean isStopOpeart = false;
// if (mCurrentSlodoutFoodList_Full != null && mCurrentSlodoutFoodList_Full.size() > 0) {
// for (CurrentSoldoutFood.DatasBean csf : mCurrentSlodoutFoodList_Full) {
// for (SoldoutCtrFood.DatasBean csf : mCurrentSlodoutFoodList_Full) {
// if (csf.getItemID().equals(datasBean.getMID()) && csf.getType().equals("M")) {
// if (!TextUtils.isEmpty(csf.get_QtyName())) {
// isStopOpeart = true;
......@@ -294,13 +294,13 @@ public class FineItemKindPresenter extends BasePresenter<FineItemKindContract.Mo
modifier.setFid(fid);
}
}
// public void updateCurrentSlodoutFoodList_Full1(List<CurrentSoldoutFood.DatasBean> event) {
// public void updateCurrentSlodoutFoodList_Full1(List<SoldoutCtrFood.DatasBean> event) {
// this.mCurrentSlodoutFoodList_Full = event;
// mFineItemOneAdapter.setmCurrentSlodoutFoodList_Full(event);
// mFineItemOneAdapter.notifyDataSetChanged();
// }
//
// public void updateCurrentSlodoutFoodList_Full2(List<CurrentSoldoutFood.DatasBean> event) {
// public void updateCurrentSlodoutFoodList_Full2(List<SoldoutCtrFood.DatasBean> event) {
// mFineItemTwoAdapter.setmCurrentSlodoutFoodList_Full(event);
// mFineItemTwoAdapter.notifyDataSetChanged();
// }
......
......@@ -13,6 +13,8 @@ import com.gingersoft.gsa.cloud.base.common.bean.OrderBean;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
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.JsonUtils;
import com.gingersoft.gsa.cloud.base.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.base.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.database.bean.ComboItem;
......@@ -26,6 +28,7 @@ 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.BaseRespose;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.FoodReason;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.AddOrderRequest;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.CreateOrderRequest;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.DeleteOrderRequest;
......@@ -35,15 +38,17 @@ import com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.DiscountAdapter;
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.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.ComboAdapter;
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.ui.widget.dialog.CommonTipDialog;
import com.jess.arms.base.DefaultAdapter;
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.jess.arms.utils.ZipHelper;
import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
......@@ -63,9 +68,13 @@ import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber;
import okhttp3.FormBody;
import okhttp3.MediaType;
import okhttp3.RequestBody;
import static com.gingersoft.gsa.cloud.table.mvp.ui.activity.SoldoutCtrlActivity.FOOD_GROUP_TYPE;
import static com.gingersoft.gsa.cloud.table.mvp.ui.activity.SoldoutCtrlActivity.FOOD_TYPE;
/**
* ================================================
......@@ -119,6 +128,9 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
//折扣数据
private List<Discount> mDiscountList = new ArrayList<>();
//沽清食品數據
private List<SoldoutCtrFood> mSoldoutCtrList = new ArrayList<>();
private boolean RvMealClicked;
@Inject
......@@ -153,6 +165,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
}
}
public void initAdapter() {
if (mSelectMealAdapter != null) {
mRootView.setSelectFoodAdapter(mSelectMealAdapter);
......@@ -163,7 +176,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
// mRootView.setFoodGroupAdapter(mFoodGroupAdapter);
// }
if (mFoodAdapter == null) {
mFoodAdapter = new FoodAdapter(IActivity, mFoodList);
mFoodAdapter = new FoodAdapter(IActivity, mFoodList, 1);
mRootView.setFoodAdapter(mFoodAdapter);
}
if (mComboAdapter == null) {
......@@ -225,6 +238,9 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
}
RvMealClicked = false;
mCurrentOrderDetailBean = OrderDetail.foodTransOrderDetails(datasBean, 1);
//更新最大可選數
setFoodMaxQty(datasBean,true);
//加載套餐食品
loadComboData(mCurrentOrderDetailBean, false);
addFoodItemBefore(mCurrentOrderDetailBean);
updateOrderFoodNumber();
......@@ -252,8 +268,8 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
mCurrentOrderDetailBean = OrderDetail.comboTransOrderDetail(datasBean, id, 1, OrderDetail.COMBO_PROP, RvMealClicked);
//添加子项
addComboItem(mCurrentOrderDetailBean);
//更新折扣
updateDiscountItem();
//更新賬單金額
updateOrderMoneyItem();
}
});
mModifierAdapter.setOnItemClickListener(new ModifierAdapter.OnItemClickListener() {
......@@ -280,8 +296,8 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
// loadModifierData(mCurrentOrderDetailBean.getProductId());
// } else {
addModifierItem(datasBean);
//更新折扣
updateDiscountItem();
//更新賬單金額
updateOrderMoneyItem();
// }
}
});
......@@ -356,6 +372,9 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
} else {
addPosition = mSelectMealAdapter.addFoodItem(mCurrentOrderDetailBean);
}
setModifierMaxQty(datasBean,true);
mRootView.setMealRvScrollToPosition(addPosition);
}
......@@ -400,7 +419,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
mRootView.setModifierTop(0);
}
isSelectedMeal = isSelectedMeal && (comboItemList.size() > 0 || modifierList.size() > 0);
// isSelectedMeal = isSelectedMeal && (comboItemList.size() > 0 || modifierList.size() > 0);
boolean autoMod = food.getAutoMod() == 1 && (comboItemList.size() > 0 || modifierList.size() > 0);
if (isSelectedMeal || autoMod) {
mRootView.showViewModeVisibility(MealConstant.combo_ViewMode, MealConstant.modifier_ViewMode);
......@@ -412,6 +431,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
updateModifierData(modifierList);
}
/**
* 裁減掉已超出的細項
*
......@@ -485,7 +505,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
for (int i = 0; i < numberAndCutPositionMap.size(); i++) {
String[] numberAndCutPositionStr = numberAndCutPositionMap.valueAt(i).split("_");
int number = Integer.parseInt(numberAndCutPositionStr[0]);
int maxQty = modifier.getMaxNumber();
int maxQty = Integer.parseInt(modifier.getMaxNumber());
if (numberAndCutPositionStr.length > 1 && !TextUtils.isEmpty(numberAndCutPositionStr[1])) {
int cutPosition = Integer.parseInt(numberAndCutPositionStr[1]);
if (maxQty <= number && cutPosition < mOrderFoodList.size()) {
......@@ -560,6 +580,142 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
return -1;
}
/**
* 設置食品沽清數據
*/
public void setFoodSoldoutCtrData(){
clearFoodSoldoutCtrData();
for (SoldoutCtrFood scc : mSoldoutCtrList) {
for (Food foodGroupBean : mFoodGroupList) {
if (scc.getType() == FOOD_GROUP_TYPE && scc.getFoodId() != null && foodGroupBean.getId() != null && foodGroupBean.getId().equals(scc.getFoodId())) {
String qty = scc.getQtyName();
foodGroupBean.setMaxNumber(qty);
foodGroupBean.setCurrentMaxNumber(qty);
}
}
for (Food foodBean : mFoodList) {
if (scc.getType() == FOOD_TYPE && scc.getFoodId() != null && foodBean.getId() != null && foodBean.getId().equals(scc.getFoodId())) {
String qty = scc.getQtyName();
foodBean.setMaxNumber(qty);
foodBean.setCurrentMaxNumber(qty);
}
}
}
IActivity.getFoodGroupGridViewAdapter().notifyDataSetChanged();
mFoodAdapter.notifyDataSetChanged();
}
private void clearFoodSoldoutCtrData() {
for (Food foodGroupBean : mFoodGroupList) {
foodGroupBean.setMaxNumber("");
foodGroupBean.setCurrentMaxNumber("");
}
for (Food foodBean : mFoodList) {
foodBean.setMaxNumber("");
foodBean.setCurrentMaxNumber("");
}
}
/**
* 设置当前食品还可最多选几份
*
* @param foodBean
*/
public boolean setFoodMaxQty(Food foodBean,boolean isAdd) {
int currentSelectNumber;
if(isAdd){
currentSelectNumber = 1;
}else {
currentSelectNumber = 0;
}
for (int i = 0; i < getNewOrderFoodLists().size(); i++) {
OrderDetail orderFood = getNewOrderFoodLists().get(i);
if (orderFood.getProductId() == foodBean.getId()) {
currentSelectNumber += orderFood.getNumber();
}
}
String User_Qty = foodBean.getMaxNumber();
if (!User_Qty.equals("") && !User_Qty.equals("售罄") && !User_Qty.equals("暫停")) {
int maxQty = Integer.parseInt(User_Qty);
if (maxQty > 0) {
int Currrent_OR__Qty = maxQty - currentSelectNumber;
if (Currrent_OR__Qty < 1) {
foodBean.setCurrentMaxNumber("售罄");
return false;
} else {
foodBean.setCurrentMaxNumber(Currrent_OR__Qty + "");
}
}
}
return true;
}
public void setModifierMaxQty(Modifier modfier,boolean isAdd) {
int currentSelectNumber;
if(isAdd){
currentSelectNumber = 1;
}else {
currentSelectNumber = 0;
}
for (int i = 0; i < getNewOrderFoodLists().size(); i++) {
OrderDetail orderFood = getNewOrderFoodLists().get(i);
if (orderFood.getMid() == modfier.getMid()) {
currentSelectNumber += orderFood.getNumber();
}
}
String User_Qty = modfier.getMaxNumber();
if (!User_Qty.equals("") && !User_Qty.equals("售罄") && !User_Qty.equals("暫停")) {
int maxQty = Integer.parseInt(User_Qty);
if (maxQty > 0) {
int Currrent_OR__Qty = maxQty - currentSelectNumber;
if (Currrent_OR__Qty < 1) {
modfier.setCurrentMaxNumber("售罄");
} else {
modfier.setCurrentMaxNumber(Currrent_OR__Qty + "");
}
}
}
}
public void getCurrentSoldoutFood() {
long restaurantId = GsaCloudApplication.getRestaurantId(mApplication);
RequestBody requestBody = new FormBody.Builder()
.add("restaurantId", String.valueOf(restaurantId))
.build();
mModel.getCurrentSoldoutFood(requestBody)
.subscribeOn(Schedulers.io())
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseResult info) {
if (info != null && info.isSuccess() && info.getData() != null) {
List<SoldoutCtrFood> soldoutCtrFoods = JsonUtils.parseArray(info.getData(), SoldoutCtrFood.class);
if (soldoutCtrFoods != null && soldoutCtrFoods.size() > 0) {
if (mSoldoutCtrList.size() > 0) {
mSoldoutCtrList.clear();
}
mSoldoutCtrList.addAll(soldoutCtrFoods);
setFoodSoldoutCtrData();
} else {
if (mSoldoutCtrList.size() > 0) {
mSoldoutCtrList.clear();
}
}
}else {
if (mSoldoutCtrList.size() > 0) {
mSoldoutCtrList.clear();
}
}
}
});
}
public void createOrder() {
CreateOrderRequest request = getCreateOrderRequest(getOrderFoodLists());
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(request));
......@@ -734,10 +890,8 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
int type = 1;
mModel.getRestaurantFoodReason(restaurantId, type)
.subscribeOn(Schedulers.io())
// .doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
// .doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<FoodReason>(mErrorHandler) {
......@@ -781,6 +935,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
dialog.dismiss();
if (mCancelFoodDialog != null) {
mCancelFoodDialog.build().dismiss();
mCancelFoodDialog = null;
}
deleteFood(maxNumber, deleteNumber, reasonId);
});
......@@ -837,6 +992,13 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
} else {
int deletePosition = mSelectMealAdapter.removeFoodItem();
mRootView.setMealRvScrollToPosition(deletePosition);
//更新最大可選數
if (deleteFood != null) {
Food orderBean = getOrderByOrderDetail(deleteFood);
if (orderBean != null) {
setFoodMaxQty(orderBean,false);
}
}
}
}
updateOrderFoodNumber();
......@@ -857,8 +1019,8 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
}
if (getOrderFoodLists().get(mSelectMealAdapter.getSelect_position()) != null) {
mSelectMealAdapter.removeChildItem();
//更新折扣
updateDiscountItem();
//更新賬單金額
updateOrderMoneyItem();
updateOrderFoodNumber();
}
......@@ -930,36 +1092,6 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
updateOrderFoodNumber();
}
/**
* 设置当前食品还可最多选几份
*
* @param foodBean
*/
public boolean setUserMaxQty(Food foodBean) {
int currentSelectNumber = 0;
for (int i = 0; i < getOrderFoodLists().size(); i++) {
OrderDetail orderFood = getOrderFoodLists().get(i);
if (orderFood.getId() == foodBean.getId()) {
currentSelectNumber += orderFood.getNumber();
}
}
// String User_Qty = foodBean.getOR_Qty();
// if (!User_Qty.equals("") && !User_Qty.equals("售罄") && !User_Qty.equals("暫停")) {
// int maxQty = Integer.parseInt(User_Qty);
// if (maxQty > 0) {
// int Currrent_OR__Qty = maxQty - currentSelectNumber;
// if (Currrent_OR__Qty < 1) {
// foodBean.setCurrrent_OR_Qty("售罄");
// return false;
// } else {
// foodBean.setCurrrent_OR_Qty(Currrent_OR__Qty + "");
// }
// }
// }
return true;
}
/**
* 添加食品条件过滤
......@@ -973,13 +1105,12 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
return true;
}
// String User_Qty = foodBean.getOR_Qty();
// if (!TextUtils.isEmpty(User_Qty)) {
// TitleDialog.showTitledialog(IActivity, foodBean.getName()
// + LanguageUtils.get_language_system(IActivity, "Comm.pause", "已暫停(Comm.pause)"),
// "", LanguageUtils.get_language_system(IActivity, "comm.ok", "ok(comm.ok)"), "", null);
// return false;
// }
String User_Qty = foodBean.getCurrentMaxNumber();
if (!TextUtils.isEmpty(User_Qty)) {
String msg = "["+foodBean.getFoodName() +"]" + LanguageUtils.get_language_system(IActivity, "Comm.pause", "已暫停");
CommonTipDialog.showSurpisedDialog(IActivity,msg,null,null,null,null,null);
return false;
}
return true;
}
......@@ -993,35 +1124,14 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
return false;
}
// String User_Qty = foodBean.getCurrrent_OR_Qty();
//
// if (!TextUtils.isEmpty(User_Qty)) {
// if (User_Qty.equals("售罄") || User_Qty.equals("暫停")) {
// TitleDialog.showTitledialog(IActivity, foodBean.getName()
// + LanguageUtils.get_language_system(IActivity, "Comm.pause", "已暫停(Comm.pause)"),
// "", LanguageUtils.get_language_system(IActivity, "comm.ok", "ok(comm.ok)"), "", null);
// return false;
// }
// }
//
// if (GSAApplication.tableContract.getMember() == null) {
// //当前食品需要会员积分
// if (foodBean.getPointsRedeem() > 0) {
// mRootView.showMessage(LanguageUtils.get_language_system(mApplication, "unused_members_can.not.order.food", "積分食品,未使用會員,不可點選") + "\"" + foodBean.getName() + "\"");
// return false;
// }
// } else {
// if (GSAApplication.tableContract.getMember().getDatas() != null) {
// //如果没有会员,则pointsadd=5是加5分 pointsredeem=5是減5分
// //當一張臺號沒有會員登錄時判定積分為0 不能為負數
// // 此時call pointsredeem=5 的食物 不給過
// //點選pointsadd=5的食物 0+5 是正數 這個給過
// if (foodBean.getPointsRedeem() > 0 && GSAApplication.tableContract.getMember().getDatas().getData().getMemberPoint() < foodBean.getPointsRedeem()) {
// mRootView.showMessage(LanguageUtils.get_language_system(mApplication, "insufficient.points.can.not.selected", "積分食品,會員積分不足,不可點選") + "\"" + foodBean.getName() + "\"");
// return false;
// }
// }
// }
String User_Qty = foodBean.getCurrentMaxNumber();
if (!TextUtils.isEmpty(User_Qty)) {
if (User_Qty.equals("售罄") || User_Qty.equals("暫停")) {
String msg = "["+foodBean.getFoodName() +"]"+ LanguageUtils.get_language_system(IActivity, "Comm.pause", "已暫停");
CommonTipDialog.showSurpisedDialog(IActivity,msg,null,null,null,null,null);
return false;
}
}
return true;
}
......@@ -1097,6 +1207,16 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
return null;
}
public Food getOrderByOrderDetail(OrderDetail orderFood) {
for (int i = 0; i < mFoodList.size(); i++) {
Food foodBean = mFoodList.get(i);
if (orderFood.getProductId() == foodBean.getId()) {
return foodBean;
}
}
return null;
}
/**
* 標識食品是否为组合食品
*
......@@ -1240,7 +1360,6 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
/**
* 全選
*
*/
public void setSelectAll() {
for (OrderDetail item : mOrderFoodList) {
......@@ -1256,7 +1375,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
for (OrderDetail item : mOrderFoodList) {
if (item.getSelected() == 0) {
item.setSelected(1);
}else {
} else {
item.setSelected(0);
}
}
......@@ -1272,7 +1391,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
if (item.getSelected() != 0) {
//往下找
int nextIndex = i + 1;
if(item.getItemType() == 1){
if (item.getItemType() == 1) {
mOrderFoodList.add(i + 1, new OrderDetail(modifierItem));
}
}
......@@ -1314,15 +1433,21 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
int end_position = mSelectMealAdapter.getSelect_full_end_position();
for (int i = 0; i < mOrderFoodList.size(); i++) {
if (start_position <= i && i <= end_position) {
OrderDetail orderDetail1 = mOrderFoodList.get(i);
if (orderDetail1.getProp() == OrderDetail.DISCOUNT_PROP) {
OrderDetail orderDetailsBean = mOrderFoodList.get(i);
if (orderDetailsBean.getProp() == OrderDetail.DISCOUNT_PROP) {
//折上折減去以折扣金額
discount = MoneyUtil.sub(discount, orderDetail1.getPrice());
discount = MoneyUtil.sub(discount, orderDetailsBean.getPrice());
} else {
discount = MoneyUtil.sum(discount, orderDetail1.getPrice());
discount = MoneyUtil.sum(discount, orderDetailsBean.getPrice());
}
//參與折扣
orderDetail1.setAblediscount(1);
orderDetailsBean.setAblediscount(1);
if (!orderDetailsBean.isNew()) {
if (orderDetailsBean.getDiscountStatus() == 0) {
//此食品新增折扣
orderDetailsBean.setDiscountStatus(1);
}
}
}
}
return discount;
......@@ -1417,4 +1542,8 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
public SelectMealAdapter getSelectMealAdapter() {
return mSelectMealAdapter;
}
public List<SoldoutCtrFood> getSoldoutCtrList() {
return mSoldoutCtrList;
}
}
......@@ -3,6 +3,7 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter;
import android.app.Application;
import android.graphics.Color;
import android.os.CountDownTimer;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.TextView;
......@@ -121,18 +122,18 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
mRootView.setOrderDetailAdapter(mOrderMoneyAdapter);
}
mRootView.setFoodAdapter(mSelectMealAdapter);
setPrinterMachineName();
}
public void initItemListener() {
mOrderTopFunctionAdapter.setOnItemClickListener(new DefaultAdapter.OnRecyclerViewItemClickListener() {
mOrderTopFunctionAdapter.setOnClickListener(new OrderTopFunctionAdapter.OnClickListener() {
@Override
public void onItemClick(View view, int viewType, Object data, int position) {
public void onItemClick(View v, Function function) {
mRootView.recordOperat(true);
if (XClickUtil.isFastDoubleClick(view, 1000)) {
if (XClickUtil.isFastDoubleClick(v, 1000)) {
return;
}
Function function = (Function) data;
switch (function.getResName()) {
case "送單":
sendOrder(false);
......@@ -168,6 +169,14 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
break;
}
}
@Override
public boolean onItemLongClick(View v, Function datasBean) {
if (datasBean.getResName().equals("印單") || datasBean.getResName().equals("送單")) {
PrinterUtils.switchPrintMethod(IActivity,datasBean, mOrderTopFunctionAdapter);
}
return false;
}
});
mOrderMoneyAdapter.setOnItemClickListener(new OrderMoneyAdapter.OnItemClickListener() {
......@@ -181,14 +190,6 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
removeOrderDetailItem(position);
}
});
mOrderTopFunctionAdapter.setmOnLongClickListener((v, position) -> {
if (mFunctionList != null) {
if (mFunctionList.get(position).getResName().equals("印單") || mFunctionList.get(position).getResName().equals("送單")) {
PrinterUtils.switchPrintMethod(v.getContext());
}
}
return false;
});
}
public void initTopFunctionData() {
......@@ -211,6 +212,18 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
}
}
public void setPrinterMachineName() {
if (!TextUtils.isEmpty(PrinterUtils.printMachineCode)) {
for (Function function : mFunctionList) {
if (function.getResName().equals("印單")) {
function.setLable(PrinterUtils.printMachineCode);
mOrderTopFunctionAdapter.notifyDataSetChanged();
break;
}
}
}
}
protected void createOrder(boolean isPrint) {
CreateOrderRequest request = getCreateOrderRequest(getOrderFoodLists());
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(request));
......@@ -310,7 +323,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
// }
mRootView.sendSuccess();
});
//打印上菜紙
//打印上菜紙
// CC.obtainBuilder("Component.Print")
// .setActionName("printActivity")
// .addParam("NewFoods", newFoods)
......@@ -562,7 +575,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
mDiscountDialog.setOnClickListener(new DiscountDialog.Builder.OnClickListener() {
@Override
public void onItemClick(Discount item, int position) {
addOrderDiscount(item,0,false);
addOrderDiscount(item, 0, false);
}
});
}
......
package com.gingersoft.gsa.cloud.table.mvp.presenter;
import android.app.Application;
import android.text.TextUtils;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
import com.gingersoft.gsa.cloud.base.utils.JsonUtils;
import com.gingersoft.gsa.cloud.base.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.base.utils.VibratorUtils;
import com.gingersoft.gsa.cloud.base.utils.gson.GsonUtils;
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.model.bean.SoldoutCtrFood;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.SoldoutRequest;
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.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.ComboAdapter;
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.widget.ChooseNumberDialog;
import com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog;
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 com.jess.arms.utils.RxLifecycleUtils;
import org.simple.eventbus.EventBus;
import org.simple.eventbus.Subscriber;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Inject;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.annotations.NonNull;
import io.reactivex.schedulers.Schedulers;
import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber;
import okhttp3.FormBody;
import okhttp3.MediaType;
import okhttp3.RequestBody;
import static com.gingersoft.gsa.cloud.table.mvp.ui.activity.SoldoutCtrlActivity.FOOD_GROUP_TYPE;
import static com.gingersoft.gsa.cloud.table.mvp.ui.activity.SoldoutCtrlActivity.FOOD_TYPE;
import static com.gingersoft.gsa.cloud.table.mvp.ui.activity.SoldoutCtrlActivity.MODIFIER_TYPE;
/**
......@@ -51,16 +78,29 @@ public class SoldoutCtrlPresenter extends BasePresenter<SoldoutCtrlContract.Mode
private SoldoutCtrlActivity IActivity;
private CurrentSlodoutFoodAdapter mCurrentSlodoutFoodAdapter;
private FoodGroupAdapter mFoodGroupAdapter;
private FoodAdapter mFoodAdapter;
private ComboAdapter mComboAdapter;
//所有沽清数据
private List<SoldoutCtrFood> mCurrentSlodoutFoodList_Full = new ArrayList<>();
//当前沽清类型
private List<SoldoutCtrFood> mCurrentSlodoutFoodList = new ArrayList<>();
//食品数据
private List<Food> mFoodGroupList = new ArrayList<>();
private List<Food> mFoodList = new ArrayList<>();
private List<ComboItem> mFoodComboList = new ArrayList<>();
//细项数据
private List<Modifier> mModifierList = new ArrayList<>();
//记录已沽清选中的Item(默认第一个)
private int mCurrentSlodoutFoodPosition_FoodKind = 0;
private int mCurrentSlodoutFoodPosition_Food = 0;
private int mCurrentSlodoutFoodPosition_FoodFine = 0;
//记录种类上次选中的食品种类
private int mFoodKindLastPosition = -1;
//当前操作类型({0=暂停,1=沽清},2=恢复)
private int mOperatTtpe = -1;
private boolean isInsertSoldoutOperat = false;
@Inject
public SoldoutCtrlPresenter(SoldoutCtrlContract.Model model, SoldoutCtrlContract.View rootView) {
......@@ -78,41 +118,135 @@ public class SoldoutCtrlPresenter extends BasePresenter<SoldoutCtrlContract.Mode
}
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 (mCurrentSlodoutFoodAdapter == null) {
mCurrentSlodoutFoodAdapter = new CurrentSlodoutFoodAdapter(mApplication, mCurrentSlodoutFoodList);
mRootView.setCurrentSoldoutFoodAdapter(mCurrentSlodoutFoodAdapter);
}
if (mFoodAdapter == null) {
mFoodAdapter = new FoodAdapter(mApplication, mFoodList);
mFoodAdapter = new FoodAdapter(mApplication, mFoodList, 2);
mRootView.setFoodAdapter(mFoodAdapter);
}
if (mComboAdapter == null) {
mComboAdapter = new ComboAdapter(IActivity, mFoodComboList);
mRootView.setComboAdapter(mComboAdapter);
}
}
public void initFoodListener() {
mCurrentSlodoutFoodAdapter.setOnItemClickListener(new CurrentSlodoutFoodAdapter.OnItemClickListener() {
@Override
public void onItemClick(SoldoutCtrFood datasBean, int position) {
VibratorUtils.pressButtonSound(mApplication);
if (mCurrentSlodoutFoodList.size() < 1) {
return;
}
switch (mRootView.getSoldoutType()) {
case FOOD_GROUP_TYPE:
mCurrentSlodoutFoodPosition_FoodKind = position;
break;
case FOOD_TYPE:
mCurrentSlodoutFoodPosition_Food = position;
break;
case MODIFIER_TYPE:
mCurrentSlodoutFoodPosition_FoodFine = position;
break;
default:
break;
}
mCurrentSlodoutFoodAdapter.setSelectPosition(position);
mCurrentSlodoutFoodAdapter.notifyDataSetChanged();
String msg = LanguageUtils.get_language_system(mApplication, "whether.recover", "是否恢復[") + datasBean.getName() + "]";
Class[] parameterTypes = {long.class};
Object[] parameters = {datasBean.getId()};
CommonTipDialog.showDoubtDialog(IActivity, msg, SoldoutCtrlPresenter.class, SoldoutCtrlPresenter.this, "restoreSoldoutCtrl", parameterTypes, parameters);
}
});
mFoodAdapter.setOnItemClickListener(new FoodAdapter.OnItemClickListener() {
@Override
public void onItemClick(Food datasBean, int position) {
// loadComboData(datasBean);
VibratorUtils.pressButtonSound(mApplication);
if (mRootView.getSoldoutType() == FOOD_TYPE) {
if (!foodStopOpeart(datasBean)) {
showSoldoutNumberDialog(datasBean.getId(), null);
}
}
}
});
mComboAdapter.setOnItemClickListener(new ComboAdapter.OnItemClickListener() {
}
@Subscriber(tag = MealConstant.SOLDOUT_MODIFIER)
private void soldoutModifierItem(Modifier datasBean) {
if (!modifierStopOpeart(datasBean)) {
showSoldoutNumberDialog(null, datasBean.getMid());
}
}
public boolean foodStopOpeart(Food datasBean) {
boolean isStopOpeart = false;
if (mCurrentSlodoutFoodList_Full != null) {
for (SoldoutCtrFood csf : mCurrentSlodoutFoodList_Full) {
if (csf.getFoodId() != null && datasBean.getId() != null &&
csf.getFoodId().equals(datasBean.getId()) && csf.getType() == FOOD_TYPE) {
if (!TextUtils.isEmpty(csf.getQtyName())) {
isStopOpeart = true;
//暂停或者售罄直接提示恢复
String msg = LanguageUtils.get_language_system(IActivity, "whether.recover", "是否恢復[") + datasBean.getFoodName() + "]";
Class[] parameterTypes = {long.class};
Object[] parameters = {csf.getId()};
CommonTipDialog.showDoubtDialog(IActivity, msg, SoldoutCtrlPresenter.class, this, "restoreSoldoutCtrl", parameterTypes, parameters);
break;
}
}
}
}
return isStopOpeart;
}
private boolean modifierStopOpeart(Modifier datasBean) {
boolean isStopOpeart = false;
if (mCurrentSlodoutFoodList_Full != null) {
for (SoldoutCtrFood csf : mCurrentSlodoutFoodList_Full) {
if (csf.getModifierId() != null) {
if (csf.getModifierId() == datasBean.getMid() && csf.getType() == MODIFIER_TYPE) {
if (!TextUtils.isEmpty(csf.getQtyName())) {
isStopOpeart = true;
//暂停或者售罄直接提示恢复
String msg = LanguageUtils.get_language_system(IActivity, "whether.recover", "是否恢復[") + datasBean.getModifierName() + "]";
Class[] parameterTypes = {long.class};
Object[] parameters = {csf.getId()};
CommonTipDialog.showDoubtDialog(IActivity, msg, SoldoutCtrlPresenter.class, this, "restoreSoldoutCtrl", parameterTypes, parameters);
break;
}
}
}
}
}
return isStopOpeart;
}
public void showSoldoutNumberDialog(Long foodId, Long modifierId) {
//选择沽清的数量
ChooseNumberDialog chooseNumberDialog = new ChooseNumberDialog(IActivity);
chooseNumberDialog.builder();
chooseNumberDialog.setOnClickListener(new ChooseNumberDialog.OnClickListener() {
@Override
public void onItemClick(ComboItem datasBean, int position) {
public void onComfirmClick(String number) {
insertSoldoutCtrl(foodId, modifierId, Integer.parseInt(number), Integer.parseInt(number) == 0 ? 0 : 1);
}
@Override
public void onBackPage() {
}
});
chooseNumberDialog.setType(2);
chooseNumberDialog.setCancelable(true);
chooseNumberDialog.show();
}
public void initFoodData() {
......@@ -122,8 +256,10 @@ public class SoldoutCtrlPresenter extends BasePresenter<SoldoutCtrlContract.Mode
//默認選中第一組
mFoodGroupList.get(0).setSelected(true);
IActivity.initFoodGroupView(mFoodGroupList);
changedMealByParentId(mFoodGroupList.get(0).getId());
}
getCurrentSoldoutFood();
}
public void changedMealByParentId(long parentId) {
......@@ -134,18 +270,6 @@ public class SoldoutCtrlPresenter extends BasePresenter<SoldoutCtrlContract.Mode
}
}
private void loadComboData(Food food) {
long fid = food.getId();
//获取套餐细项数据
List<ComboItem> comboItems = mModel.queryDB_ComboList(fid);
//更新套餐数据
updateComboData(comboItems);
mRootView.showViewModeVisibility(MealConstant.combo_ViewMode);
}
/**
* 更新食品數據
*
......@@ -160,14 +284,268 @@ public class SoldoutCtrlPresenter extends BasePresenter<SoldoutCtrlContract.Mode
}
/**
* 更新套餐數據
* 設置食品沽清數據
*/
public void setFoodSoldoutCtrData() {
clearFoodSoldoutCtrData();
for (SoldoutCtrFood scc : mCurrentSlodoutFoodList_Full) {
for (Food foodGroupBean : mFoodGroupList) {
if (scc.getType() == FOOD_GROUP_TYPE && scc.getFoodId() != null && foodGroupBean.getId() != null && foodGroupBean.getId().equals(scc.getFoodId())) {
String qty = scc.getQtyName();
foodGroupBean.setMaxNumber(qty);
foodGroupBean.setCurrentMaxNumber(qty);
}
}
for (Food foodBean : mFoodList) {
if (scc.getType() == FOOD_TYPE && scc.getFoodId() != null && foodBean.getId() != null && foodBean.getId().equals(scc.getFoodId())) {
String qty = scc.getQtyName();
foodBean.setMaxNumber(qty);
foodBean.setCurrentMaxNumber(qty);
}
}
}
IActivity.getFoodGroupAdapter().notifyDataSetChanged();
mFoodAdapter.notifyDataSetChanged();
}
private void clearFoodSoldoutCtrData() {
for (Food foodGroupBean : mFoodGroupList) {
foodGroupBean.setMaxNumber("");
foodGroupBean.setCurrentMaxNumber("");
}
for (Food foodBean : mFoodList) {
foodBean.setMaxNumber("");
foodBean.setCurrentMaxNumber("");
}
}
/**
* 过滤沽清数据
*/
public void filterSlodoutData(boolean init) {
if (mCurrentSlodoutFoodList_Full == null)
return;
if (mCurrentSlodoutFoodList.size() > 0)
mCurrentSlodoutFoodList.clear();
switch (mRootView.getSoldoutType()) {
case FOOD_GROUP_TYPE:
for (SoldoutCtrFood scc : mCurrentSlodoutFoodList_Full) {
if (scc.getType() == FOOD_GROUP_TYPE) {
mCurrentSlodoutFoodList.add(scc);
}
}
break;
case FOOD_TYPE:
for (SoldoutCtrFood scc : mCurrentSlodoutFoodList_Full) {
if (scc.getType() == FOOD_TYPE) {
mCurrentSlodoutFoodList.add(scc);
}
}
break;
case MODIFIER_TYPE:
for (SoldoutCtrFood scc : mCurrentSlodoutFoodList_Full) {
if (scc.getType() == MODIFIER_TYPE) {
mCurrentSlodoutFoodList.add(scc);
}
}
break;
default:
break;
}
if (!init) {
//沽清完重新获取数据
if (isInsertSoldoutOperat) {
isInsertSoldoutOperat = false;
mCurrentSlodoutFoodAdapter.setSelectPosition(mCurrentSlodoutFoodList.size() - 1);
mRootView.getRecycleCurrentSoldoutFood().smoothScrollToPosition(mCurrentSlodoutFoodList.size() - 1);
} else {
switch (mRootView.getSoldoutType()) {
case FOOD_GROUP_TYPE:
if (mCurrentSlodoutFoodPosition_FoodKind != 0 && mCurrentSlodoutFoodList.size() > 1) {
if (mOperatTtpe != -1) {
if (mOperatTtpe == 0 || mOperatTtpe == 1) {
mCurrentSlodoutFoodPosition_FoodKind = mCurrentSlodoutFoodList.size() - 1; //暂停、沽清选中当前操作的
} else {
mCurrentSlodoutFoodPosition_FoodKind--; //恢复选中上面一个
}
}
}
mCurrentSlodoutFoodAdapter.setSelectPosition(mCurrentSlodoutFoodPosition_FoodKind);
break;
case FOOD_TYPE:
if (mCurrentSlodoutFoodPosition_Food != 0 && mCurrentSlodoutFoodList.size() > 1) {
if (mOperatTtpe != -1) {
if (mOperatTtpe == 0 || mOperatTtpe == 1) {
mCurrentSlodoutFoodPosition_Food = mCurrentSlodoutFoodList.size() - 1; //暂停、沽清选中当前操作的
} else {
mCurrentSlodoutFoodPosition_Food--; //恢复选中上面一个
}
}
}
mCurrentSlodoutFoodAdapter.setSelectPosition(mCurrentSlodoutFoodPosition_Food);
break;
case MODIFIER_TYPE:
if (mCurrentSlodoutFoodPosition_FoodFine != 0 && mCurrentSlodoutFoodList.size() > 1) {
if (mOperatTtpe != -1) {
if (mOperatTtpe == 0 || mOperatTtpe == 1) {
mCurrentSlodoutFoodPosition_FoodFine = mCurrentSlodoutFoodList.size() - 1; //暂停、沽清选中当前操作的
} else {
mCurrentSlodoutFoodPosition_FoodFine--; //恢复选中上面一个
}
}
}
mCurrentSlodoutFoodAdapter.setSelectPosition(mCurrentSlodoutFoodPosition_FoodFine);
break;
}
}
}
mCurrentSlodoutFoodAdapter.notifyDataSetChanged();
}
public void getCurrentSoldoutFood() {
long restaurantId = GsaCloudApplication.getRestaurantId(mApplication);
RequestBody requestBody = new FormBody.Builder()
.add("restaurantId", String.valueOf(restaurantId))
.build();
mModel.getCurrentSoldoutFood(requestBody)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseResult info) {
if (info != null && info.isSuccess() && info.getData() != null) {
List<SoldoutCtrFood> soldoutCtrFoods = JsonUtils.parseArray(info.getData(), SoldoutCtrFood.class);
if (soldoutCtrFoods != null && soldoutCtrFoods.size() > 0) {
if (mCurrentSlodoutFoodList_Full.size() > 0) {
mCurrentSlodoutFoodList_Full.clear();
}
mCurrentSlodoutFoodList_Full.addAll(soldoutCtrFoods);
filterSlodoutData(false);
//更新細項沽清數據
IActivity.updateCurrentSlodoutFoodList_Full(mCurrentSlodoutFoodList_Full);
} else {
if (mCurrentSlodoutFoodList_Full.size() > 0) {
mCurrentSlodoutFoodList_Full.clear();
}
//更新細項沽清數據
IActivity.updateCurrentSlodoutFoodList_Full(mCurrentSlodoutFoodList_Full);
if (mCurrentSlodoutFoodList.size() > 0) {
mCurrentSlodoutFoodList.clear();
}
mCurrentSlodoutFoodAdapter.notifyDataSetChanged();
}
setFoodSoldoutCtrData();
}
}
});
}
/**
* 插入沽清控制
*
* @param foodComboList
* @param foodId
* @param modifierId
* @param remainingNumber
* @param operatTtpe 0= 暂停,1=改变食品沽清数量
*/
private void updateComboData(List<ComboItem> foodComboList) {
mFoodComboList.clear();
mFoodComboList.addAll(foodComboList);
mComboAdapter.notifyDataSetChanged();
public void insertSoldoutCtrl(Long foodId, Long modifierId, int remainingNumber, int operatTtpe) {
SoldoutRequest.Insert request = getInsertSoldoutRequest(foodId, modifierId, remainingNumber);
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(request));
String json = GsonUtils.GsonString(request);
mModel.insertSoldoutCtrl(requestBody)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseResult info) {
if (info != null && info.isSuccess()) {
//记录操作类型
mOperatTtpe = operatTtpe;
if (mOperatTtpe == 1) {
isInsertSoldoutOperat = true;
}
//重新获取沽清数据
getCurrentSoldoutFood();
} else {
if (operatTtpe == 0)
mRootView.showMessage(LanguageUtils.get_language_system(mApplication, "pause.failed", "暫停失敗!"));
else
mRootView.showMessage(LanguageUtils.get_language_system(mApplication, "soldout.failure", "沽清失敗!"));
}
}
});
}
public void restoreSoldoutCtrl(long id) {
SoldoutRequest.update request = getDeleteRequest(id);
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(request));
String json = GsonUtils.GsonString(request);
mModel.restoreSoldoutCtrl(requestBody)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseResult info) {
if (info != null && info.isSuccess()) {
//记录恢复操作类型
mOperatTtpe = 2;
//重新获取沽清数据
getCurrentSoldoutFood();
} else {
mRootView.showMessage(LanguageUtils.get_language_system(mApplication, "recovery.failure", "恢復失敗!"));
}
}
});
}
private SoldoutRequest.Insert getInsertSoldoutRequest(Long foodId, Long modifierId, int remainingNumber) {
SoldoutRequest.Insert request = new SoldoutRequest.Insert();
request.setBrandId(GsaCloudApplication.getBrandId(mApplication));
request.setRestaurantId(GsaCloudApplication.getRestaurantId(mApplication));
if (foodId != null) {
request.setFoodId(foodId);
}
if (modifierId != null) {
request.setModifierId(modifierId);
}
request.setType(mRootView.getSoldoutType());
request.setRemainingNumber(remainingNumber);
request.setUid(GsaCloudApplication.getMemberId(mApplication));
return request;
}
private SoldoutRequest.update getDeleteRequest(long id) {
SoldoutRequest.update request = new SoldoutRequest.update();
request.setId(id);
request.setDeletes(1);
return request;
}
public List<SoldoutCtrFood> getCurrentSlodoutFoodList_Full() {
return mCurrentSlodoutFoodList_Full;
}
}
......@@ -65,7 +65,7 @@ public class StateTablePresenter extends BasePresenter<StateTableContract.Model,
super(model, rootView);
this.IView = (StateTableFragment) rootView;
Activity activity = IView.getActivity();
Activity activity = IView.getCurrentActivity();
if (activity instanceof TableActivity) {
mTableActivity = (TableActivity) activity;
} else if (activity instanceof OrderContentActivity) {
......
......@@ -6,7 +6,6 @@ import android.view.View;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BillOrderMoney;
import com.gingersoft.gsa.cloud.base.common.bean.OrderBean;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
......@@ -15,13 +14,11 @@ import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage;
import com.gingersoft.gsa.cloud.base.utils.CommonConfiguration;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.constans.GoldConstants;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.database.bean.FoodCombo;
import com.gingersoft.gsa.cloud.database.bean.Function;
import com.gingersoft.gsa.cloud.database.utils.FoodComboDaoUtils;
import com.gingersoft.gsa.cloud.function.FModule;
import com.gingersoft.gsa.cloud.function.FunctionManager;
import com.gingersoft.gsa.cloud.function.FunctionModule;
import com.gingersoft.gsa.cloud.table.ComponentTable;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.app.TableOperatTypeConstant;
import com.gingersoft.gsa.cloud.table.mvp.contract.TableContract;
......@@ -151,50 +148,64 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
@Override
public void onItemClick(View view, int viewType, Object data, int position) {
if (mBottomFunctionList.get(position).getResUrl().equals(FunctionModule.Table.bottom[0].getKeyRes())) {
//重置
mRootView.setCurrentOperatType(TableOperatTypeConstant.init_table_3);
return;
}
if (mBottomFunctionList.get(position).getResUrl().equals(FunctionModule.Table.bottom[1].getKeyRes())) {
//轉檯
mRootView.setCurrentOperatType(TableOperatTypeConstant.move_table_4);
return;
}
if (mBottomFunctionList.get(position).getResUrl().equals(FunctionModule.Table.bottom[2].getKeyRes())) {
//分檯
return;
}
if (mBottomFunctionList.get(position).getResUrl().equals(FunctionModule.Table.bottom[3].getKeyRes())) {
//上菜紙
CC.obtainBuilder("Component.Print")
.setActionName("printActivity")
.addParam("type", 0)
.build()
.callAsync((cc, result) -> {
if (result.isSuccess()) {
//打印成功
}
});
return;
switch (position) {
case 0:
//重置
mRootView.setCurrentOperatType(TableOperatTypeConstant.init_table_3);
break;
case 1:
//轉檯
mRootView.setCurrentOperatType(TableOperatTypeConstant.move_table_4);
break;
case 2:
//上菜紙
mRootView.setCurrentOperatType(TableOperatTypeConstant.print_parper_2);
break;
}
// if (mBottomFunctionList.get(position).getResUrl().equals(ComponentTable.Function.bottom[0].getKeyRes())) {
// //重置
// mRootView.setCurrentOperatType(TableOperatTypeConstant.init_table_3);
// return;
// }
// if (mBottomFunctionList.get(position).getResUrl().equals(ComponentTable.Function.bottom[1].getKeyRes())) {
// //轉檯
// mRootView.setCurrentOperatType(TableOperatTypeConstant.move_table_4);
// return;
// }
// if (mBottomFunctionList.get(position).getResUrl().equals(ComponentTable.Function.bottom[2].getKeyRes())) {
// //分檯
// return;
// }
// if (mBottomFunctionList.get(position).getResUrl().equals(ComponentTable.Function.bottom[3].getKeyRes())) {
// //上菜紙
// CC.obtainBuilder("Component.Print")
// .setActionName("printActivity")
// .addParam("type", 0)
// .build()
// .callAsync((cc, result) -> {
// if (result.isSuccess()) {
// //打印成功
// }
// });
// return;
// }
}
});
}
public void initBottomFunctionItem() {
List<Function> functions = FunctionManager.getDefault().getFunctionByResModule(IActivity, FunctionModule.Table.class, "bottom");
for (int i = 0; i < functions.size(); i++) {
functions.get(i).setTextSize(ArmsUtils.getDimens(IActivity, R.dimen.sp_14));
functions.get(i).setTextColor(ArmsUtils.getColor(IActivity, R.color.theme_black));
functions.get(i).setIconRes(FunctionModule.Table.bottom[i].getOpenIconRes());
}
mBottomFunctionList.addAll(functions);
// mBottomFunctionList.add(new Function((long) 1, "重置檯號", ArmsUtils.getColor(IActivity, R.color.theme_black), ArmsUtils.getDimens(IActivity, R.dimen.sp_14), R.mipmap.table_init));
// mBottomFunctionList.add(new Function((long) 2, "轉檯", ArmsUtils.getColor(IActivity, R.color.theme_black), ArmsUtils.getDimens(IActivity, R.dimen.sp_14), R.mipmap.table_move));
// List<Function> functions = FunctionManager.getDefault().getFunctionByResModule(IActivity, ComponentTable.Function.class, ComponentTable.Function.bottom,"bottom");
// for (int i = 0; i < functions.size(); i++) {
// functions.get(i).setTextSize(ArmsUtils.getDimens(IActivity, R.dimen.sp_14));
// functions.get(i).setTextColor(ArmsUtils.getColor(IActivity, R.color.theme_black));
// functions.get(i).setIconRes(ComponentTable.Function.bottom[i].getOpenIconRes());
// }
// mBottomFunctionList.addAll(functions);
mBottomFunctionList.add(new Function((long) 1, "重置檯號", ArmsUtils.getColor(IActivity, R.color.theme_black), ArmsUtils.getDimens(IActivity, R.dimen.sp_14), R.mipmap.table_init));
mBottomFunctionList.add(new Function((long) 2, "轉檯", ArmsUtils.getColor(IActivity, R.color.theme_black), ArmsUtils.getDimens(IActivity, R.dimen.sp_14), R.mipmap.table_move));
// mBottomFunctionList.add(new Function((long) 3, "分檯", ArmsUtils.getColor(IActivity, R.color.theme_black), ArmsUtils.getDimens(IActivity, R.dimen.sp_14), R.mipmap.table_splite));
// mBottomFunctionList.add(new Function((long) 4, "skyorder", ArmsUtils.getColor(IActivity, R.color.theme_black), ArmsUtils.getDimens(IActivity, R.dimen.sp_14), R.mipmap.table_skyorder));
// mBottomFunctionList.add(new Function((long) 5, "上菜紙", ArmsUtils.getColor(IActivity,R.color.theme_black), ArmsUtils.getDimens(IActivity,R.dimen.sp_14), R.mipmap.table_paper));
mBottomFunctionList.add(new Function((long) 5, "上菜紙", ArmsUtils.getColor(IActivity, R.color.theme_black), ArmsUtils.getDimens(IActivity, R.dimen.sp_14), R.mipmap.table_paper));
}
public void getTables(boolean show, RefreshLayout refreshLayout) {
......@@ -326,7 +337,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
OpenTableManage.getDefault().setTableBean(openTableBean);
mRootView.startMealStandActivity();
} else {
CommonTipDialog.showSurpisedDialog(IActivity,respose.getErrMsg(),null,null,null,null,null);
CommonTipDialog.showSurpisedDialog(IActivity, respose.getErrMsg(), null, null, null, null, null);
}
}
});
......@@ -456,7 +467,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> {
if(showMessage)
if (showMessage)
mRootView.hideLoading();
})
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
......@@ -487,6 +498,41 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
});
}
public void loadOrderList(long orderId, boolean isPrintParper) {
RequestBody requestBody = new FormBody.Builder()
.add("orderId", orderId + "")
.build();
mModel.initTable(requestBody)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseRespose>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseRespose respose) {
if (respose.isSuccess()) {
if (isPrintParper) {
//打印上菜紙
startPrintParper();
}
} else {
mRootView.showMessage(respose.getErrMsg());
}
}
});
}
private void startPrintParper() {
}
/**
* 根据操作类型过滤一遍餐台
*/
......@@ -541,7 +587,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
break;
case TableOperatTypeConstant.print_parper_2:
dialogBuilder.setMessage("是否確認打印");
break;
case TableOperatTypeConstant.init_table_3:
dialogBuilder.setMessage("是否確認重置" + dataBean.getTableName() + "號檯?");
......
......@@ -68,7 +68,7 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
public AllOrderPresenter(AllOrderContract.Model model, AllOrderContract.View rootView) {
super(model, rootView);
AllOrderFragment allOrderFragment = (AllOrderFragment) rootView;
this.IActivity = (OrderCenterActivity) allOrderFragment.getActivity();
this.IActivity = (OrderCenterActivity) allOrderFragment.getCurrentActivity();
}
@Override
......
......@@ -51,12 +51,13 @@ 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.constans.MealConstant;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood;
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.SelectMealAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.FineItemAllFragment;
import com.gingersoft.gsa.cloud.table.mvp.ui.widget.ChooseNumberDialog;
import com.gingersoft.gsa.cloud.ui.adapter.meal.FoodGroupAdapter;
import com.gingersoft.gsa.cloud.table.mvp.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;
......@@ -258,15 +259,6 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
EventBus.getDefault().registerSticky(this);
//清除Greendao食品緩存
FoodDaoUtils foodDaoUtils = new FoodDaoUtils(this);
foodDaoUtils.detachAll();
FoodComboDaoUtils foodComboDaoUtils = new FoodComboDaoUtils(this);
foodComboDaoUtils.detachAll();
FoodModifierDaoUtils foodModifierDaoUtils = new FoodModifierDaoUtils(this);
foodModifierDaoUtils.detachAll();
ComboItemDaoUtils comboItemDaoUtils = new ComboItemDaoUtils(this);
comboItemDaoUtils.detachAll();
super.onCreate(savedInstanceState);
}
......@@ -277,6 +269,7 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen
@Override
public void initData(@Nullable Bundle savedInstanceState) {
initViewMap();
//初始化Plu模式
setPluMode();
......@@ -284,7 +277,6 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen
mPresenter.initItemClickListener();
//初始化默认食品组
mPresenter.initMealData();
setViewDrawableColor();
//搜索
keyView.setOnConfirmCallBack(inputText -> {
if (TextUtils.isEmpty(inputText))
......@@ -295,6 +287,9 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen
//根据倒计时时间自动退出当前页面
initAutoQuit();
}
mPresenter.getCurrentSoldoutFood();
setViewDrawableColor();
initTableDetail();
}
......@@ -333,7 +328,8 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen
mLayoutManager = new PagerGridLayoutManager(Rows, GoldConstants.foodGriupColumns, PagerGridLayoutManager.HORIZONTAL);
// 水平分页布局管理器
mLayoutManager.setPageListener(this); //设置页面变化监听器
mLayoutManager.setPageListener(this);
//设置页面变化监听器
rv_food_group.setLayoutManager(mLayoutManager);
// 设置滚动辅助工具
......@@ -344,26 +340,18 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen
PagerConfig.setShowLog(true);
// 使用原生的 Adapter 即可
mFoodGroupAdapter = new FoodGroupAdapter(this, foodGroupList);
mFoodGroupAdapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() {
@Override
public void onChanged() {
super.onChanged();
int count = mFoodGroupAdapter.getItemCount();
}
});
mFoodGroupAdapter = new FoodGroupAdapter(this, foodGroupList,1);
rv_food_group.setAdapter(mFoodGroupAdapter);
mFoodGroupAdapter.setOnItemClickListener(new FoodGroupAdapter.OnItemClickListener() {
@Override
public void onItemClick(Food datasBean, int position) {
recordOperat(true);
if (!foodGroupConditionFilter(datasBean, false)) {
if (!mPresenter.foodGroupConditionFilter(datasBean, false)) {
return;
}
mPresenter.setRvMealClicked(false);
mPresenter.changedMealByParentId(datasBean.getId());
mPresenter.setFoodSoldoutCtrData();
}
});
......@@ -399,27 +387,6 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen
}
}
/**
* 添加食品条件过滤
* 1:售罄、最大选择数
*/
public boolean foodGroupConditionFilter(Food foodBean, boolean init) {
if (init) {
return true;
}
long Invisible = foodBean.getInvisible();
if (Invisible == 2) {
new QMUITipDialog.Builder(this)
.setTipWord("已售罄(Comm.sold)")
.create(true);
return false;
}
return true;
}
@Override
public boolean isInitFineItemLayout() {
return initFineItemLayout;
......@@ -444,7 +411,6 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen
String[] tabTitles = new String[3];
tabTitles[0] = "口味";
tabTitles[1] = "特別信息";
// tabTitles[2] = "多選";
BaseFragmentAdapter adapter = new BaseFragmentAdapter(this, fm, fragmentList, Arrays.asList(tabTitles));
pager_fine.setAdapter(adapter);
......@@ -758,7 +724,7 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen
@Override
public void setFoodGroupAdapter(DefaultAdapter adapter) {
rv_food_group.addItemDecoration(new GridDividerItemDecoration(QMUIDisplayHelper.dpToPx(1), ArmsUtils.getColor(getActivity(), R.color.black)));
rv_food_group.addItemDecoration(new GridDividerItemDecoration(QMUIDisplayHelper.dpToPx(1), ArmsUtils.getColor(mContext, R.color.black)));
rv_food_group.setAdapter(adapter);
}
......@@ -1023,30 +989,36 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen
initFineItemTabBarViewPage();
modMsgFineItemFragment.onModMsgMidEvent(mPresenter.getCurrentOrderDetailBean().getProductId());
// EventBus.getDefault().post(mSoldoutList_full, "FineItemAllFragment_onCurrentSlodoutFoodList_FullEvent");
// EventBus.getDefault().post(mPresenter.getCurrentOrderDetailBean().getFid(), "FineItemAllFragment_onMidEvent");
setFineItemSlodoutListFull(mPresenter.getSoldoutCtrList());
modMsgFineItemFragment.onModMsgMidEvent(mPresenter.getCurrentOrderDetailBean().getProductId());
modSasteFineItemFragment.onModSasteEvent(mPresenter.getCurrentOrderDetailBean().getProductId());
// EventBus.getDefault().post(mSoldoutList_full, "FineItemKindFragment_onCurrentSlodoutFoodList_FullEvent");
// EventBus.getDefault().post(mPresenter.getCurrentOrderDetailBean().getFid(), "FineItemKindFragment_onMidEvent");
// modCommFineItemFragment.onModCommEvent(mPresenter.getCurrentOrderDetailBean().getProductId());
} else {
modMsgFineItemFragment.onModMsgMidEvent(mPresenter.getCurrentOrderDetailBean().getProductId());
modSasteFineItemFragment.onModSasteEvent(mPresenter.getCurrentOrderDetailBean().getProductId());
// modCommFineItemFragment.onModCommEvent(mPresenter.getCurrentOrderDetailBean().getProductId());
setCurrentFinePage();
showViewModeVisibility(MealConstant.fine_ViewMode, MealConstant.fine_tabs_ViewMode);
}
}
/**
* 設置細項沽清數據
* @param slodoutListFull
*/
public void setFineItemSlodoutListFull(List<SoldoutCtrFood> slodoutListFull) {
if (modMsgFineItemFragment != null) {
modMsgFineItemFragment.updateCurrentSlodoutFoodList_Full(slodoutListFull);
}
if (modSasteFineItemFragment != null) {
modSasteFineItemFragment.updateCurrentSlodoutFoodList_Full(slodoutListFull);
}
}
private void initViewMap() {
map.put(MealConstant.food_group_ViewMode, ll_food_group);
map.put(MealConstant.food_ViewMode, rv_food);
......@@ -1059,7 +1031,7 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen
// @SwitchPrintMethod
btn_send_order.setOnLongClickListener(v -> {
PrinterUtils.switchPrintMethod(mContext);
PrinterUtils.switchPrintMethod(mContext,null,null);
return false;
});
}
......
......@@ -248,7 +248,7 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
if (difference == 0)
tv_difference_money.setText("$" + Math.abs(difference));
else
tv_difference_money.setText("$-" + Math.abs(difference));
tv_difference_money.setText("-$" + Math.abs(difference));
}
}
......@@ -291,7 +291,7 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
@OnLongClick({R2.id.btn_sure_pay})
public boolean onLongClick(View v) {
if (v.getId() == R.id.btn_sure_pay) {
PrinterUtils.switchPrintMethod(mContext);
PrinterUtils.switchPrintMethod(mContext, null, null);
}
return false;
}
......
......@@ -4,6 +4,7 @@ import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.SparseArray;
import android.view.View;
import android.view.ViewGroup;
......@@ -14,6 +15,7 @@ import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.qmui.arch.QMUIFragmentPagerAdapter;
import com.gingersoft.gsa.cloud.base.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.base.utils.VibratorUtils;
import com.gingersoft.gsa.cloud.base.utils.log.LogUtil;
import com.gingersoft.gsa.cloud.constans.GoldConstants;
import com.gingersoft.gsa.cloud.constans.MealConstant;
......@@ -26,12 +28,14 @@ import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.table.di.component.DaggerSoldoutCtrlComponent;
import com.gingersoft.gsa.cloud.table.mvp.contract.SoldoutCtrlContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood;
import com.gingersoft.gsa.cloud.table.mvp.presenter.SoldoutCtrlPresenter;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.FineItemAllFragment;
import com.gingersoft.gsa.cloud.ui.adapter.meal.FoodGroupAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.FoodGroupAdapter;
import com.gingersoft.gsa.cloud.ui.recylcler.Indicator.PagerGridLayoutManager;
import com.gingersoft.gsa.cloud.ui.recylcler.Indicator.PagerGridSnapHelper;
import com.gingersoft.gsa.cloud.ui.view.RecyclerViewNoBugLinearLayoutManager;
import com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog;
import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog;
import com.jess.arms.base.BaseActivity;
import com.jess.arms.base.DefaultAdapter;
......@@ -118,8 +122,16 @@ public class SoldoutCtrlActivity extends BaseActivity<SoldoutCtrlPresenter> impl
private int mCurrentViewMode;
private String[] mTypeItem = {"沽清控制-食品組", "沽清控制-食品", "沽清控制-細項"};
// 0-食品組 1--食品 2--細項 默認為食品
private int mSoldoutType = 1;
/**
* 1-食品組
* 2-食品
* 3-細項
* 默認為食品
*/
private int mSoldoutType = 2;
public static final int FOOD_GROUP_TYPE = 1;
public static final int FOOD_TYPE = 2;
public static final int MODIFIER_TYPE = 3;
private FineItemAllFragment modMsgFineItemFragment, modSasteFineItemFragment;
private String[] mFineTabTitles = {"口味", "特別信息"};
......@@ -150,15 +162,6 @@ public class SoldoutCtrlActivity extends BaseActivity<SoldoutCtrlPresenter> impl
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
//清除Greendao食品緩存
FoodDaoUtils foodDaoUtils = new FoodDaoUtils(this);
foodDaoUtils.detachAll();
FoodComboDaoUtils foodComboDaoUtils = new FoodComboDaoUtils(this);
foodComboDaoUtils.detachAll();
FoodModifierDaoUtils foodModifierDaoUtils = new FoodModifierDaoUtils(this);
foodModifierDaoUtils.detachAll();
ComboItemDaoUtils comboItemDaoUtils = new ComboItemDaoUtils(this);
comboItemDaoUtils.detachAll();
super.onCreate(savedInstanceState);
}
......@@ -201,8 +204,7 @@ public class SoldoutCtrlActivity extends BaseActivity<SoldoutCtrlPresenter> impl
@Override
public void initLanguage() {
tv_sold_hmmc.setText(LanguageUtils.get_language_system(this, "soldout_head_name", "項目名稱"));
tv_sold_hmsl.setText(LanguageUtils.get_language_system(this, "soldout_head_number", "項目名稱"));
tv_sold_hmsl.setText(LanguageUtils.get_language_system(this, "soldout_head_number", "數量"));
}
@Override
......@@ -214,10 +216,10 @@ public class SoldoutCtrlActivity extends BaseActivity<SoldoutCtrlPresenter> impl
}
private void initRecyclerHeight() {
// int screenHeidth = ArmsUtils.getScreenHeidth(this);
// LinearLayout.LayoutParams para1 = (LinearLayout.LayoutParams) recycle_current_soldout_food.getLayoutParams();
// para1.height = screenHeidth * 33 / 100;
// recycle_current_soldout_food.setLayoutParams(para1);
int screenHeidth = ArmsUtils.getScreenHeidth(this);
LinearLayout.LayoutParams para1 = (LinearLayout.LayoutParams) recycle_current_soldout_food.getLayoutParams();
para1.height = screenHeidth * 33 / 100;
recycle_current_soldout_food.setLayoutParams(para1);
mParentRowCount = GsaCloudApplication.androidSetting.getFoodTypeRow();
mParentColCount = GsaCloudApplication.androidSetting.getFoodTypeCol();
......@@ -236,7 +238,8 @@ public class SoldoutCtrlActivity extends BaseActivity<SoldoutCtrlPresenter> impl
mLayoutManager = new PagerGridLayoutManager(Rows, GoldConstants.foodGriupColumns, PagerGridLayoutManager.HORIZONTAL);
// 水平分页布局管理器
mLayoutManager.setPageListener(this); //设置页面变化监听器
mLayoutManager.setPageListener(this);
//设置页面变化监听器
recycle_food_group.setLayoutManager(mLayoutManager);
// 设置滚动辅助工具
......@@ -244,7 +247,7 @@ public class SoldoutCtrlActivity extends BaseActivity<SoldoutCtrlPresenter> impl
pageSnapHelper.attachToRecyclerView(recycle_food_group);
// 使用原生的 Adapter 即可
mFoodGroupAdapter = new FoodGroupAdapter(this, foodGroupList);
mFoodGroupAdapter = new FoodGroupAdapter(this, foodGroupList, 2);
mFoodGroupAdapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() {
@Override
public void onChanged() {
......@@ -258,12 +261,37 @@ public class SoldoutCtrlActivity extends BaseActivity<SoldoutCtrlPresenter> impl
mFoodGroupAdapter.setOnItemClickListener(new FoodGroupAdapter.OnItemClickListener() {
@Override
public void onItemClick(Food datasBean, int position) {
// recordOperat(true);
// if (!foodGroupConditionFilter(datasBean, false)) {
// return;
// }
// mPresenter.setRvMealClicked(false);
mPresenter.changedMealByParentId(datasBean.getId());
VibratorUtils.pressButtonSound(SoldoutCtrlActivity.this);
if (mSoldoutType == FOOD_GROUP_TYPE) {
//操作類型(暂停操作、恢复操作)
boolean isStopOpeart = false;
for (SoldoutCtrFood csf : mPresenter.getCurrentSlodoutFoodList_Full()) {
if (csf.getType() == FOOD_GROUP_TYPE &&
csf.getFoodId() != null && datasBean.getId() != null &&
csf.getFoodId().equals(datasBean.getId())) {
if (!TextUtils.isEmpty(csf.getQtyName())) {
isStopOpeart = true;
//暂停或者售罄直接提示恢复
String msg = LanguageUtils.get_language_system(SoldoutCtrlActivity.this, "whether.recover", "是否恢復\"") + datasBean.getFoodName() + "\"?";
Class[] parameterTypes = {long.class};
Object[] parameters = {csf.getId()};
CommonTipDialog.showDoubtDialog(SoldoutCtrlActivity.this, msg, SoldoutCtrlPresenter.class, mPresenter, "restoreSoldoutCtrl", parameterTypes, parameters);
break;
}
}
}
if (!isStopOpeart) {
String msg = LanguageUtils.get_language_system(SoldoutCtrlActivity.this, "whether.suspend.group", "是否暫停組別?") + datasBean.getFoodName() + "\"?";
Class[] parameterTypes = {Long.class, Long.class, int.class, int.class};
Object[] parameters = {datasBean.getId(), null, 0, 0};
CommonTipDialog.showDoubtDialog(SoldoutCtrlActivity.this, msg, SoldoutCtrlPresenter.class, mPresenter, "insertSoldoutCtrl", parameterTypes, parameters);
}
} else {
mPresenter.changedMealByParentId(datasBean.getId());
mPresenter.setFoodSoldoutCtrData();
}
}
});
......@@ -304,8 +332,8 @@ public class SoldoutCtrlActivity extends BaseActivity<SoldoutCtrlPresenter> impl
int id = v.getId();
if (id == R.id.tv_return) {
if (mCurrentViewMode == MealConstant.fine_ViewMode) {
mSoldoutType = 1;
tv_soldout.setText(mTypeItem[mSoldoutType]);
mSoldoutType = FOOD_TYPE;
tv_soldout.setText(mTypeItem[1]);
showViewModeVisibility(MealConstant.food_group_ViewMode, MealConstant.food_ViewMode);
} else {
killMyself();
......@@ -323,20 +351,20 @@ public class SoldoutCtrlActivity extends BaseActivity<SoldoutCtrlPresenter> impl
private void showClearControlDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("沽清控制");
builder.setSingleChoiceItems(mTypeItem, mSoldoutType, new DialogInterface.OnClickListener() {
builder.setSingleChoiceItems(mTypeItem, (mSoldoutType - 1), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mSoldoutType = which;
tv_soldout.setText(mTypeItem[mSoldoutType]);
tv_soldout.setText(mTypeItem[which]);
mSoldoutType = which + 1;
//选择食品组需要收起食品、细项显示数据
switch (mSoldoutType) {
case 0:
case FOOD_GROUP_TYPE:
showViewModeVisibility(MealConstant.food_group_ViewMode);
break;
case 1:
case FOOD_TYPE:
showViewModeVisibility(MealConstant.food_group_ViewMode, MealConstant.food_ViewMode);
break;
case 2:
case MODIFIER_TYPE:
if (!mInitModData) {
modSasteFineItemFragment.onModSasteEvent(0);
modMsgFineItemFragment.onModMsgMidEvent(0);
......@@ -345,6 +373,9 @@ public class SoldoutCtrlActivity extends BaseActivity<SoldoutCtrlPresenter> impl
showViewModeVisibility(MealConstant.fine_ViewMode);
break;
}
mPresenter.filterSlodoutData(true);
dialog.dismiss();
}
});
......@@ -383,7 +414,6 @@ public class SoldoutCtrlActivity extends BaseActivity<SoldoutCtrlPresenter> impl
@Override
public void setCurrentSoldoutFoodAdapter(DefaultAdapter adapter) {
initCurrentSoldoutFoodLayoutManager();
recycle_current_soldout_food.setAdapter(adapter);
}
......@@ -402,13 +432,7 @@ public class SoldoutCtrlActivity extends BaseActivity<SoldoutCtrlPresenter> impl
recycle_combo.setAdapter(adapter);
}
private GridLayoutManager foodRecycleLayoutManager, comboRecycleLayoutManager;
public void initCurrentSoldoutFoodLayoutManager() {
RecyclerViewNoBugLinearLayoutManager selectFoodRecycleLayoutManager = new RecyclerViewNoBugLinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
recycle_current_soldout_food.setLayoutManager(selectFoodRecycleLayoutManager);
// rv_select_meal.setItemAnimator(new DefaultItemAnimator());
}
private GridLayoutManager foodRecycleLayoutManager;
public void initFoodLayoutManager(int orientation) {
foodRecycleLayoutManager = new GridLayoutManager(this, 1, orientation, false);
......@@ -507,7 +531,6 @@ public class SoldoutCtrlActivity extends BaseActivity<SoldoutCtrlPresenter> impl
}
}
private void initTabAndPager() {
QMUIFragmentPagerAdapter pagerAdapter = new QMUIFragmentPagerAdapter(getSupportFragmentManager()) {
......@@ -587,4 +610,16 @@ public class SoldoutCtrlActivity extends BaseActivity<SoldoutCtrlPresenter> impl
});
}
public void updateCurrentSlodoutFoodList_Full(List<SoldoutCtrFood> currentSlodoutFoodListc_Full) {
if (modMsgFineItemFragment != null) {
modMsgFineItemFragment.updateCurrentSlodoutFoodList_Full(currentSlodoutFoodListc_Full);
}
if (modSasteFineItemFragment != null) {
modSasteFineItemFragment.updateCurrentSlodoutFoodList_Full(currentSlodoutFoodListc_Full);
}
}
public FoodGroupAdapter getFoodGroupAdapter() {
return mFoodGroupAdapter;
}
}
......@@ -148,11 +148,6 @@ public class TableActivity extends BaseActivity<TablePresenter> implements Table
public void initData(@Nullable Bundle savedInstanceState) {
tv_show_popup.setWidth(ArmsUtils.getScreenWidth(this) / 3);
// Drawable mNormalIconDrawable = ArmsUtils.getDrawablebyResource(this, R.drawable.meal_change_language_index_1);
// QMUIDrawableHelper.setDrawableTintColor(mNormalIconDrawable, ArmsUtils.getColor(mContext,R.color.theme_grey_color));
// mNormalIconDrawable.invalidateSelf();
// iv_tab_icon.setImageDrawable(mNormalIconDrawable);
initTabAndPager();
mPresenter.initBottomFunction();
getTables(true, null);
......@@ -289,7 +284,8 @@ public class TableActivity extends BaseActivity<TablePresenter> implements Table
break;
case TableOperatTypeConstant.print_parper_2:
setOperatContentText(dataBean.getTableName());
mPresenter.showOperatTipDialog(dataBean);
break;
case TableOperatTypeConstant.init_table_3:
setOperatContentText(dataBean.getTableName());
......@@ -337,7 +333,9 @@ public class TableActivity extends BaseActivity<TablePresenter> implements Table
break;
case TableOperatTypeConstant.print_parper_2:
tv_operat_hint.setText("請選擇檯號");
tv_operat_content.setText("");
mTopBar.setTitle("上菜紙");
break;
case TableOperatTypeConstant.init_table_3:
tv_operat_hint.setText("請選擇需要重置的檯號");
......
......@@ -33,7 +33,12 @@ public class BillMoneyAdapter extends BaseQuickAdapter<PayMethod, BaseViewHolder
TextView tv_bill_money = helper.getView(R.id.tv_bill_money);
tv_bill_method_name.setText(datasBean.getPayName());
tv_bill_money.setText(cashStr + datasBean.getPayMoney());
if (datasBean.getPayMoney() < 0) {
tv_bill_money.setText("-" + cashStr + Math.abs(datasBean.getPayMoney()));
} else {
tv_bill_money.setText(cashStr + datasBean.getPayMoney());
}
tv_bill_method_name.setTextSize(datasBean.getPayMoneySize());
tv_bill_money.setTextSize(datasBean.getPayMoneySize());
......
package com.gingersoft.gsa.cloud.table.mvp.ui.adapter;
import android.content.Context;
import android.content.Intent;
import android.text.TextUtils;
import android.view.View;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.qmui.arch.QMUIActivity;
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.table.mvp.model.bean.SoldoutCtrFood;
import com.jess.arms.base.BaseHolder;
import com.jess.arms.base.DefaultAdapter;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.List;
import butterknife.BindView;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
......@@ -15,173 +31,162 @@ import java.util.List;
* 描述:
*/
public class CurrentSlodoutFoodAdapter extends DefaultAdapter<Object> {
public class CurrentSlodoutFoodAdapter extends DefaultAdapter<SoldoutCtrFood> {
private Context mContext;
private View convertView;
//字体大小
private int mFoodlListFontSize;
private int select_position = 0;
public CurrentSlodoutFoodAdapter(List<Object> infos) {
public CurrentSlodoutFoodAdapter(Context context, List<SoldoutCtrFood> infos) {
super(infos);
this.mContext = context;
this.mFoodlListFontSize = GsaCloudApplication.androidSetting.getFoodlListFontSize();
// Object mInstanceProxy = Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(), new Class[]{QMUIActivity.class}, new InvocationHandler() {
//
// @Override
// public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
// // 当执行的方法是 startActivity 时作处理
// if ("startActivity".equals(method.getName())) {
// int index = 0;
// // 获取 Intent 参数在 args 数组中的index值
// for (int i = 0; i < args.length; i++) {
// if (args[i] instanceof Intent) {
// index = i;
// break;
// }
// }
// // 得到原始的 Intent 对象 -- 唐僧(插件)的Intent
// Intent intent = (Intent) args[index];
//
// // 生成代理proxyIntent -- 孙悟空(代理)的Intent
// Intent proxyIntent = new Intent();
// proxyIntent.setClassName("com.enjoy.pluginactivity", ProxyActivity.class.getName());
// // 保存原始的Intent对象
// proxyIntent.putExtra(TARGET_INTENT, intent);
// // 使用proxyIntent替换数组中的Intent
// args[index] = proxyIntent;
// }
// return method.invoke(mInstance, args);
// }
// });
}
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<SoldoutCtrFood> datasBeans = mInfos;
for (int i = 0; i < datasBeans.size(); i++) {
if (i == select_position) {
datasBeans.get(i).setSelected(1);
} else {
datasBeans.get(i).setSelected(0);
}
}
}
@Override
public BaseHolder<Object> getHolder(View v, int viewType) {
return null;
public int getItemCount() {
return mInfos.size();
}
@Override
public BaseHolder<SoldoutCtrFood> getHolder(View v, int viewType) {
convertView = v;
return new CurrentSlodoutItemHolder(v);
}
@Override
public int getLayoutId(int viewType) {
return 0;
return R.layout.meal_item_current_soldout_food;
}
//
// 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);
//
// }
//
class CurrentSlodoutItemHolder extends BaseHolder<SoldoutCtrFood> {
@BindView(R2.id.rl_select)
RelativeLayout rl_select;
@BindView(R2.id.tv_number)
TextView tv_number;
@BindView(R2.id.tv_name)
TextView tv_name;
@BindView(R2.id.tv_value)
TextView tv_value;
public CurrentSlodoutItemHolder(View itemView) {
super(itemView);
}
@Override
public void setData(SoldoutCtrFood datasBean, int position) {
String name = datasBean.getName();
if (!TextUtils.isEmpty(name)) {
tv_name.setText(name);
} else {
tv_name.setText("");
}
tv_number.setText(String.valueOf(position+1));
tv_value.setText(datasBean.getQtyName());
//设置字体
tv_value.setTextSize(mFoodlListFontSize);
tv_name.setTextSize(mFoodlListFontSize);
tv_number.setTextSize(mFoodlListFontSize);
int selected = datasBean.getSelected();
switch (selected) {
case 1://选中,第一层选中.
rl_select.setBackgroundColor(mContext.getResources().getColor(R.color.theme_background_color));
tv_number.setTextColor(mContext.getResources().getColor(R.color.theme_black));
tv_name.setTextColor(mContext.getResources().getColor(R.color.theme_black));
tv_value.setTextColor(mContext.getResources().getColor(R.color.theme_black));
break;
default://未选 中。黑底白字
rl_select.setBackgroundColor(mContext.getResources().getColor(R.color.theme_white_color));
tv_number.setTextColor(mContext.getResources().getColor(R.color.theme_black));
tv_name.setTextColor(mContext.getResources().getColor(R.color.theme_black));
tv_value.setTextColor(mContext.getResources().getColor(R.color.theme_black));
break;
}
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(SoldoutCtrFood datasBean, int position);
}
}
package com.gingersoft.gsa.cloud.table.mvp.ui.adapter;
import android.content.Context;
import android.graphics.Color;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
......@@ -13,11 +14,14 @@ import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
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.SoldoutCtrFood;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.SoldoutCtrlActivity;
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 java.util.ArrayList;
import java.util.List;
import androidx.recyclerview.widget.GridLayoutManager;
......@@ -36,9 +40,9 @@ public class FineItemOneAdapter extends DefaultAdapter<Modifier> {
private Context mContext;
//所有沽清类型
// private List<CurrentSoldoutFood.DatasBean> mCurrentSlodoutFoodList_Full = new ArrayList<>();
private List<SoldoutCtrFood> mCurrentSlodoutFoodList_Full = new ArrayList<>();
// private List<Color.DatasBean> mColorList;
// private List<Color.DatasBean> mColorList;
private int mOrderNumberShowSize;
private int mOrderNumberFontSize;
private int mModFontSize;
......@@ -77,7 +81,7 @@ public class FineItemOneAdapter extends DefaultAdapter<Modifier> {
@Override
public int getLayoutId(int viewType) {
return R.layout.ui_meal_item_food;
return R.layout.meal_item_food;
}
class DateTimeItemHolder extends BaseHolder<Modifier> {
......@@ -90,6 +94,8 @@ public class FineItemOneAdapter extends DefaultAdapter<Modifier> {
TextView tv_number;
// @BindView(R.id.tv_status)
// TextView tv_status;
@BindView(R2.id.tv_soldout)
TextView tv_soldout;
@BindView(R2.id.iv_qtySold)
ImageView iv_qtySold;
......@@ -109,8 +115,8 @@ public class FineItemOneAdapter extends DefaultAdapter<Modifier> {
@Override
public void onViewClick(View view, int position) {
if(XClickUtil.isFastDoubleClick(view,200)){
return ;
if (XClickUtil.isFastDoubleClick(view, 200)) {
return;
}
if (mOnItemClickListener != null) {
// //设置当前选中item颜色
......@@ -145,7 +151,7 @@ public class FineItemOneAdapter extends DefaultAdapter<Modifier> {
// break;
// }
// if (desc == null || desc.trim().length() == 0) {
desc = datasBean.getModifierName();
desc = datasBean.getModifierName();
// }
// tv_food_name.setMaxWidth(mColwidth);
......@@ -189,13 +195,13 @@ public class FineItemOneAdapter extends DefaultAdapter<Modifier> {
// }
// }
// } else {
//后台没有设置颜色当前选中高亮色,没有选中默认使用绿色
//后台没有设置颜色当前选中高亮色,没有选中默认使用绿色
// if (datasBean.isSelected()) {
// tv_food_name.setBackgroundColor(ArmsUtils.getColor(mContext, R.color.orange_500));
// tv_food_name.setTextColor(ArmsUtils.getColor(mContext, R.color.theme_white_color));
// } else {
tv_food_name.setBackgroundColor(ArmsUtils.getColor(mContext, R.color.Grass_green));
tv_food_name.setTextColor(ArmsUtils.getColor(mContext, R.color.theme_white_color));
tv_food_name.setBackgroundColor(ArmsUtils.getColor(mContext, R.color.Grass_green));
tv_food_name.setTextColor(ArmsUtils.getColor(mContext, R.color.theme_white_color));
// }
// }
}
......@@ -220,42 +226,45 @@ public class FineItemOneAdapter extends DefaultAdapter<Modifier> {
}
private void setStatus(Modifier datasBean) {
// datasBean.setSoldout(false);
tv_soldout.setMaxHeight(mOrderNumberShowSize);
tv_soldout.setMinHeight(mOrderNumberShowSize);
tv_soldout.setTextSize(mOrderNumberFontSize);
tv_soldout.setTextColor(Color.parseColor("#000000"));
tv_soldout.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.ui_selector_white_rect));
tv_soldout.setMinWidth(20);
tv_soldout.setTextSize(10);
tv_soldout.setGravity(Gravity.CENTER);
iv_qtySold.setVisibility(View.INVISIBLE);
/**
* 设置当前状态
*/
// if (mCurrentSlodoutFoodList_Full != null) {
// for (CurrentSoldoutFood.DatasBean sc : mCurrentSlodoutFoodList_Full) {
// if (sc.getItemID().equals(datasBean.getMID()) && sc.getType().equals("M")) {
// String name = sc.get_QtyName();
// if (name.equals("")) {
// tv_number.setVisibility(View.INVISIBLE);
// } else {
// if (sc.get_QtyName().equalsIgnoreCase("售罄")) {
// iv_qtySold.setVisibility(View.VISIBLE);
// datasBean.setSoldout(true);
// } else {
// tv_number.setVisibility(View.VISIBLE);
// tv_number.setText(name);
// datasBean.setOR_Qty(name);
// }
// }
// }
// }
// }
for (SoldoutCtrFood sc : mCurrentSlodoutFoodList_Full) {
if (sc.getType() == SoldoutCtrlActivity.MODIFIER_TYPE && sc.getModifierId().equals(datasBean.getMid())) {
String name = sc.getQtyName();
if (name.equals("")) {
tv_soldout.setVisibility(View.INVISIBLE);
} else {
if (sc.getQtyName().equalsIgnoreCase("售罄")) {
iv_qtySold.setVisibility(View.VISIBLE);
datasBean.setSoldout(true);
} else if (sc.getQtyName().equalsIgnoreCase("暫停")) {
tv_soldout.setVisibility(View.VISIBLE);
tv_soldout.setText(name);
} else {
tv_soldout.setVisibility(View.VISIBLE);
tv_soldout.setText(name);
datasBean.setMaxNumber(name);
}
}
}
}
}
}
// public List<CurrentSoldoutFood.DatasBean> getCurrentSlodoutFoodList_Full() {
// return mCurrentSlodoutFoodList_Full;
// }
//
// public void setmCurrentSlodoutFoodList_Full(List<CurrentSoldoutFood.DatasBean> mCurrentSlodoutFoodList_Full) {
// this.mCurrentSlodoutFoodList_Full = mCurrentSlodoutFoodList_Full;
// }
public void setCurrentSlodoutFoodList_Full(List<SoldoutCtrFood> currentSlodoutFoodList_Full) {
this.mCurrentSlodoutFoodList_Full = currentSlodoutFoodList_Full;
}
public int getUser_qty() {
return user_qty;
......
package com.gingersoft.gsa.cloud.table.mvp.ui.adapter;
import android.content.Context;
import android.graphics.Color;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
......@@ -13,11 +14,14 @@ import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
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.SoldoutCtrFood;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.SoldoutCtrlActivity;
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 java.util.ArrayList;
import java.util.List;
import androidx.recyclerview.widget.GridLayoutManager;
......@@ -36,7 +40,7 @@ public class FineItemTwoAdapter extends DefaultAdapter<Modifier> {
private Context mContext;
//所有沽清类型
// private List<CurrentSoldoutFood.DatasBean> mCurrentSlodoutFoodList_Full = new ArrayList<>();
private List<SoldoutCtrFood> mCurrentSlodoutFoodList_Full = new ArrayList<>();
// private List<Color.DatasBean> mColorList;
private int mOrderNumberShowSize;
......@@ -77,7 +81,7 @@ public class FineItemTwoAdapter extends DefaultAdapter<Modifier> {
@Override
public int getLayoutId(int viewType) {
return R.layout.ui_meal_item_food;
return R.layout.meal_item_food;
}
class FineItemHolder extends BaseHolder<Modifier> {
......@@ -90,6 +94,8 @@ public class FineItemTwoAdapter extends DefaultAdapter<Modifier> {
TextView tv_number;
// @BindView(R.id.tv_status)
// TextView tv_status;
@BindView(R2.id.tv_soldout)
TextView tv_soldout;
@BindView(R2.id.iv_qtySold)
ImageView iv_qtySold;
......@@ -250,20 +256,14 @@ public class FineItemTwoAdapter extends DefaultAdapter<Modifier> {
}
private void setStatus(Modifier datasBean) {
// tv_status.setMaxHeight(mOrderNumberShowSize);
// tv_status.setMinHeight(mOrderNumberShowSize);
// tv_status.setTextSize(mOrderNumberFontSize);
// tv_status.setMinWidth(20);
// tv_status.setGravity(Gravity.CENTER);
// tv_status.setText("");
// tv_status.setVisibility(View.INVISIBLE);
tv_number.setMaxHeight(mOrderNumberShowSize);
tv_number.setMinHeight(mOrderNumberShowSize);
tv_number.setTextSize(mOrderNumberFontSize);
tv_number.setMinWidth(20);
tv_number.setTextColor(android.graphics.Color.parseColor("#000000"));
tv_number.setBackgroundColor(ArmsUtils.getColor(mContext, R.color.theme_white_color));
tv_number.setGravity(Gravity.CENTER);
tv_soldout.setMaxHeight(mOrderNumberShowSize);
tv_soldout.setMinHeight(mOrderNumberShowSize);
tv_soldout.setTextSize(mOrderNumberFontSize);
tv_soldout.setTextColor(Color.parseColor("#000000"));
tv_soldout.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.ui_selector_white_rect));
tv_soldout.setMinWidth(20);
tv_soldout.setTextSize(10);
tv_soldout.setGravity(Gravity.CENTER);
ViewGroup.MarginLayoutParams mp = new ViewGroup.MarginLayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); //item的宽高
mp.setMargins(0, 0, 0, 0);//分别是margin_top那四个属性
......@@ -273,39 +273,36 @@ public class FineItemTwoAdapter extends DefaultAdapter<Modifier> {
tv_number.setLayoutParams(lp);
tv_number.setVisibility(View.INVISIBLE);
iv_qtySold.setVisibility(View.INVISIBLE);
/**
* 设置当前状态
*/
// if (mCurrentSlodoutFoodList_Full != null) {
// for (CurrentSoldoutFood.DatasBean sc : mCurrentSlodoutFoodList_Full) {
// if (sc.getItemID().equals(datasBean.getMID()) && sc.getType().equals("M")) {
// String name = sc.get_QtyName();
// if (name.equals("")) {
// tv_number.setVisibility(View.INVISIBLE);
// } else {
// if (sc.get_QtyName().equalsIgnoreCase("售罄")) {
// iv_qtySold.setVisibility(View.VISIBLE);
// } else {
// tv_number.setVisibility(View.VISIBLE);
// tv_number.setText(name);
// }
// }
// }
// }
// }
for (SoldoutCtrFood sc : mCurrentSlodoutFoodList_Full) {
if (sc.getType() == SoldoutCtrlActivity.MODIFIER_TYPE && sc.getModifierId().equals(datasBean.getMid())) {
String name = sc.getQtyName();
if (name.equals("")) {
tv_soldout.setVisibility(View.INVISIBLE);
} else {
if (sc.getQtyName().equalsIgnoreCase("售罄")) {
iv_qtySold.setVisibility(View.VISIBLE);
datasBean.setSoldout(true);
} else if (sc.getQtyName().equalsIgnoreCase("暫停")) {
tv_soldout.setVisibility(View.VISIBLE);
tv_soldout.setText(name);
} else {
tv_soldout.setVisibility(View.VISIBLE);
tv_soldout.setText(name);
datasBean.setMaxNumber(name);
}
}
}
}
}
}
// public List<CurrentSoldoutFood.DatasBean> getmCurrentSlodoutFoodList_Full() {
// return mCurrentSlodoutFoodList_Full;
// }
//
// public void setmCurrentSlodoutFoodList_Full(List<CurrentSoldoutFood.DatasBean> mCurrentSlodoutFoodList_Full) {
// this.mCurrentSlodoutFoodList_Full = mCurrentSlodoutFoodList_Full;
// }
public void setCurrentSlodoutFoodList_Full(List<SoldoutCtrFood> currentSlodoutFoodList_Full) {
this.mCurrentSlodoutFoodList_Full = currentSlodoutFoodList_Full;
}
public int getUser_qty() {
return user_qty;
......
......@@ -75,7 +75,12 @@ public class OrderMoneyAdapter extends DefaultAdapter<BillOrderMoney> {
public void setData(BillOrderMoney datasBean, int position) {
tv_title.setText(datasBean.getTitle());
tv_money.setText(cashStr + datasBean.getMoney());
if (datasBean.getMoney() < 0) {
tv_money.setText("-" + cashStr + Math.abs(datasBean.getMoney()));
} else {
tv_money.setText(cashStr + datasBean.getMoney());
}
tv_title.setTextSize(BillTotalFontSize);
tv_money.setTextSize(BillTotalFontSize);
......
package com.gingersoft.gsa.cloud.table.mvp.ui.adapter;
import android.content.Context;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.FrameLayout;
import com.gingersoft.gsa.cloud.database.bean.Function;
import com.gingersoft.gsa.cloud.table.R;
......@@ -50,7 +53,9 @@ public class OrderTopFunctionAdapter extends DefaultAdapter<Function> {
class TopFunctionItemHolder extends BaseHolder<Function> {
@BindView(R2.id.btn_name)
QMUIAlphaButton btn_name;
Button btn_name;
@BindView(R2.id.btn_lable)
Button btn_lable;
public TopFunctionItemHolder(View itemView) {
super(itemView);
......@@ -63,7 +68,43 @@ public class OrderTopFunctionAdapter extends DefaultAdapter<Function> {
btn_name.setTextColor(datasBean.getTextColor());
btn_name.setBackgroundColor(datasBean.getBackgroundColor());
btn_name.setTextSize(datasBean.getTextSize());
if (!TextUtils.isEmpty(datasBean.getLable())) {
btn_lable.setText(datasBean.getLable());
btn_lable.setVisibility(View.VISIBLE);
} else {
btn_lable.setVisibility(View.INVISIBLE);
}
btn_name.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (onClickListener != null)
onClickListener.onItemClick(v, datasBean);
}
});
btn_name.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
if (onClickListener != null)
onClickListener.onItemLongClick(v, datasBean);
return false;
}
});
}
}
private OnClickListener onClickListener;
public void setOnClickListener(OnClickListener onClickListener) {
this.onClickListener = onClickListener;
}
public interface OnClickListener {
void onItemClick(View v, Function function);
boolean onItemLongClick(View v, Function function);
}
}
package com.gingersoft.gsa.cloud.ui.adapter.meal;
package com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal;
import android.content.Context;
import android.graphics.drawable.GradientDrawable;
......@@ -7,11 +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;
......@@ -66,7 +66,7 @@ public class ComboAdapter extends DefaultAdapter<ComboItem> {
@Override
public int getLayoutId(int viewType) {
return R.layout.ui_meal_item_combo;
return R.layout.meal_item_combo;
}
class ComboItemHolder extends BaseHolder<ComboItem> {
......@@ -157,13 +157,20 @@ public class ComboAdapter extends DefaultAdapter<ComboItem> {
// iv_qty_sold.setVisibility(View.INVISIBLE);
// }
int maxNumber = datasBean.getMaxNumber();
int number = datasBean.getNumber();
if (number >= maxNumber) {
tv_soldout.setVisibility(View.VISIBLE);
tv_soldout.setText(maxNumber);
} else {
// int maxNumber = datasBean.getMaxNumber();
// int number = datasBean.getNumber();
// if (number >= maxNumber) {
// tv_soldout.setVisibility(View.VISIBLE);
// tv_soldout.setText(maxNumber);
// } else {
// tv_soldout.setVisibility(View.INVISIBLE);
// }
String qty = datasBean.getMaxNumber();
if (qty.equals("")) {
tv_soldout.setVisibility(View.INVISIBLE);
} else {
tv_soldout.setVisibility(View.VISIBLE);
tv_soldout.setText(datasBean.getMaxNumber());
}
tv_soldout.setMaxHeight(OrderNumberChildShowSize);
......
package com.gingersoft.gsa.cloud.ui.adapter.meal;
package com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal;
import android.content.Context;
import android.graphics.Color;
import android.text.TextUtils;
import android.view.Gravity;
import android.view.View;
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.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.SoldoutCtrlActivity;
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 java.util.ArrayList;
import java.util.List;
import androidx.recyclerview.widget.GridLayoutManager;
......@@ -35,9 +40,12 @@ public class FoodAdapter extends DefaultAdapter<Food> {
private Context mContext;
private int mOrderNumberShowSize = 14;
private int mOrderNumberFontSize = 14;
private int mFoodFontSize = 14;
//所有沽清类型
private List<SoldoutCtrFood> mCurrentSlodoutFoodList_Full = new ArrayList<>();
private int mOrderNumberShowSize;
private int mOrderNumberFontSize;
private int mFoodFontSize;
private int mColwidth;
private int mColHeight;
......@@ -48,9 +56,15 @@ public class FoodAdapter extends DefaultAdapter<Food> {
private int user_qty;//在进入的的数量
public boolean check_qty = false;//是否检查数理
public FoodAdapter(Context context, List<Food> infos) {
/**
* 作為那個頁面的適配器:1=餐牌頁;2=沽清頁
*/
private int mFromType = 1;
public FoodAdapter(Context context, List<Food> infos, int fromType) {
super(infos);
this.mContext = context;
this.mFromType = fromType;
this.mOrderNumberShowSize = GsaCloudApplication.androidSetting.getOrderNumberChildShowSize();
this.mOrderNumberFontSize = GsaCloudApplication.androidSetting.getOrderNumberChildFontSize();
this.mFoodFontSize = GsaCloudApplication.androidSetting.getFoodFontSize();
......@@ -71,7 +85,7 @@ public class FoodAdapter extends DefaultAdapter<Food> {
@Override
public int getLayoutId(int viewType) {
return R.layout.ui_meal_item_food;
return R.layout.meal_item_food;
}
class FoodItemHolder extends BaseHolder<Food> {
......@@ -101,7 +115,7 @@ public class FoodAdapter extends DefaultAdapter<Food> {
setStatus(datasBean);
setOnItemClickListener((view, position1) -> {
if(XClickUtil.isFastDoubleClick(view,200)){
if (XClickUtil.isFastDoubleClick(view, 200)) {
return;
}
resetSelect(position1, datasBean);
......@@ -165,7 +179,7 @@ public class FoodAdapter extends DefaultAdapter<Food> {
tv_soldout.setMaxHeight(mOrderNumberShowSize);
tv_soldout.setMinHeight(mOrderNumberShowSize);
tv_soldout.setTextSize(mOrderNumberShowSize);
tv_soldout.setTextSize(mOrderNumberFontSize);
tv_soldout.setTextColor(Color.parseColor("#000000"));
tv_soldout.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.ui_selector_white_rect));
tv_soldout.setMinWidth(20);
......@@ -180,11 +194,16 @@ public class FoodAdapter extends DefaultAdapter<Food> {
tv_soldout.setVisibility(View.INVISIBLE);
iv_qtySold.setVisibility(View.INVISIBLE);
long Invisible = datasBean.getInvisible();
if (Invisible == 2) {
iv_qtySold.setVisibility(View.VISIBLE);
String qty = datasBean.getCurrentMaxNumber();
if (TextUtils.isEmpty(qty)) {
tv_soldout.setVisibility(View.INVISIBLE);
} else {
iv_qtySold.setVisibility(View.INVISIBLE);
if (qty.equalsIgnoreCase("售罄")) {
iv_qtySold.setVisibility(View.VISIBLE);
} else {
tv_soldout.setVisibility(View.VISIBLE);
tv_soldout.setText(qty);
}
}
}
......@@ -232,6 +251,13 @@ public class FoodAdapter extends DefaultAdapter<Food> {
mOnItemClickListener.onItemClick(mInfos.get(position), position);
}
public List<SoldoutCtrFood> getCurrentSlodoutFoodList_Full() {
return mCurrentSlodoutFoodList_Full;
}
public void setCurrentSlodoutFoodList_Full(List<SoldoutCtrFood> mCurrentSlodoutFoodList_Full) {
this.mCurrentSlodoutFoodList_Full = mCurrentSlodoutFoodList_Full;
}
public int getCurrentSelectPosition() {
return currentSelectPosition;
......
package com.gingersoft.gsa.cloud.ui.adapter.meal;
package com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal;
import android.content.Context;
import android.graphics.Color;
import android.text.TextUtils;
import android.view.Gravity;
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.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.SoldoutCtrlActivity;
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 java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
......@@ -32,6 +38,8 @@ public class FoodGroupAdapter extends DefaultAdapter<Food> {
private Context mContext;
//所有沽清类型
private List<SoldoutCtrFood> mCurrentSlodoutFoodList_Full = new ArrayList<>();
// private List<Color.DatasBean> mColorList;
private int mOrderNumberShowSize;
private int mOrderNumberFontSize;
......@@ -44,9 +52,15 @@ public class FoodGroupAdapter extends DefaultAdapter<Food> {
private int currentSelectPosition = 0;
public FoodGroupAdapter(Context context, List<Food> infos) {
/**
* 作為那個頁面的適配器:1=餐牌頁;2=沽清頁
*/
private int mFromType = 1;
public FoodGroupAdapter(Context context, List<Food> infos, int fromType) {
super(infos);
this.mContext = context;
this.mFromType = fromType;
this.mOrderNumberShowSize = GsaCloudApplication.androidSetting.getOrderNumberShowSize();
this.mOrderNumberFontSize = GsaCloudApplication.androidSetting.getOrderNumberFontSize();
......@@ -69,15 +83,15 @@ public class FoodGroupAdapter extends DefaultAdapter<Food> {
@Override
public BaseHolder<Food> getHolder(View v, int viewType) {
return new FoodlKindItemHolder(v);
return new FoodlGroupItemHolder(v);
}
@Override
public int getLayoutId(int viewType) {
return R.layout.ui_meal_item_food_group;
return R.layout.meal_item_food_group;
}
class FoodlKindItemHolder extends BaseHolder<Food> {
class FoodlGroupItemHolder extends BaseHolder<Food> {
@BindView(R2.id.rl_container)
RelativeLayout rl_container;
......@@ -88,7 +102,7 @@ public class FoodGroupAdapter extends DefaultAdapter<Food> {
@BindView(R2.id.tv_soldout)
TextView tv_soldout;
public FoodlKindItemHolder(View itemView) {
public FoodlGroupItemHolder(View itemView) {
super(itemView);
}
......@@ -103,7 +117,7 @@ public class FoodGroupAdapter extends DefaultAdapter<Food> {
@Override
public void onViewClick(View view, int position) {
if(XClickUtil.isFastDoubleClick(view,200)){
if (XClickUtil.isFastDoubleClick(view, 200)) {
return;
}
if (mOnItemClickListener != null) {
......@@ -221,32 +235,20 @@ public class FoodGroupAdapter extends DefaultAdapter<Food> {
tv_soldout.setMinHeight(mOrderNumberShowSize);
tv_soldout.setTextSize(mOrderNumberFontSize);
// String qty = datasBean.getOR_Qty();
// if (TextUtils.isEmpty(qty)) {
// tv_soldout.setVisibility(View.INVISIBLE);
// } else {
// tv_soldout.setVisibility(View.VISIBLE);
// tv_soldout.setText(datasBean.getNumber());
// }
/**
* 设置当前状态
*/
// if (mCurrentSlodoutFoodList_Full != null) {
// for (CurrentSoldoutFood.DatasBean sc : mCurrentSlodoutFoodList_Full) {
// if (sc.getItemID().equals(datasBean.getFID()) && sc.getType().equals("G")) {
// if (sc.get_QtyName().equals("")) {
// tv_soldout.setVisibility(View.INVISIBLE);
// } else {
// tv_soldout.setVisibility(View.VISIBLE);
// tv_soldout.setText(sc.get_QtyName());
// }
// }
// }
// }
String qty = datasBean.getMaxNumber();
if (qty.equals("")) {
tv_soldout.setVisibility(View.INVISIBLE);
} else {
tv_soldout.setVisibility(View.VISIBLE);
tv_soldout.setText(datasBean.getMaxNumber());
}
}
}
public void setCurrentSlodoutFoodList_Full(List<SoldoutCtrFood> currentSlodoutFoodList_Full) {
this.mCurrentSlodoutFoodList_Full = currentSlodoutFoodList_Full;
}
private OnItemClickListener mOnItemClickListener;
public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
......
package com.gingersoft.gsa.cloud.ui.adapter.meal;
package com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal;
import android.content.Context;
import android.view.Gravity;
......@@ -6,11 +6,10 @@ 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.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;
......@@ -65,7 +64,7 @@ public class ModifierAdapter extends DefaultAdapter<Modifier> {
@Override
public int getLayoutId(int viewType) {
return R.layout.ui_meal_item_combo;
return R.layout.meal_item_combo;
}
class ComboItemHolder extends BaseHolder<Modifier> {
......@@ -152,13 +151,21 @@ public class ModifierAdapter extends DefaultAdapter<Modifier> {
// iv_qty_sold.setVisibility(View.INVISIBLE);
// }
int maxNumber = datasBean.getMaxNumber();
int number = datasBean.getNumber();
if (number >= maxNumber) {
tv_soldout.setVisibility(View.VISIBLE);
tv_soldout.setText(maxNumber);
} else {
// int maxNumber = datasBean.getMaxNumber();
// int number = datasBean.getNumber();
// if (number >= maxNumber) {
// tv_soldout.setVisibility(View.VISIBLE);
// tv_soldout.setText(maxNumber);
// } else {
// tv_soldout.setVisibility(View.INVISIBLE);
// }
String qty = datasBean.getMaxNumber();
if (qty.equals("")) {
tv_soldout.setVisibility(View.INVISIBLE);
} else {
tv_soldout.setVisibility(View.VISIBLE);
tv_soldout.setText(datasBean.getMaxNumber());
}
tv_soldout.setMaxHeight(OrderNumberChildShowSize);
......
......@@ -404,7 +404,7 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
notifyItemChanged(i);
Food orderBean = mMealStandPresenter.getOrderFoodById(orderItem.getId());
if (orderBean != null) {
mMealStandPresenter.setUserMaxQty(orderBean);
mMealStandPresenter.setFoodMaxQty(orderBean,false);
}
}
}
......
package com.gingersoft.gsa.cloud.table.mvp.ui.fragment;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.ParseException;
import android.os.Bundle;
......@@ -92,9 +94,9 @@ public class AllOrderFragment extends BaseFragment<AllOrderPresenter> implements
@Override
public void initData(@Nullable Bundle savedInstanceState) {
currentPageIndex = getArguments().getInt("currentPageIndex", 0);
orderCenterActivity = (OrderCenterActivity) getActivity();
orderCenterActivity = (OrderCenterActivity) mContext;
mPresenter.initOrderAdapter(getActivity());
mPresenter.initOrderAdapter(mContext);
initRefreshLayout();
}
......@@ -169,6 +171,10 @@ public class AllOrderFragment extends BaseFragment<AllOrderPresenter> implements
}
public Activity getCurrentActivity() {
return (Activity) mContext;
}
private View.OnClickListener onRetryClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
......@@ -218,7 +224,7 @@ public class AllOrderFragment extends BaseFragment<AllOrderPresenter> implements
}
private void initAllOrderRecycleViewLayout() {
LinearLayoutManager mAllOrderRecycleLayoutManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false);
LinearLayoutManager mAllOrderRecycleLayoutManager = new LinearLayoutManager(mContext, LinearLayoutManager.VERTICAL, false);
recycle_order.setLayoutManager(mAllOrderRecycleLayoutManager);
recycle_order.addItemDecoration(new DividerItemDecoration(orderCenterActivity, LinearLayoutManager.VERTICAL));
}
......
......@@ -108,11 +108,10 @@ public class AllTableFragment extends BaseFragment<AllTablePresenter> implements
@Override
public void initData(@Nullable Bundle savedInstanceState) {
currentPageIndex = getArguments().getInt("currentPageIndex", TableActivity.FUNCTION_ALL_TABLE);
Activity activity = getActivity();
if (activity instanceof TableActivity) {
mTableActivity = (TableActivity) activity;
} else if(activity instanceof OrderContentActivity){
mOrderContentActivity = (OrderContentActivity) activity;
if (mContext instanceof TableActivity) {
mTableActivity = (TableActivity) mContext;
} else if(mContext instanceof OrderContentActivity){
mOrderContentActivity = (OrderContentActivity) mContext;
}
initRefreshLayout();
initRecycleScrollListener();
......@@ -266,6 +265,10 @@ public class AllTableFragment extends BaseFragment<AllTablePresenter> implements
}
public Activity getCurrentActivity() {
return (Activity) mContext;
}
private View.OnClickListener onRetryClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
......@@ -326,7 +329,7 @@ public class AllTableFragment extends BaseFragment<AllTablePresenter> implements
// recycle_all_table.addItemDecoration(new DividerItemDecoration(getActivity(), LinearLayoutManager.VERTICAL));
// recycle_all_table.addItemDecoration(new DividerItemDecoration(getActivity(), LinearLayoutManager.HORIZONTAL));
// } else {
mAllTableRecycleLayoutManager = new GridLayoutManager(getActivity(), 4, LinearLayoutManager.VERTICAL, false);
mAllTableRecycleLayoutManager = new GridLayoutManager(mContext, 4, LinearLayoutManager.VERTICAL, false);
recycle_all_table.setLayoutManager(mAllTableRecycleLayoutManager);
// recycle_all_table.addItemDecoration(new GridDividerItemDecoration(ArmsUtils.dip2px(getActivity(),1), ArmsUtils.getColor(getActivity(), R.color.theme_grey_color)));
// recycle_all_table.addItemDecoration(new DividerItemDecoration(getActivity(), LinearLayoutManager.HORIZONTAL));
......
......@@ -12,6 +12,7 @@ import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.table.di.component.DaggerFineItemAllComponent;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood;
import com.jess.arms.base.BaseFragment;
import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.di.component.AppComponent;
......@@ -23,6 +24,8 @@ import com.gingersoft.gsa.cloud.table.mvp.presenter.FineItemAllPresenter;
import org.simple.eventbus.Subscriber;
import java.util.List;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.DefaultItemAnimator;
......@@ -83,13 +86,19 @@ public class FineItemAllFragment extends BaseFragment<FineItemAllPresenter> impl
modCol = GsaCloudApplication.androidSetting.getModCol();
mPresenter.initAdapter();
mPresenter.initItemListener(getActivity());
mPresenter.initItemListener(mContext);
}
@Override
public void setData(@Nullable Object data) {
}
public void updateCurrentSlodoutFoodList_Full(List<SoldoutCtrFood> event) {
if (event == null) {
return;
}
mPresenter.updateCurrentSlodoutFoodList_Full(event);
}
public void onModSasteEvent(long mid) {
......@@ -149,25 +158,25 @@ public class FineItemAllFragment extends BaseFragment<FineItemAllPresenter> impl
private GridLayoutManager mFineItemTwoRecycleLayoutManager;
public void initFineItemTwoRecycleView() {
mFineItemTwoRecycleLayoutManager = new GridLayoutManager(getActivity(), 1, LinearLayoutManager.VERTICAL, false);
mFineItemTwoRecycleLayoutManager = new GridLayoutManager(mContext, 1, LinearLayoutManager.VERTICAL, false);
recycle_fine_item_kind_item.setLayoutManager(mFineItemTwoRecycleLayoutManager);
recycle_fine_item_kind_item.setItemAnimator(new DefaultItemAnimator());
}
public void initFineItemTwoRecycleView2() {
mFineItemTwoRecycleLayoutManager = new GridLayoutManager(getActivity(), 1, LinearLayoutManager.HORIZONTAL, false);
mFineItemTwoRecycleLayoutManager = new GridLayoutManager(mContext, 1, LinearLayoutManager.HORIZONTAL, false);
recycle_fine_item_kind_item.setLayoutManager(mFineItemTwoRecycleLayoutManager);
recycle_fine_item_kind_item.setItemAnimator(new DefaultItemAnimator());
}
public void initFineItemAllRecycleView() {
mFineItemAllRecycleLayoutManager = new GridLayoutManager(getActivity(), 1, LinearLayoutManager.VERTICAL, false);
mFineItemAllRecycleLayoutManager = new GridLayoutManager(mContext, 1, LinearLayoutManager.VERTICAL, false);
recycle_fine_item_all.setLayoutManager(mFineItemAllRecycleLayoutManager);
recycle_fine_item_all.setItemAnimator(new DefaultItemAnimator());
}
public void initFineItemAllRecycleView2() {
mFineItemAllRecycleLayoutManager = new GridLayoutManager(getActivity(), 1, LinearLayoutManager.HORIZONTAL, false);
mFineItemAllRecycleLayoutManager = new GridLayoutManager(mContext, 1, LinearLayoutManager.HORIZONTAL, false);
recycle_fine_item_all.setLayoutManager(mFineItemAllRecycleLayoutManager);
recycle_fine_item_all.setItemAnimator(new DefaultItemAnimator());
}
......@@ -208,7 +217,7 @@ public class FineItemAllFragment extends BaseFragment<FineItemAllPresenter> impl
@Override
public Activity getCurrentActivity() {
return getActivity();
return (Activity) mContext;
}
@Override
......
......@@ -79,11 +79,11 @@ public class FineItemKindFragment extends BaseFragment<FineItemKindPresenter> im
modCol = GsaCloudApplication.androidSetting.getModCol();
mPresenter.initAdapter();
mPresenter.initItemListener(getActivity());
mPresenter.initItemListener(mContext);
}
// @Subscriber(tag = "FineItemKindFragment_onCurrentSlodoutFoodList_FullEvent")
// public void onCurrentSlodoutFoodList_FullEvent(List<CurrentSoldoutFood.DatasBean> event) {
// public void onCurrentSlodoutFoodList_FullEvent(List<SoldoutCtrFood.DatasBean> event) {
// if (event == null) {
// return;
// }
......@@ -157,25 +157,25 @@ public class FineItemKindFragment extends BaseFragment<FineItemKindPresenter> im
private GridLayoutManager mFineItemTwoRecycleLayoutManager;
public void initFineItemOneRecycleView() {
mFineItemOneRecycleLayoutManager = new GridLayoutManager(getActivity(), 1, LinearLayoutManager.VERTICAL, false);
mFineItemOneRecycleLayoutManager = new GridLayoutManager(mContext, 1, LinearLayoutManager.VERTICAL, false);
recycle_fine_item_kind.setLayoutManager(mFineItemOneRecycleLayoutManager);
recycle_fine_item_kind.setItemAnimator(new DefaultItemAnimator());
}
public void initFineItemOneRecycleView2() {
mFineItemOneRecycleLayoutManager = new GridLayoutManager(getActivity(), 1, LinearLayoutManager.HORIZONTAL, false);
mFineItemOneRecycleLayoutManager = new GridLayoutManager(mContext, 1, LinearLayoutManager.HORIZONTAL, false);
recycle_fine_item_kind.setLayoutManager(mFineItemOneRecycleLayoutManager);
recycle_fine_item_kind.setItemAnimator(new DefaultItemAnimator());
}
public void initFineItemTwoRecycleView() {
mFineItemTwoRecycleLayoutManager = new GridLayoutManager(getActivity(), 1, LinearLayoutManager.VERTICAL, false);
mFineItemTwoRecycleLayoutManager = new GridLayoutManager(mContext, 1, LinearLayoutManager.VERTICAL, false);
recycle_fine_item_kind_item.setLayoutManager(mFineItemTwoRecycleLayoutManager);
recycle_fine_item_kind_item.setItemAnimator(new DefaultItemAnimator());
}
public void initFineItemTwoRecycleView2() {
mFineItemTwoRecycleLayoutManager = new GridLayoutManager(getActivity(), 1, LinearLayoutManager.HORIZONTAL, false);
mFineItemTwoRecycleLayoutManager = new GridLayoutManager(mContext, 1, LinearLayoutManager.HORIZONTAL, false);
recycle_fine_item_kind_item.setLayoutManager(mFineItemTwoRecycleLayoutManager);
recycle_fine_item_kind_item.setItemAnimator(new DefaultItemAnimator());
}
......@@ -206,7 +206,7 @@ public class FineItemKindFragment extends BaseFragment<FineItemKindPresenter> im
@Override
public Activity getCurrentActivity() {
return getActivity();
return (Activity) mContext;
}
@Override
......
......@@ -136,11 +136,10 @@ public class InputTableFragment extends BaseFragment<InputTablePresenter> implem
@Override
public void initData(@Nullable Bundle savedInstanceState) {
Activity activity = getActivity();
if (activity instanceof TableActivity) {
mTableActivity = (TableActivity) activity;
} else if(activity instanceof OrderContentActivity){
mOrderContentActivity = (OrderContentActivity) activity;
if (mContext instanceof TableActivity) {
mTableActivity = (TableActivity) mContext;
} else if(mContext instanceof OrderContentActivity){
mOrderContentActivity = (OrderContentActivity) mContext;
}
ed_value.addTextChangedListener(new TextWatcher() {
......
......@@ -88,11 +88,10 @@ public class StateTableFragment extends BaseFragment<StateTablePresenter> implem
@Override
public void initData(@Nullable Bundle savedInstanceState) {
Activity activity = getActivity();
if (activity instanceof TableActivity) {
mTableActivity = (TableActivity) activity;
} else if(activity instanceof OrderContentActivity){
mOrderContentActivity = (OrderContentActivity) activity;
if (mContext instanceof TableActivity) {
mTableActivity = (TableActivity) mContext;
} else if(mContext instanceof OrderContentActivity){
mOrderContentActivity = (OrderContentActivity) mContext;
}
initRecycleScrollListener();
......@@ -213,6 +212,9 @@ public class StateTableFragment extends BaseFragment<StateTablePresenter> implem
}
public Activity getCurrentActivity() {
return (Activity) mContext;
}
@Override
public void setStateTableAdapter(DefaultAdapter adapter) {
......@@ -230,7 +232,7 @@ public class StateTableFragment extends BaseFragment<StateTablePresenter> implem
// recycle_state_table.addItemDecoration(new DividerItemDecoration(getActivity(), LinearLayoutManager.HORIZONTAL));
// recycle_state_table.addItemDecoration(new DividerItemDecoration(getActivity(), LinearLayoutManager.VERTICAL));
// } else {
mStateTableRecycleLayoutManager = new GridLayoutManager(getActivity(), 4, LinearLayoutManager.VERTICAL, false);
mStateTableRecycleLayoutManager = new GridLayoutManager(mContext, 4, LinearLayoutManager.VERTICAL, false);
recycle_state_table.setLayoutManager(mStateTableRecycleLayoutManager);
// recycle_state_table.addItemDecoration(new GridDividerItemDecoration(ArmsUtils.dip2px(getActivity(),1), ArmsUtils.getColor(getActivity(), R.color.theme_grey_color)));
// recycle_state_table.addItemDecoration(new DividerItemDecoration(getActivity(), LinearLayoutManager.HORIZONTAL));
......
......@@ -8,7 +8,7 @@
<LinearLayout
android:id="@+id/ll_meals"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_220"
android:layout_height="@dimen/dp_250"
android:orientation="vertical">
<RelativeLayout
......@@ -37,7 +37,6 @@
android:text="數量"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/theme_white_color" />
</RelativeLayout>
<LinearLayout
......@@ -51,7 +50,9 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="@null"
android:fadeScrollbars="false" />
android:fadeScrollbars="false"
app:spanCount="1"
app:layoutManager="com.gingersoft.gsa.cloud.ui.recylcler.RecyclerViewNoBugLinearLayoutManager"/>
</LinearLayout>
</LinearLayout>
......
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rl_select"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/normal_space5"
android:paddingBottom="@dimen/normal_space5"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_10"
android:text="1"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/theme_black"
android:textSize="@dimen/sp_16"/>
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_10"
android:layout_marginRight="@dimen/dp_5"
android:layout_toLeftOf="@+id/tv_value"
android:layout_toRightOf="@+id/tv_number"
android:text=""
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/theme_black"
android:textSize="@dimen/sp_16" />
<TextView
android:id="@+id/tv_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="@dimen/dp_20"
android:text=""
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/theme_black"
android:textSize="@dimen/sp_16" />
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<com.qmuiteam.qmui.alpha.QMUIAlphaButton xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/btn_name"
android:orientation="vertical"
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fl_container"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_60"
android:gravity="center"
android:background="@color/theme_color"
android:textColor="@color/theme_white_color"
android:text="送單"
android:textSize="@dimen/font_large"
android:layout_height="wrap_content"
android:layout_margin="1px">
</com.qmuiteam.qmui.alpha.QMUIAlphaButton>
\ No newline at end of file
<com.qmuiteam.qmui.alpha.QMUIAlphaButton
android:id="@+id/btn_name"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:background="@color/theme_color"
android:textColor="@color/theme_white_color"
android:text="送單"
android:textSize="@dimen/font_large">
</com.qmuiteam.qmui.alpha.QMUIAlphaButton>
<Button
android:id="@+id/btn_lable"
style="@style/ButtonBorderless"
android:layout_width="40dp"
android:layout_height="20dp"
android:layout_gravity="right|bottom"
android:background="@drawable/ui_shape_red_oval"
android:gravity="center"
android:visibility="visible"
android:singleLine="true"
android:layout_margin="@dimen/dp_2"
android:textColor="@color/theme_white_color" />
</FrameLayout>
\ No newline at end of file
......@@ -43,10 +43,10 @@
android:value="ConfigModule" />
<meta-data
android:name="design_width_in_dp"
android:value="360" />
android:value="360"/>
<meta-data
android:name="design_height_in_dp"
android:value="540" />
android:value="640"/>
</application>
</manifest>
......@@ -36,10 +36,10 @@
android:value="ConfigModule" />
<meta-data
android:name="design_width_in_dp"
android:value="360" />
android:value="360"/>
<meta-data
android:name="design_height_in_dp"
android:value="540" />
android:value="640"/>
</application>
</manifest>
\ No newline at end of file
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