Commit 5ff6e716 by 宁斌

1、部分文檔bug处理

parent 77361964
......@@ -601,7 +601,7 @@ public class TimeUtil {
// if (hour != 0) {
// min += hour * 60;
// }
long[] times = {hour, min, sec};
long[] times = {day, hour, min};
return times;
}
......
......@@ -74,6 +74,8 @@ public class RecyItemTouchHelperCallback<H extends QMUISection.Model<H>, T exten
int fromIndex = sectionAdapter.getItemIndex(fromPosition);
int toIndex = sectionAdapter.getItemIndex(toPosition);
if(toIndex < 0 || fromIndex < 0)
return false;
if ((fromIndex + 1) == list.size())
return false;
......@@ -95,6 +97,8 @@ public class RecyItemTouchHelperCallback<H extends QMUISection.Model<H>, T exten
int fromIndex = sectionAdapter.getItemIndex(fromPosition);
int toIndex = sectionAdapter.getItemIndex(toPosition);
if(toIndex < 0 || fromIndex < 0)
return false;
if ((fromIndex + 1) == list.size())
return false;
......
......@@ -6,6 +6,8 @@ import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.mvp.IModel;
import com.jess.arms.mvp.IView;
import java.util.List;
import io.reactivex.Observable;
import okhttp3.RequestBody;
......@@ -34,6 +36,9 @@ public interface SettlementReportContract {
//打印清機報表
void printRepore();
void showCrossDaysLayout(boolean show);
void setOrderConditionList(List<SendSettlement.DataBean.DateNumBean> dateNum, String type1, String type2, String type3);
}
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends IModel{
......
package com.gingersoft.gsa.cloud.main.mvp.model.bean;
import java.io.Serializable;
import java.util.List;
/**
......@@ -73,6 +74,46 @@ public class SendSettlement {
private String msg;
private List<String> table;
private String type1;
private String type2;
private String type3;
private List<DateNumBean> dateNum;
private String errCode;
public String getType1() {
return type1;
}
public void setType1(String type1) {
this.type1 = type1;
}
public String getType2() {
return type2;
}
public void setType2(String type2) {
this.type2 = type2;
}
public String getType3() {
return type3;
}
public void setType3(String type3) {
this.type3 = type3;
}
public List<DateNumBean> getDateNum() {
return dateNum;
}
public void setDateNum(List<DateNumBean> dateNum) {
this.dateNum = dateNum;
}
public String getMsg() {
return msg;
}
......@@ -88,5 +129,35 @@ public class SendSettlement {
public void setTable(List<String> table) {
this.table = table;
}
public String getErrCode() {
return errCode;
}
public void setErrCode(String errCode) {
this.errCode = errCode;
}
public static class DateNumBean implements Serializable {
private String date;
private int num;
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
}
}
}
......@@ -64,6 +64,8 @@ public class SettlementReport {
private String currentTime;
private String startTime;
public String getCurrentTime() {
return currentTime;
}
......@@ -120,6 +122,7 @@ public class SettlementReport {
this.cash = cash;
}
public static class VoBean implements Serializable{
/**
* prices : 256
......
package com.gingersoft.gsa.cloud.main.mvp.presenter;
import android.app.Application;
import android.text.TextUtils;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.main.R;
......@@ -61,10 +62,10 @@ public class SettlementReportPresenter extends BasePresenter<SettlementReportCon
private SettlementReportActivity IActivity;
private SettlementReportItemAdapter mSettlementReportItemAdapter;
private List<SectionTextItem3> mSettlementReportItemList= new ArrayList<>();
private List<SectionTextItem3> mSettlementReportItemList = new ArrayList<>();
private SettlementReportItem5Adapter mSettlementReportItem5Adapter;
private List<SectionTextItem5> mSettlementReportItem5List= new ArrayList<>();
private List<SectionTextItem5> mSettlementReportItem5List = new ArrayList<>();
public SettlementReportItem5Adapter mPrintAdapter;
......@@ -92,7 +93,7 @@ public class SettlementReportPresenter extends BasePresenter<SettlementReportCon
mSettlementReportItem5Adapter = new SettlementReportItem5Adapter(IActivity, mSettlementReportItem5List);
mRootView.setSettlementReportItem5Adapter(mSettlementReportItem5Adapter);
}
if(mPrintAdapter == null){
if (mPrintAdapter == null) {
mPrintAdapter = new SettlementReportItem5Adapter(IActivity, mSettlementReportItem5List, 24);
}
}
......@@ -110,11 +111,19 @@ public class SettlementReportPresenter extends BasePresenter<SettlementReportCon
mPrintAdapter.notifyDataSetChanged();
}
public void sendSettlement() {
public void sendSettlement(int type) {
int restaurantId = GsaCloudApplication.getRestaurantId(mApplication);
RequestBody requestBody = new FormBody.Builder()
.add("restaurantId", String.valueOf(restaurantId))
.build();
RequestBody requestBody;
if (type != 0) {
requestBody = new FormBody.Builder()
.add("restaurantId", String.valueOf(restaurantId))
.add("type", String.valueOf(type))
.build();
} else {
requestBody = new FormBody.Builder()
.add("restaurantId", String.valueOf(restaurantId))
.build();
}
mModel.sendSettlement(requestBody)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(null))
......@@ -127,33 +136,52 @@ public class SettlementReportPresenter extends BasePresenter<SettlementReportCon
@Override
public void onNext(@NonNull SendSettlement info) {
if (info != null && info.isSuccess()) {
SendSettlement.DataBean dataBean = info.getData();
if (dataBean != null) {
if (dataBean.getTable() == null || (dataBean.getTable() != null && dataBean.getTable().size() == 0)) {
if (dataBean != null
&& !TextUtils.isEmpty(dataBean.getErrCode())
&& dataBean.getErrCode().equals("restaurant.operation.0005")) {
//跨天清機提示
mRootView.showCrossDaysLayout(true);
if (dataBean.getDateNum() != null) {
mRootView.setOrderConditionList(info.getData().getDateNum(), dataBean.getType1(), dataBean.getType2(), dataBean.getType3());
}
} else {
if (dataBean != null) {
if (dataBean.getTable() == null || (dataBean.getTable() != null && dataBean.getTable().size() == 0)) {
mRootView.showMessage("清機成功");
//打印清機報表
mRootView.printRepore();
} else {
//還有檯未結賬
showSettlementErrorDialog("仍有臺號未結賬,請先結賬;" + "\n" + getTables(dataBean.getTable()));
}
} else {
mRootView.showMessage("清機成功");
//打印清機報表
mRootView.printRepore();
} else {
//還有檯未結賬
showSettlementErrorDialog("仍有臺號未結賬,請先結賬;" + "\n" + getTables(dataBean.getTable()));
}
} else {
mRootView.showMessage("清機成功");
//打印清機報表
mRootView.printRepore();
}
} else if(info.getErrCode().equals("restaurant.operation.0003")){
} else if (info.getErrCode().equals("restaurant.operation.0003")) {
//一天多次清機提示
Class[] parameterTypes = {};
Object[] parameters = {};
CommonTipDialog.showDoubtDialog(IActivity,"今天已清機過,是否繼續清機", SettlementReportPresenter.class, SettlementReportPresenter.this,
CommonTipDialog.showDoubtDialog(IActivity, "今天已清機過,是否繼續清機", SettlementReportPresenter.class, SettlementReportPresenter.this,
"sendSettlement", parameterTypes, parameters);
}else if(info.getErrCode().equals("restaurant.operation.0004")){
} else if (info.getErrCode().equals("restaurant.operation.0004")) {
Class[] parameterTypes = {};
Object[] parameters = {};
CommonTipDialog.showDoubtDialog(IActivity,"仍有外送訂單未結賬,請先結賬!", SettlementReportPresenter.class, SettlementReportPresenter.this,
CommonTipDialog.showDoubtDialog(IActivity, "仍有外送訂單未結賬,請先結賬!", SettlementReportPresenter.class, SettlementReportPresenter.this,
"", parameterTypes, parameters);
} else {
mRootView.showMessage("清機失敗");
if (!TextUtils.isEmpty(info.getErrMsg())) {
mRootView.showMessage(info.getErrMsg()+",清機失敗");
} else {
mRootView.showMessage("清機失敗");
}
}
}
});
......
......@@ -7,8 +7,16 @@ import android.os.Handler;
import android.os.Message;
import android.text.TextUtils;
import android.view.View;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.LinearLayout;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.ScrollView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import androidx.annotation.NonNull;
......@@ -33,10 +41,12 @@ import com.gingersoft.gsa.cloud.main.R;
import com.gingersoft.gsa.cloud.main.R2;
import com.gingersoft.gsa.cloud.main.di.component.DaggerSettlementReportComponent;
import com.gingersoft.gsa.cloud.main.mvp.contract.SettlementReportContract;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.SendSettlement;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.SettlementReport;
import com.gingersoft.gsa.cloud.main.mvp.presenter.SettlementReportPresenter;
import com.gingersoft.gsa.cloud.ui.bean.view.SectionTextItem3;
import com.gingersoft.gsa.cloud.ui.bean.view.SectionTextItem5;
import com.gingersoft.gsa.cloud.ui.utils.AnimateUtils;
import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog;
import com.jess.arms.base.BaseActivity;
import com.jess.arms.base.DefaultAdapter;
......@@ -98,10 +108,21 @@ public class SettlementReportActivity extends BaseActivity<SettlementReportPrese
@BindView(R2.id.scrollView)
NestedScrollView scrollView;
@BindView(R2.id.ll_cross_days)
LinearLayout ll_cross_days;
@BindView(R2.id.lv_order_condition)
ListView lv_order_info;
@BindView(R2.id.rb_condition)
RadioGroup rb_condition;
// @BindView(R2.id.rv_settlement_report_item)
// RecyclerView rv_settlement_report_item;
@BindView(R2.id.rv_settlement_report_item2)
RecyclerView rv_settlement_report_item2;
private Button rightBtn;
private int type;
//币種
public String cashStr = "$";
protected String dfformat = "#0.00";
......@@ -150,7 +171,7 @@ public class SettlementReportActivity extends BaseActivity<SettlementReportPrese
killMyself();
// overridePendingTransition(R.anim.slide_still, R.anim.slide_out_right);
});
Button rightBtn = mTopBar.addRightTextButton("打印", R.id.tv_right);
rightBtn = mTopBar.addRightTextButton("打印", R.id.tv_right);
rightBtn.setTextColor(ArmsUtils.getColor(this, R.color.theme_white_color));
rightBtn.setOnClickListener(v -> {
String settlementReportJson = (String) SPUtils.get(mContext, PrintConstans.SETTLEMENT_REPORT, "");
......@@ -170,17 +191,34 @@ public class SettlementReportActivity extends BaseActivity<SettlementReportPrese
@OnClick({R2.id.btn_send_settlement})
public void onClick(View v) {
if (v.getId() == R.id.btn_send_settlement) {
type = 0;
showSendSettlementDialog();
}
}
@OnClick({R2.id.btn_sure_cross_days})
public void onClickSure(View v) {
if (v.getId() == R.id.btn_sure_cross_days) {
showSendSettlementDialog();
}
}
@OnClick({R2.id.btn_cancel_cross_days})
public void onClickCancel(View v) {
if (v.getId() == R.id.btn_cancel_cross_days) {
AnimateUtils.animateDown(ll_cross_days, 500);
ll_cross_days.setVisibility(View.GONE);
}
}
private void showSendSettlementDialog() {
QMUIDialog.MessageDialogBuilder dialogBuilder = new QMUIDialog.MessageDialogBuilder(this);
dialogBuilder.setTitle("溫馨提示");
dialogBuilder.setMessage("是否確認清機");
dialogBuilder.addAction("取消", (dialog, index) -> dialog.dismiss());
dialogBuilder.addAction(0, "確認", QMUIDialogAction.ACTION_PROP_NEGATIVE, (dialog, index) -> {
mPresenter.sendSettlement();
mPresenter.sendSettlement(type);
dialog.dismiss();
});
dialogBuilder.create(com.gingersoft.gsa.cloud.base.R.style.MyDialogTheme2).show();
......@@ -300,7 +338,7 @@ public class SettlementReportActivity extends BaseActivity<SettlementReportPrese
SettlementReport.DataBean.VoBean voBean = datasBean.getVo();
if (voBean != null) {
settlementReportItem5s.add(new SectionTextItem5(projectTotalSalesText, null, null, null, cashStr + df.format(voBean.getPrices())));
settlementReportItem5s.add(new SectionTextItem5(discountText, null, null, null, "-"+cashStr + df.format(voBean.getDisamount())));
settlementReportItem5s.add(new SectionTextItem5(discountText, null, null, null, "-" + cashStr + df.format(voBean.getDisamount())));
settlementReportItem5s.add(new SectionTextItem5(serviceFeeText, null, null, null, cashStr + df.format(voBean.getScamount())));
settlementReportItem5s.add(new SectionTextItem5(deliveryFeeText, null, null, null, cashStr + df.format(voBean.getDeliverycharge())));
settlementReportItem5s.add(new SectionTextItem5(netTurnoverText, null, null, null, cashStr + df.format(voBean.getTotamount())));
......@@ -539,6 +577,119 @@ public class SettlementReportActivity extends BaseActivity<SettlementReportPrese
});
}
@Override
public void showCrossDaysLayout(boolean show) {
if (show) {
AnimateUtils.animateUp(ll_cross_days, 500);
ll_cross_days.setVisibility(View.VISIBLE);
rightBtn.setVisibility(View.INVISIBLE);
} else {
AnimateUtils.animateDown(ll_cross_days, 500);
ll_cross_days.setVisibility(View.GONE);
rightBtn.setVisibility(View.VISIBLE);
}
}
private RadioButton type1Button, type2Button, type3Button;
@Override
public void setOrderConditionList(List<SendSettlement.DataBean.DateNumBean> dateNum, String type1, String type2, String type3) {
int rbIndex = 0;
if (!TextUtils.isEmpty(type1)) {
type1Button = new RadioButton(this);
type1Button.setText(type1);
//默認選中第一個
// type = 1;
// type1Button.setChecked(true);
rb_condition.addView(type1Button, rbIndex);
rbIndex++;
}
if (!TextUtils.isEmpty(type2)) {
type2Button = new RadioButton(this);
type2Button.setText(type2);
rb_condition.addView(type2Button, rbIndex);
rbIndex++;
}
if (!TextUtils.isEmpty(type3)) {
type3Button = new RadioButton(this);
type3Button.setText(type3);
rb_condition.addView(type3Button, rbIndex);
}
List<Map<String, Object>> lists = new ArrayList<>();
for (int i = 0; i < dateNum.size(); i++) {
SendSettlement.DataBean.DateNumBean dateNumBean = dateNum.get(i);
Map<String, Object> map = new HashMap<>();
map.put("date", TimeUtil.getStringByFormat(dateNumBean.getDate(),TimeUtil.dateFormatM_D));
map.put("num", dateNumBean.getNum());
lists.add(map);
}
SimpleAdapter adapter = new SimpleAdapter(this, lists, R.layout.item_settlement_cross_days_date_num
, new String[]{"date", "num"}
, new int[]{R.id.tv_date, R.id.tv_num});
lv_order_info.setAdapter(adapter);
rb_condition.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// if (type1Button != null) {
// type1Button.setChecked(false);
// }
// if (type2Button != null) {
// type2Button.setChecked(false);
// }
// if (type3Button != null) {
// type3Button.setChecked(false);
// }
//
if (type1Button != null && type1Button.getId() == checkedId) {
// type1Button.setChecked(true);
type = 1;
}
if (type2Button != null && type2Button.getId() == checkedId) {
// type2Button.setChecked(true);
type = 2;
}
if (type3Button != null && type3Button.getId() == checkedId) {
// type3Button.setChecked(true);
type = 3;
}
}
});
}
private void setTypeRadioButton(int type) {
if (type1Button != null) {
type1Button.setChecked(false);
}
if (type2Button != null) {
type2Button.setChecked(false);
}
if (type3Button != null) {
type3Button.setChecked(false);
}
switch (type) {
case 1:
if (type1Button != null) {
type1Button.toggle();
}
break;
case 2:
if (type2Button != null) {
type2Button.toggle();
}
break;
case 3:
if (type3Button != null) {
type3Button.toggle();
}
break;
}
}
@NotNull
private View initPrintView() {
View view = View.inflate(mContext, R.layout.layout_settlement_report, null);
......
<?xml version="1.0" encoding="utf-8"?>
<com.qmuiteam.qmui.widget.QMUIWindowInsetLayout xmlns:android="http://schemas.android.com/apk/res/android"
<com.qmuiteam.qmui.widget.QMUIWindowInsetLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
......@@ -20,4 +22,99 @@
android:text="去清機"
android:textColor="@color/theme_white_color"
android:textSize="@dimen/dp_15" />
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="?attr/qmui_topbar_height"
android:background="@color/theme_white_color"
android:fillViewport="true">
<LinearLayout
android:id="@+id/ll_cross_days"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="@dimen/dp_10"
android:visibility="gone">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/qmui_icon_dialog_surprised"
android:textColor="@color/theme_black"
android:textSize="@dimen/sp_16"
android:text="檢測到您有跨天訂單未清機,請選擇清機類型"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/theme_black"
android:textSize="@dimen/sp_14"
android:text="包含:"
android:layout_marginTop="@dimen/dp_5"/>
<com.gingersoft.gsa.cloud.base.widget.NoScrollListview
android:id="@+id/lv_order_condition"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:divider="@null"
android:layout_marginTop="@dimen/dp_10"
android:padding="@dimen/dp_10"
android:layout_margin="@dimen/dp_10"
android:background="@drawable/shape_delivery_item_btn_normal"/>
<RadioGroup
android:id="@+id/rb_condition"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10"
android:layout_marginLeft="@dimen/dp_10">
<!-- <RadioButton-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:text="全部計入到10號清機數據"/>-->
<!-- <RadioButton-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:text="全部計入到12號清機數據"/>-->
<!-- <RadioButton-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:text="分別按天結算"/>-->
</RadioGroup>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
android:id="@+id/btn_sure_cross_days"
android:layout_width="@dimen/dp_100"
android:layout_height="@dimen/dp_50"
android:layout_alignParentBottom="true"
android:layout_marginLeft="@dimen/dp_50"
android:textColor="@color/theme_white_color"
android:text="確認"
app:qmui_backgroundColor="@color/theme_color"
app:qmui_radius="@dimen/dp_5" />
<com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
android:id="@+id/btn_cancel_cross_days"
android:layout_width="@dimen/dp_100"
android:layout_height="@dimen/dp_50"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginRight="@dimen/dp_50"
android:textColor="@color/theme_black"
android:text="取消"
app:qmui_backgroundColor="@color/theme_white_color"
app:qmui_borderColor="@color/theme_hint_color"
app:qmui_radius="@dimen/dp_5"/>
</RelativeLayout>
</LinearLayout>
</ScrollView>
</com.qmuiteam.qmui.widget.QMUIWindowInsetLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/dp_10">
<TextView
android:id="@+id/tv_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/theme_black"
android:textSize="@dimen/sp_16"
android:text="7-18"/>
<TextView
android:id="@+id/tv_num"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_150"
android:textColor="@color/theme_black"
android:textSize="@dimen/sp_16"
android:text="7-18"/>
</LinearLayout>
\ No newline at end of file
......@@ -98,7 +98,7 @@ public class TableListPresenter extends BasePresenter<TableListContract.Model, T
//將沒有區域的檯 放到其他下面
TableArea newArea = new TableArea();
newArea.setId(-1);
newArea.setRegionName("其他");
newArea.setRegionName("默認");
areaList.add(newArea);
break;
}
......@@ -122,7 +122,7 @@ public class TableListPresenter extends BasePresenter<TableListContract.Model, T
//將沒有區域的檯 放到其他下面
TableArea newArea = new TableArea();
newArea.setId(-1);
newArea.setRegionName("其他");
newArea.setRegionName("默認");
areaList.add(newArea);
}
return areaList;
......@@ -139,7 +139,7 @@ public class TableListPresenter extends BasePresenter<TableListContract.Model, T
private void removeOtherAreaItem(List<TableArea> areaList) {
for (int i = areaList.size() - 1; i >= 0; i--) {
if (areaList.get(i).getRegionName().equals("其他")) {
if (areaList.get(i).getRegionName().equals("默認")) {
areaList.remove(i);
}
}
......
......@@ -223,9 +223,9 @@ public class TableManageActivity extends BaseFragmentActivity<TableManagePresent
if (fragment != null) {
if (fragment instanceof AreaListFragment) {
AreaListFragment areaListFragment = (AreaListFragment) fragment;
if (!areaListFragment.isRadioEdit()) {
areaListFragment.updateAreaData(areas);
}
// if (!areaListFragment.isRadioEdit()) {
areaListFragment.updateAreaData(areas);
// }
} else if (fragment instanceof TableListFragment) {
TableListFragment tableListFragment = (TableListFragment) fragment;
tableListFragment.updateAreaData(areas);
......@@ -245,7 +245,10 @@ public class TableManageActivity extends BaseFragmentActivity<TableManagePresent
}
break;
case DELETE_AREA_SUCCESS:
areaListFragment = (AreaListFragment) fragment;
if (areaListFragment != null) {
areaListFragment.deleteSuccess();
}
break;
case QUERY_AREA_SUCCESS:
......
......@@ -162,6 +162,16 @@ public class AddTableFragment extends BaseFragment<AddTablePresenter> implements
tableNameEditText.setBackgroundColor(ContextCompat.getColor(mContext, R.color.trans));
tableNameItemView.addAccessoryCustomView(tableNameEditText);
FrameLayout.LayoutParams tableNameEditTextParams = (FrameLayout.LayoutParams) tableNameEditText.getLayoutParams();
tableNameEditTextParams.width = QMUIDisplayHelper.dp2px(mContext,200);
tableNameEditText.setLayoutParams(tableNameEditTextParams);
// 如下是内容为空的配置,需要两个属性结合使用;如果有默认值,进行相反的配置
// 设置文字的对齐方式
tableNameEditText.setGravity(Gravity.START | Gravity.CENTER_VERTICAL);
// 设置文本的显示方向
tableNameEditText.setTextDirection(View.TEXT_DIRECTION_RTL);
int size = QMUIDisplayHelper.dp2px(mContext, 20);
QMUIGroupListView.newSection(mContext)
.setLeftIconSize(size, ViewGroup.LayoutParams.WRAP_CONTENT)
......@@ -203,26 +213,26 @@ public class AddTableFragment extends BaseFragment<AddTablePresenter> implements
peopleMaxNumberEditText.setBackgroundColor(ContextCompat.getColor(mContext, R.color.trans));
peopleMaxNumberEditText.setInputType(EditorInfo.TYPE_CLASS_NUMBER);
peopleMaxNumberEditText.setBackground(ArmsUtils.getDrawablebyResource(mContext, R.drawable.shape_delivery_item_btn_normal));
peopleNumberItemView.addAccessoryCustomView(peopleMixNumberEditText);
peopleNumberItemView.addAccessoryCustomView(tv_line);
peopleNumberItemView.addAccessoryCustomView(peopleMaxNumberEditText);
peopleNumberItemView.addAccessoryCustomView(tv_line);
peopleNumberItemView.addAccessoryCustomView(peopleMixNumberEditText);
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.MATCH_PARENT);
params.gravity = Gravity.CENTER | Gravity.RIGHT;
params.width = 150;
peopleMixNumberEditText.setLayoutParams(params);
params.width = 180;
peopleMaxNumberEditText.setLayoutParams(params);
FrameLayout.LayoutParams params2 = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.MATCH_PARENT);
params2.gravity = Gravity.CENTER | Gravity.RIGHT;
params2.width = 30;
params2.rightMargin = 170;
params2.rightMargin = 190;
tv_line.setLayoutParams(params2);
FrameLayout.LayoutParams params3 = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.MATCH_PARENT);
params3.gravity = Gravity.CENTER | Gravity.RIGHT;
params3.width = 150;
params3.rightMargin = 220;
peopleMaxNumberEditText.setLayoutParams(params3);
params3.width = 180;
params3.rightMargin = 250;
peopleMixNumberEditText.setLayoutParams(params3);
QMUICommonListItemView defalutPeopleNumberItemView = mGroupListView.createItemView("默認人數");
......@@ -249,9 +259,15 @@ public class AddTableFragment extends BaseFragment<AddTablePresenter> implements
tv_people.setLayoutParams(params5);
FrameLayout.LayoutParams params6 = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.MATCH_PARENT);
params6.width = 100;
params6.gravity = Gravity.CENTER_VERTICAL | Gravity.RIGHT;
params6.rightMargin = 60;
defalutPeopleNumberEditText.setLayoutParams(params6);
// 如下是内容为空的配置,需要两个属性结合使用;如果有默认值,进行相反的配置
// 设置文字的对齐方式
defalutPeopleNumberEditText.setGravity(Gravity.START | Gravity.CENTER_VERTICAL);
// 设置文本的显示方向
defalutPeopleNumberEditText.setTextDirection(View.TEXT_DIRECTION_RTL);
QMUIGroupListView.newSection(getContext())
.setLeftIconSize(size, ViewGroup.LayoutParams.WRAP_CONTENT)
......@@ -298,6 +314,11 @@ public class AddTableFragment extends BaseFragment<AddTablePresenter> implements
serverchargeEditText.setBackgroundColor(ContextCompat.getColor(mContext, R.color.trans));
serverchargeEditText.setInputType(EditorInfo.TYPE_CLASS_NUMBER);
serverchargeItemView.addAccessoryCustomView(serverchargeEditText);
// 如下是内容为空的配置,需要两个属性结合使用;如果有默认值,进行相反的配置
// 设置文字的对齐方式
serverchargeEditText.setGravity(Gravity.START | Gravity.CENTER_VERTICAL);
// 设置文本的显示方向
serverchargeEditText.setTextDirection(View.TEXT_DIRECTION_RTL);
QMUIGroupListView.newSection(getContext())
.setLeftIconSize(size, ViewGroup.LayoutParams.WRAP_CONTENT)
......
......@@ -103,6 +103,8 @@ public class AreaListFragment extends BaseFragment<AreaListPresenter> implements
private AreaManageAdapter mAreaManageAdapter;
private List<TableArea> mTableAreaList = new ArrayList<>();
private Button rightButton;
private boolean isSave = false;
private boolean isRadioEdit;
......@@ -176,7 +178,7 @@ public class AreaListFragment extends BaseFragment<AreaListPresenter> implements
mTopBar.addLeftBackImageButton().setOnClickListener(v -> killMyself());
mTopBar.setBackgroundResource(R.color.theme_color);
mTopBar.setTitle("區域").setTextColor(ContextCompat.getColor(mContext, R.color.theme_white_color));
Button rightButton = mTopBar.addRightTextButton("編輯", R.id.qmui_dialog_edit_right_icon);
rightButton = mTopBar.addRightTextButton("編輯", R.id.qmui_dialog_edit_right_icon);
rightButton.setTextColor(ContextCompat.getColor(mContext, R.color.theme_white_color));
rightButton.setOnClickListener(v -> {
clickEdit(rightButton);
......@@ -273,6 +275,10 @@ public class AreaListFragment extends BaseFragment<AreaListPresenter> implements
ed_area_name.setText("");
}
public void deleteSuccess() {
clickEdit(rightButton);
}
@Override
public void setData(@Nullable Object data) {
}
......@@ -414,6 +420,13 @@ public class AreaListFragment extends BaseFragment<AreaListPresenter> implements
showMessage("請輸入區域名稱");
return false;
}
for (int i = 0; i < mTableAreaList.size(); i++) {
TableArea tableArea = mTableAreaList.get(i);
if (tableArea.getRegionName().equals(ed_area_name.getText().toString())) {
showMessage("已有相同區域!");
return false;
}
}
return true;
}
......
......@@ -98,8 +98,8 @@ public class TableListFragment extends BaseFragment<TableListPresenter> implemen
@BindView(R2.id.emptyView)
QMUIEmptyView mEmptyView;
@BindView(R2.id.fl_add_table)
QMUIAlphaFrameLayout fl_add_table;
@BindView(R2.id.tv_add_table)
TextView tv_add_table;
@BindView(R2.id.ll_bottom_operat)
LinearLayout ll_bottom_operat;
......@@ -164,7 +164,7 @@ public class TableListFragment extends BaseFragment<TableListPresenter> implemen
initRecycleScrollListener();
mActivity.queryAreas(null);
mActivity.queryTables(null);
mActivity.initGetTableTimer();
// mActivity.initGetTableTimer();
cb_all_select.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
......@@ -268,7 +268,11 @@ public class TableListFragment extends BaseFragment<TableListPresenter> implemen
item.setChecked(!item.isChecked());
mAdapter.notifyDataSetChanged();
} else {
start(AddTableFragment.newInstance(item));
if (item.getStatus() == 0) {
start(AddTableFragment.newInstance(item));
} else {
CommonTipDialog.showSurpisedDialog(mActivity, item.getTableName() + "檯正在使用中", null, null, null, null, null);
}
}
}
}
......@@ -357,7 +361,7 @@ public class TableListFragment extends BaseFragment<TableListPresenter> implemen
mTableAreaSectionList.addAll(mPresenter.tableAreaTransformToSection(mPresenter.assembleTableArea(mPresenter.assembleAreaList(tableAreaList, mTableList), mTableList)));
// if (!initLoad) {
mAdapter.setData(mTableAreaSectionList);
mAdapter.setData(mTableAreaSectionList);
// } else {
// mAdapter.getCurrentData().clear();
// mAdapter.getCurrentData().addAll(mTableAreaSectionList);
......@@ -378,7 +382,7 @@ public class TableListFragment extends BaseFragment<TableListPresenter> implemen
if (mAreaList.size() > 0) {
mAreaList.clear();
}
if (mTableAreaSectionList != null) {
if (mTableAreaSectionList.size() > 0) {
mTableAreaSectionList.clear();
}
}
......@@ -397,7 +401,7 @@ public class TableListFragment extends BaseFragment<TableListPresenter> implemen
}
@OnClick(R2.id.fl_add_table)
@OnClick(R2.id.tv_add_table)
void onClickAddTable() {
startForResult(AreaListFragment.newInstance(), ADD_AREA_RESULT_SUCCESS);
}
......@@ -552,13 +556,13 @@ public class TableListFragment extends BaseFragment<TableListPresenter> implemen
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
if(isRadioEdit){
if (isRadioEdit) {
mActivity.onPauseRefreshTableData();
return;
}
switch (newState) {
case SCROLL_STATE_IDLE://停止滚动
if (mActivity != null ) {
if (mActivity != null) {
mActivity.onStartRefreshTableData();
}
break;
......@@ -575,7 +579,7 @@ public class TableListFragment extends BaseFragment<TableListPresenter> implemen
@Override
public boolean onTouch(View v, MotionEvent event) {
if(isRadioEdit){
if (isRadioEdit) {
mActivity.onPauseRefreshTableData();
return false;
}
......@@ -602,10 +606,10 @@ public class TableListFragment extends BaseFragment<TableListPresenter> implemen
private void showRadioEdit() {
if (isRadioEdit) {
fl_add_table.setVisibility(View.GONE);
tv_add_table.setVisibility(View.GONE);
ll_bottom_operat.setVisibility(View.VISIBLE);
} else {
fl_add_table.setVisibility(View.VISIBLE);
tv_add_table.setVisibility(View.VISIBLE);
ll_bottom_operat.setVisibility(View.GONE);
}
}
......
......@@ -53,7 +53,7 @@
android:layout_height="@dimen/dp_48"
android:layout_weight="1"
android:background="@null"
android:hint="請輸入區域名稱"
android:hint="請輸入區域名稱"
android:maxLength="20"
android:paddingLeft="@dimen/dp_10"
android:paddingRight="@dimen/dp_10"
......
......@@ -36,22 +36,26 @@
android:layout_height="match_parent"
android:fitsSystemWindows="true" />
<com.qmuiteam.qmui.alpha.QMUIAlphaFrameLayout
android:id="@+id/fl_add_table"
<TextView
android:id="@+id/tv_add_table"
android:layout_width="@dimen/dp_65"
android:layout_height="@dimen/dp_65"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:gravity="center"
android:layout_marginBottom="@dimen/dp_15"
android:layout_marginRight="@dimen/dp_20"
android:background="@drawable/manage_shape_add_btn_oval">
android:background="@drawable/manage_shape_add_btn_oval"
android:text="區域"
android:textSize="@dimen/sp_16"
android:textColor="@color/theme_white_color">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/add_white" />
</com.qmuiteam.qmui.alpha.QMUIAlphaFrameLayout>
<!-- <ImageView-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_gravity="center"-->
<!-- android:src="@drawable/add_white" />-->
</TextView>
<LinearLayout
android:id="@+id/ll_bottom_operat"
......
......@@ -783,4 +783,9 @@ public class QMUITopBar extends QMUIRelativeLayout implements IQMUISkinHandlerVi
public SimpleArrayMap<String, Integer> getDefaultSkinAttrs() {
return sDefaultSkinAttrs;
}
public List<View> getLeftViewList() {
return mLeftViewList;
}
}
......@@ -64,6 +64,8 @@ public interface SoldoutCtrlContract {
void showFineItemLayoutVisibility();
void showTvRestore(boolean show);
void showViewModeVisibility(int... viewMode);
}
......@@ -76,12 +78,16 @@ public interface SoldoutCtrlContract {
List<Food> queryDB_FoodList(long parentId);
List<Food> queryDB_FoodListByIds(String [] ids);
Observable<BaseResult> getCurrentSoldoutFood(RequestBody requestBody);
Observable<BaseResult> insertSoldoutCtrl(RequestBody requestBody, int operatTtpe, int type);
Observable<BaseResult> restoreSoldoutCtrl( RequestBody requestBody);
Observable<BaseResult> batchRestoreSoldoutCtrl( RequestBody requestBody);
Observable<BaseResult> updateInvisible( RequestBody requestBody);
Observable<FoodBean> downFoodList(int restaurantId);
......
......@@ -86,6 +86,7 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model
return foods;
}
@Override
public List<Modifier> queryDB_ModifierList(long fid, int mode) {
ModifierDaoUtils daoUtils = new ModifierDaoUtils(mApplication);
......
......@@ -59,6 +59,14 @@ public class SoldoutCtrlModel extends BaseModel implements SoldoutCtrlContract.M
}
@Override
public List<Food> queryDB_FoodListByIds(String[] ids) {
String sql = "SELECT * FROM FOOD WHERE id IN ( ?, ? );";
FoodDaoUtils foodDaoUtils = new FoodDaoUtils(mApplication);
List<Food> foods = foodDaoUtils.queryFoodByNativeSql(sql,ids);
return foods;
}
@Override
public List<Food> queryDB_AllFoodList() {
FoodDaoUtils foodDaoUtils = new FoodDaoUtils(mApplication);
List<Food> foods = foodDaoUtils.queryAllFoodByQueryBuilder();
......@@ -118,6 +126,12 @@ public class SoldoutCtrlModel extends BaseModel implements SoldoutCtrlContract.M
}
@Override
public Observable<BaseResult> batchRestoreSoldoutCtrl(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.batchRestoreSoldoutCtrl(requestBody);
}
@Override
public Observable<BaseResult> updateInvisible(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(MealService.class)
.updateInvisible(requestBody);
......
......@@ -99,5 +99,50 @@ public class SoldoutRequest {
this.deletes = deletes;
}
}
public static class batchUpdate {
private String ids;
public String getIds() {
return ids;
}
public void setIds(String ids) {
this.ids = ids;
}
}
public static class updateInvisible {
private int type;
private String[] ids;
private int invisible;
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String[] getIds() {
return ids;
}
public void setIds(String[] ids) {
this.ids = ids;
}
public int getInvisible() {
return invisible;
}
public void setInvisible(int invisible) {
this.invisible = invisible;
}
}
}
......@@ -43,6 +43,10 @@ public interface MealService {
@POST("foodChecklist/updatePrg" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> restoreSoldoutCtrl(@Body RequestBody requestBody);
@Headers({"Domain-Name: soldoutctrl"})
@POST("foodChecklist/batchUpdatePrg" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> batchRestoreSoldoutCtrl(@Body RequestBody requestBody);
@POST("food/updateInvisible" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> updateInvisible(@Body RequestBody requestBody);
......
......@@ -352,8 +352,10 @@ public class BaseOrderPresenter<M extends BaseOrderContract.Model, V extends Bas
double serviceAmount = getTotalAmountFilterByType(BillOrderMoney.SERVERCHARGE_TYPE, BillOrderMoney.DISCOUNT_TYPE, BillOrderMoney.ROUNDING_TYPE) * dataBean.getServiceCharge() / 100;
if (serviceAmount > 0) {
billOrderMoney.setMoney(serviceAmount);
mOrderMoneyAdapter.notifyDataSetChanged();
}else {
mOrderMoneyList.remove(billOrderMoney);
}
mOrderMoneyAdapter.notifyDataSetChanged();
}
}
......
......@@ -17,6 +17,7 @@ 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.constans.MealConstant;
import com.gingersoft.gsa.cloud.constans.PrintConstans;
import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import com.gingersoft.gsa.cloud.database.bean.Discount;
......@@ -33,23 +34,21 @@ 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;
import com.gingersoft.gsa.cloud.constans.MealConstant;
import com.gingersoft.gsa.cloud.table.mvp.model.utils.OrderAssemblyUtil;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.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.table.mvp.ui.adapter.meal.ComboAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.DiscountAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.FoodAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.FoodGroupAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.ModifierAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.SelectMealAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.widget.CancelFoodDialog;
import com.gingersoft.gsa.cloud.ui.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;
......@@ -75,6 +74,7 @@ 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;
/**
......@@ -1053,45 +1053,44 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
updateOrderFoodNumber();
}
private void setComboItemSoldoutCtrData(List<ComboItem> comboItemList, List<SoldoutCtrFood> soldoutCtrFoods) {
addFoodSoldoutCtrItem(soldoutCtrFoods);
for (SoldoutCtrFood scc : soldoutCtrFoods) {
for (ComboItem comboItem : comboItemList) {
if (scc.getType() == FOOD_TYPE && scc.getFoodId() != null && comboItem.getFid() != null && comboItem.getFid().equals(scc.getFoodId())) {
String qtyName;
if (comboItem.getInvisible() == 2) {
qtyName = "暫停";
comboItem.setMaxNumber(qtyName);
comboItem.setCurrentMaxNumber(qtyName);
} else {
qtyName = scc.getQtyName();
comboItem.setMaxNumber(qtyName);
comboItem.setCurrentMaxNumber(qtyName);
}
String qtyName = scc.getQtyName();
comboItem.setMaxNumber(qtyName);
comboItem.setCurrentMaxNumber(qtyName);
}
}
}
for (ComboItem comboItem : comboItemList) {
if (comboItem.getInvisible() == 2) {
String qtyName = "暫停";
comboItem.setMaxNumber(qtyName);
comboItem.setCurrentMaxNumber(qtyName);
}
}
}
private void setModifierSoldoutCtrData(List<Modifier> modifierList, List<SoldoutCtrFood> soldoutCtrFoods) {
addFoodSoldoutCtrItem(soldoutCtrFoods);
for (SoldoutCtrFood scc : soldoutCtrFoods) {
for (Modifier modifier : modifierList) {
if (scc.getType() == FOOD_TYPE && scc.getFoodId() != null && modifier.getMid() != 0 && modifier.getMid() == scc.getFoodId()) {
String qtyName;
if (modifier.getInvisible() == 2) {
qtyName = "暫停";
modifier.setMaxNumber(qtyName);
modifier.setCurrentMaxNumber(qtyName);
} else {
qtyName = scc.getQtyName();
modifier.setMaxNumber(qtyName);
modifier.setCurrentMaxNumber(qtyName);
}
if (scc.getType() == MODIFIER_TYPE && scc.getModifierId() != null && modifier.getMid() != 0 && modifier.getMid() == scc.getModifierId()) {
String qtyName = scc.getQtyName();
modifier.setMaxNumber(qtyName);
modifier.setCurrentMaxNumber(qtyName);
}
}
}
for (Modifier modifier : modifierList) {
if (modifier.getInvisible() == 2) {
String qtyName = "暫停";
modifier.setMaxNumber(qtyName);
modifier.setCurrentMaxNumber(qtyName);
}
}
}
/**
......
......@@ -18,11 +18,16 @@ import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage;
import com.gingersoft.gsa.cloud.base.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.base.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.constans.GoldConstants;
import com.gingersoft.gsa.cloud.constans.PrintConstans;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.bean.Function;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.database.utils.FoodDaoUtils;
import com.gingersoft.gsa.cloud.database.utils.ModifierDaoUtils;
import com.gingersoft.gsa.cloud.function.FunctionManager;
import com.gingersoft.gsa.cloud.print.PrinterUtils;
import com.gingersoft.gsa.cloud.table.ComponentTable;
......@@ -33,6 +38,7 @@ import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.TableDetail;
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.SoldoutRequest;
import com.gingersoft.gsa.cloud.table.mvp.model.utils.OrderAssemblyUtil;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.OrderContentActivity;
......@@ -102,6 +108,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
private DiscountDialog.Builder mDiscountDialog;
@Inject
public OrderContentPresenter(OrderContentContract.Model model, OrderContentContract.View rootView) {
super(model, rootView);
......
package com.gingersoft.gsa.cloud.table.mvp.ui.activity;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
......@@ -49,11 +50,16 @@ import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils;
import com.qmuiteam.qmui.arch.QMUIFragmentPagerAdapter;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
import com.qmuiteam.qmui.widget.tab.QMUITab;
import com.qmuiteam.qmui.widget.tab.QMUITabBuilder;
import com.qmuiteam.qmui.widget.tab.QMUITabIndicator;
import com.qmuiteam.qmui.widget.tab.QMUITabSegment;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import androidx.annotation.NonNull;
......@@ -115,6 +121,8 @@ public class SoldoutCtrlActivity extends BaseFragmentActivity<SoldoutCtrlPresent
@BindView(R2.id.tv_soldout)
TextView tv_soldout;
@BindView(R2.id.tv_restore)
TextView tv_restore;
@BindView(R2.id.tv_return)
TextView tv_return;
// @BindView(R2.id.btn_adddelete)
......@@ -336,7 +344,7 @@ public class SoldoutCtrlActivity extends BaseFragmentActivity<SoldoutCtrlPresent
}
}
@OnClick({R2.id.tv_return, R2.id.iv_fine_item_back, R2.id.tv_soldout})
@OnClick({R2.id.tv_restore, R2.id.tv_return, R2.id.iv_fine_item_back, R2.id.tv_soldout})
public void onClick(View v) {
int id = v.getId();
if (id == R.id.tv_return) {
......@@ -351,11 +359,140 @@ public class SoldoutCtrlActivity extends BaseFragmentActivity<SoldoutCtrlPresent
} else if (id == R.id.tv_soldout) {
showClearControlDialog();
} else if (id == R.id.iv_fine_item_back) {
ll_fine_item.setVisibility(View.INVISIBLE);
recycle_food_group.setVisibility(View.VISIBLE);
recycle_food.setVisibility(View.VISIBLE);
} else if (id == R.id.tv_restore) {
List<SoldoutCtrFood> soldoutCtrFoodList = getSoldoutCtrFoodList();
if (soldoutCtrFoodList.size() == 0) {
return;
}
if (soldoutCtrFoodList.size() == 1) {
executeSingleRestore(soldoutCtrFoodList.get(0));
} else {
executeMultipleRestore(soldoutCtrFoodList);
}
}
}
private List<SoldoutCtrFood> getSoldoutCtrFoodList() {
List<SoldoutCtrFood> selectSoldoutCtrFoodList = new ArrayList<>();
List<SoldoutCtrFood> soldoutCtrFoodList = mPresenter.getCurrentSlodoutFoodList();
for (int i = 0; i < soldoutCtrFoodList.size(); i++) {
SoldoutCtrFood soldoutCtrFood = soldoutCtrFoodList.get(i);
if (soldoutCtrFood.getSelected() == 1) {
selectSoldoutCtrFoodList.add(soldoutCtrFood);
}
}
return selectSoldoutCtrFoodList;
}
private void executeSingleRestore(SoldoutCtrFood datasBean) {
if (datasBean.isStop()) {
long id;
if (datasBean.getType() == MODIFIER_TYPE) {
id = datasBean.getModifierId();
} else {
id = datasBean.getFoodId();
} //恢復暫停數量
String msg = LanguageUtils.get_language_system(this, "whether.recover", "是否恢復[") + datasBean.getFoodName() + "]";
Class[] parameterTypes = {Long.class, int.class, int.class};
Object[] parameters = {id, datasBean.getType(), 0};
CommonTipDialog.showDoubtDialog(this, msg, SoldoutCtrlPresenter.class, mPresenter, "updateInvisible", parameterTypes, parameters);
} else {
//恢復沽清數量
String msg = LanguageUtils.get_language_system(this, "whether.recover", "是否恢復[") + datasBean.getName() + "]";
Class[] parameterTypes = {long.class};
Object[] parameters = {datasBean.getId()};
CommonTipDialog.showDoubtDialog(this, msg, SoldoutCtrlPresenter.class, mPresenter, "restoreSoldoutCtrl", parameterTypes, parameters);
}
}
private void executeMultipleRestore(List<SoldoutCtrFood> selectSoldoutCtrFoodList) {
showMultipleSoldoutDialog(this, "是否恢復選中食品", selectSoldoutCtrFoodList);
}
/**
* 獲取需要恢復的暫停食品數據
*
* @return
*/
private String[] getStopSoldoutCtrFoodIds(List<SoldoutCtrFood> selectSoldoutCtrFoodList) {
StringBuilder builder = new StringBuilder();
for (int i = 0; i < selectSoldoutCtrFoodList.size(); i++) {
SoldoutCtrFood soldoutCtrFood = selectSoldoutCtrFoodList.get(i);
if (soldoutCtrFood.isStop() && soldoutCtrFood.getFoodId() != null) {
builder.append(soldoutCtrFood.getId());
builder.append(",");
}
}
String str = builder.toString();
if (str.endsWith(",")) {
str = str.substring(0, str.length() - 1);
}
return str.split(",");
}
/**
* 獲取需要恢復的暫停食品數據
*
* @return
*/
private String[] getStopSoldoutCtrModifierIds(List<SoldoutCtrFood> selectSoldoutCtrModifierList) {
StringBuilder builder = new StringBuilder();
for (int i = 0; i < selectSoldoutCtrModifierList.size(); i++) {
SoldoutCtrFood soldoutCtrModifier = selectSoldoutCtrModifierList.get(i);
if (soldoutCtrModifier.isStop() && soldoutCtrModifier.getModifierId() != null) {
builder.append(soldoutCtrModifier.getId());
builder.append(",");
}
}
String str = builder.toString();
if (str.endsWith(",")) {
str = str.substring(0, str.length() - 1);
}
return str.split(",");
}
/**
* 獲取需要恢復的庫存數據
*
* @return
*/
private String getNumberSoldoutIds(List<SoldoutCtrFood> selectSoldoutCtrFoodList) {
StringBuilder builder = new StringBuilder();
for (int i = 0; i < selectSoldoutCtrFoodList.size(); i++) {
SoldoutCtrFood soldoutCtrFood = selectSoldoutCtrFoodList.get(i);
if (!soldoutCtrFood.isStop()) {
builder.append(soldoutCtrFood.getId());
builder.append(",");
}
}
String str = builder.toString();
if (str.endsWith(",")) {
str = str.substring(0, str.length() - 1);
}
return str;
}
private void showMultipleSoldoutDialog(Activity context, String msg, List<SoldoutCtrFood> selectSoldoutCtrFoodList) {
QMUIDialog.MessageDialogBuilder dialogBuilder = new QMUIDialog.MessageDialogBuilder(context);
dialogBuilder.setTitleIcon(com.gingersoft.gsa.cloud.base.R.drawable.qmui_icon_dialog_doubt);
dialogBuilder.setMessage(msg);
dialogBuilder.addAction(com.gingersoft.gsa.cloud.base.R.drawable.shape_3c_cancel_btn_bg, "取消", (dialog, index) -> dialog.dismiss());
dialogBuilder.addAction(com.gingersoft.gsa.cloud.base.R.drawable.shape_red_five_radius_bg, "確認", QMUIDialogAction.ACTION_PROP_NEGATIVE, (dialog, index) -> {
dialog.dismiss();
String[] foodIds = getStopSoldoutCtrFoodIds(selectSoldoutCtrFoodList);
String[] modifierIds = getStopSoldoutCtrModifierIds(selectSoldoutCtrFoodList);
String ids = getNumberSoldoutIds(selectSoldoutCtrFoodList);
if (!TextUtils.isEmpty(foodIds[0]) || !TextUtils.isEmpty(modifierIds[0])) {
mPresenter.batchUpdateInvisible(foodIds, modifierIds, 2);
}
if (ids.length() > 0) {
mPresenter.batchRestoreSoldoutCtrl(ids);
}
});
dialogBuilder.create(com.gingersoft.gsa.cloud.base.R.style.MyDialogTheme2).show();
}
private void showClearControlDialog() {
......@@ -550,6 +687,17 @@ public class SoldoutCtrlActivity extends BaseFragmentActivity<SoldoutCtrlPresent
}
@Override
public void showTvRestore(boolean show) {
// if (show) {
// tv_restore.setVisibility(View.VISIBLE);
// tv_soldout.setVisibility(View.GONE);
// } else {
// tv_restore.setVisibility(View.GONE);
// tv_soldout.setVisibility(View.VISIBLE);
// }
}
@Override
public void showViewModeVisibility(int... viewMode) {
//將所有的view隱藏
for (int i = 0; i < map.size(); i++) {
......
......@@ -347,6 +347,8 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
break;
}
//移除back鍵
mTopBar.removeAllLeftViews();
}
@Override
......@@ -359,9 +361,17 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
tv_operat_hint.setText("");
tv_operat_content.setText("");
mTopBar.setTitle("餐檯模式");
//添加back鍵
mTopBar.addLeftBackImageButton().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
killMyself();
}
});
mPresenter.initTableParameter();
mPresenter.filterTableByOperatType();
}
@Override
......
......@@ -93,6 +93,21 @@ public class CurrentSlodoutFoodAdapter extends DefaultAdapter<SoldoutCtrFood> {
datasBeans.get(i).setSelected(0);
}
}
// for (int i = 0; i < datasBeans.size(); i++) {
// if (i == select_position) {
//// datasBeans.get(i).setSelected(1);
// if (datasBeans.get(i).getSelected() == 1) {
// datasBeans.get(i).setSelected(0);
// } else {
// datasBeans.get(i).setSelected(1);
// }
// } else {
// if (datasBeans.get(i).getSelected() == 0) {
// datasBeans.get(i).setSelected(0);
// }
// }
// }
}
@Override
......
......@@ -154,7 +154,7 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> {
// tv_service_fee.setText(item.getServiceCharge() + "%");
// tv_service_fee.setVisibility(View.VISIBLE);
// } else {
tv_service_fee.setVisibility(View.GONE);
tv_service_fee.setVisibility(View.GONE);
// }
if (item.getStatus() != 0) {
int person = 0;
......@@ -172,8 +172,12 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> {
long[] difference = TimeUtil.getDistanceTimes2(createTime, currentTime);
if (difference[0] != 0) {
tv_open_duration.setText(difference[0] + ":" + difference[1] + ":" + difference[2]);
} else {
} else if (difference[1] != 0) {
tv_open_duration.setText(difference[1] + ":" + difference[2]);
} else if (difference[2] != 0) {
tv_open_duration.setText(String.valueOf(difference[2]));
} else {
tv_open_duration.setText("");
}
tv_open_duration.setVisibility(View.VISIBLE);
} else {
......@@ -217,7 +221,7 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> {
ll_container.setBackgroundColor(Color.parseColor("#FFFFFFFF"));
if (item.getUseStatus() == 1) {
setBackGroundWork(item, Color.parseColor("#FFD14141"), R.color.theme_white_color,R.color.theme_black);
setBackGroundWork(item, Color.parseColor("#FFD14141"), R.color.theme_white_color, R.color.theme_black);
} else {
// switch (item.getStatus()) {
// case 0:
......@@ -243,20 +247,20 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> {
// }
switch (item.getStatus()) {
case 0:
setBackGroundWork(item, Color.parseColor("#FFFFFFFF"), R.color.black,R.color.theme_black);
setBackGroundWork(item, Color.parseColor("#FFFFFFFF"), R.color.black, R.color.theme_black);
break;
case 1:
// setBackGroundWork(item, "2", R.drawable.table_shape_table_send, R.drawable.tablebutton_glassgreen_new, R.color.theme_white_color); break;
case 2:
setBackGroundWork(item, Color.parseColor("#FF249B65"), R.color.theme_white_color,R.color.theme_white_color);
setBackGroundWork(item, Color.parseColor("#FF249B65"), R.color.theme_white_color, R.color.theme_white_color);
break;
case 3:
setBackGroundWork(item, Color.parseColor("#FFE5AC00"), R.color.theme_white_color,R.color.theme_white_color);
setBackGroundWork(item, Color.parseColor("#FFE5AC00"), R.color.theme_white_color, R.color.theme_white_color);
break;
case 4:
case 5:
case 6:
setBackGroundWork(item, ContextCompat.getColor(mContext, R.color.Violet), R.color.theme_white_color,R.color.theme_white_color);
setBackGroundWork(item, ContextCompat.getColor(mContext, R.color.Violet), R.color.theme_white_color, R.color.theme_white_color);
break;
}
}
......@@ -306,7 +310,7 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> {
//// btn_showMain.setTextColor(mContext.getResources().getColor(defaultFontColor));
// }
private void setBackGroundWork(TableBean.DataBean item, int defaultMainback, int defaultFontColor,int serviceFeeFontColor) {
private void setBackGroundWork(TableBean.DataBean item, int defaultMainback, int defaultFontColor, int serviceFeeFontColor) {
if (defaultMainback != -1) {
ll_container.setBackgroundColor(defaultMainback);
}
......
......@@ -164,6 +164,20 @@
android:textSize="@dimen/sp_20" />
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id="@+id/tv_restore"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_weight="1"
android:background="@color/theme_color"
android:gravity="center"
android:text="恢復 "
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/theme_white_color"
android:textSize="@dimen/sp_20"
android:visibility="gone"/>
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id="@+id/tv_return"
android:layout_width="0dp"
android:layout_height="match_parent"
......
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