Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
supplier
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
王宇航
supplier
Commits
35f60e81
Commit
35f60e81
authored
Jan 29, 2021
by
宁斌
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Revert "1.2.1測試版"
This reverts commit
8fbea4e5
parent
8fbea4e5
Show whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
403 additions
and
1532 deletions
+403
-1532
app/build.gradle
+4
-4
component-supply-chain/src/main/java/com/gingersoft/supply_chain/di/component/WareHousingDetailsComponent.java
+0
-42
component-supply-chain/src/main/java/com/gingersoft/supply_chain/di/module/WareHousingDetailsModule.java
+0
-31
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/contract/WareHousingDetailsContract.java
+0
-29
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/model/WareHousingDetailsModel.java
+0
-47
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/presenter/WareHousingDetailsPresenter.java
+0
-53
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/fragment/warehouse/WareHousingDetailsFragment.java
+0
-49
component-supply-chain/src/main/res/layout/fragment_order_details.xml
+0
-238
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/action/order/CancelOrder.java
+17
-6
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/action/order/ModifyOrderAction.java
+2
-1
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/action/order/PrintOrderAction.java
+31
-16
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/action/order/RefundOrder.java
+10
-3
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/action/order/TipsOrder.java
+10
-2
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/discount/BillDiscountAction.java
+0
-196
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/discount/MealDiscountAction.java
+0
-243
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/function/TableFunctionFactory.java
+0
-34
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/OrderContentPresenter.java
+16
-13
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/orderManager/AllOrderPresenter.java
+23
-18
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/orderManager/BaseOrderConterPresenter.java
+0
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/orderManager/OrderDetailPresenter.java
+3
-3
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/orderManager/OrderCenterActivity.java
+65
-33
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/orderManager/OrderDetailActivity.java
+127
-51
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/adapter/OrderCenterAdapter.java
+83
-92
config.gradle
+12
-4
library-common/src/main/java/com/gingersoft/gsa/cloud/common/utils/AidlUtil.java
+0
-320
library-updateApk/src/main/res/xml/update_file_paths.xml
+0
-4
No files found.
app/build.gradle
View file @
35f60e81
...
...
@@ -29,14 +29,14 @@ android {
buildTypes
{
debug
{
buildConfigField
"boolean"
,
"LOG_DEBUG"
,
"true"
buildConfigField
"boolean"
,
"USE_CANARY"
,
"true"
buildConfigField
"boolean"
,
"LOG_DEBUG"
,
rootProject
.
ext
.
buildType
[
"debugLogDebug"
]
buildConfigField
"boolean"
,
"USE_CANARY"
,
rootProject
.
ext
.
buildType
[
"debugUseCanary"
]
minifyEnabled
false
proguardFiles
'proguard.cfg'
}
release
{
buildConfigField
"boolean"
,
"LOG_DEBUG"
,
"false"
buildConfigField
"boolean"
,
"USE_CANARY"
,
"false"
buildConfigField
"boolean"
,
"LOG_DEBUG"
,
rootProject
.
ext
.
buildType
[
"releaseLogDebug"
]
buildConfigField
"boolean"
,
"USE_CANARY"
,
rootProject
.
ext
.
buildType
[
"releaseUseCanary"
]
minifyEnabled
false
zipAlignEnabled
false
proguardFiles
'proguard.cfg'
...
...
component-supply-chain/src/main/java/com/gingersoft/supply_chain/di/component/WareHousingDetailsComponent.java
deleted
100644 → 0
View file @
8fbea4e5
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
component-supply-chain/src/main/java/com/gingersoft/supply_chain/di/module/WareHousingDetailsModule.java
deleted
100644 → 0
View file @
8fbea4e5
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
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/contract/WareHousingDetailsContract.java
deleted
100644 → 0
View file @
8fbea4e5
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
{
}
}
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/model/WareHousingDetailsModel.java
deleted
100644 → 0
View file @
8fbea4e5
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
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/presenter/WareHousingDetailsPresenter.java
deleted
100644 → 0
View file @
8fbea4e5
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
;
}
}
component-supply-chain/src/main/java/com/gingersoft/supply_chain/mvp/ui/fragment/warehouse/WareHousingDetailsFragment.java
deleted
100644 → 0
View file @
8fbea4e5
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
)
{
}
}
component-supply-chain/src/main/res/layout/fragment_order_details.xml
deleted
100644 → 0
View file @
8fbea4e5
<?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
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/action/order/CancelOrder.java
View file @
35f60e81
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
action
.
order
;
import
android.text.TextUtils
;
import
com.gingersoft.gsa.cloud.common.logan.LoganManager
;
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.pos.OnPosActionListener
;
import
com.gingersoft.gsa.cloud.pay.pos.PosAction
;
...
...
@@ -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.mvp.model.bean.response.OrderManagerResponse
;
import
com.jess.arms.base.BaseFragmentActivity
;
import
com.jess.arms.base.delegate.IActivity
;
import
com.jess.arms.mvp.IView
;
import
com.qmuiteam.qmui.widget.dialog.QMUIDialog
;
import
com.qmuiteam.qmui.widget.dialog.QMUIDialogAction
;
...
...
@@ -31,7 +34,7 @@ public class CancelOrder implements Strategy<OrderManagerResponse> {
private
BaseFragmentActivity
mActivity
;
private
IView
mRootView
;
public
CancelOrder
(
BaseFragmentActivity
fragmentActivity
,
IView
rootView
){
public
CancelOrder
(
BaseFragmentActivity
fragmentActivity
,
IView
rootView
)
{
this
.
mActivity
=
fragmentActivity
;
this
.
mRootView
=
rootView
;
}
...
...
@@ -43,6 +46,8 @@ public class CancelOrder implements Strategy<OrderManagerResponse> {
@Override
public
void
destroy
()
{
mActivity
=
null
;
mRootView
=
null
;
}
private
void
showCancelDialog
(
OrderManagerResponse
datasBean
)
{
...
...
@@ -52,10 +57,10 @@ public class CancelOrder implements Strategy<OrderManagerResponse> {
dialogBuilder
.
setMessage
(
"是否取消訂單?"
);
dialogBuilder
.
addAction
(
0
,
"確認"
,
QMUIDialogAction
.
ACTION_PROP_NEGATIVE
,
(
dialog
,
index
)
->
{
dialog
.
dismiss
();
if
(
datasBean
.
withHywebPay
())
{
if
(
datasBean
.
withHywebPay
()
&&
AppDevices
.
isHywebPos
()
)
{
hywebOrderCancle
(
datasBean
);
}
else
{
if
(
cancelListener
!=
null
)
{
if
(
cancelListener
!=
null
)
{
cancelListener
.
cancel
(
datasBean
.
getId
());
}
}
...
...
@@ -79,7 +84,7 @@ public class CancelOrder implements Strategy<OrderManagerResponse> {
@Override
public
void
onPosSuccess
(
VoidRespose
response
)
{
LoganManager
.
w_code
(
TAG
,
"onPosSuccess: "
+
response
.
toString
());
if
(
cancelListener
!=
null
)
{
if
(
cancelListener
!=
null
)
{
cancelListener
.
refeshOrders
();
}
}
...
...
@@ -87,7 +92,8 @@ public class CancelOrder implements Strategy<OrderManagerResponse> {
@Override
public
void
onPosException
(
Exception
e
)
{
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
();
statusExceptionParam
.
setTxnId
(
datasBean
.
getPayTxnId
());
statusExceptionParam
.
setAmount
(
datasBean
.
getAmount
());
...
...
@@ -96,6 +102,8 @@ public class CancelOrder implements Strategy<OrderManagerResponse> {
statusExceptionParam
.
setPayMethodName
(
"VISA測試"
);
statusExceptionParam
.
setPosAction
(
PosAction
.
VOID
);
mActivity
.
loadRootFragment
(
R
.
id
.
rl_container
,
PosActionStatusExceptionFragment
.
newInstance
(
statusExceptionParam
));
}
else
{
mActivity
.
start
(
statusExceptionFragment
);
}
}
...
...
@@ -127,11 +135,14 @@ public class CancelOrder implements Strategy<OrderManagerResponse> {
}
private
OnCancelListener
cancelListener
;
public
void
setCancelListener
(
OnCancelListener
cancelListener
)
{
this
.
cancelListener
=
cancelListener
;
}
public
interface
OnCancelListener
{
public
interface
OnCancelListener
{
void
cancel
(
long
orderId
);
void
refeshOrders
();
}
}
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/action/order/ModifyOrderAction.java
View file @
35f60e81
...
...
@@ -95,7 +95,8 @@ public class ModifyOrderAction implements Strategy<OrderManagerResponse> {
@Override
public
void
destroy
()
{
mActivity
=
null
;
mRootView
=
null
;
}
}
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/action/order/PrintOrderAction.java
View file @
35f60e81
...
...
@@ -60,6 +60,8 @@ public class PrintOrderAction implements Strategy<OrderManagerResponse> {
@Override
public
void
destroy
()
{
mActivity
=
null
;
mRootView
=
null
;
}
private
void
startPrintOrder
(
OrderManagerResponse
orderDetailItem
,
List
<
OrderDetail
>
orderDetailList
)
{
...
...
@@ -96,45 +98,48 @@ public class PrintOrderAction implements Strategy<OrderManagerResponse> {
doshokuOrder
.
setBillMoney
(
payMethodList
);
}
if
(
orderDetailItem
.
withHywebPay
())
{
if
(
AppDevices
.
isHywebPos
())
{
if
(
orderDetailItem
.
withHywebPay
()
&&
AppDevices
.
isHywebPos
())
{
printPosStub
(
orderDetailItem
,
doshokuOrder
,
dataBean
);
}
else
{
printBill
(
orderDetailItem
,
doshokuOrder
,
dataBean
,
false
);
}
}
private
void
printPosStub
(
OrderManagerResponse
orderDetailItem
,
DoshokuOrder
doshokuOrder
,
TableBean
.
DataBean
dataBean
)
{
PosPay
.
printStub
(
mActivity
,
mRootView
,
orderDetailItem
.
getPayTxnId
(),
new
OnPosActionListener
()
{
@Override
public
void
onPosSuccess
(
HywebPosResponse
response
)
{
printBill
(
doshokuOrder
,
dataBean
);
if
(
printlListener
!=
null
){
printlListener
.
printPosStubResult
(
true
);
}
printBill
(
orderDetailItem
,
doshokuOrder
,
dataBean
,
true
);
}
@Override
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
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
);
CC
.
obtainBuilder
(
ComponentName
.
COMPONENT_PRINT
)
.
setActionName
(
"printActivity"
)
.
addParam
(
PrintConstans
.
PRINT_TYPE
,
PrintConstans
.
PRINT_BILL
)
...
...
@@ -142,11 +147,13 @@ public class PrintOrderAction implements Strategy<OrderManagerResponse> {
.
build
()
.
callAsyncCallbackOnMainThread
((
cc
,
result
)
->
{
Log
.
e
(
"error"
,
"是否成功打印:"
+
result
.
isSuccess
());
if
(
printStub
)
{
printPosStub
(
orderDetailItem
,
doshokuOrder
,
dataBean
);
}
doshokuOrder
.
initialization
();
});
}
private
ArrayList
<
BillItem
>
getOrderMoneyList
(
OrderManagerResponse
orderDetailItem
,
double
totalMoney
)
{
List
<
SectionTextItem3
>
printOrderMoneyList
=
new
ArrayList
<>();
ArrayList
<
BillItem
>
printBillOrderMoneyList
=
new
ArrayList
<>();
...
...
@@ -267,4 +274,12 @@ public class PrintOrderAction implements Strategy<OrderManagerResponse> {
}
return
payMethodList
;
}
private
PrintOrderAction
.
OnPrintlListener
printlListener
;
public
void
setPrintlListener
(
OnPrintlListener
printlListener
)
{
this
.
printlListener
=
printlListener
;
}
public
interface
OnPrintlListener
{
void
printPosStubResult
(
boolean
success
);
}
}
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/action/order/RefundOrder.java
View file @
35f60e81
...
...
@@ -46,7 +46,8 @@ public class RefundOrder implements Strategy<OrderManagerResponse> {
@Override
public
void
destroy
()
{
mActivity
=
null
;
mRootView
=
null
;
}
private
void
showHywebRefundDialog
(
OrderManagerResponse
datasBean
)
{
...
...
@@ -88,7 +89,8 @@ public class RefundOrder implements Strategy<OrderManagerResponse> {
@Override
public
void
onPosException
(
Exception
e
)
{
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
();
statusExceptionParam
.
setTxnId
(
datasBean
.
getPayTxnId
());
statusExceptionParam
.
setAmount
(
datasBean
.
getAmount
());
...
...
@@ -97,6 +99,8 @@ public class RefundOrder implements Strategy<OrderManagerResponse> {
statusExceptionParam
.
setPayMethodName
(
"VISA測試"
);
statusExceptionParam
.
setPosAction
(
PosAction
.
REFUND
);
mActivity
.
loadRootFragment
(
R
.
id
.
rl_container
,
PosActionStatusExceptionFragment
.
newInstance
(
statusExceptionParam
));
}
else
{
mActivity
.
start
(
statusExceptionFragment
);
}
}
...
...
@@ -114,7 +118,8 @@ public class RefundOrder implements Strategy<OrderManagerResponse> {
@Override
public
void
onUpdateStatusError
(
Throwable
e
)
{
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
();
statusExceptionParam
.
setTxnId
(
datasBean
.
getPayTxnId
());
statusExceptionParam
.
setAmount
(
datasBean
.
getAmount
());
...
...
@@ -123,6 +128,8 @@ public class RefundOrder implements Strategy<OrderManagerResponse> {
statusExceptionParam
.
setPayMethodName
(
"VISA測試"
);
statusExceptionParam
.
setPosAction
(
PosAction
.
REFUND
);
mActivity
.
loadRootFragment
(
R
.
id
.
rl_container
,
PosActionStatusExceptionFragment
.
newInstance
(
statusExceptionParam
));
}
else
{
mActivity
.
start
(
statusExceptionFragment
);
}
}
});
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/action/order/TipsOrder.java
View file @
35f60e81
...
...
@@ -42,6 +42,8 @@ public class TipsOrder implements Strategy<OrderManagerResponse> {
@Override
public
void
destroy
()
{
mActivity
=
null
;
mRootView
=
null
;
}
private
void
showKeyboardDialog
(
OrderManagerResponse
datasBean
)
{
...
...
@@ -75,7 +77,8 @@ public class TipsOrder implements Strategy<OrderManagerResponse> {
@Override
public
void
onPosException
(
Exception
e
)
{
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
();
statusExceptionParam
.
setTxnId
(
datasBean
.
getPayTxnId
());
statusExceptionParam
.
setAmount
(
datasBean
.
getAmount
());
...
...
@@ -84,6 +87,8 @@ public class TipsOrder implements Strategy<OrderManagerResponse> {
statusExceptionParam
.
setPayMethodName
(
"VISA測試"
);
statusExceptionParam
.
setPosAction
(
PosAction
.
TIP
);
mActivity
.
loadRootFragment
(
R
.
id
.
rl_container
,
PosActionStatusExceptionFragment
.
newInstance
(
statusExceptionParam
));
}
else
{
mActivity
.
start
(
statusExceptionFragment
);
}
}
...
...
@@ -100,7 +105,8 @@ public class TipsOrder implements Strategy<OrderManagerResponse> {
@Override
public
void
onUpdateStatusError
(
Throwable
e
)
{
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
();
statusExceptionParam
.
setTxnId
(
datasBean
.
getPayTxnId
());
statusExceptionParam
.
setAmount
(
datasBean
.
getAmount
());
...
...
@@ -109,6 +115,8 @@ public class TipsOrder implements Strategy<OrderManagerResponse> {
statusExceptionParam
.
setPayMethodName
(
"VISA測試"
);
statusExceptionParam
.
setPosAction
(
PosAction
.
TIP
);
mActivity
.
loadRootFragment
(
R
.
id
.
rl_container
,
PosActionStatusExceptionFragment
.
newInstance
(
statusExceptionParam
));
}
else
{
mActivity
.
start
(
statusExceptionFragment
);
}
}
});
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/discount/BillDiscountAction.java
deleted
100644 → 0
View file @
8fbea4e5
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
);
}
}
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/discount/MealDiscountAction.java
deleted
100644 → 0
View file @
8fbea4e5
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
);
}
}
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/function/TableFunctionFactory.java
deleted
100644 → 0
View file @
8fbea4e5
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
),
};
}
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/OrderContentPresenter.java
View file @
35f60e81
...
...
@@ -150,7 +150,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
this
.
mAppManager
=
null
;
this
.
mImageLoader
=
null
;
this
.
mApplication
=
null
;
if
(
mNomalDiscountAction
!=
null
)
{
if
(
mNomalDiscountAction
!=
null
)
{
mNomalDiscountAction
.
destroy
();
}
stopTablePolling
();
...
...
@@ -249,7 +249,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
@Override
public
void
onItemDeleteClick
(
BillItem
datasBean
,
int
position
)
{
removeBillItem
(
position
);
removeBillItem
ByPosition
(
position
);
}
});
}
...
...
@@ -385,7 +385,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
mergeMainFoodNumber
(
mOrderMealList
);
}
PrintContent
printContent
=
new
PrintContentAdapter
().
adaptationServingPaperContent
(
DoshokuOrder
.
getInstance
(),
mTableInfo
);
PrintContent
printContent
=
new
PrintContentAdapter
().
adaptationServingPaperContent
(
DoshokuOrder
.
getInstance
(),
mTableInfo
);
CC
.
obtainBuilder
(
ComponentName
.
COMPONENT_PRINT
)
.
setActionName
(
"printActivity"
)
...
...
@@ -432,7 +432,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
mergeMainFoodNumber
(
mOrderMealList
);
}
PrintContent
printContent
=
new
PrintContentAdapter
().
adaptationPrintSlipContent
(
DoshokuOrder
.
getInstance
(),
mTableInfo
);
PrintContent
printContent
=
new
PrintContentAdapter
().
adaptationPrintSlipContent
(
DoshokuOrder
.
getInstance
(),
mTableInfo
);
CC
.
obtainBuilder
(
ComponentName
.
COMPONENT_PRINT
)
.
addParam
(
PrintConstans
.
PRINT_TYPE
,
PrintConstans
.
PRINT_SLIP
)
//印單
...
...
@@ -810,15 +810,18 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
private
void
updateOrderDetails
(
BaseOrderResponse
info
)
{
if
(
mDoshokuOrder
!=
null
&&
info
.
getData
()
!=
null
)
{
if
(
info
.
getData
().
getOrderDetails
()
!=
null
)
{
mTableInfo
.
setPerson
(
info
.
getData
().
getPerson
());
//緩存訂單信息
mDoshokuOrder
.
setOrderPlaced
(
new
OrderResponse
(
info
.
getData
()));
//緩存食品信息
// List<OrderDetail> orderDetailList = OrderDetail.orderTransOrderDetails(info.getData().getOrderDetails());
mTableInfo
.
setCreateTime
(
info
.
getData
().
getCreateTime
());
mDoshokuOrder
.
setOpenTableInfo
(
mTableInfo
);
mDoshokuOrder
.
setOrderPlaced
(
info
.
getData
());
if
(
info
.
getData
().
getOrderDetails
()
!=
null
)
{
//组装食品信息
List
<
OrderDetail
>
orderDetailList
=
OrderAssemblyUtil
.
assemblyOrder
(
OrderDetail
.
orderTransOrderDetails
(
info
.
getData
().
getOrderDetails
()));
mDoshokuOrder
.
setNewFoodList
(
orderDetailList
);
mOrderMealList
.
clear
();
mOrderMealList
.
addAll
(
orderDetailList
);
mSelectMealAdapter
.
notifyDataSetChanged
();
...
...
@@ -874,8 +877,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
return
true
;
}
public
void
removeBillItem
(
int
index
)
{
public
void
removeBillItemByPosition
(
int
index
)
{
if
(
index
<
mBillItemList
.
size
())
{
BillItem
billItem
=
mBillItemList
.
get
(
index
);
if
(
billItem
instanceof
DiscountItem
)
{
...
...
@@ -888,11 +890,12 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
/**
* 修改訂單包含修改或刪除過的的食品
*
* @return
*/
private
boolean
hasModifyFoods
()
{
for
(
OrderDetail
orderDetail
:
getOrderFoodLists
())
{
if
(
orderDetail
.
isModify
())
{
if
(
orderDetail
.
isModify
())
{
return
true
;
}
}
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/orderManager/AllOrderPresenter.java
View file @
35f60e81
...
...
@@ -97,6 +97,7 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
private
OrderCenterAdapter
mOrderCenterAdapter
;
private
List
<
OrderManagerResponse
>
mOrderItemList
=
new
ArrayList
<>();
private
OrderManagerResponse
mCheckedOrderBean
;
@Inject
public
AllOrderPresenter
(
AllOrderContract
.
Model
model
,
AllOrderContract
.
View
rootView
)
{
...
...
@@ -112,6 +113,7 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
this
.
mAppManager
=
null
;
this
.
mImageLoader
=
null
;
this
.
mApplication
=
null
;
this
.
IActivity
=
null
;
}
public
void
initOrderAdapter
(
Context
context
)
{
...
...
@@ -126,24 +128,32 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
intent
.
putExtra
(
"orderDetailItem"
,
datasBean
);
mRootView
.
launchActivity
(
intent
);
}
@Override
public
void
onPrintClick
(
OrderManagerResponse
datasBean
,
int
position
)
{
}
@Override
public
void
onModifyClick
(
OrderManagerResponse
datasBean
,
int
position
)
{
public
void
onCheckedChanged
(
OrderManagerResponse
checkedOrder
)
{
if
(
checkedOrder
.
isChecked
())
{
mCheckedOrderBean
=
checkedOrder
;
}
else
{
mCheckedOrderBean
=
null
;
}
@Override
public
void
onCancelClick
(
OrderManagerResponse
datasBean
,
int
position
)
{
IActivity
.
setOnCheckedChangedListener
(
mCheckedOrderBean
);
}
@Override
public
void
onRefundClick
(
OrderManagerResponse
datasBean
,
int
position
)
{
public
void
onReloadExceptionStatus
(
OrderManagerResponse
orderBean
,
String
txnId
)
{
PosActionStatusExceptionFragment
statusExceptionFragment
=
IActivity
.
findFragment
(
PosActionStatusExceptionFragment
.
class
);
if
(
statusExceptionFragment
==
null
)
{
PosActionStatusExceptionParam
statusExceptionParam
=
new
PosActionStatusExceptionParam
();
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
);
}
@Override
public
void
onTipsClick
(
OrderManagerResponse
datasBean
,
int
position
)
{
}
});
}
...
...
@@ -163,13 +173,8 @@ public class AllOrderPresenter extends BasePresenter<AllOrderContract.Model, All
}
}
public
OrderManagerResponse
getSelectedOrderItem
(){
for
(
OrderManagerResponse
orderItem:
mOrderItemList
)
{
if
(
orderItem
.
isChecked
()){
return
orderItem
;
}
}
return
null
;
public
OrderManagerResponse
getCheckedOrderBean
()
{
return
mCheckedOrderBean
;
}
}
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/orderManager/BaseOrderConterPresenter.java
View file @
35f60e81
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/orderManager/OrderDetailPresenter.java
View file @
35f60e81
...
...
@@ -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.commodity.OrderDetail
;
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.table.R
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.OrderDetailContract
;
...
...
@@ -56,6 +57,7 @@ public class OrderDetailPresenter extends BaseOrderConterPresenter<OrderDetailCo
@Inject
AppManager
mAppManager
;
@Inject
public
OrderDetailPresenter
(
OrderDetailContract
.
Model
model
,
OrderDetailContract
.
View
rootView
)
{
super
(
model
,
rootView
);
...
...
@@ -87,8 +89,6 @@ public class OrderDetailPresenter extends BaseOrderConterPresenter<OrderDetailCo
if
(
result
.
getData
()
!=
null
)
{
OrderManagerResponse
orderDetailItem
=
JsonUtils
.
parseObject
(
JsonUtils
.
toJson
(
result
.
getData
()),
OrderManagerResponse
.
class
);
mRootView
.
returnOrderDetail
(
orderDetailItem
);
//刷新訂單列表
EventBus
.
getDefault
().
post
(
true
,
"updateOrderListEvent"
);
}
else
{
mRootView
.
showMessage
(
"獲取賬單失敗"
);
}
...
...
@@ -116,7 +116,7 @@ public class OrderDetailPresenter extends BaseOrderConterPresenter<OrderDetailCo
OrderManagerResponse
orderDetailItem
=
JsonUtils
.
parseObject
(
JsonUtils
.
toJson
(
result
.
getData
()),
OrderManagerResponse
.
class
);
mRootView
.
returnOrderDetail
(
orderDetailItem
);
//刷新訂單列表
EventBus
.
getDefault
().
post
(
true
,
"updateOrderListEvent"
);
EventBus
.
getDefault
().
post
(
true
,
PosActionStatusExceptionFragment
.
REFREAFSH_ORDER_EVENT
);
}
else
{
mRootView
.
showMessage
(
"獲取賬單失敗"
);
}
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/orderManager/OrderCenterActivity.java
View file @
35f60e81
...
...
@@ -5,6 +5,7 @@ import android.os.Bundle;
import
android.os.Message
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.Button
;
import
android.widget.FrameLayout
;
import
android.widget.LinearLayout
;
...
...
@@ -15,6 +16,7 @@ import androidx.fragment.app.Fragment;
import
androidx.viewpager.widget.ViewPager
;
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.R2
;
import
com.gingersoft.gsa.cloud.table.di.component.DaggerOrderCenterComponent
;
...
...
@@ -30,6 +32,7 @@ import com.jess.arms.base.BaseFragmentActivity;
import
com.jess.arms.base.delegate.IActivity
;
import
com.jess.arms.di.component.AppComponent
;
import
com.jess.arms.utils.ArmsUtils
;
import
com.qmuiteam.qmui.alpha.QMUIAlphaButton
;
import
com.qmuiteam.qmui.arch.QMUIFragmentPagerAdapter
;
import
com.qmuiteam.qmui.util.QMUIDisplayHelper
;
import
com.qmuiteam.qmui.util.QMUIResHelper
;
...
...
@@ -73,12 +76,23 @@ public class OrderCenterActivity extends BaseFragmentActivity<OrderCenterPresent
@BindView
(
R2
.
id
.
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
int
mCurrentFragmentIndex
=
0
;
//標題
private
String
[]
mTabTitles
=
{
"已付款"
,
"已取消"
};
// private String[] mTabTitles = {"堂食"};
// private String[] mTabTitles = {"堂食"};
//是否已經初始化數據,默認初始化第一個頁面
private
boolean
[]
mPageDataInit
=
{
true
,
false
,
false
};
...
...
@@ -106,73 +120,68 @@ public class OrderCenterActivity extends BaseFragmentActivity<OrderCenterPresent
lp_content
=
new
FrameLayout
.
LayoutParams
(
ViewGroup
.
LayoutParams
.
MATCH_PARENT
,
ViewGroup
.
LayoutParams
.
MATCH_PARENT
);
initTabAndPager
();
mPresenter
.
loadOrderList
(
OrderManagerResponse
.
ORDER_TYPE_DOSHOKU
+
""
,
getStatusByFragmentIndex
(),
0
,
10
,
null
,
false
);
mPresenter
.
loadOrderList
(
OrderManagerResponse
.
ORDER_TYPE_DOSHOKU
+
""
,
getStatusByFragmentIndex
(),
0
,
10
,
null
,
false
);
}
@Override
protected
void
onNewIntent
(
Intent
intent
)
{
super
.
onNewIntent
(
intent
);
}
@Subscriber
(
tag
=
"updateOrderListEvent"
)
private
void
updateOrderList
(
boolean
update
)
{
@Subscriber
(
tag
=
PosActionStatusExceptionFragment
.
REFREAFSH_ORDER_EVENT
)
private
void
refreafshOrder
(
boolean
refreafsh
)
{
refeshOrderList
(
getStatusByFragmentIndex
());
}
public
void
refeshOrderList
(
String
status
)
{
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
);
}
public
void
cancelOrder
(
long
orderId
,
String
orderType
,
String
status
)
{
mPresenter
.
cancelOrder
(
orderId
,
orderType
,
status
);
public
void
cancelOrder
(
long
orderId
,
String
orderType
,
String
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
})
public
void
OnClick
(
View
v
){
OrderManagerResponse
orderItem
=
getCurrentOrderFragment
().
getSelectedOrderItem
();
if
(
orderItem
!=
null
)
{
@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
)
{
OrderManagerResponse
orderItem
=
getCurrentOrderFragment
().
getCheckedOrderBean
();
if
(
orderItem
!=
null
)
{
int
id
=
v
.
getId
();
if
(
id
==
R
.
id
.
btn_print_order
)
{
mPresenter
.
printOrder
(
this
,
orderItem
);
}
else
if
(
id
==
R
.
id
.
btn_modify_order
)
{
if
(
id
==
R
.
id
.
btn_print_order
)
{
mPresenter
.
printOrder
(
this
,
orderItem
);
}
else
if
(
id
==
R
.
id
.
btn_modify_order
)
{
if
(
orderItem
.
getRestaurantTable
()
==
null
)
{
showMessage
(
"餐檯不存在,無法修改訂單"
);
return
;
}
mPresenter
.
modifyOrder
(
this
,
orderItem
);
}
else
if
(
id
==
R
.
id
.
btn_tips
)
{
mPresenter
.
modifyOrder
(
this
,
orderItem
);
}
else
if
(
id
==
R
.
id
.
btn_tips
)
{
mPresenter
.
orderTips
(
this
,
orderItem
,
new
TipsOrder
.
OnRefundListener
()
{
@Override
public
void
refeshOrders
()
{
ref
eshOrderList
(
getStatusByFragmentIndex
()
);
ref
reafshOrder
(
true
);
}
});
}
else
if
(
id
==
R
.
id
.
btn_cancel_order
)
{
}
else
if
(
id
==
R
.
id
.
btn_cancel_order
)
{
mPresenter
.
orderCancel
(
this
,
orderItem
,
new
CancelOrder
.
OnCancelListener
()
{
@Override
public
void
cancel
(
long
orderId
)
{
cancelOrder
(
orderId
,
getOrderType
(),
getStatusByFragmentIndex
());
cancelOrder
(
orderId
,
getOrderType
(),
getStatusByFragmentIndex
());
}
@Override
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
()
{
@Override
public
void
refeshOrders
()
{
refeshOrderList
(
getStatusByFragmentIndex
()
);
refreafshOrder
(
true
);
}
});
}
}
else
{
}
else
{
showMessage
(
"請選中需要操作的訂單!"
);
}
}
...
...
@@ -242,7 +251,7 @@ public class OrderCenterActivity extends BaseFragmentActivity<OrderCenterPresent
pagerAdapter
.
createFragment
(
index
);
if
(!
mPageDataInit
[
index
])
{
//未初始化數據,獲取數據
loadOrderList
(
getCurrentOrderFragment
().
getOrderType
(),
getStatusByFragmentIndex
(),
null
,
false
);
loadOrderList
(
getCurrentOrderFragment
().
getOrderType
(),
getStatusByFragmentIndex
(),
null
,
false
);
}
mPageDataInit
[
mCurrentFragmentIndex
]
=
true
;
...
...
@@ -363,6 +372,29 @@ public class OrderCenterActivity extends BaseFragmentActivity<OrderCenterPresent
}
@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
()
{
switch
(
mCurrentFragmentIndex
)
{
case
1
:
...
...
@@ -380,12 +412,12 @@ public class OrderCenterActivity extends BaseFragmentActivity<OrderCenterPresent
}
@Override
public
String
getStatusByFragmentIndex
(){
public
String
getStatusByFragmentIndex
()
{
switch
(
mCurrentFragmentIndex
)
{
case
1
:
return
OrderStatusContract
.
STATUS_6
+
""
;
return
OrderStatusContract
.
STATUS_6
+
""
;
default
:
return
OrderStatusContract
.
STATUS_4
+
","
+
OrderStatusContract
.
STATUS_5
;
return
OrderStatusContract
.
STATUS_4
+
","
+
OrderStatusContract
.
STATUS_5
;
}
}
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/orderManager/OrderDetailActivity.java
View file @
35f60e81
...
...
@@ -18,10 +18,12 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.billy.cc.core.component.CC
;
import
com.gingersoft.gsa.cloud.app.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.common.constans.OrderTypeConstans
;
import
com.gingersoft.gsa.cloud.common.constans.PrintConstans
;
import
com.gingersoft.gsa.cloud.common.core.table.TableBean
;
import
com.gingersoft.gsa.cloud.common.logan.LoganManager
;
import
com.gingersoft.gsa.cloud.common.oaId.DeviceID
;
import
com.gingersoft.gsa.cloud.common.utils.AppDevices
;
import
com.gingersoft.gsa.cloud.common.utils.LanguageUtils
;
import
com.gingersoft.gsa.cloud.common.utils.MoneyUtil
;
...
...
@@ -81,6 +83,7 @@ import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
import
com.qmuiteam.qmui.widget.dialog.QMUIDialogAction
;
import
org.jetbrains.annotations.NotNull
;
import
org.simple.eventbus.Subscriber
;
import
java.util.ArrayList
;
import
java.util.Date
;
...
...
@@ -111,6 +114,8 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent
@BindView
(
R2
.
id
.
rl_container
)
FrameLayout
rl_container
;
@BindView
(
R2
.
id
.
tv_reload_exception_status
)
TextView
tv_reload_exception_status
;
@BindView
(
R2
.
id
.
scrollview
)
NestedScrollView
scrollview
;
...
...
@@ -205,22 +210,22 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent
btn_refund
.
setVisibility
(
View
.
GONE
);
}
@
Override
pr
otected
void
onNewIntent
(
Intent
intent
)
{
super
.
onNewIntent
(
intent
);
@
Subscriber
(
tag
=
PosActionStatusExceptionFragment
.
REFREAFSH_ORDER_EVENT
)
pr
ivate
void
refreafshOrder
(
boolean
refreafsh
)
{
refreafshOrderDetail
(
);
}
@OnClick
({
R2
.
id
.
btn_print_order
,
R2
.
id
.
btn_cancel_order
,
R2
.
id
.
btn_modify_order
,
R2
.
id
.
btn_tips
,
R2
.
id
.
btn_refund
})
public
void
onClick
(
View
v
)
{
int
id
=
v
.
getId
();
if
(
id
==
R
.
id
.
btn_print_order
)
{
mPresenter
.
printOrder
(
this
,
mOrderDetailItem
);
mPresenter
.
printOrder
(
this
,
mOrderDetailItem
);
}
else
if
(
id
==
R
.
id
.
btn_modify_order
)
{
if
(
mOrderDetailItem
.
getRestaurantTable
()
==
null
)
{
showMessage
(
"餐檯不存在,無法修改訂單"
);
return
;
}
mPresenter
.
modifyOrder
(
this
,
mOrderDetailItem
);
mPresenter
.
modifyOrder
(
this
,
mOrderDetailItem
);
}
else
if
(
id
==
R
.
id
.
btn_cancel_order
)
{
mPresenter
.
orderCancel
(
this
,
mOrderDetailItem
,
new
CancelOrder
.
OnCancelListener
()
{
@Override
...
...
@@ -230,7 +235,7 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent
@Override
public
void
refeshOrders
()
{
refreafshOrderDetail
();
}
});
}
else
if
(
id
==
R
.
id
.
btn_refund
)
{
...
...
@@ -337,59 +342,21 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent
private
void
setBtnVisible
()
{
if
(
mOrderDetailItem
.
getRestaurantOperationId
()
!=
null
)
{
//已清機
btn_modify_order
.
setVisibility
(
View
.
GONE
);
btn_tips
.
setVisibility
(
View
.
GONE
);
btn_cancel_order
.
setVisibility
(
View
.
GONE
);
setWithSettlementLayoutVisible
();
}
else
{
//未清機
boolean
containCard
=
mPresenter
.
containCardPayment
(
mOrderDetailItem
.
getOrderPays
());
if
(
containCard
)
{
//只有卡片支付才支持補小費
btn_tips
.
setVisibility
(
View
.
VISIBLE
);
if
(
mOrderDetailItem
.
withHywebPay
()
&&
AppDevices
.
isHywebPos
())
{
if
(
mOrderDetailItem
.
isCurrDeviceOrder
())
{
setCurrPosDeviceLayoutVisible
();
}
else
{
btn_tips
.
setVisibility
(
View
.
GONE
);
setNotCurrPosDeviceLayoutVisible
(
);
}
int
status
=
mOrderDetailItem
.
getStatus
();
if
(
status
==
OrderStatusContract
.
STATUS_6
)
{
tv_order_status
.
setVisibility
(
View
.
VISIBLE
);
ll_bottom
.
setVisibility
(
View
.
GONE
);
}
else
{
tv_order_status
.
setVisibility
(
View
.
GONE
);
ll_bottom
.
setVisibility
(
View
.
VISIBLE
);
if
(
AppDevices
.
isHywebPos
()
&&
mOrderDetailItem
.
withHywebPay
())
{
setOrderBtnVisbilityByTxnId
(
mOrderDetailItem
.
getPayTxnId
(),
mOrderDetailItem
.
getCancelTxnId
(),
mOrderDetailItem
.
getRefundTxnId
());
}
}
int
orderType
=
mOrderDetailItem
.
getOrderType
();
if
(
orderType
==
OrderTypeConstans
.
order_type_2
||
orderType
==
OrderTypeConstans
.
order_type_7
)
{
//外賣自取 不可以修改訂單 取消訂單
btn_modify_order
.
setVisibility
(
View
.
GONE
);
btn_cancel_order
.
setVisibility
(
View
.
GONE
);
setNomalDeviceLayoutVisible
();
}
setPublicLayoutVisible
();
}
}
private
void
setOrderBtnVisbilityByTxnId
(
String
payTxnId
,
String
cancelTxnId
,
String
refundTxnId
)
{
if
(!
TextUtils
.
isEmpty
(
cancelTxnId
))
{
tv_order_status
.
setText
(
"已取消"
);
tv_order_status
.
setVisibility
(
View
.
VISIBLE
);
ll_bottom
.
setVisibility
(
View
.
GONE
);
return
;
}
if
(!
TextUtils
.
isEmpty
(
refundTxnId
))
{
tv_order_status
.
setVisibility
(
View
.
VISIBLE
);
tv_order_status
.
setText
(
"已退款"
);
ll_bottom
.
setVisibility
(
View
.
GONE
);
return
;
}
if
(!
TextUtils
.
isEmpty
(
payTxnId
))
{
ll_bottom
.
setVisibility
(
View
.
VISIBLE
);
}
}
@Override
public
void
initIntent
()
{
Intent
intent
=
getIntent
();
...
...
@@ -463,6 +430,115 @@ public class OrderDetailActivity extends BaseFragmentActivity<OrderDetailPresent
}
@Override
public
void
setWithSettlementLayoutVisible
()
{
btn_modify_order
.
setVisibility
(
View
.
GONE
);
btn_tips
.
setVisibility
(
View
.
GONE
);
btn_cancel_order
.
setVisibility
(
View
.
GONE
);
// btn_refund.setVisibility(View.VISIBLE);
}
@Override
public
void
setCurrPosDeviceLayoutVisible
()
{
//N5 POS異常重試
if
(
mOrderDetailItem
.
getMatterStatus
()
==
OrderManagerResponse
.
MATTER_STATUS_EXCEPTION
)
{
tv_reload_exception_status
.
setText
(
mOrderDetailItem
.
getExceptionReloadText
());
tv_reload_exception_status
.
setVisibility
(
View
.
VISIBLE
);
tv_reload_exception_status
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
PosActionStatusExceptionFragment
statusExceptionFragment
=
findFragment
(
PosActionStatusExceptionFragment
.
class
);
if
(
statusExceptionFragment
==
null
)
{
PosActionStatusExceptionParam
statusExceptionParam
=
new
PosActionStatusExceptionParam
();
statusExceptionParam
.
setTxnId
(
mOrderDetailItem
.
getMatterTxnId
());
statusExceptionParam
.
setAmount
(
mOrderDetailItem
.
getTotalAmount
());
statusExceptionParam
.
setOrderId
(
mOrderDetailItem
.
getId
());
statusExceptionParam
.
setOrderNo
(
mOrderDetailItem
.
getOrderNo
());
statusExceptionParam
.
setPayMethodName
(
mOrderDetailItem
.
getPayNames
());
statusExceptionParam
.
setPosAction
(
mOrderDetailItem
.
getPosActionByMatterId
());
loadRootFragment
(
R
.
id
.
fl_container
,
PosActionStatusExceptionFragment
.
newInstance
(
statusExceptionParam
));
}
else
{
start
(
statusExceptionFragment
);
}
}
});
rl_container
.
setVisibility
(
View
.
VISIBLE
);
rl_container
.
setBackgroundResource
(
R
.
color
.
transparent
);
ll_bottom
.
setVisibility
(
View
.
GONE
);
}
else
{
tv_reload_exception_status
.
setText
(
""
);
tv_reload_exception_status
.
setVisibility
(
View
.
GONE
);
tv_reload_exception_status
.
setOnClickListener
(
null
);
rl_container
.
setVisibility
(
View
.
GONE
);
rl_container
.
setBackgroundResource
(
R
.
color
.
trans
);
ll_bottom
.
setVisibility
(
View
.
VISIBLE
);
boolean
containCard
=
mPresenter
.
containCardPayment
(
mOrderDetailItem
.
getOrderPays
());
if
(
containCard
)
{
//當前設備訂單,且只有卡片支付才支持補小費
btn_tips
.
setVisibility
(
View
.
VISIBLE
);
}
else
{
btn_tips
.
setVisibility
(
View
.
GONE
);
}
if
(!
TextUtils
.
isEmpty
(
mOrderDetailItem
.
getCancelTxnId
()))
{
tv_order_status
.
setText
(
"已取消"
);
tv_order_status
.
setVisibility
(
View
.
VISIBLE
);
ll_bottom
.
setVisibility
(
View
.
GONE
);
}
else
if
(!
TextUtils
.
isEmpty
(
mOrderDetailItem
.
getRefundTxnId
()))
{
tv_order_status
.
setVisibility
(
View
.
VISIBLE
);
tv_order_status
.
setText
(
"已退款"
);
ll_bottom
.
setVisibility
(
View
.
GONE
);
}
}
}
@Override
public
void
setNotCurrPosDeviceLayoutVisible
()
{
btn_modify_order
.
setVisibility
(
View
.
GONE
);
btn_tips
.
setVisibility
(
View
.
GONE
);
btn_cancel_order
.
setVisibility
(
View
.
GONE
);
btn_refund
.
setVisibility
(
View
.
GONE
);
}
@Override
public
void
setNomalDeviceLayoutVisible
()
{
btn_tips
.
setVisibility
(
View
.
GONE
);
btn_refund
.
setVisibility
(
View
.
GONE
);
}
@Override
public
void
setPublicLayoutVisible
()
{
if
(
mOrderDetailItem
.
getStatus
()
==
OrderStatusContract
.
STATUS_6
)
{
//訂單已取消
tv_order_status
.
setVisibility
(
View
.
VISIBLE
);
ll_bottom
.
setVisibility
(
View
.
GONE
);
}
else
{
tv_order_status
.
setVisibility
(
View
.
GONE
);
ll_bottom
.
setVisibility
(
View
.
VISIBLE
);
int
orderType
=
mOrderDetailItem
.
getOrderType
();
if
(
orderType
==
OrderTypeConstans
.
order_type_2
||
orderType
==
OrderTypeConstans
.
order_type_7
)
{
//外賣自取 不可以修改訂單 取消訂單
btn_modify_order
.
setVisibility
(
View
.
GONE
);
btn_cancel_order
.
setVisibility
(
View
.
GONE
);
}
}
}
private
void
setOrderBtnVisbilityByTxnId
(
String
cancelTxnId
,
String
refundTxnId
)
{
if
(!
TextUtils
.
isEmpty
(
cancelTxnId
))
{
tv_order_status
.
setText
(
"已取消"
);
tv_order_status
.
setVisibility
(
View
.
VISIBLE
);
ll_bottom
.
setVisibility
(
View
.
GONE
);
return
;
}
if
(!
TextUtils
.
isEmpty
(
refundTxnId
))
{
tv_order_status
.
setVisibility
(
View
.
VISIBLE
);
tv_order_status
.
setText
(
"已退款"
);
ll_bottom
.
setVisibility
(
View
.
GONE
);
return
;
}
}
@Override
public
void
returnOrderDetail
(
OrderManagerResponse
orderDetailItem
)
{
this
.
mOrderDetailItem
=
orderDetailItem
;
mOrderDetailList
=
OrderAssemblyUtil
.
assemblyOrder
(
OrderDetail
.
orderTransOrderDetails
(
orderDetailItem
.
getOrderDetails
()));
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/adapter/OrderCenterAdapter.java
View file @
35f60e81
...
...
@@ -6,6 +6,7 @@ import android.view.View;
import
android.widget.CheckBox
;
import
android.widget.CompoundButton
;
import
android.widget.LinearLayout
;
import
android.widget.RelativeLayout
;
import
android.widget.TextView
;
import
com.gingersoft.gsa.cloud.common.constans.AppConstans
;
...
...
@@ -63,8 +64,8 @@ public class OrderCenterAdapter extends DefaultAdapter<OrderManagerResponse> {
class
OrderCenterItemHolder
extends
BaseHolder
<
OrderManagerResponse
>
{
@BindView
(
R2
.
id
.
l
l_root_container
)
LinearLayout
l
l_root_container
;
@BindView
(
R2
.
id
.
r
l_root_container
)
RelativeLayout
r
l_root_container
;
@BindView
(
R2
.
id
.
cb_order
)
MaterialCheckBox
cb_order
;
@BindView
(
R2
.
id
.
tv_table_name
)
...
...
@@ -82,44 +83,49 @@ public class OrderCenterAdapter extends DefaultAdapter<OrderManagerResponse> {
@BindView
(
R2
.
id
.
tv_pay_money
)
TextView
tv_pay_money
;
@BindView
(
R2
.
id
.
btn_print_order
)
QMUIAlphaButton
btn_print_order
;
@BindView
(
R2
.
id
.
btn_tips
)
QMUIAlphaButton
btn_tips
;
@BindView
(
R2
.
id
.
btn_refund
)
QMUIAlphaButton
btn_refund
;
@BindView
(
R2
.
id
.
btn_modify_order
)
QMUIAlphaButton
btn_modify_order
;
@BindView
(
R2
.
id
.
btn_cancel_order
)
QMUIAlphaButton
btn_cancel_order
;
@BindView
(
R2
.
id
.
btn_order_status
)
QMUIAlphaButton
btn_order_status
;
@BindView
(
R2
.
id
.
ll_bottom
)
LinearLayout
ll_bottom
;
@BindView
(
R2
.
id
.
ll_pos_bottom
)
LinearLayout
ll_pos_bottom
;
public
OrderCenterItemHolder
(
View
itemView
)
{
super
(
itemView
);
// @BindView(R2.id.btn_print_order)
// QMUIAlphaButton btn_print_order;
// @BindView(R2.id.btn_tips)
// QMUIAlphaButton btn_tips;
// @BindView(R2.id.btn_refund)
// QMUIAlphaButton btn_refund;
// @BindView(R2.id.btn_modify_order)
// QMUIAlphaButton btn_modify_order;
// @BindView(R2.id.btn_cancel_order)
// QMUIAlphaButton btn_cancel_order;
// @BindView(R2.id.btn_order_status)
// QMUIAlphaButton btn_order_status;
// @BindView(R2.id.ll_bottom)
// LinearLayout ll_bottom;
// @BindView(R2.id.ll_pos_bottom)
// LinearLayout ll_pos_bottom;
@BindView
(
R2
.
id
.
horizontal_dividing_line
)
View
horizontal_dividing_line
;
@BindView
(
R2
.
id
.
tv_reload_exception_status
)
TextView
tv_reload_exception_status
;
public
OrderCenterItemHolder
(
View
orderBeanView
)
{
super
(
orderBeanView
);
}
@Override
public
void
setData
(
OrderManagerResponse
item
,
int
position
)
{
public
void
setData
(
OrderManagerResponse
orderBean
,
int
position
)
{
setOrderItemDetail
(
item
);
setBtnListener
(
item
,
positio
n
);
setOrderItemDetail
(
orderBean
);
setBtnListener
(
orderBea
n
);
l
l_root_container
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
r
l_root_container
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
if
(
mOnItemClickListener
!=
null
)
{
mOnItemClickListener
.
onItemClick
(
item
,
position
);
mOnItemClickListener
.
onItemClick
(
orderBean
,
position
);
}
}
});
}
private
void
setOrderItemDetail
(
OrderManagerResponse
item
)
{
private
void
setOrderItemDetail
(
OrderManagerResponse
orderBean
)
{
String
pax
=
LanguageUtils
.
get_language_system
(
mContext
,
"Meal.Mannumber"
,
"人數"
)
+
":"
;
String
openTable
=
LanguageUtils
.
get_language_system
(
mContext
,
"open.table"
,
"開台"
)
+
":"
;
String
payTable
=
LanguageUtils
.
get_language_system
(
mContext
,
"open.table"
,
"結賬"
)
+
":"
;
...
...
@@ -127,94 +133,85 @@ public class OrderCenterAdapter extends DefaultAdapter<OrderManagerResponse> {
String
orderCode
=
LanguageUtils
.
get_language_system
(
mContext
,
"order.code"
,
"訂單碼"
)
+
": "
;
String
mealCode
=
LanguageUtils
.
get_language_system
(
mContext
,
"meal.code"
,
"取餐碼"
)
+
": "
;
tv_people_num
.
setText
(
pax
+
item
.
getPerson
());
tv_open_time
.
setText
(
openTable
+
TimeUtils
.
getStringByFormat
(
new
Date
(
item
.
getCreateTime
()),
TimeUtils
.
DEFAULT_DATE_FORMAT_YMDHM
));
if
(!
TextUtils
.
isEmpty
(
item
.
getEndTime
()))
{
tv_pay_time
.
setText
(
payTable
+
TimeUtils
.
getStringByFormat
(
new
Date
(
item
.
getEndTime
()),
TimeUtils
.
DEFAULT_DATE_FORMAT_YMDHM
));
tv_people_num
.
setText
(
pax
+
orderBean
.
getPerson
());
tv_open_time
.
setText
(
openTable
+
TimeUtils
.
getStringByFormat
(
new
Date
(
orderBean
.
getCreateTime
()),
TimeUtils
.
DEFAULT_DATE_FORMAT_YMDHM
));
if
(!
TextUtils
.
isEmpty
(
orderBean
.
getEndTime
()))
{
tv_pay_time
.
setText
(
payTable
+
TimeUtils
.
getStringByFormat
(
new
Date
(
orderBean
.
getEndTime
()),
TimeUtils
.
DEFAULT_DATE_FORMAT_YMDHM
));
}
tv_pay_money_text
.
setText
(
amountText
);
tv_pay_money
.
setText
(
AppConstans
.
CARSH_STR
+
item
.
getTotalAmount
());
btn_print_order
.
setText
(
LanguageUtils
.
get_language_system
(
mContext
,
"print.order"
,
"打印賬單"
));
btn_tips
.
setText
(
LanguageUtils
.
get_language_system
(
mContext
,
"public.tips"
,
"貼士"
));
btn_modify_order
.
setText
(
LanguageUtils
.
get_language_system
(
mContext
,
"modify.order"
,
"修改訂單"
));
btn_cancel_order
.
setText
(
LanguageUtils
.
get_language_system
(
mContext
,
"cancel.order"
,
"取消訂單"
));
if
(
item
.
getOrderType
()
==
OrderTypeConstans
.
order_type_2
)
{
tv_pay_money
.
setText
(
AppConstans
.
CARSH_STR
+
orderBean
.
getTotalAmount
());
//
btn_print_order.setText(LanguageUtils.get_language_system(mContext, "print.order", "打印賬單"));
//
btn_tips.setText(LanguageUtils.get_language_system(mContext, "public.tips", "貼士"));
//
btn_modify_order.setText(LanguageUtils.get_language_system(mContext, "modify.order", "修改訂單"));
//
btn_cancel_order.setText(LanguageUtils.get_language_system(mContext, "cancel.order", "取消訂單"));
if
(
orderBean
.
getOrderType
()
==
OrderTypeConstans
.
order_type_2
)
{
tv_table_name
.
setText
(
"外賣"
);
tv_order_num
.
setText
(
orderCode
+
item
.
getTakeFoodCode
());
}
else
if
(
item
.
getOrderType
()
==
OrderTypeConstans
.
order_type_7
)
{
tv_order_num
.
setText
(
orderCode
+
orderBean
.
getTakeFoodCode
());
}
else
if
(
orderBean
.
getOrderType
()
==
OrderTypeConstans
.
order_type_7
)
{
tv_table_name
.
setText
(
"自取"
);
tv_order_num
.
setText
(
orderCode
+
item
.
getBillNo
()
+
" "
+
mealCode
+
item
.
getTakeFoodCode
());
tv_order_num
.
setText
(
orderCode
+
orderBean
.
getBillNo
()
+
" "
+
mealCode
+
orderBean
.
getTakeFoodCode
());
}
else
{
String
tableName
=
LanguageUtils
.
get_language_system
(
mContext
,
"table.number"
,
"檯號"
)
+
": "
;
String
orderNumber
=
LanguageUtils
.
get_language_system
(
mContext
,
"order.number"
,
"訂單號"
)
+
": "
;
tv_table_name
.
setText
(
tableName
+
item
.
getTableName
());
tv_order_num
.
setText
(
orderNumber
+
item
.
getId
());
tv_table_name
.
setText
(
tableName
+
orderBean
.
getTableName
());
tv_order_num
.
setText
(
orderNumber
+
orderBean
.
getId
());
}
//先将check回调情况,防止setChecked时反复调用onCheckedChanged方法
cb_order
.
setOnCheckedChangeListener
(
null
);
if
(
item
.
getStatus
()
==
OrderStatusContract
.
STATUS_6
)
{
if
(
orderBean
.
getStatus
()
==
OrderStatusContract
.
STATUS_6
)
{
cb_order
.
setVisibility
(
View
.
GONE
);
}
else
{
cb_order
.
setChecked
(
item
.
isChecked
());
}
else
{
cb_order
.
setChecked
(
orderBean
.
isChecked
());
}
}
private
void
setBtnListener
(
OrderManagerResponse
item
,
int
position
)
{
if
(
item
.
getStatus
()
!=
OrderStatusContract
.
STATUS_6
)
{
btn_print_order
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
if
(
mOnItemClickListener
!=
null
)
{
mOnItemClickListener
.
onPrintClick
(
item
,
position
);
}
}
});
btn_modify_order
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
if
(
mOnItemClickListener
!=
null
)
{
mOnItemClickListener
.
onModifyClick
(
item
,
position
);
}
}
});
btn_cancel_order
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
private
void
setBtnListener
(
OrderManagerResponse
orderBean
)
{
if
(
orderBean
.
getStatus
()
!=
OrderStatusContract
.
STATUS_6
)
{
if
(
orderBean
.
isCurrDeviceOrder
())
{
if
(
orderBean
.
getMatterStatus
()
==
OrderManagerResponse
.
MATTER_STATUS_SUCCESS
)
{
cb_order
.
setOnCheckedChangeListener
(
new
CompoundButton
.
OnCheckedChangeListener
()
{
@Override
public
void
onClick
(
View
v
)
{
if
(
mOnItemClickListener
!=
null
)
{
mOnItemClickListener
.
onCancelClick
(
item
,
position
);
}
public
void
onCheckedChanged
(
CompoundButton
buttonView
,
boolean
isChecked
)
{
for
(
int
i
=
0
;
i
<
mInfos
.
size
();
i
++
)
{
OrderManagerResponse
orderBean
=
mInfos
.
get
(
i
);
orderBean
.
setChecked
(
false
);
}
});
btn_refund
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
orderBean
.
setChecked
(
isChecked
);
notifyDataSetChanged
();
if
(
mOnItemClickListener
!=
null
)
{
mOnItemClickListener
.
onRefundClick
(
item
,
positio
n
);
mOnItemClickListener
.
onCheckedChanged
(
orderBea
n
);
}
}
});
btn_tips
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
tv_reload_exception_status
.
setText
(
""
);
tv_reload_exception_status
.
setVisibility
(
View
.
GONE
);
tv_reload_exception_status
.
setOnClickListener
(
null
);
horizontal_dividing_line
.
setVisibility
(
View
.
VISIBLE
);
rl_root_container
.
setBackgroundResource
(
R
.
drawable
.
shape_rect_radius_white_5
);
}
else
{
cb_order
.
setOnCheckedChangeListener
(
null
);
tv_reload_exception_status
.
setText
(
orderBean
.
getExceptionReloadText
());
tv_reload_exception_status
.
setVisibility
(
View
.
VISIBLE
);
tv_reload_exception_status
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
if
(
mOnItemClickListener
!=
null
)
{
mOnItemClickListener
.
onTipsClick
(
item
,
position
);
mOnItemClickListener
.
onReloadExceptionStatus
(
orderBean
,
orderBean
.
getMatterTxnId
()
);
}
}
});
cb_order
.
setOnCheckedChangeListener
(
new
CompoundButton
.
OnCheckedChangeListener
()
{
@Override
public
void
onCheckedChanged
(
CompoundButton
buttonView
,
boolean
isChecked
)
{
for
(
int
i
=
0
;
i
<
mInfos
.
size
();
i
++)
{
OrderManagerResponse
item
=
mInfos
.
get
(
i
);
item
.
setChecked
(
false
);
horizontal_dividing_line
.
setVisibility
(
View
.
GONE
);
rl_root_container
.
setBackgroundResource
(
R
.
drawable
.
shape_rect_radius_transparent_5
);
}
item
.
setChecked
(
isChecked
);
notifyDataSetChanged
();
}
else
{
//非当前POS设备不可操作
cb_order
.
setVisibility
(
View
.
GONE
);
cb_order
.
setOnCheckedChangeListener
(
null
);
}
});
}
}
}
...
...
@@ -228,15 +225,9 @@ public class OrderCenterAdapter extends DefaultAdapter<OrderManagerResponse> {
void
onItemClick
(
OrderManagerResponse
datasBean
,
int
position
);
void
onPrintClick
(
OrderManagerResponse
datasBean
,
int
position
);
void
onModifyClick
(
OrderManagerResponse
datasBean
,
int
position
);
void
onCancelClick
(
OrderManagerResponse
datasBean
,
int
position
);
void
onRefundClick
(
OrderManagerResponse
datasBean
,
int
position
);
void
onCheckedChanged
(
OrderManagerResponse
checkedOrder
);
void
on
TipsClick
(
OrderManagerResponse
datasBean
,
int
position
);
void
on
ReloadExceptionStatus
(
OrderManagerResponse
datasBean
,
String
txnId
);
}
}
config.gradle
View file @
35f60e81
...
...
@@ -7,8 +7,8 @@ ext {
targetSdkVersion
:
29
,
//正式版: 1.0.3 3
//內部測試版:1.2.0 20
versionCode
:
2
0
,
versionName
:
"1.2.
0
"
versionCode
:
2
1
,
versionName
:
"1.2.
1
"
]
version
=
[
...
...
@@ -24,6 +24,13 @@ ext {
canarySdkVersion
:
"1.5.4"
,
]
buildType
=
[
debugLogDebug
:
"true"
,
debugUseCanary
:
"true"
,
releaseLogDebug
:
"true"
,
releaseUseCanary:
"false"
]
dependencies
=
[
//support
"appcompat-v7"
:
'androidx.appcompat:appcompat:1.0.2'
,
//不要超過1.0.2,不然android5.1.1用webview會有問題
...
...
@@ -127,7 +134,6 @@ ext {
"yzjRecyclerView"
:
"com.yanzhenjie.recyclerview:x:1.3.2"
,
//搜索view
"MultiSearchView"
:
"com.github.iammert:MultiSearchView:0.3"
,
// 狀態欄基础依赖包,必须要依赖
"immersionbar"
:
"com.gyf.immersionbar:immersionbar:3.0.0"
,
// fragment快速实现(可选)
...
...
@@ -137,7 +143,9 @@ ext {
//美團點評-日誌監聽https://github.com/Meituan-Dianping/Logan/tree/master/Example/Logan-Android
"logan"
:
'com.dianping.android.sdk:logan:1.2.4'
,
//滴滴開源 哆啦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'
]
}
library-common/src/main/java/com/gingersoft/gsa/cloud/common/utils/AidlUtil.java
deleted
100644 → 0
View file @
8fbea4e5
package
com
.
gingersoft
.
gsa
.
cloud
.
common
.
utils
;
import
android.content.Context
;
import
android.graphics.Bitmap
;
import
android.os.RemoteException
;
import
android.widget.Toast
;
import
com.gingersoft.gsa.cloud.common.utils.log.LogUtil
;
import
com.gingersoft.gsa.cloud.common.utils.view.ImageUtils
;
import
com.sunmi.peripheral.printer.InnerPrinterCallback
;
import
com.sunmi.peripheral.printer.InnerPrinterException
;
import
com.sunmi.peripheral.printer.InnerPrinterManager
;
import
com.sunmi.peripheral.printer.InnerResultCallbcak
;
import
com.sunmi.peripheral.printer.SunmiPrinterService
;
import
java.util.List
;
public
class
AidlUtil
{
private
static
final
String
SERVICE
_
PACKAGE
=
"woyou.aidlservice.jiuiv5"
;
private
static
AidlUtil
mAidlUtil
=
new
AidlUtil
();
private
Context
context
;
private
SunmiPrinterService
sunmiPrinterService
;
private
AidlUtil
()
{
}
public
static
AidlUtil
getInstance
()
{
return
mAidlUtil
;
}
/**
* 连接服务
*
* @param context context
*/
public
void
connectPrinterService
(
Context
context
)
{
this
.
context
=
context
.
getApplicationContext
();
try
{
InnerPrinterManager
.
getInstance
().
bindService
(
context
,
innerPrinterCallback
);
}
catch
(
InnerPrinterException
e
)
{
e
.
printStackTrace
();
}
}
/**
* 断开服务
*
* @param context context
*/
public
void
disconnectPrinterService
(
Context
context
)
{
if
(
sunmiPrinterService
!=
null
)
{
try
{
InnerPrinterManager
.
getInstance
().
unBindService
(
context
,
innerPrinterCallback
);
sunmiPrinterService
=
null
;
}
catch
(
InnerPrinterException
e
)
{
e
.
printStackTrace
();
}
}
}
public
boolean
isConnect
()
{
return
sunmiPrinterService
!=
null
;
}
private
InnerPrinterCallback
innerPrinterCallback
=
new
InnerPrinterCallback
()
{
@Override
protected
void
onConnected
(
SunmiPrinterService
service
)
{
sunmiPrinterService
=
service
;
//初始化打印机
AidlUtil
.
getInstance
().
initPrinter
();
}
@Override
protected
void
onDisconnected
()
{
}
};
/**
* 设置打印浓度
*/
private
int
[]
darkness
=
new
int
[]{
0x0600
,
0x0500
,
0x0400
,
0x0300
,
0x0200
,
0x0100
,
0
,
0xffff
,
0xfeff
,
0xfdff
,
0xfcff
,
0xfbff
,
0xfaff
};
/**
* 初始化打印机
*/
public
void
initPrinter
()
{
if
(
sunmiPrinterService
==
null
)
{
Toast
.
makeText
(
context
,
LanguageUtils
.
get_language_system
(
context
,
"server.disconnected"
,
"未連接上打印機!"
),
Toast
.
LENGTH_LONG
).
show
();
return
;
}
try
{
sunmiPrinterService
.
printerInit
(
new
com
.
sunmi
.
peripheral
.
printer
.
ICallback
.
Stub
()
{
@Override
public
void
onRunResult
(
boolean
isSuccess
)
throws
RemoteException
{
LogUtil
.
d
(
"printerInit"
,
"onRunResult: "
+
isSuccess
);
}
@Override
public
void
onReturnString
(
String
result
)
throws
RemoteException
{
LogUtil
.
d
(
"printerInit"
,
"onReturnString: "
+
result
);
}
@Override
public
void
onRaiseException
(
int
code
,
String
msg
)
throws
RemoteException
{
LogUtil
.
d
(
"printerInit"
,
"onRaiseException: "
+
msg
);
}
@Override
public
void
onPrintResult
(
int
code
,
String
msg
)
throws
RemoteException
{
LogUtil
.
d
(
"onPrintResult"
,
"onPrintResult: "
+
msg
);
}
});
}
catch
(
RemoteException
e
)
{
e
.
printStackTrace
();
}
}
/**
* 打印二维码
*/
public
void
printQr
(
String
data
,
int
modulesize
,
int
errorlevel
)
{
if
(
sunmiPrinterService
==
null
)
{
Toast
.
makeText
(
context
,
LanguageUtils
.
get_language_system
(
context
,
"server.disconnected"
,
"未連接上打印機!"
),
Toast
.
LENGTH_LONG
).
show
();
return
;
}
try
{
sunmiPrinterService
.
setAlignment
(
1
,
null
);
sunmiPrinterService
.
printQRCode
(
data
,
modulesize
,
errorlevel
,
null
);
sunmiPrinterService
.
lineWrap
(
1
,
null
);
}
catch
(
RemoteException
e
)
{
e
.
printStackTrace
();
}
}
/**
* 打印条形码
*/
public
void
printBarCode
(
String
data
,
int
symbology
,
int
height
,
int
width
,
int
textposition
)
{
if
(
sunmiPrinterService
==
null
)
{
Toast
.
makeText
(
context
,
LanguageUtils
.
get_language_system
(
context
,
"server.disconnected"
,
"未連接上打印機!"
),
Toast
.
LENGTH_LONG
).
show
();
return
;
}
try
{
sunmiPrinterService
.
printBarCode
(
data
,
symbology
,
height
,
width
,
textposition
,
null
);
sunmiPrinterService
.
lineWrap
(
3
,
null
);
}
catch
(
RemoteException
e
)
{
e
.
printStackTrace
();
}
}
/*
*打印图片
*/
public
void
printBitmap
(
Bitmap
bitmap
,
InnerResultCallbcak
mInnerResultCallbcak
)
{
// if (sunmiPrinterService == null) {
// Toast.makeText(context, LanguageUtils.get_language_system(context, "server.disconnected", "未連接上打印機!"), Toast.LENGTH_LONG).show();
// return;
// }
try
{
sunmiPrinterService
.
setAlignment
(
1
,
null
);
sunmiPrinterService
.
printBitmap
(
bitmap
,
mInnerResultCallbcak
);
sunmiPrinterService
.
lineWrap
(
3
,
null
);
}
catch
(
RemoteException
e
)
{
e
.
printStackTrace
();
}
}
/*
*打印图片
*/
public
void
printBitmaps
(
List
<
Bitmap
>
bitmaps
,
int
paperWidth
,
InnerResultCallbcak
mInnerResultCallbcak
)
{
// if (sunmiPrinterService == null) {
// Toast.makeText(context, LanguageUtils.get_language_system(context, "server.disconnected", "未連接上打印機!"), Toast.LENGTH_LONG).show();
// return;
// }
try
{
sunmiPrinterService
.
setAlignment
(
1
,
null
);
for
(
int
i
=
0
;
i
<
bitmaps
.
size
();
i
++)
{
sunmiPrinterService
.
printBitmap
(
ImageUtils
.
zoomDrawable
(
bitmaps
.
get
(
i
),
paperWidth
),
mInnerResultCallbcak
);
sunmiPrinterService
.
lineWrap
(
3
,
null
);
}
}
catch
(
RemoteException
e
)
{
e
.
printStackTrace
();
}
}
/**
* 打印图片和文字按照指定排列顺序
*/
public
void
printBitmap
(
Bitmap
bitmap
,
int
orientation
)
{
if
(
sunmiPrinterService
==
null
)
{
Toast
.
makeText
(
context
,
"服務已斷開!"
,
Toast
.
LENGTH_LONG
).
show
();
return
;
}
try
{
if
(
orientation
==
0
)
{
sunmiPrinterService
.
printBitmap
(
bitmap
,
null
);
// sunmiPrinterService.printText("横向排列\n", null);
// sunmiPrinterService.printBitmap(bitmap, null);
// sunmiPrinterService.printText("横向排列\n", null);
}
else
{
sunmiPrinterService
.
printBitmap
(
bitmap
,
null
);
// sunmiPrinterService.printText("\n纵向排列\n", null);
// sunmiPrinterService.printBitmap(bitmap, null);
// sunmiPrinterService.printText("\n纵向排列\n", null);
}
sunmiPrinterService
.
lineWrap
(
3
,
null
);
}
catch
(
RemoteException
e
)
{
e
.
printStackTrace
();
}
}
/**
* 打印表格
*/
// public void printTable(LinkedList<TableItem> list) {
// if (sunmiPrinterService == null) {
// Toast.makeText(context,LanguageUtils.get_language_system(context, "server.disconnected", "未連接上打印機!"),Toast.LENGTH_LONG).show();
// return;
// }
//
// try {
// for (TableItem tableItem : list) {
// Log.i("kaltin", "printTable: "+tableItem.getText()[0]+tableItem.getText()[1]+tableItem.getText()[2]);
// sunmiPrinterService.printColumnsString(tableItem.getText(), tableItem.getWidth(), tableItem.getAlign(), null);
// }
// sunmiPrinterService.lineWrap(3, null);
// } catch (RemoteException e) {
// e.printStackTrace();
// }
// }
/*
* 空打三行!
*/
public
void
print3Line
()
{
if
(
sunmiPrinterService
==
null
)
{
Toast
.
makeText
(
context
,
LanguageUtils
.
get_language_system
(
context
,
"server.disconnected"
,
"未連接上打印機!"
),
Toast
.
LENGTH_LONG
).
show
();
return
;
}
try
{
sunmiPrinterService
.
lineWrap
(
3
,
null
);
}
catch
(
RemoteException
e
)
{
e
.
printStackTrace
();
}
}
public
void
sendRawData
(
byte
[]
data
)
{
if
(
sunmiPrinterService
==
null
)
{
Toast
.
makeText
(
context
,
LanguageUtils
.
get_language_system
(
context
,
"server.disconnected"
,
"未連接上打印機!"
),
Toast
.
LENGTH_LONG
).
show
();
return
;
}
try
{
sunmiPrinterService
.
sendRAWData
(
data
,
null
);
}
catch
(
RemoteException
e
)
{
e
.
printStackTrace
();
}
}
public
void
printerSelfChecking
(
com
.
sunmi
.
peripheral
.
printer
.
ICallback
callback
)
{
if
(
sunmiPrinterService
==
null
)
{
Toast
.
makeText
(
context
,
LanguageUtils
.
get_language_system
(
context
,
"server.disconnected"
,
"未連接上打印機!"
),
Toast
.
LENGTH_LONG
).
show
();
return
;
}
try
{
sunmiPrinterService
.
printerSelfChecking
(
callback
);
}
catch
(
RemoteException
e
)
{
e
.
printStackTrace
();
}
}
/**
* 1 ! 打印机⼯作正常
* 2 ! 打印机准备中
* 3 ! 通讯异常
* 4 ! 缺纸
* 5 ! 过热
* 6 ! 开盖
* 7 ! 切⼑异常
* 8 ! 切⼑恢复
* 9 ! 未检测到⿊标
* 505 !未检测到打印机
* 507 !打印机固件升级失败
*
* @return
*/
public
int
updatePrinterState
()
{
if
(
sunmiPrinterService
==
null
)
{
Toast
.
makeText
(
context
,
LanguageUtils
.
get_language_system
(
context
,
"server.disconnected"
,
"未連接上打印機!"
),
Toast
.
LENGTH_LONG
).
show
();
return
2
;
}
try
{
return
sunmiPrinterService
.
updatePrinterState
();
}
catch
(
RemoteException
e
)
{
e
.
printStackTrace
();
}
return
2
;
}
}
library-updateApk/src/main/res/xml/update_file_paths.xml
deleted
100644 → 0
View file @
8fbea4e5
<?xml version="1.0" encoding="utf-8"?>
<paths>
<external-path
path=
""
name=
"files_root"
/>
</paths>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment