Browse Source

2024-05-22 新增

新增

1. 地接费用详细界面 新增 显示成本 弹出弹窗展示成本表格
zhaiy 1 year ago
parent
commit
2e929b677a

+ 7 - 7
app/src/main/java/com/pan_american/android/data/model/group_hotel/hotel_payment_insert/entity/HotelCost.kt

@@ -5,18 +5,18 @@ import com.bin.david.form.annotation.SmartTable
 
 @SmartTable(name = "酒店成本数据")
 class HotelCost {
-    @SmartColumn(id = 2, name = "日期", fixed = true)
+    @SmartColumn(id = 1, name = "日期", fixed = true)
     var date = ""
-    @SmartColumn(id = 3, name = "酒店名称")
+    @SmartColumn(id = 2, name = "酒店名称")
     var accon = ""
-    @SmartColumn(id = 4, name = "行程描述")
+    @SmartColumn(id = 3, name = "行程描述")
     var itin = ""
-    @SmartColumn(id = 5, name = "单人间")
+    @SmartColumn(id = 4, name = "单人间")
     var sgr = 0.0
-    @SmartColumn(id = 6, name = "双人间")
+    @SmartColumn(id = 5, name = "双人间")
     var tbr = 0.0
-    @SmartColumn(id = 7, name = "小套房")
+    @SmartColumn(id = 6, name = "小套房")
     var jS_ES = 0.0
-    @SmartColumn(id = 8, name = "大套房")
+    @SmartColumn(id = 7, name = "大套房")
     var suite = 0.0
 }

+ 30 - 0
app/src/main/java/com/pan_american/android/data/model/group_op/ground_convey_payment_insert/entity/GroundConveyCost.kt

@@ -0,0 +1,30 @@
+package com.pan_american.android.data.model.group_op.ground_convey_payment_insert.entity
+
+import com.bin.david.form.annotation.SmartColumn
+import com.bin.david.form.annotation.SmartTable
+
+@SmartTable(name = "地接费用成本")
+class GroundConveyCost {
+    @SmartColumn(id = 1, name = "日期", fixed = true)
+    var date = ""
+    @SmartColumn(id = 2, name = "车费用")
+    var carFee = 0.0
+    @SmartColumn(id = 3, name = "导游费用")
+    var guideFee = 0.0
+    @SmartColumn(id = 4, name = "餐食费")
+    var mealFee = 0.0
+    @SmartColumn(id = 5, name = "门票费")
+    var ticketFee = 0.0
+    @SmartColumn(id = 6, name = "小费")
+    var tipFee = 0.0
+    @SmartColumn(id = 7, name = "饮料零食水果")
+    var drinksSnacksFruitFee = 0.0
+    @SmartColumn(id = 8, name = "出行物资")
+    var travelSupplies = 0.0
+    @SmartColumn(id = 10, name = "领队费")
+    var leadersFee = 0.0
+    @SmartColumn(id = 12, name = "车型")
+    var carType = ""
+    @SmartColumn(id = 13, name = "零用金")
+    var spentCash = 0.00
+}

+ 11 - 0
app/src/main/java/com/pan_american/android/data/model/group_op/ground_convey_payment_insert/network/GroundConveyCostDetailResponse.kt

@@ -0,0 +1,11 @@
+package com.pan_american.android.data.model.group_op.ground_convey_payment_insert.network
+
+import com.pan_american.android.base.BaseResponse
+import com.pan_american.android.data.model.group_op.ground_convey_payment_insert.entity.GroundConveyCost
+
+class GroundConveyCostDetailResponse(val data: Data): BaseResponse() {
+
+    inner class Data (val modulePromptInfos: ArrayList<GroundConveyCostDetail>)
+
+    inner class GroundConveyCostDetail (val currencyCode: String, val rate: Double, val data: ArrayList<GroundConveyCost>)
+}

+ 7 - 0
app/src/main/java/com/pan_american/android/data/network/APIService.kt

@@ -77,6 +77,7 @@ import com.pan_american.android.data.model.group_management.group_info.network.G
 import com.pan_american.android.data.model.group_management.group_info.network.GroupStatusChangeResponse
 import com.pan_american.android.data.model.group_management.group_info.network.NameSpellGenerateRequest
 import com.pan_american.android.data.model.group_management.group_info.network.NameSpellGenerateResponse
+import com.pan_american.android.data.model.group_op.ground_convey_payment_insert.network.GroundConveyCostDetailResponse
 import com.pan_american.android.data.model.group_op.ground_convey_payment_insert.network.GroundConveyDetailRequest
 import com.pan_american.android.data.model.group_op.ground_convey_payment_insert.network.GroundConveyDetailResponse
 import com.pan_american.android.data.model.group_op.ground_convey_payment_insert.network.GroundConveyListRequest
@@ -508,6 +509,12 @@ interface APIService {
     @POST("/api/Groups/QueryCarTouristGuideGroundById")
     fun getGroundConveyDetail(@Body groundConveyDetailRequest: GroundConveyDetailRequest): Call<GroundConveyDetailResponse>
 
+    /**
+     * OP费用录入,团组成本
+     */
+    @POST("/api/Groups/PostGroupCostModulePrompt")
+    fun getGroundConveyCostData(@Body groupCostDataRequest: GroupCostDataRequest): Call<GroundConveyCostDetailResponse>
+
     /**
      * OP费用录入,获取城市数据
      */

+ 1 - 5
app/src/main/java/com/pan_american/android/ui/group_hotel/hotel_predetermine/AddHotelPredetermineActivity.kt

@@ -3,7 +3,6 @@ package com.pan_american.android.ui.group_hotel.hotel_predetermine
 import android.os.Bundle
 import android.text.Editable
 import android.text.TextWatcher
-import android.util.Log
 import android.view.Gravity
 import android.view.View
 import android.view.ViewGroup
@@ -13,7 +12,6 @@ import androidx.core.content.res.ResourcesCompat
 import androidx.recyclerview.widget.LinearLayoutManager
 import com.bin.david.form.core.SmartTable
 import com.bin.david.form.data.style.FontStyle
-import com.google.gson.Gson
 import com.pan_american.android.OASystem
 import com.pan_american.android.R
 import com.pan_american.android.base.BaseActivity
@@ -233,7 +231,7 @@ class AddHotelPredetermineActivity : BaseActivity<ActivityAddHotelPredetermineBi
 
             rightTextField.setOnClickListener {
 
-                val hotelCostPopView = View.inflate(OASystem.context, R.layout.popup_hotel_cost, null)
+                val hotelCostPopView = View.inflate(OASystem.context, R.layout.popup_cost_table, null)
                 popupWindow = PopupWindow(hotelCostPopView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
 
                 showPopupWindow {
@@ -256,8 +254,6 @@ class AddHotelPredetermineActivity : BaseActivity<ActivityAddHotelPredetermineBi
                                 response: Response<HotelCostDetailResponse>
                             ) {
 
-                                Log.e("request", Gson().toJson(GroupCostDataRequest(groupId, OASystem.C_TABLE_HOTEL_PREDETERMINE)))
-
                                 val costResponse = response.body()
 
                                 if (costResponse != null) {

+ 81 - 0
app/src/main/java/com/pan_american/android/ui/group_op/ground_convey_payment_insert/GroundConveyPaymentDetailActivity.kt

@@ -12,6 +12,8 @@ import androidx.recyclerview.widget.ConcatAdapter
 import androidx.recyclerview.widget.DiffUtil
 import androidx.recyclerview.widget.LinearLayoutManager
 import androidx.recyclerview.widget.StaggeredGridLayoutManager
+import com.bin.david.form.core.SmartTable
+import com.bin.david.form.data.style.FontStyle
 import com.pan_american.android.OASystem
 import com.pan_american.android.R
 import com.pan_american.android.base.BaseActivity
@@ -19,12 +21,15 @@ import com.pan_american.android.base.BaseResponse
 import com.pan_american.android.base.ListAdapter
 import com.pan_american.android.data.model.common.entity.Selector
 import com.pan_american.android.data.model.common.entity.SiftListItem
+import com.pan_american.android.data.model.common.network.GroupCostDataRequest
 import com.pan_american.android.data.model.common.network.GroupCurrencyRequest
 import com.pan_american.android.data.model.common.network.GroupCurrencyResponse
 import com.pan_american.android.data.model.group_op.ground_convey_payment_insert.adapter.GroundConveyFooterAdapter
 import com.pan_american.android.data.model.group_op.ground_convey_payment_insert.adapter.GroundConveyHeaderAdapter
 import com.pan_american.android.data.model.group_op.ground_convey_payment_insert.adapter.GroundConveyTableAdapter
+import com.pan_american.android.data.model.group_op.ground_convey_payment_insert.entity.GroundConveyCost
 import com.pan_american.android.data.model.group_op.ground_convey_payment_insert.entity.GroundConveyTableItem
+import com.pan_american.android.data.model.group_op.ground_convey_payment_insert.network.GroundConveyCostDetailResponse
 import com.pan_american.android.data.model.group_op.ground_convey_payment_insert.network.GroundConveyPaymentResourceRequest
 import com.pan_american.android.data.model.group_op.ground_convey_payment_insert.network.GroundConveyPaymentResponse
 import com.pan_american.android.data.model.group_op.ground_convey_payment_insert.network.UpdateGroundConveyDetailRequest
@@ -86,6 +91,14 @@ class GroundConveyPaymentDetailActivity : BaseActivity<ActivityGroundConveyPayme
 
     private var itemMaxId = 0
 
+    private var groundConveyCostInit = false
+
+    private var groundConveyCostCurrency = ""
+
+    private var groundConveyCostExchangeRate = 0.0
+
+    private var groundConveyCostList = ArrayList<GroundConveyCost>()
+
     override fun getViewBinding() = ActivityGroundConveyPaymentDetailBinding.inflate(layoutInflater)
 
     override fun onCreate(savedInstanceState: Bundle?) {
@@ -108,9 +121,77 @@ class GroundConveyPaymentDetailActivity : BaseActivity<ActivityGroundConveyPayme
         titleBinding = LayoutTitleBinding.bind(binding.root).apply {
             titleText.text = resources.getString(R.string.cost_entry_detail)
 
+            rightTextField.apply {
+                visibility = View.VISIBLE
+                text = resources.getString(R.string.show_cost)
+            }
+
             backButton.setOnClickListener {
                 back()
             }
+
+            rightTextField.setOnClickListener {
+
+                val groundConveyCostPopView = View.inflate(OASystem.context, R.layout.popup_cost_table, null)
+                popupWindow = PopupWindow(groundConveyCostPopView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
+
+                showPopupWindow {
+
+                    val currencyAbbr = groundConveyCostPopView.findViewById<TextView>(R.id.currency_abbr)
+                    val exchangeRate = groundConveyCostPopView.findViewById<TextView>(R.id.exchange_rate)
+                    val hotelCostTable = groundConveyCostPopView.findViewById<SmartTable<GroundConveyCost>>(R.id.table)
+
+                    hotelCostTable.config.apply {
+                        isShowXSequence = false
+                        isShowYSequence = false
+                        tableTitleStyle = FontStyle(50, ResourcesCompat.getColor(resources, R.color.text_color, theme))
+                        contentStyle = FontStyle(40, ResourcesCompat.getColor(resources, R.color.text_color, theme))
+                    }
+
+                    if (!groundConveyCostInit) {
+                        apiService.getGroundConveyCostData(GroupCostDataRequest(groupId, OASystem.C_TABLE_GROUND_CONVEY)).enqueue(object : Callback<GroundConveyCostDetailResponse> {
+                            override fun onResponse(
+                                call: Call<GroundConveyCostDetailResponse>,
+                                response: Response<GroundConveyCostDetailResponse>
+                            ) {
+
+                                val costResponse = response.body()
+
+                                if (costResponse != null) {
+                                    if (costResponse.code == 200) {
+
+                                        groundConveyCostCurrency = costResponse.data.modulePromptInfos[0].currencyCode
+                                        groundConveyCostExchangeRate = costResponse.data.modulePromptInfos[0].rate
+
+                                        groundConveyCostList = costResponse.data.modulePromptInfos[0].data
+
+                                        currencyAbbr.text = groundConveyCostCurrency
+                                        exchangeRate.text = groundConveyCostExchangeRate.toString()
+
+                                        hotelCostTable.setData(groundConveyCostList)
+
+                                        groundConveyCostInit = true
+
+                                    } else {
+                                        showMessage(costResponse.msg)
+                                    }
+                                }
+                            }
+
+                            override fun onFailure(call: Call<GroundConveyCostDetailResponse>, t: Throwable) {
+                                showErrorInfo(R.string.hotel_cost_detail_get_failed)
+                            }
+                        })
+                    } else {
+                        currencyAbbr.text = groundConveyCostCurrency
+                        exchangeRate.text = groundConveyCostExchangeRate.toString()
+
+                        hotelCostTable.setData(groundConveyCostList)
+                    }
+
+                    popupWindow.showAtLocation(binding.root, Gravity.BOTTOM, 0, 0)
+                }
+            }
         }
     }
 

app/src/main/res/layout/popup_hotel_cost.xml → app/src/main/res/layout/popup_cost_table.xml