Commit 35f60e81 by 宁斌

Revert "1.2.1測試版"

This reverts commit 8fbea4e5
parent 8fbea4e5
...@@ -29,14 +29,14 @@ android { ...@@ -29,14 +29,14 @@ android {
buildTypes { buildTypes {
debug { debug {
buildConfigField "boolean", "LOG_DEBUG", "true" buildConfigField "boolean", "LOG_DEBUG", rootProject.ext.buildType["debugLogDebug"]
buildConfigField "boolean", "USE_CANARY", "true" buildConfigField "boolean", "USE_CANARY", rootProject.ext.buildType["debugUseCanary"]
minifyEnabled false minifyEnabled false
proguardFiles 'proguard.cfg' proguardFiles 'proguard.cfg'
} }
release { release {
buildConfigField "boolean", "LOG_DEBUG", "false" buildConfigField "boolean", "LOG_DEBUG", rootProject.ext.buildType["releaseLogDebug"]
buildConfigField "boolean", "USE_CANARY", "false" buildConfigField "boolean", "USE_CANARY", rootProject.ext.buildType["releaseUseCanary"]
minifyEnabled false minifyEnabled false
zipAlignEnabled false zipAlignEnabled false
proguardFiles 'proguard.cfg' proguardFiles 'proguard.cfg'
......
package com.gingersoft.supply_chain.di.component;
import dagger.BindsInstance;
import dagger.Component;
import com.jess.arms.di.component.AppComponent;
import com.gingersoft.supply_chain.di.module.WareHousingDetailsModule;
import com.gingersoft.supply_chain.mvp.contract.WareHousingDetailsContract;
import com.jess.arms.di.scope.FragmentScope;
import com.gingersoft.supply_chain.mvp.ui.fragment.warehouse.WareHousingDetailsFragment;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 01/12/2021 14:28
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
@FragmentScope
@Component(modules = WareHousingDetailsModule.class, dependencies = AppComponent.class)
public interface WareHousingDetailsComponent {
void inject(WareHousingDetailsFragment fragment);
@Component.Builder
interface Builder {
@BindsInstance
WareHousingDetailsComponent.Builder view(WareHousingDetailsContract.View view);
WareHousingDetailsComponent.Builder appComponent(AppComponent appComponent);
WareHousingDetailsComponent build();
}
}
\ No newline at end of file
package com.gingersoft.supply_chain.di.module;
import com.jess.arms.di.scope.FragmentScope;
import dagger.Binds;
import dagger.Module;
import dagger.Provides;
import com.gingersoft.supply_chain.mvp.contract.WareHousingDetailsContract;
import com.gingersoft.supply_chain.mvp.model.WareHousingDetailsModel;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 01/12/2021 14:28
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
@Module
public abstract class WareHousingDetailsModule {
@Binds
abstract WareHousingDetailsContract.Model bindWareHousingDetailsModel(WareHousingDetailsModel model);
}
\ No newline at end of file
package com.gingersoft.supply_chain.mvp.contract;
import com.jess.arms.mvp.IView;
import com.jess.arms.mvp.IModel;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 01/12/2021 14:28
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
public interface WareHousingDetailsContract {
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface View extends IView {
}
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends IModel {
}
}
package com.gingersoft.supply_chain.mvp.model;
import android.app.Application;
import com.google.gson.Gson;
import com.jess.arms.integration.IRepositoryManager;
import com.jess.arms.mvp.BaseModel;
import com.jess.arms.di.scope.FragmentScope;
import javax.inject.Inject;
import com.gingersoft.supply_chain.mvp.contract.WareHousingDetailsContract;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 01/12/2021 14:28
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
@FragmentScope
public class WareHousingDetailsModel extends BaseModel implements WareHousingDetailsContract.Model {
@Inject
Gson mGson;
@Inject
Application mApplication;
@Inject
public WareHousingDetailsModel(IRepositoryManager repositoryManager) {
super(repositoryManager);
}
@Override
public void onDestroy() {
super.onDestroy();
this.mGson = null;
this.mApplication = null;
}
}
\ No newline at end of file
package com.gingersoft.supply_chain.mvp.presenter;
import android.app.Application;
import com.jess.arms.integration.AppManager;
import com.jess.arms.di.scope.FragmentScope;
import com.jess.arms.mvp.BasePresenter;
import com.jess.arms.http.imageloader.ImageLoader;
import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import javax.inject.Inject;
import com.gingersoft.supply_chain.mvp.contract.WareHousingDetailsContract;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 01/12/2021 14:28
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
@FragmentScope
public class WareHousingDetailsPresenter extends BasePresenter<WareHousingDetailsContract.Model, WareHousingDetailsContract.View> {
@Inject
RxErrorHandler mErrorHandler;
@Inject
Application mApplication;
@Inject
ImageLoader mImageLoader;
@Inject
AppManager mAppManager;
@Inject
public WareHousingDetailsPresenter(WareHousingDetailsContract.Model model, WareHousingDetailsContract.View rootView) {
super(model, rootView);
}
@Override
public void onDestroy() {
super.onDestroy();
this.mErrorHandler = null;
this.mAppManager = null;
this.mImageLoader = null;
this.mApplication = null;
}
}
package com.gingersoft.supply_chain.mvp.ui.fragment.warehouse;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.gingersoft.supply_chain.R;
import com.gingersoft.supply_chain.di.component.DaggerWareHousingDetailsComponent;
import com.gingersoft.supply_chain.mvp.contract.WareHousingDetailsContract;
import com.gingersoft.supply_chain.mvp.presenter.WareHousingDetailsPresenter;
import com.gingersoft.supply_chain.mvp.ui.fragment.BaseSupplyChainFragment;
import com.jess.arms.di.component.AppComponent;
/**
* ================================================
* Description: 入庫庫存詳情
*/
public class WareHousingDetailsFragment extends BaseSupplyChainFragment<WareHousingDetailsPresenter> implements WareHousingDetailsContract.View {
public static WareHousingDetailsFragment newInstance() {
WareHousingDetailsFragment fragment = new WareHousingDetailsFragment();
return fragment;
}
@Override
public void setupFragmentComponent(@NonNull AppComponent appComponent) {
DaggerWareHousingDetailsComponent //如找不到该类,请编译一下项目
.builder()
.appComponent(appComponent)
.view(this)
.build()
.inject(this);
}
@Override
public View initView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_ware_housing_details, container, false);
}
@Override
public void initData(@Nullable Bundle savedInstanceState) {
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/color_f0"
android:orientation="vertical">
<include layout="@layout/supply_chain_top_bar" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_10"
android:layout_marginTop="@dimen/dp_10"
android:layout_marginRight="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:background="@drawable/shape_theme_eight_corners_bg"
app:layout_collapseMode="parallax">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingLeft="@dimen/dp_10"
android:paddingTop="@dimen/dp_5"
android:paddingBottom="@dimen/dp_5">
<TextView
android:id="@+id/tv_order_details_supplier_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:textSize="@dimen/dp_16"
tools:text="海鮮天地" />
<TextView
android:id="@+id/tv_order_details_order_no"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_5"
android:textColor="@color/white"
android:textSize="@dimen/dp_14"
tools:text="訂單號:DD0001" />
<TextView
android:id="@+id/tv_order_details_create_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_5"
android:textColor="@color/white"
android:textSize="@dimen/dp_14"
tools:text="2020-11-20 12:00" />
</LinearLayout>
<TextView
android:id="@+id/tv_order_details_order_state"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|center_vertical"
android:layout_marginRight="@dimen/dp_10"
android:textColor="@color/white"
android:textSize="@dimen/dp_18"
tools:text="部分收貨" />
</FrameLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_order_details_food_list"
android:layout_width="match_parent"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
android:layout_height="0dp"
android:layout_weight="1" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:elevation="@dimen/dp_10"
android:background="@color/white"
android:orientation="vertical"
android:paddingTop="@dimen/dp_10"
android:paddingBottom="@dimen/dp_10">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingLeft="@dimen/dp_20"
android:paddingRight="@dimen/dp_20">
<CheckBox
android:id="@+id/cb_order_details_all_selected"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="全選"
android:textColor="@color/color_3c"
android:textSize="@dimen/dp_14" />
<TextView
style="@style/supplier_chain_222_16"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_20"
android:text="食材種類:"
android:textStyle="bold" />
<TextView
android:id="@+id/tv_order_details_food_type_total"
style="@style/supplier_chain_222_16"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/required_color"
tools:text="3" />
<View
android:layout_width="@dimen/dp_0"
android:layout_height="match_parent"
android:layout_weight="1" />
<TextView
style="@style/supplier_chain_222_16"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_20"
android:text="總計:"
android:textStyle="bold" />
<TextView
android:id="@+id/tv_order_details_total_amount"
style="@style/supplier_chain_222_16"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/required_color"
tools:text="$300.00" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingLeft="@dimen/dp_20"
android:paddingTop="@dimen/dp_10"
android:paddingRight="@dimen/dp_20">
<TextView
style="@style/supplier_chain_222_16"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="文件上傳:" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/tv_order_details_click_upload"
style="@style/supplier_chain_222_16"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_gravity="end"
android:layout_weight="1"
android:text="點擊上傳"
android:textColor="@color/click_upload_text_color" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/dp_1"
android:background="@color/color_53" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_5"
android:orientation="horizontal"
android:paddingLeft="@dimen/dp_20"
android:paddingRight="@dimen/dp_20">
<TextView
style="@style/supplier_chain_222_16"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="備註:" />
<EditText
android:id="@+id/ed_order_details_remark"
style="@style/supplier_chain_222_16"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="手動輸入"
android:textColorHint="@color/color_c9" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_5"
android:gravity="center_horizontal"
android:orientation="horizontal"
android:paddingLeft="@dimen/dp_10"
android:paddingRight="@dimen/dp_10">
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id="@+id/tv_order_details_buy_again"
style="@style/Style_Btn_Green"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text="再次購買" />
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id="@+id/tv_order_details_partial_receipt"
style="@style/Style_Btn_Yellow"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_12"
android:layout_weight="1"
android:gravity="center"
android:text="部分收貨" />
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id="@+id/tv_order_details_receipt"
style="@style/Style_Btn_Brick_Red"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_12"
android:layout_weight="1"
android:gravity="center"
android:text="收貨" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
\ No newline at end of file
package com.gingersoft.gsa.cloud.table.mvp.action.order; package com.gingersoft.gsa.cloud.table.mvp.action.order;
import android.text.TextUtils; import android.text.TextUtils;
import com.gingersoft.gsa.cloud.common.logan.LoganManager; import com.gingersoft.gsa.cloud.common.logan.LoganManager;
import com.gingersoft.gsa.cloud.common.patterns.Strategy; import com.gingersoft.gsa.cloud.common.patterns.Strategy;
import com.gingersoft.gsa.cloud.common.utils.AppDevices;
import com.gingersoft.gsa.cloud.pay.bean.PosActionStatusExceptionParam; import com.gingersoft.gsa.cloud.pay.bean.PosActionStatusExceptionParam;
import com.gingersoft.gsa.cloud.pay.pos.OnPosActionListener; import com.gingersoft.gsa.cloud.pay.pos.OnPosActionListener;
import com.gingersoft.gsa.cloud.pay.pos.PosAction; import com.gingersoft.gsa.cloud.pay.pos.PosAction;
...@@ -14,6 +16,7 @@ import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.VoidRespose; ...@@ -14,6 +16,7 @@ import com.gingersoft.gsa.cloud.pay.pos.hywebpos.bean.response.pos.VoidRespose;
import com.gingersoft.gsa.cloud.table.R; import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.response.OrderManagerResponse; import com.gingersoft.gsa.cloud.table.mvp.model.bean.response.OrderManagerResponse;
import com.jess.arms.base.BaseFragmentActivity; import com.jess.arms.base.BaseFragmentActivity;
import com.jess.arms.base.delegate.IActivity;
import com.jess.arms.mvp.IView; import com.jess.arms.mvp.IView;
import com.qmuiteam.qmui.widget.dialog.QMUIDialog; import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
...@@ -27,12 +30,12 @@ import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; ...@@ -27,12 +30,12 @@ import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
public class CancelOrder implements Strategy<OrderManagerResponse> { public class CancelOrder implements Strategy<OrderManagerResponse> {
private final String TAG = "CancelOrder"; private final String TAG = "CancelOrder";
private BaseFragmentActivity mActivity; private BaseFragmentActivity mActivity;
private IView mRootView; private IView mRootView;
public CancelOrder(BaseFragmentActivity fragmentActivity, IView rootView){ public CancelOrder(BaseFragmentActivity fragmentActivity, IView rootView) {
this.mActivity = fragmentActivity; this.mActivity = fragmentActivity;
this.mRootView = rootView; this.mRootView = rootView;
} }
...@@ -43,6 +46,8 @@ public class CancelOrder implements Strategy<OrderManagerResponse> { ...@@ -43,6 +46,8 @@ public class CancelOrder implements Strategy<OrderManagerResponse> {
@Override @Override
public void destroy() { public void destroy() {
mActivity = null;
mRootView = null;
} }
private void showCancelDialog(OrderManagerResponse datasBean) { private void showCancelDialog(OrderManagerResponse datasBean) {
...@@ -52,10 +57,10 @@ public class CancelOrder implements Strategy<OrderManagerResponse> { ...@@ -52,10 +57,10 @@ public class CancelOrder implements Strategy<OrderManagerResponse> {
dialogBuilder.setMessage("是否取消訂單?"); dialogBuilder.setMessage("是否取消訂單?");
dialogBuilder.addAction(0, "確認", QMUIDialogAction.ACTION_PROP_NEGATIVE, (dialog, index) -> { dialogBuilder.addAction(0, "確認", QMUIDialogAction.ACTION_PROP_NEGATIVE, (dialog, index) -> {
dialog.dismiss(); dialog.dismiss();
if (datasBean.withHywebPay()) { if (datasBean.withHywebPay() && AppDevices.isHywebPos()) {
hywebOrderCancle(datasBean); hywebOrderCancle(datasBean);
} else { } else {
if(cancelListener != null){ if (cancelListener != null) {
cancelListener.cancel(datasBean.getId()); cancelListener.cancel(datasBean.getId());
} }
} }
...@@ -79,7 +84,7 @@ public class CancelOrder implements Strategy<OrderManagerResponse> { ...@@ -79,7 +84,7 @@ public class CancelOrder implements Strategy<OrderManagerResponse> {
@Override @Override
public void onPosSuccess(VoidRespose response) { public void onPosSuccess(VoidRespose response) {
LoganManager.w_code(TAG, "onPosSuccess: " + response.toString()); LoganManager.w_code(TAG, "onPosSuccess: " + response.toString());
if(cancelListener != null){ if (cancelListener != null) {
cancelListener.refeshOrders(); cancelListener.refeshOrders();
} }
} }
...@@ -87,7 +92,8 @@ public class CancelOrder implements Strategy<OrderManagerResponse> { ...@@ -87,7 +92,8 @@ public class CancelOrder implements Strategy<OrderManagerResponse> {
@Override @Override
public void onPosException(Exception e) { public void onPosException(Exception e) {
LoganManager.w_code(TAG, "onPosException: " + e.getMessage()); LoganManager.w_code(TAG, "onPosException: " + e.getMessage());
if (mActivity.findFragment(PosActionStatusExceptionFragment.class) == null) { PosActionStatusExceptionFragment statusExceptionFragment = (PosActionStatusExceptionFragment) mActivity.findFragment(PosActionStatusExceptionFragment.class);
if (statusExceptionFragment == null) {
PosActionStatusExceptionParam statusExceptionParam = new PosActionStatusExceptionParam(); PosActionStatusExceptionParam statusExceptionParam = new PosActionStatusExceptionParam();
statusExceptionParam.setTxnId(datasBean.getPayTxnId()); statusExceptionParam.setTxnId(datasBean.getPayTxnId());
statusExceptionParam.setAmount(datasBean.getAmount()); statusExceptionParam.setAmount(datasBean.getAmount());
...@@ -96,6 +102,8 @@ public class CancelOrder implements Strategy<OrderManagerResponse> { ...@@ -96,6 +102,8 @@ public class CancelOrder implements Strategy<OrderManagerResponse> {
statusExceptionParam.setPayMethodName("VISA測試"); statusExceptionParam.setPayMethodName("VISA測試");
statusExceptionParam.setPosAction(PosAction.VOID); statusExceptionParam.setPosAction(PosAction.VOID);
mActivity.loadRootFragment(R.id.rl_container, PosActionStatusExceptionFragment.newInstance(statusExceptionParam)); mActivity.loadRootFragment(R.id.rl_container, PosActionStatusExceptionFragment.newInstance(statusExceptionParam));
}else{
mActivity.start(statusExceptionFragment);
} }
} }
...@@ -127,11 +135,14 @@ public class CancelOrder implements Strategy<OrderManagerResponse> { ...@@ -127,11 +135,14 @@ public class CancelOrder implements Strategy<OrderManagerResponse> {
} }
private OnCancelListener cancelListener; private OnCancelListener cancelListener;
public void setCancelListener(OnCancelListener cancelListener) { public void setCancelListener(OnCancelListener cancelListener) {
this.cancelListener = cancelListener; this.cancelListener = cancelListener;
} }
public interface OnCancelListener{
public interface OnCancelListener {
void cancel(long orderId); void cancel(long orderId);
void refeshOrders(); void refeshOrders();
} }
} }
...@@ -95,7 +95,8 @@ public class ModifyOrderAction implements Strategy<OrderManagerResponse> { ...@@ -95,7 +95,8 @@ public class ModifyOrderAction implements Strategy<OrderManagerResponse> {
@Override @Override
public void destroy() { public void destroy() {
mActivity = null;
mRootView = null;
} }
} }
...@@ -60,6 +60,8 @@ public class PrintOrderAction implements Strategy<OrderManagerResponse> { ...@@ -60,6 +60,8 @@ public class PrintOrderAction implements Strategy<OrderManagerResponse> {
@Override @Override
public void destroy() { public void destroy() {
mActivity = null;
mRootView = null;
} }
private void startPrintOrder(OrderManagerResponse orderDetailItem, List<OrderDetail> orderDetailList) { private void startPrintOrder(OrderManagerResponse orderDetailItem, List<OrderDetail> orderDetailList) {
...@@ -96,45 +98,48 @@ public class PrintOrderAction implements Strategy<OrderManagerResponse> { ...@@ -96,45 +98,48 @@ public class PrintOrderAction implements Strategy<OrderManagerResponse> {
doshokuOrder.setBillMoney(payMethodList); doshokuOrder.setBillMoney(payMethodList);
} }
if (orderDetailItem.withHywebPay()) { if (orderDetailItem.withHywebPay() && AppDevices.isHywebPos()) {
if (AppDevices.isHywebPos()) { printPosStub(orderDetailItem,doshokuOrder,dataBean);
PosPay.printStub(mActivity, mRootView, orderDetailItem.getPayTxnId(), new OnPosActionListener() { }else {
@Override printBill(orderDetailItem,doshokuOrder, dataBean,false);
public void onPosSuccess(HywebPosResponse response) { }
printBill(doshokuOrder, dataBean); }
}
@Override
public void onPosException(Exception e) {
}
@Override
public void onPosInvalid(String e) {
} private void printPosStub(OrderManagerResponse orderDetailItem, DoshokuOrder doshokuOrder, TableBean.DataBean dataBean) {
PosPay.printStub(mActivity, mRootView, orderDetailItem.getPayTxnId(), new OnPosActionListener() {
@Override
public void onPosSuccess(HywebPosResponse response) {
if(printlListener != null){
printlListener.printPosStubResult(true);
}
printBill(orderDetailItem,doshokuOrder, dataBean,true);
}
@Override @Override
public void onUpdateStatusSuccess(HywebPosResponse response) { public void onPosException(Exception e) {
if(printlListener != null){
printlListener.printPosStubResult(false);
}
printBill(orderDetailItem,doshokuOrder, dataBean,true);
}
} @Override
public void onPosInvalid(String e) {
printBill(orderDetailItem,doshokuOrder, dataBean,true);
}
@Override @Override
public void onUpdateStatusError(Throwable e) { public void onUpdateStatusSuccess(HywebPosResponse response) {
}
} @Override
}); public void onUpdateStatusError(Throwable e) {
} else {
printBill(doshokuOrder, dataBean);
} }
} else { });
printBill(doshokuOrder, dataBean);
}
} }
private void printBill(DoshokuOrder doshokuOrder, TableBean.DataBean dataBean) { private void printBill(OrderManagerResponse orderDetailItem,DoshokuOrder doshokuOrder, TableBean.DataBean dataBean,boolean printStub) {
PrintContent printContent = new PrintContentAdapter().adaptationBillContent(doshokuOrder, dataBean); PrintContent printContent = new PrintContentAdapter().adaptationBillContent(doshokuOrder, dataBean);
CC.obtainBuilder(ComponentName.COMPONENT_PRINT) CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.setActionName("printActivity") .setActionName("printActivity")
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_BILL) .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_BILL)
...@@ -142,11 +147,13 @@ public class PrintOrderAction implements Strategy<OrderManagerResponse> { ...@@ -142,11 +147,13 @@ public class PrintOrderAction implements Strategy<OrderManagerResponse> {
.build() .build()
.callAsyncCallbackOnMainThread((cc, result) -> { .callAsyncCallbackOnMainThread((cc, result) -> {
Log.e("error", "是否成功打印:" + result.isSuccess()); Log.e("error", "是否成功打印:" + result.isSuccess());
if (printStub) {
printPosStub(orderDetailItem,doshokuOrder,dataBean);
}
doshokuOrder.initialization(); doshokuOrder.initialization();
}); });
} }
private ArrayList<BillItem> getOrderMoneyList(OrderManagerResponse orderDetailItem, double totalMoney) { private ArrayList<BillItem> getOrderMoneyList(OrderManagerResponse orderDetailItem, double totalMoney) {
List<SectionTextItem3> printOrderMoneyList = new ArrayList<>(); List<SectionTextItem3> printOrderMoneyList = new ArrayList<>();
ArrayList<BillItem> printBillOrderMoneyList = new ArrayList<>(); ArrayList<BillItem> printBillOrderMoneyList = new ArrayList<>();
...@@ -267,4 +274,12 @@ public class PrintOrderAction implements Strategy<OrderManagerResponse> { ...@@ -267,4 +274,12 @@ public class PrintOrderAction implements Strategy<OrderManagerResponse> {
} }
return payMethodList; return payMethodList;
} }
private PrintOrderAction.OnPrintlListener printlListener;
public void setPrintlListener(OnPrintlListener printlListener) {
this.printlListener = printlListener;
}
public interface OnPrintlListener{
void printPosStubResult(boolean success);
}
} }
...@@ -30,7 +30,7 @@ import java.util.List; ...@@ -30,7 +30,7 @@ import java.util.List;
*/ */
public class RefundOrder implements Strategy<OrderManagerResponse> { public class RefundOrder implements Strategy<OrderManagerResponse> {
private final String TAG = "RefundlOrder"; private final String TAG = "RefundlOrder";
private BaseFragmentActivity mActivity; private BaseFragmentActivity mActivity;
private IView mRootView; private IView mRootView;
...@@ -46,7 +46,8 @@ public class RefundOrder implements Strategy<OrderManagerResponse> { ...@@ -46,7 +46,8 @@ public class RefundOrder implements Strategy<OrderManagerResponse> {
@Override @Override
public void destroy() { public void destroy() {
mActivity = null;
mRootView = null;
} }
private void showHywebRefundDialog(OrderManagerResponse datasBean) { private void showHywebRefundDialog(OrderManagerResponse datasBean) {
...@@ -88,7 +89,8 @@ public class RefundOrder implements Strategy<OrderManagerResponse> { ...@@ -88,7 +89,8 @@ public class RefundOrder implements Strategy<OrderManagerResponse> {
@Override @Override
public void onPosException(Exception e) { public void onPosException(Exception e) {
LoganManager.w_code(TAG, "onPosException: " + e.getMessage()); LoganManager.w_code(TAG, "onPosException: " + e.getMessage());
if (mActivity.findFragment(PosActionStatusExceptionFragment.class) == null) { PosActionStatusExceptionFragment statusExceptionFragment = (PosActionStatusExceptionFragment) mActivity.findFragment(PosActionStatusExceptionFragment.class);
if (statusExceptionFragment == null) {
PosActionStatusExceptionParam statusExceptionParam = new PosActionStatusExceptionParam(); PosActionStatusExceptionParam statusExceptionParam = new PosActionStatusExceptionParam();
statusExceptionParam.setTxnId(datasBean.getPayTxnId()); statusExceptionParam.setTxnId(datasBean.getPayTxnId());
statusExceptionParam.setAmount(datasBean.getAmount()); statusExceptionParam.setAmount(datasBean.getAmount());
...@@ -97,6 +99,8 @@ public class RefundOrder implements Strategy<OrderManagerResponse> { ...@@ -97,6 +99,8 @@ public class RefundOrder implements Strategy<OrderManagerResponse> {
statusExceptionParam.setPayMethodName("VISA測試"); statusExceptionParam.setPayMethodName("VISA測試");
statusExceptionParam.setPosAction(PosAction.REFUND); statusExceptionParam.setPosAction(PosAction.REFUND);
mActivity.loadRootFragment(R.id.rl_container, PosActionStatusExceptionFragment.newInstance(statusExceptionParam)); mActivity.loadRootFragment(R.id.rl_container, PosActionStatusExceptionFragment.newInstance(statusExceptionParam));
}else {
mActivity.start(statusExceptionFragment);
} }
} }
...@@ -114,7 +118,8 @@ public class RefundOrder implements Strategy<OrderManagerResponse> { ...@@ -114,7 +118,8 @@ public class RefundOrder implements Strategy<OrderManagerResponse> {
@Override @Override
public void onUpdateStatusError(Throwable e) { public void onUpdateStatusError(Throwable e) {
LoganManager.w_code(TAG, "onUpdateStatusError: " + e.getMessage()); LoganManager.w_code(TAG, "onUpdateStatusError: " + e.getMessage());
if (mActivity.findFragment(PosActionStatusExceptionFragment.class) == null) { PosActionStatusExceptionFragment statusExceptionFragment = (PosActionStatusExceptionFragment) mActivity.findFragment(PosActionStatusExceptionFragment.class);
if (statusExceptionFragment == null) {
PosActionStatusExceptionParam statusExceptionParam = new PosActionStatusExceptionParam(); PosActionStatusExceptionParam statusExceptionParam = new PosActionStatusExceptionParam();
statusExceptionParam.setTxnId(datasBean.getPayTxnId()); statusExceptionParam.setTxnId(datasBean.getPayTxnId());
statusExceptionParam.setAmount(datasBean.getAmount()); statusExceptionParam.setAmount(datasBean.getAmount());
...@@ -123,6 +128,8 @@ public class RefundOrder implements Strategy<OrderManagerResponse> { ...@@ -123,6 +128,8 @@ public class RefundOrder implements Strategy<OrderManagerResponse> {
statusExceptionParam.setPayMethodName("VISA測試"); statusExceptionParam.setPayMethodName("VISA測試");
statusExceptionParam.setPosAction(PosAction.REFUND); statusExceptionParam.setPosAction(PosAction.REFUND);
mActivity.loadRootFragment(R.id.rl_container, PosActionStatusExceptionFragment.newInstance(statusExceptionParam)); mActivity.loadRootFragment(R.id.rl_container, PosActionStatusExceptionFragment.newInstance(statusExceptionParam));
}else{
mActivity.start(statusExceptionFragment);
} }
} }
}); });
......
...@@ -42,6 +42,8 @@ public class TipsOrder implements Strategy<OrderManagerResponse> { ...@@ -42,6 +42,8 @@ public class TipsOrder implements Strategy<OrderManagerResponse> {
@Override @Override
public void destroy() { public void destroy() {
mActivity = null;
mRootView = null;
} }
private void showKeyboardDialog(OrderManagerResponse datasBean) { private void showKeyboardDialog(OrderManagerResponse datasBean) {
...@@ -75,7 +77,8 @@ public class TipsOrder implements Strategy<OrderManagerResponse> { ...@@ -75,7 +77,8 @@ public class TipsOrder implements Strategy<OrderManagerResponse> {
@Override @Override
public void onPosException(Exception e) { public void onPosException(Exception e) {
LoganManager.w_code(TAG, "onPosException: " + e.getMessage()); LoganManager.w_code(TAG, "onPosException: " + e.getMessage());
if (mActivity.findFragment(PosActionStatusExceptionFragment.class) == null) { PosActionStatusExceptionFragment statusExceptionFragment = (PosActionStatusExceptionFragment) mActivity.findFragment(PosActionStatusExceptionFragment.class);
if (statusExceptionFragment == null) {
PosActionStatusExceptionParam statusExceptionParam = new PosActionStatusExceptionParam(); PosActionStatusExceptionParam statusExceptionParam = new PosActionStatusExceptionParam();
statusExceptionParam.setTxnId(datasBean.getPayTxnId()); statusExceptionParam.setTxnId(datasBean.getPayTxnId());
statusExceptionParam.setAmount(datasBean.getAmount()); statusExceptionParam.setAmount(datasBean.getAmount());
...@@ -84,6 +87,8 @@ public class TipsOrder implements Strategy<OrderManagerResponse> { ...@@ -84,6 +87,8 @@ public class TipsOrder implements Strategy<OrderManagerResponse> {
statusExceptionParam.setPayMethodName("VISA測試"); statusExceptionParam.setPayMethodName("VISA測試");
statusExceptionParam.setPosAction(PosAction.TIP); statusExceptionParam.setPosAction(PosAction.TIP);
mActivity.loadRootFragment(R.id.rl_container, PosActionStatusExceptionFragment.newInstance(statusExceptionParam)); mActivity.loadRootFragment(R.id.rl_container, PosActionStatusExceptionFragment.newInstance(statusExceptionParam));
}else{
mActivity.start(statusExceptionFragment);
} }
} }
...@@ -100,7 +105,8 @@ public class TipsOrder implements Strategy<OrderManagerResponse> { ...@@ -100,7 +105,8 @@ public class TipsOrder implements Strategy<OrderManagerResponse> {
@Override @Override
public void onUpdateStatusError(Throwable e) { public void onUpdateStatusError(Throwable e) {
LoganManager.w_code(TAG, "onUpdateStatusError: " + e.getMessage()); LoganManager.w_code(TAG, "onUpdateStatusError: " + e.getMessage());
if (mActivity.findFragment(PosActionStatusExceptionFragment.class) == null) { PosActionStatusExceptionFragment statusExceptionFragment = (PosActionStatusExceptionFragment) mActivity.findFragment(PosActionStatusExceptionFragment.class);
if (statusExceptionFragment == null) {
PosActionStatusExceptionParam statusExceptionParam = new PosActionStatusExceptionParam(); PosActionStatusExceptionParam statusExceptionParam = new PosActionStatusExceptionParam();
statusExceptionParam.setTxnId(datasBean.getPayTxnId()); statusExceptionParam.setTxnId(datasBean.getPayTxnId());
statusExceptionParam.setAmount(datasBean.getAmount()); statusExceptionParam.setAmount(datasBean.getAmount());
...@@ -109,6 +115,8 @@ public class TipsOrder implements Strategy<OrderManagerResponse> { ...@@ -109,6 +115,8 @@ public class TipsOrder implements Strategy<OrderManagerResponse> {
statusExceptionParam.setPayMethodName("VISA測試"); statusExceptionParam.setPayMethodName("VISA測試");
statusExceptionParam.setPosAction(PosAction.TIP); statusExceptionParam.setPosAction(PosAction.TIP);
mActivity.loadRootFragment(R.id.rl_container, PosActionStatusExceptionFragment.newInstance(statusExceptionParam)); mActivity.loadRootFragment(R.id.rl_container, PosActionStatusExceptionFragment.newInstance(statusExceptionParam));
}else{
mActivity.start(statusExceptionFragment);
} }
} }
}); });
......
package com.gingersoft.gsa.cloud.table.mvp.model.discount;
import android.app.Activity;
import android.text.InputType;
import com.gingersoft.gsa.cloud.common.patterns.Strategy;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.order.discount.NomalDiscount;
import com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog;
import com.gingersoft.gsa.cloud.ui.widget.dialog.KeyboardDialog;
import com.jess.arms.utils.ArmsUtils;
import java.util.List;
/**
* @author : bin
* @create date: 2020-10-27
* @update date: 2020-10-27
* @description:賬單折扣邏輯
*/
public class BillDiscountAction implements Strategy<Discount> {
private Activity mContext;
/**
* 賬單折扣列表
*/
private List<NomalDiscount> mNomalDiscountList;
private OnCallBackListener mListener;
public BillDiscountAction(Activity context, OnCallBackListener listener) {
this.mContext = context;
this.mListener = listener;
}
public void setNomalDiscountList(List<NomalDiscount> nomalDiscountList) {
this.mNomalDiscountList = nomalDiscountList;
}
@Override
public void action(Discount discount) {
if (mListener == null) {
return;
}
if (isOnlyOnce(discount)) {
//此折扣只一次
ArmsUtils.makeText(mContext, "此折扣只一次");
return;
}
boolean hasExclusive = hasExclusiveDiscount();
if (hasExclusive) {
//有獨佔折扣
exclusiveDiscount(discount);
return;
} else {
if (discount.getExclusive() == 1 && mNomalDiscountList.size() > 0) {
//獨佔折扣
exclusiveDiscount(discount);
return;
}
}
switch (discount.getType()) {
case Discount.DISCOUNT_TYPE_CUSTOM_AMOUNT:
showCustomAmountDialog(discount, false);
break;
case Discount.DISCOUNT_TYPE_KEYBOARD:
showKeyboardDialog(discount, false);
break;
// case Discount.DISCOUNT_TYPE_FREE_SERVICE_CHARGE:
//
// break;
default:
mListener.preformAddDiscount(discount.clone());
break;
}
}
private void exclusiveDiscount(Discount discount) {
if (mListener != null) {
showExclusiveTipDialog(discount);
}
}
/**
* 是否有獨佔折扣
*
* @return
*/
private boolean hasExclusiveDiscount() {
for (NomalDiscount nomalDiscount : mNomalDiscountList) {
if (nomalDiscount.getDiscount().getExclusive() == 1) {
return true;
}
}
return false;
}
/**
* 此折扣是否只一次
*
* @param discount
* @return
*/
private boolean isOnlyOnce(Discount discount) {
if (discount.getOnlyOnce() == 1) {
for (NomalDiscount nomalDiscount : mNomalDiscountList) {
Discount item = nomalDiscount.getDiscount();
if (discount.getId().longValue() == item.getId().longValue()) {
return true;
}
}
}
return false;
}
/**
* 顯示自定義金額彈窗
*
* @param discount
*/
private void showCustomAmountDialog(Discount discount, boolean exclusiveReplace) {
CommonTipDialog.showEditDialog(mContext, discount.getRemark(), "請輸入折扣金額", InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL, new CommonTipDialog.OnEditTextListener() {
@Override
public void inputText(String text) {
discount.setAmount(Double.parseDouble(text));
if (mListener != null) {
if (exclusiveReplace) {
mListener.exclusiveRemoveOthers(mNomalDiscountList);
}
mListener.preformAddDiscount(discount.clone());
}
}
});
}
/**
* 顯示子弟你金額彈窗 鍵盤
*
* @param discount
*/
private void showKeyboardDialog(Discount discount, boolean exclusiveReplace) {
new KeyboardDialog(mContext)
.build()
.setOnCallBackListener(new KeyboardDialog.OnCallBackListener() {
@Override
public void onSure(String number) {
discount.setAmount(Double.parseDouble(number));
if (mListener != null) {
if (exclusiveReplace) {
mListener.exclusiveRemoveOthers(mNomalDiscountList);
}
mListener.preformAddDiscount(discount.clone());
}
}
})
.show();
}
/**
* 提示有獨佔折扣是否替換
*
* @param discount
*/
private void showExclusiveTipDialog(Discount discount) {
CommonTipDialog.showDoubtDialog2(mContext, "有獨佔折扣,是否替換", new CommonTipDialog.OnCallbackListener() {
@Override
public void onSure() {
switch (discount.getType()) {
case Discount.DISCOUNT_TYPE_CUSTOM_AMOUNT:
showCustomAmountDialog(discount, true);
break;
case Discount.DISCOUNT_TYPE_KEYBOARD:
showKeyboardDialog(discount, true);
break;
// case Discount.DISCOUNT_TYPE_FREE_SERVICE_CHARGE:
//
// break;
default:
mListener.exclusiveRemoveOthers(mNomalDiscountList);
mListener.preformAddDiscount(discount.clone());
break;
}
}
});
}
public interface OnCallBackListener {
void exclusiveRemoveOthers(List<NomalDiscount> nomalDiscountList);
void preformAddDiscount(Discount discount);
}
}
package com.gingersoft.gsa.cloud.table.mvp.model.discount;
import android.app.Activity;
import android.text.InputType;
import com.gingersoft.gsa.cloud.common.patterns.Strategy;
import com.gingersoft.gsa.cloud.common.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.order.discount.MultyDiscount;
import com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog;
import com.gingersoft.gsa.cloud.ui.widget.dialog.KeyboardDialog;
import com.jess.arms.utils.ArmsUtils;
import java.util.List;
/**
* @author : bin
* @create date: 2020-10-28
* @update date: 2020-10-28
* @description:美食折扣邏輯
*/
public class MealDiscountAction implements Strategy<Discount> {
private Activity mContext;
/**
* 選中的食品或套餐組
*/
private List<OrderDetail> mSelectMixOrderMealList;
private List<MultyDiscount> mMultyDiscountList;
private MealDiscountAction.OnCallBackListener mListener;
public MealDiscountAction(Activity context, List<MultyDiscount> multyDiscountList, MealDiscountAction.OnCallBackListener listener) {
this.mContext = context;
this.mMultyDiscountList = multyDiscountList;
this.mListener = listener;
}
public void setSelectMixOrderMealList(List<OrderDetail> selectMixOrderMealList) {
this.mSelectMixOrderMealList = selectMixOrderMealList;
}
@Override
public void action(Discount discount) {
if (mListener == null || mSelectMixOrderMealList == null || mSelectMixOrderMealList.size() == 0) {
return;
}
double mixTotalAomout = getMixTotalAomout(mSelectMixOrderMealList);
if(discount.getType() == 0 && discount.getAmount() > mixTotalAomout){
//金額折扣總額不能超過 食品總金額
ArmsUtils.makeText(mContext, "折扣金額不可以超過食品總金額!");
return;
}
if (discount.getMinBillAmount() > mixTotalAomout) {
//最小賬單金額
ArmsUtils.makeText(mContext, "小於最小賬單金額$" + discount.getMinBillAmount() + " 無法使用此折扣");
return;
}
if (isOnlyOnce(discount)) {
//此折扣只一次
ArmsUtils.makeText(mContext, "此折扣只一次");
return;
}
boolean hasExclusive = hasExclusiveDiscount();
if (hasExclusive) {
//有獨佔折扣
exclusiveDiscount(discount);
return;
} else {
int discountSize = getDiscountSize();
if (discount.getExclusive() == 1 && discountSize > 0) {
//獨佔折扣
exclusiveDiscount(discount);
return;
}
}
switch (discount.getType()) {
case Discount.DISCOUNT_TYPE_CUSTOM_AMOUNT:
showCustomAmountDialog(discount, false);
break;
case Discount.DISCOUNT_TYPE_KEYBOARD:
showKeyboardDialog(discount, false);
break;
// case Discount.DISCOUNT_TYPE_FREE_SERVICE_CHARGE:
//
// break;
default:
mListener.preformAddDiscount(discount.clone());
break;
}
}
private void exclusiveDiscount(Discount discount) {
if (mListener != null) {
showExclusiveTipDialog(discount);
}
}
/**
* 食品是否有獨佔折扣
*
* @return
*/
private boolean hasExclusiveDiscount() {
for (OrderDetail orderMealItem : mSelectMixOrderMealList) {
if (orderMealItem.getDiscount() != null && orderMealItem.getDiscount().getExclusive() == 1) {
return true;
}
}
return false;
}
/**
* 此折扣是否只一次
*
* @param discount
* @return
*/
private boolean isOnlyOnce(Discount discount) {
if (discount.getOnlyOnce() == 1) {
for (OrderDetail orderMealItem : mSelectMixOrderMealList) {
Discount item = orderMealItem.getDiscount();
if (item != null && discount.getId().longValue() == item.getId().longValue()) {
return true;
}
}
}
return false;
}
/**
* 顯示自定義金額彈窗
*
* @param discount
*/
private void showCustomAmountDialog(Discount discount, boolean exclusiveReplace) {
CommonTipDialog.showEditDialog(mContext, discount.getRemark(), "請輸入折扣金額", InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL, new CommonTipDialog.OnEditTextListener() {
@Override
public void inputText(String text) {
discount.setAmount(Double.parseDouble(text));
if (mListener != null) {
if (exclusiveReplace) {
mListener.exclusiveRemoveOthers();
}
mListener.preformAddDiscount(discount.clone());
}
}
});
}
/**
* 顯示子弟你金額彈窗 鍵盤
*
* @param discount
*/
private void showKeyboardDialog(Discount discount, boolean exclusiveReplace) {
new KeyboardDialog(mContext)
.build()
.setOnCallBackListener(new KeyboardDialog.OnCallBackListener() {
@Override
public void onSure(String number) {
discount.setAmount(Double.parseDouble(number));
if (mListener != null) {
if (exclusiveReplace) {
mListener.exclusiveRemoveOthers();
}
mListener.preformAddDiscount(discount.clone());
}
}
})
.show();
}
/**
* 提示有獨佔折扣是否替換
*
* @param discount
*/
private void showExclusiveTipDialog(Discount discount) {
CommonTipDialog.showDoubtDialog2(mContext, "有獨佔折扣,是否替換", new CommonTipDialog.OnCallbackListener() {
@Override
public void onSure() {
switch (discount.getType()) {
case Discount.DISCOUNT_TYPE_CUSTOM_AMOUNT:
showCustomAmountDialog(discount, true);
break;
case Discount.DISCOUNT_TYPE_KEYBOARD:
showKeyboardDialog(discount, true);
break;
// case Discount.DISCOUNT_TYPE_FREE_SERVICE_CHARGE:
//
// break;
default:
mListener.exclusiveRemoveOthers();
mListener.preformAddDiscount(discount.clone());
break;
}
}
});
}
/**
* 獲取折扣數量
*
* @return
*/
private int getDiscountSize() {
int size = 0;
for (OrderDetail orderMealItem : mSelectMixOrderMealList) {
if (orderMealItem.getDiscount() != null) {
size++;
}
}
return size;
}
/**
* 獲取套餐總金額
*
* @param mixOrderMealList
* @return
*/
private double getMixTotalAomout(List<OrderDetail> mixOrderMealList) {
double mixTotalAomout = 0.0;
for (OrderDetail orderDetail : mixOrderMealList) {
mixTotalAomout = MoneyUtil.sum(mixTotalAomout, orderDetail.getPrice());
}
return mixTotalAomout;
}
public interface OnCallBackListener {
void exclusiveRemoveOthers();
void preformAddDiscount(Discount discount);
}
}
package com.gingersoft.gsa.cloud.table.mvp.model.function;
import com.gingersoft.gsa.cloud.common.function.FModule;
import com.gingersoft.gsa.cloud.table.R;
/**
* @author : bin
* @create date: 2020-11-21
* @update date: 2020-11-21
* @description:
*/
public class TableFunctionFactory {
public static final String BottomGroup = "/bottom/";
public static final class Bottom {
}
/**
* 餐檯頁
*/
public static final FModule[] bottom = {
new FModule("init", R.mipmap.table_init, 0),
new FModule("initSkyorder", R.mipmap.table_paper, 0),
new FModule("move", R.mipmap.table_move, 0),
new FModule("skyorder", 0, 0),
new FModule("splite", R.mipmap.table_splite, 0),
new FModule("table/bottom/parper", R.mipmap.table_paper, 0),
};
}
...@@ -150,7 +150,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -150,7 +150,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
this.mAppManager = null; this.mAppManager = null;
this.mImageLoader = null; this.mImageLoader = null;
this.mApplication = null; this.mApplication = null;
if(mNomalDiscountAction != null){ if (mNomalDiscountAction != null) {
mNomalDiscountAction.destroy(); mNomalDiscountAction.destroy();
} }
stopTablePolling(); stopTablePolling();
...@@ -249,7 +249,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -249,7 +249,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
@Override @Override
public void onItemDeleteClick(BillItem datasBean, int position) { public void onItemDeleteClick(BillItem datasBean, int position) {
removeBillItem(position); removeBillItemByPosition(position);
} }
}); });
} }
...@@ -385,7 +385,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -385,7 +385,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
mergeMainFoodNumber(mOrderMealList); mergeMainFoodNumber(mOrderMealList);
} }
PrintContent printContent = new PrintContentAdapter().adaptationServingPaperContent(DoshokuOrder.getInstance(),mTableInfo); PrintContent printContent = new PrintContentAdapter().adaptationServingPaperContent(DoshokuOrder.getInstance(), mTableInfo);
CC.obtainBuilder(ComponentName.COMPONENT_PRINT) CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.setActionName("printActivity") .setActionName("printActivity")
...@@ -432,7 +432,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -432,7 +432,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
mergeMainFoodNumber(mOrderMealList); mergeMainFoodNumber(mOrderMealList);
} }
PrintContent printContent = new PrintContentAdapter().adaptationPrintSlipContent(DoshokuOrder.getInstance(),mTableInfo); PrintContent printContent = new PrintContentAdapter().adaptationPrintSlipContent(DoshokuOrder.getInstance(), mTableInfo);
CC.obtainBuilder(ComponentName.COMPONENT_PRINT) CC.obtainBuilder(ComponentName.COMPONENT_PRINT)
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_SLIP)//印單 .addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_SLIP)//印單
...@@ -810,15 +810,18 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -810,15 +810,18 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
private void updateOrderDetails(BaseOrderResponse info) { private void updateOrderDetails(BaseOrderResponse info) {
if (mDoshokuOrder != null && info.getData() != null) { if (mDoshokuOrder != null && info.getData() != null) {
if (info.getData().getOrderDetails() != null) { mTableInfo.setPerson(info.getData().getPerson());
mTableInfo.setCreateTime(info.getData().getCreateTime());
mDoshokuOrder.setOpenTableInfo(mTableInfo);
mDoshokuOrder.setOrderPlaced(info.getData());
mTableInfo.setPerson(info.getData().getPerson()); if (info.getData().getOrderDetails() != null) {
//緩存訂單信息 //组装食品信息
mDoshokuOrder.setOrderPlaced(new OrderResponse(info.getData()));
//緩存食品信息
// List<OrderDetail> orderDetailList = OrderDetail.orderTransOrderDetails(info.getData().getOrderDetails());
List<OrderDetail> orderDetailList = OrderAssemblyUtil.assemblyOrder(OrderDetail.orderTransOrderDetails(info.getData().getOrderDetails())); List<OrderDetail> orderDetailList = OrderAssemblyUtil.assemblyOrder(OrderDetail.orderTransOrderDetails(info.getData().getOrderDetails()));
mDoshokuOrder.setNewFoodList(orderDetailList);
mOrderMealList.clear(); mOrderMealList.clear();
mOrderMealList.addAll(orderDetailList); mOrderMealList.addAll(orderDetailList);
mSelectMealAdapter.notifyDataSetChanged(); mSelectMealAdapter.notifyDataSetChanged();
...@@ -874,8 +877,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -874,8 +877,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
return true; return true;
} }
public void removeBillItemByPosition(int index) {
public void removeBillItem(int index) {
if (index < mBillItemList.size()) { if (index < mBillItemList.size()) {
BillItem billItem = mBillItemList.get(index); BillItem billItem = mBillItemList.get(index);
if (billItem instanceof DiscountItem) { if (billItem instanceof DiscountItem) {
...@@ -888,11 +890,12 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -888,11 +890,12 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
/** /**
* 修改訂單包含修改或刪除過的的食品 * 修改訂單包含修改或刪除過的的食品
*
* @return * @return
*/ */
private boolean hasModifyFoods() { private boolean hasModifyFoods() {
for (OrderDetail orderDetail : getOrderFoodLists()) { for (OrderDetail orderDetail : getOrderFoodLists()) {
if(orderDetail.isModify()){ if (orderDetail.isModify()) {
return true; return true;
} }
} }
......
...@@ -97,6 +97,7 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All ...@@ -97,6 +97,7 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
private OrderCenterAdapter mOrderCenterAdapter; private OrderCenterAdapter mOrderCenterAdapter;
private List<OrderManagerResponse> mOrderItemList = new ArrayList<>(); private List<OrderManagerResponse> mOrderItemList = new ArrayList<>();
private OrderManagerResponse mCheckedOrderBean;
@Inject @Inject
public AllOrderPresenter(AllOrderContract.Model model, AllOrderContract.View rootView) { public AllOrderPresenter(AllOrderContract.Model model, AllOrderContract.View rootView) {
...@@ -112,6 +113,7 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All ...@@ -112,6 +113,7 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
this.mAppManager = null; this.mAppManager = null;
this.mImageLoader = null; this.mImageLoader = null;
this.mApplication = null; this.mApplication = null;
this.IActivity = null;
} }
public void initOrderAdapter(Context context) { public void initOrderAdapter(Context context) {
...@@ -126,24 +128,32 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All ...@@ -126,24 +128,32 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
intent.putExtra("orderDetailItem", datasBean); intent.putExtra("orderDetailItem", datasBean);
mRootView.launchActivity(intent); mRootView.launchActivity(intent);
} }
@Override
public void onPrintClick(OrderManagerResponse datasBean, int position) {
}
@Override
public void onModifyClick(OrderManagerResponse datasBean, int position) {
}
@Override @Override
public void onCancelClick(OrderManagerResponse datasBean, int position) { public void onCheckedChanged(OrderManagerResponse checkedOrder) {
if (checkedOrder.isChecked()) {
mCheckedOrderBean = checkedOrder;
} else {
mCheckedOrderBean = null;
}
IActivity.setOnCheckedChangedListener(mCheckedOrderBean);
} }
@Override @Override
public void onRefundClick(OrderManagerResponse datasBean, int position) { public void onReloadExceptionStatus(OrderManagerResponse orderBean, String txnId) {
} PosActionStatusExceptionFragment statusExceptionFragment = IActivity.findFragment(PosActionStatusExceptionFragment.class);
if (statusExceptionFragment == null) {
@Override PosActionStatusExceptionParam statusExceptionParam = new PosActionStatusExceptionParam();
public void onTipsClick(OrderManagerResponse datasBean, int position) { statusExceptionParam.setTxnId(txnId);
statusExceptionParam.setAmount(orderBean.getTotalAmount());
statusExceptionParam.setOrderId(orderBean.getId());
statusExceptionParam.setOrderNo(orderBean.getOrderNo());
statusExceptionParam.setPayMethodName(orderBean.getPayNames());
statusExceptionParam.setPosAction(orderBean.getPosActionByMatterId());
IActivity.loadRootFragment(R.id.fl_container, PosActionStatusExceptionFragment.newInstance(statusExceptionParam));
}else {
IActivity.start(statusExceptionFragment);
}
} }
}); });
} }
...@@ -163,13 +173,8 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All ...@@ -163,13 +173,8 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
} }
} }
public OrderManagerResponse getSelectedOrderItem(){ public OrderManagerResponse getCheckedOrderBean() {
for (OrderManagerResponse orderItem:mOrderItemList) { return mCheckedOrderBean;
if(orderItem.isChecked()){
return orderItem;
}
}
return null;
} }
} }
...@@ -74,7 +74,7 @@ public class BaseOrderConterPresenter<M extends IModel,V extends IView> extends ...@@ -74,7 +74,7 @@ public class BaseOrderConterPresenter<M extends IModel,V extends IView> extends
} }
public void orderTips(BaseFragmentActivity activity,OrderManagerResponse orderItem,TipsOrder.OnRefundListener listener){ public void orderTips(BaseFragmentActivity activity,OrderManagerResponse orderItem,TipsOrder.OnRefundListener listener){
TipsOrder tipsOrder = new TipsOrder(activity,mRootView); TipsOrder tipsOrder = new TipsOrder(activity,mRootView);
tipsOrder.action(orderItem); tipsOrder.action(orderItem);
tipsOrder.setTipsListener(listener); tipsOrder.setTipsListener(listener);
} }
......
...@@ -8,6 +8,7 @@ import com.gingersoft.gsa.cloud.common.utils.MoneyUtil; ...@@ -8,6 +8,7 @@ import com.gingersoft.gsa.cloud.common.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.order.bean.response.OrderDiscountResponse; import com.gingersoft.gsa.cloud.order.bean.response.OrderDiscountResponse;
import com.gingersoft.gsa.cloud.order.commodity.OrderDetail; import com.gingersoft.gsa.cloud.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.pay.bean.PayMethod; import com.gingersoft.gsa.cloud.pay.bean.PayMethod;
import com.gingersoft.gsa.cloud.pay.pos.fragment.PosActionStatusExceptionFragment;
import com.gingersoft.gsa.cloud.pay.util.PayMethodUtils; import com.gingersoft.gsa.cloud.pay.util.PayMethodUtils;
import com.gingersoft.gsa.cloud.table.R; import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.mvp.contract.OrderDetailContract; import com.gingersoft.gsa.cloud.table.mvp.contract.OrderDetailContract;
...@@ -56,6 +57,7 @@ public class OrderDetailPresenter extends BaseOrderConterPresenter<OrderDetailCo ...@@ -56,6 +57,7 @@ public class OrderDetailPresenter extends BaseOrderConterPresenter<OrderDetailCo
@Inject @Inject
AppManager mAppManager; AppManager mAppManager;
@Inject @Inject
public OrderDetailPresenter(OrderDetailContract.Model model, OrderDetailContract.View rootView) { public OrderDetailPresenter(OrderDetailContract.Model model, OrderDetailContract.View rootView) {
super(model, rootView); super(model, rootView);
...@@ -87,8 +89,6 @@ public class OrderDetailPresenter extends BaseOrderConterPresenter<OrderDetailCo ...@@ -87,8 +89,6 @@ public class OrderDetailPresenter extends BaseOrderConterPresenter<OrderDetailCo
if (result.getData() != null) { if (result.getData() != null) {
OrderManagerResponse orderDetailItem = JsonUtils.parseObject(JsonUtils.toJson(result.getData()), OrderManagerResponse.class); OrderManagerResponse orderDetailItem = JsonUtils.parseObject(JsonUtils.toJson(result.getData()), OrderManagerResponse.class);
mRootView.returnOrderDetail(orderDetailItem); mRootView.returnOrderDetail(orderDetailItem);
//刷新訂單列表
EventBus.getDefault().post(true, "updateOrderListEvent");
} else { } else {
mRootView.showMessage("獲取賬單失敗"); mRootView.showMessage("獲取賬單失敗");
} }
...@@ -116,7 +116,7 @@ public class OrderDetailPresenter extends BaseOrderConterPresenter<OrderDetailCo ...@@ -116,7 +116,7 @@ public class OrderDetailPresenter extends BaseOrderConterPresenter<OrderDetailCo
OrderManagerResponse orderDetailItem = JsonUtils.parseObject(JsonUtils.toJson(result.getData()), OrderManagerResponse.class); OrderManagerResponse orderDetailItem = JsonUtils.parseObject(JsonUtils.toJson(result.getData()), OrderManagerResponse.class);
mRootView.returnOrderDetail(orderDetailItem); mRootView.returnOrderDetail(orderDetailItem);
//刷新訂單列表 //刷新訂單列表
EventBus.getDefault().post(true, "updateOrderListEvent"); EventBus.getDefault().post(true, PosActionStatusExceptionFragment.REFREAFSH_ORDER_EVENT);
} else { } else {
mRootView.showMessage("獲取賬單失敗"); mRootView.showMessage("獲取賬單失敗");
} }
......
...@@ -5,6 +5,7 @@ import android.os.Bundle; ...@@ -5,6 +5,7 @@ import android.os.Bundle;
import android.os.Message; import android.os.Message;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.Button;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import android.widget.LinearLayout; import android.widget.LinearLayout;
...@@ -15,6 +16,7 @@ import androidx.fragment.app.Fragment; ...@@ -15,6 +16,7 @@ import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager; import androidx.viewpager.widget.ViewPager;
import com.gingersoft.gsa.cloud.order.contract.OrderStatusContract; import com.gingersoft.gsa.cloud.order.contract.OrderStatusContract;
import com.gingersoft.gsa.cloud.pay.pos.fragment.PosActionStatusExceptionFragment;
import com.gingersoft.gsa.cloud.table.R; import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2; import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.table.di.component.DaggerOrderCenterComponent; import com.gingersoft.gsa.cloud.table.di.component.DaggerOrderCenterComponent;
...@@ -30,6 +32,7 @@ import com.jess.arms.base.BaseFragmentActivity; ...@@ -30,6 +32,7 @@ import com.jess.arms.base.BaseFragmentActivity;
import com.jess.arms.base.delegate.IActivity; import com.jess.arms.base.delegate.IActivity;
import com.jess.arms.di.component.AppComponent; import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import com.qmuiteam.qmui.alpha.QMUIAlphaButton;
import com.qmuiteam.qmui.arch.QMUIFragmentPagerAdapter; import com.qmuiteam.qmui.arch.QMUIFragmentPagerAdapter;
import com.qmuiteam.qmui.util.QMUIDisplayHelper; import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.util.QMUIResHelper; import com.qmuiteam.qmui.util.QMUIResHelper;
...@@ -73,12 +76,23 @@ public class OrderCenterActivity extends BaseFragmentActivity<OrderCenterPresent ...@@ -73,12 +76,23 @@ public class OrderCenterActivity extends BaseFragmentActivity<OrderCenterPresent
@BindView(R2.id.ll_bottom) @BindView(R2.id.ll_bottom)
LinearLayout ll_bottom; LinearLayout ll_bottom;
@BindView(R2.id.btn_print_order)
QMUIAlphaButton btn_print_order;
@BindView(R2.id.btn_cancel_order)
QMUIAlphaButton btn_cancel_order;
@BindView(R2.id.btn_refund)
QMUIAlphaButton btn_refund;
@BindView(R2.id.btn_tips)
QMUIAlphaButton btn_tips;
@BindView(R2.id.btn_modify_order)
QMUIAlphaButton btn_modify_order;
private AllOrderFragment mNormalOrderFragment, mCancelOrderFragment, mVoidOrderFragment; private AllOrderFragment mNormalOrderFragment, mCancelOrderFragment, mVoidOrderFragment;
//當前顯示頁下標 //當前顯示頁下標
private int mCurrentFragmentIndex = 0; private int mCurrentFragmentIndex = 0;
//標題 //標題
private String[] mTabTitles = {"已付款", "已取消"}; private String[] mTabTitles = {"已付款", "已取消"};
// private String[] mTabTitles = {"堂食"}; // private String[] mTabTitles = {"堂食"};
//是否已經初始化數據,默認初始化第一個頁面 //是否已經初始化數據,默認初始化第一個頁面
private boolean[] mPageDataInit = {true, false, false}; private boolean[] mPageDataInit = {true, false, false};
...@@ -106,73 +120,68 @@ public class OrderCenterActivity extends BaseFragmentActivity<OrderCenterPresent ...@@ -106,73 +120,68 @@ public class OrderCenterActivity extends BaseFragmentActivity<OrderCenterPresent
lp_content = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); lp_content = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
initTabAndPager(); initTabAndPager();
mPresenter.loadOrderList(OrderManagerResponse.ORDER_TYPE_DOSHOKU + "",getStatusByFragmentIndex(), 0, 10, null, false); mPresenter.loadOrderList(OrderManagerResponse.ORDER_TYPE_DOSHOKU + "", getStatusByFragmentIndex(), 0, 10, null, false);
} }
@Override @Subscriber(tag = PosActionStatusExceptionFragment.REFREAFSH_ORDER_EVENT)
protected void onNewIntent(Intent intent) { private void refreafshOrder(boolean refreafsh) {
super.onNewIntent(intent);
}
@Subscriber(tag = "updateOrderListEvent")
private void updateOrderList(boolean update) {
refeshOrderList(getStatusByFragmentIndex()); refeshOrderList(getStatusByFragmentIndex());
} }
public void refeshOrderList(String status) { public void refeshOrderList(String status) {
setPageIndex(0); setPageIndex(0);
mPresenter.loadOrderList(OrderManagerResponse.ORDER_TYPE_DOSHOKU + "",status, 0, 10, null, false); mPresenter.loadOrderList(OrderManagerResponse.ORDER_TYPE_DOSHOKU + "", status, 0, 10, null, false);
} }
public void loadOrderList(String orderType,String status, RefreshLayout refreshLayout, boolean isLoadMore) { public void loadOrderList(String orderType, String status, RefreshLayout refreshLayout, boolean isLoadMore) {
mPresenter.loadOrderList(orderType, status, getPageIndex(), getPageSize(), refreshLayout, isLoadMore); mPresenter.loadOrderList(orderType, status, getPageIndex(), getPageSize(), refreshLayout, isLoadMore);
} }
public void cancelOrder(long orderId, String orderType,String status) { public void cancelOrder(long orderId, String orderType, String status) {
mPresenter.cancelOrder(orderId, orderType,status); mPresenter.cancelOrder(orderId, orderType, status);
} }
@OnClick({R2.id.btn_print_order,R2.id.btn_modify_order,R2.id.btn_tips,R2.id.btn_cancel_order,R2.id.btn_refund}) @OnClick({R2.id.btn_print_order, R2.id.btn_modify_order, R2.id.btn_tips, R2.id.btn_cancel_order, R2.id.btn_refund})
public void OnClick(View v){ public void OnClick(View v) {
OrderManagerResponse orderItem = getCurrentOrderFragment().getSelectedOrderItem(); OrderManagerResponse orderItem = getCurrentOrderFragment().getCheckedOrderBean();
if(orderItem != null){ if (orderItem != null) {
int id = v.getId(); int id = v.getId();
if(id == R.id.btn_print_order){ if (id == R.id.btn_print_order) {
mPresenter.printOrder(this,orderItem); mPresenter.printOrder(this, orderItem);
}else if(id == R.id.btn_modify_order){ } else if (id == R.id.btn_modify_order) {
if (orderItem.getRestaurantTable() == null) { if (orderItem.getRestaurantTable() == null) {
showMessage("餐檯不存在,無法修改訂單"); showMessage("餐檯不存在,無法修改訂單");
return; return;
} }
mPresenter.modifyOrder(this,orderItem); mPresenter.modifyOrder(this, orderItem);
}else if(id == R.id.btn_tips){ } else if (id == R.id.btn_tips) {
mPresenter.orderTips(this, orderItem, new TipsOrder.OnRefundListener() { mPresenter.orderTips(this, orderItem, new TipsOrder.OnRefundListener() {
@Override @Override
public void refeshOrders() { public void refeshOrders() {
refeshOrderList(getStatusByFragmentIndex()); refreafshOrder(true);
} }
}); });
}else if(id == R.id.btn_cancel_order){ } else if (id == R.id.btn_cancel_order) {
mPresenter.orderCancel(this, orderItem, new CancelOrder.OnCancelListener() { mPresenter.orderCancel(this, orderItem, new CancelOrder.OnCancelListener() {
@Override @Override
public void cancel(long orderId) { public void cancel(long orderId) {
cancelOrder(orderId, getOrderType(),getStatusByFragmentIndex()); cancelOrder(orderId, getOrderType(), getStatusByFragmentIndex());
} }
@Override @Override
public void refeshOrders() { public void refeshOrders() {
refreafshOrder(true);
} }
}); });
}else if(id == R.id.btn_refund){ } else if (id == R.id.btn_refund) {
mPresenter.orderRefund(this, orderItem, new RefundOrder.OnRefundListener() { mPresenter.orderRefund(this, orderItem, new RefundOrder.OnRefundListener() {
@Override @Override
public void refeshOrders() { public void refeshOrders() {
refeshOrderList(getStatusByFragmentIndex()); refreafshOrder(true);
} }
}); });
} }
}else { } else {
showMessage("請選中需要操作的訂單!"); showMessage("請選中需要操作的訂單!");
} }
} }
...@@ -242,7 +251,7 @@ public class OrderCenterActivity extends BaseFragmentActivity<OrderCenterPresent ...@@ -242,7 +251,7 @@ public class OrderCenterActivity extends BaseFragmentActivity<OrderCenterPresent
pagerAdapter.createFragment(index); pagerAdapter.createFragment(index);
if (!mPageDataInit[index]) { if (!mPageDataInit[index]) {
//未初始化數據,獲取數據 //未初始化數據,獲取數據
loadOrderList(getCurrentOrderFragment().getOrderType(),getStatusByFragmentIndex(), null, false); loadOrderList(getCurrentOrderFragment().getOrderType(), getStatusByFragmentIndex(), null, false);
} }
mPageDataInit[mCurrentFragmentIndex] = true; mPageDataInit[mCurrentFragmentIndex] = true;
...@@ -363,6 +372,29 @@ public class OrderCenterActivity extends BaseFragmentActivity<OrderCenterPresent ...@@ -363,6 +372,29 @@ public class OrderCenterActivity extends BaseFragmentActivity<OrderCenterPresent
} }
@Override @Override
public void setOnCheckedChangedListener(OrderManagerResponse checkOrderBean) {
if (checkOrderBean != null) {
if (checkOrderBean.isCurrDeviceOrder()) {
setBtnEnabled(btn_cancel_order, true);
setBtnEnabled(btn_modify_order, true);
} else {
setBtnEnabled(btn_cancel_order, false);
setBtnEnabled(btn_modify_order, false);
}
setBtnEnabled(btn_print_order, true);
} else {
setBtnEnabled(btn_print_order, false);
setBtnEnabled(btn_cancel_order, false);
setBtnEnabled(btn_modify_order, false);
}
}
private void setBtnEnabled(Button btn, boolean enabled) {
btn.setEnabled(enabled);
btn.setClickable(enabled);
}
@Override
public AllOrderFragment getCurrentOrderFragment() { public AllOrderFragment getCurrentOrderFragment() {
switch (mCurrentFragmentIndex) { switch (mCurrentFragmentIndex) {
case 1: case 1:
...@@ -380,12 +412,12 @@ public class OrderCenterActivity extends BaseFragmentActivity<OrderCenterPresent ...@@ -380,12 +412,12 @@ public class OrderCenterActivity extends BaseFragmentActivity<OrderCenterPresent
} }
@Override @Override
public String getStatusByFragmentIndex(){ public String getStatusByFragmentIndex() {
switch (mCurrentFragmentIndex) { switch (mCurrentFragmentIndex) {
case 1: case 1:
return OrderStatusContract.STATUS_6+""; return OrderStatusContract.STATUS_6 + "";
default: default:
return OrderStatusContract.STATUS_4+","+OrderStatusContract.STATUS_5; return OrderStatusContract.STATUS_4 + "," + OrderStatusContract.STATUS_5;
} }
} }
......
...@@ -7,8 +7,8 @@ ext { ...@@ -7,8 +7,8 @@ ext {
targetSdkVersion : 29, targetSdkVersion : 29,
//正式版: 1.0.3 3 //正式版: 1.0.3 3
//內部測試版:1.2.0 20 //內部測試版:1.2.0 20
versionCode : 20, versionCode : 21,
versionName : "1.2.0" versionName : "1.2.1"
] ]
version = [ version = [
...@@ -24,6 +24,13 @@ ext { ...@@ -24,6 +24,13 @@ ext {
canarySdkVersion : "1.5.4", canarySdkVersion : "1.5.4",
] ]
buildType = [
debugLogDebug : "true",
debugUseCanary : "true",
releaseLogDebug : "true",
releaseUseCanary: "false"
]
dependencies = [ dependencies = [
//support //support
"appcompat-v7" : 'androidx.appcompat:appcompat:1.0.2',//不要超過1.0.2,不然android5.1.1用webview會有問題 "appcompat-v7" : 'androidx.appcompat:appcompat:1.0.2',//不要超過1.0.2,不然android5.1.1用webview會有問題
...@@ -127,7 +134,6 @@ ext { ...@@ -127,7 +134,6 @@ ext {
"yzjRecyclerView" : "com.yanzhenjie.recyclerview:x:1.3.2", "yzjRecyclerView" : "com.yanzhenjie.recyclerview:x:1.3.2",
//搜索view //搜索view
"MultiSearchView" : "com.github.iammert:MultiSearchView:0.3", "MultiSearchView" : "com.github.iammert:MultiSearchView:0.3",
// 狀態欄基础依赖包,必须要依赖 // 狀態欄基础依赖包,必须要依赖
"immersionbar" : "com.gyf.immersionbar:immersionbar:3.0.0", "immersionbar" : "com.gyf.immersionbar:immersionbar:3.0.0",
// fragment快速实现(可选) // fragment快速实现(可选)
...@@ -137,7 +143,9 @@ ext { ...@@ -137,7 +143,9 @@ ext {
//美團點評-日誌監聽https://github.com/Meituan-Dianping/Logan/tree/master/Example/Logan-Android //美團點評-日誌監聽https://github.com/Meituan-Dianping/Logan/tree/master/Example/Logan-Android
"logan" : 'com.dianping.android.sdk:logan:1.2.4', "logan" : 'com.dianping.android.sdk:logan:1.2.4',
//滴滴開源 哆啦A夢:辅助开发工具、测试效率工具、视觉辅助工具 //滴滴開源 哆啦A夢:辅助开发工具、测试效率工具、视觉辅助工具
"doraemonkit" : 'com.didichuxing.doraemonkit:dokitx:3.3.3' "doraemonkit" : 'com.didichuxing.doraemonkit:dokitx:3.3.3',
//popup
'xpopup' : 'com.lxj:xpopup:2.2.10'
] ]
} }
<?xml version="1.0" encoding="utf-8"?>
<paths>
<external-path path="" name="files_root" />
</paths>
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