ソースを参照

2024-04-28 修改

新增

1. 新增OP费用录入信息审核通过后无法再进行修改

2. 新增酒店费用录入审核后无法修改

3. 新增保险费用录入审核通过后无法修改

4. 新增邀请公务费用审核后无法修改

5. 新增签证费用录入审核通过后无法再修改

6. 新增OP费用录入信息审核通过后无法再进行修改

7. 新增邀请公务费用审核后无法修改

8. 新增酒店费用录入审核后无法修改

9. 新增OP费用详情审核后无法修改

修改

1. 日付费用申请 部分逻辑优化修改

2. 机票费用录入 部分逻辑优化修改
zhaiy 11 ヶ月 前
コミット
bdf0961c32
共有19 個のファイルを変更した288 個の追加122 個の削除を含む
  1. 30 16
      app/src/main/java/com/pan_american/android/data/model/group_op/ground_convey_payment_insert/adapter/GroundConveyFooterAdapter.kt
  2. 18 6
      app/src/main/java/com/pan_american/android/data/model/group_op/ground_convey_payment_insert/adapter/GroundConveyHeaderAdapter.kt
  3. 70 58
      app/src/main/java/com/pan_american/android/data/model/group_op/ground_convey_payment_insert/adapter/GroundConveyTableAdapter.kt
  4. 13 16
      app/src/main/java/com/pan_american/android/ui/efficiency_tools/daily_payment/AddDailyPaymentActivity.kt
  5. 17 10
      app/src/main/java/com/pan_american/android/ui/group_airplane_ticket/airplane_payment_insert/AddAirplaneTicketActivity.kt
  6. 23 2
      app/src/main/java/com/pan_american/android/ui/group_common/insurance_payment_insert/AddInsurancePaymentActivity.kt
  7. 3 0
      app/src/main/java/com/pan_american/android/ui/group_common/insurance_payment_insert/InsuranceListFragment.kt
  8. 17 3
      app/src/main/java/com/pan_american/android/ui/group_hotel/hotel_predetermine/AddHotelPredetermineActivity.kt
  9. 3 0
      app/src/main/java/com/pan_american/android/ui/group_hotel/hotel_predetermine/HotelPredetermineListFragment.kt
  10. 15 2
      app/src/main/java/com/pan_american/android/ui/group_invite_official/invite_official_payment_insert/AddInvitePaymentActivity.kt
  11. 3 0
      app/src/main/java/com/pan_american/android/ui/group_invite_official/invite_official_payment_insert/GroupInvitePaymentListFragment.kt
  12. 16 2
      app/src/main/java/com/pan_american/android/ui/group_op/ground_convey_payment_insert/AddGroundConveyInfoActivity.kt
  13. 22 0
      app/src/main/java/com/pan_american/android/ui/group_op/ground_convey_payment_insert/GroundConveyPaymentDetailActivity.kt
  14. 6 0
      app/src/main/java/com/pan_american/android/ui/group_op/ground_convey_payment_insert/GroundConveyPaymentListFragment.kt
  15. 14 2
      app/src/main/java/com/pan_american/android/ui/group_visa/visa_payment_insert/AddVisaPaymentActivity.kt
  16. 3 0
      app/src/main/java/com/pan_american/android/ui/group_visa/visa_payment_insert/VisaPaymentListFragment.kt
  17. 7 1
      app/src/main/res/layout/footer_ground_convey_payment_detail.xml
  18. 5 3
      app/src/main/res/layout/header_ground_convey_payment_detail.xml
  19. 3 1
      app/src/main/res/layout/item_ground_convey_table.xml

+ 30 - 16
app/src/main/java/com/pan_american/android/data/model/group_op/ground_convey_payment_insert/adapter/GroundConveyFooterAdapter.kt

@@ -21,6 +21,9 @@ class GroundConveyFooterAdapter: RecyclerView.Adapter<GroundConveyFooterAdapter.
 
     private var paymentWayStr = ""
 
+    //2024-04-28 新增OP费用录入详情审核通过后无法再进行修改
+    private var canBeEdit = true
+
     lateinit var onItemClick: OnItemClick
 
     inner class FooterViewHolder(view: View): RecyclerView.ViewHolder(view) {
@@ -55,25 +58,32 @@ class GroundConveyFooterAdapter: RecyclerView.Adapter<GroundConveyFooterAdapter.
 
         val footerViewHolder = FooterViewHolder(view)
 
-        footerViewHolder.paymentMark.setOnClickListener {
-            onItemClick.paymentMarkClick()
-        }
-
-        footerViewHolder.paymentWay.setOnClickListener {
-            onItemClick.paymentWayClick()
-        }
-
-        footerViewHolder.payee.addTextChangedListener({_,_,_,_ -> }, {_,_,_,_ -> }, {
-            if (it != null) {
-                payeeStr = it.toString()
+        if (!canBeEdit) {
+            footerViewHolder.paymentMark.isEnabled = false
+            footerViewHolder.paymentWay.isEnabled = false
+            footerViewHolder.payee.isEnabled =false
+            footerViewHolder.paymentPercentage.isEnabled = false
+        } else {
+            footerViewHolder.paymentMark.setOnClickListener {
+                onItemClick.paymentMarkClick()
             }
-        })
 
-        footerViewHolder.paymentPercentage.addTextChangedListener({_,_,_,_ -> }, {_,_,_,_ -> }, {
-            if (it != null) {
-               paymentPercentageStr = it.toString()
+            footerViewHolder.paymentWay.setOnClickListener {
+                onItemClick.paymentWayClick()
             }
-        })
+
+            footerViewHolder.payee.addTextChangedListener({_,_,_,_ -> }, {_,_,_,_ -> }, {
+                if (it != null) {
+                    payeeStr = it.toString()
+                }
+            })
+
+            footerViewHolder.paymentPercentage.addTextChangedListener({_,_,_,_ -> }, {_,_,_,_ -> }, {
+                if (it != null) {
+                    paymentPercentageStr = it.toString()
+                }
+            })
+        }
 
         return footerViewHolder
     }
@@ -117,6 +127,10 @@ class GroundConveyFooterAdapter: RecyclerView.Adapter<GroundConveyFooterAdapter.
         paymentWayStr = str
     }
 
+    fun setCanBeEdit(flag: Boolean) {
+        canBeEdit = flag
+    }
+
     interface OnItemClick {
         fun paymentMarkClick()
         fun paymentWayClick()

+ 18 - 6
app/src/main/java/com/pan_american/android/data/model/group_op/ground_convey_payment_insert/adapter/GroundConveyHeaderAdapter.kt

@@ -15,6 +15,9 @@ class GroundConveyHeaderAdapter: RecyclerView.Adapter<GroundConveyHeaderAdapter.
 
     private var currencyCode = ""
 
+    //2024-04-28 新增OP费用录入详情审核通过后无法再进行修改
+    private var canBeEdit = true
+
     lateinit var onItemClick: OnItemClick
 
     inner class HeaderViewHolder(view: View): RecyclerView.ViewHolder(view) {
@@ -40,12 +43,17 @@ class GroundConveyHeaderAdapter: RecyclerView.Adapter<GroundConveyHeaderAdapter.
 
         val headerViewHolder = HeaderViewHolder(view)
 
-        headerViewHolder.paymentCurrency.setOnClickListener {
-            onItemClick.onCurrencyCodeClick()
-        }
-
-        headerViewHolder.paymentType.setOnClickListener {
-            onItemClick.onPaymentTypeClick()
+        if (!canBeEdit) {
+            headerViewHolder.paymentCurrency.isEnabled = false
+            headerViewHolder.paymentType.isEnabled = false
+        } else {
+            headerViewHolder.paymentCurrency.setOnClickListener {
+                onItemClick.onCurrencyCodeClick()
+            }
+
+            headerViewHolder.paymentType.setOnClickListener {
+                onItemClick.onPaymentTypeClick()
+            }
         }
 
         return headerViewHolder
@@ -72,6 +80,10 @@ class GroundConveyHeaderAdapter: RecyclerView.Adapter<GroundConveyHeaderAdapter.
         return currencyCode
     }
 
+    fun setCanBeEdit(flag: Boolean) {
+        canBeEdit = flag
+    }
+
     interface OnItemClick {
         fun onCurrencyCodeClick()
         fun onPaymentTypeClick()

+ 70 - 58
app/src/main/java/com/pan_american/android/data/model/group_op/ground_convey_payment_insert/adapter/GroundConveyTableAdapter.kt

@@ -32,6 +32,9 @@ class GroundConveyTableAdapter(private val itemList: ArrayList<GroundConveyTable
 
     var count = ""
 
+    //2024-04-28 新增OP费用录入详情审核通过后无法再进行修改
+    private var canBeEdit = true
+
     inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
         val listItem: LinearLayout = view.findViewById(R.id.list_item)
         val paymentItemName: TextView = view.findViewById(R.id.payment_item_name)
@@ -54,81 +57,86 @@ class GroundConveyTableAdapter(private val itemList: ArrayList<GroundConveyTable
 
         val viewHolder = ViewHolder(view)
 
-        val textWatcher = object : TextWatcher {
-            override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
-
-            }
-
-            override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
-
-            }
+        if (!canBeEdit) {
+            viewHolder.price.isEnabled = false
+            viewHolder.count.isEnabled = false
+            viewHolder.unit.isEnabled = false
+            viewHolder.detail.isEnabled(false)
+        } else {
+            viewHolder.price.addTextChangedListener(object : TextWatcher {
+                override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
 
-            override fun afterTextChanged(p0: Editable?) {
-                if (viewHolder.price.text.isNullOrBlank()) {
-                    Toast.makeText(
-                        OASystem.context,
-                        String.format("%s 金额不能为空!", viewHolder.paymentItemName.text),
-                        Toast.LENGTH_SHORT
-                    ).show()
-                    return
                 }
 
-                if (viewHolder.price.text.endsWith('.')) {
-                    return
-                }
+                override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
 
-                if (viewHolder.price.text.matches(regex)) {
-                    price = viewHolder.price.text.toString().toDouble()
-                    onItemTextChanged.onPriceTextChanged(viewHolder.bindingAdapterPosition)
-                } else {
-                    Toast.makeText(
-                        OASystem.context,
-                        String.format("请输入正确的 %s 金额", viewHolder.paymentItemName.text),
-                        Toast.LENGTH_SHORT
-                    ).show()
                 }
-            }
-        }
 
-        viewHolder.price.addTextChangedListener(textWatcher)
+                override fun afterTextChanged(p0: Editable?) {
+                    if (viewHolder.price.text.isNullOrBlank()) {
+                        Toast.makeText(
+                            OASystem.context,
+                            String.format("%s 金额不能为空!", viewHolder.paymentItemName.text),
+                            Toast.LENGTH_SHORT
+                        ).show()
+                        return
+                    }
 
-        viewHolder.unit.setOnClickListener {
-            onItemClick.onUnitClick(viewHolder.bindingAdapterPosition)
-        }
+                    if (viewHolder.price.text.endsWith('.')) {
+                        return
+                    }
 
-        viewHolder.count.addTextChangedListener(object : TextWatcher {
-            override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
+                    if (viewHolder.price.text.matches(regex)) {
+                        price = viewHolder.price.text.toString().toDouble()
+                        onItemTextChanged.onPriceTextChanged(viewHolder.bindingAdapterPosition)
+                    } else {
+                        Toast.makeText(
+                            OASystem.context,
+                            String.format("请输入正确的 %s 金额", viewHolder.paymentItemName.text),
+                            Toast.LENGTH_SHORT
+                        ).show()
+                    }
+                }
+            })
 
+            viewHolder.unit.setOnClickListener {
+                onItemClick.onUnitClick(viewHolder.bindingAdapterPosition)
             }
 
-            override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
+            viewHolder.count.addTextChangedListener(object : TextWatcher {
+                override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
 
-            }
+                }
 
-            override fun afterTextChanged(p0: Editable?) {
-                try {
-                    if (viewHolder.count.text.isNullOrBlank()) {
-                        Toast.makeText(
-                            OASystem.context,
-                            String.format("%s 数量不能为空!", viewHolder.paymentItemName.text),
-                            Toast.LENGTH_SHORT
-                        ).show()
+                override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
+
+                }
+
+                override fun afterTextChanged(p0: Editable?) {
+                    try {
+                        if (viewHolder.count.text.isNullOrBlank()) {
+                            Toast.makeText(
+                                OASystem.context,
+                                String.format("%s 数量不能为空!", viewHolder.paymentItemName.text),
+                                Toast.LENGTH_SHORT
+                            ).show()
+                            return
+                        } else {
+                            count = viewHolder.count.text.toString()
+                            onItemTextChanged.onCountChanged(viewHolder.bindingAdapterPosition)
+                        }
+                    } catch (e: Exception) {
+                        Toast.makeText(OASystem.context, "超出最大数量!", Toast.LENGTH_SHORT).show()
                         return
-                    } else {
-                        count = viewHolder.count.text.toString()
-                        onItemTextChanged.onCountChanged(viewHolder.bindingAdapterPosition)
                     }
-                } catch (e: Exception) {
-                    Toast.makeText(OASystem.context, "超出最大数量!", Toast.LENGTH_SHORT).show()
-                    return
                 }
-            }
-        })
+            })
 
-        viewHolder.detail.addTextChangedListener({}, {}, {
-            priceContentText = viewHolder.detail.getText()
-            onItemTextChanged.onPriceContentChanged(viewHolder.bindingAdapterPosition)
-        })
+            viewHolder.detail.addTextChangedListener({}, {}, {
+                priceContentText = viewHolder.detail.getText()
+                onItemTextChanged.onPriceContentChanged(viewHolder.bindingAdapterPosition)
+            })
+        }
 
         return viewHolder
     }
@@ -176,6 +184,10 @@ class GroundConveyTableAdapter(private val itemList: ArrayList<GroundConveyTable
         }
     }
 
+    fun setCanBeEdit(flag: Boolean) {
+        canBeEdit = flag
+    }
+
     interface OnItemClick {
         fun onUnitClick(itemPosition: Int)
     }

+ 13 - 16
app/src/main/java/com/pan_american/android/ui/efficiency_tools/daily_payment/AddDailyPaymentActivity.kt

@@ -84,12 +84,14 @@ class AddDailyPaymentActivity : BaseActivity<ActivityAddDailyPaymentBinding>() {
 
     private var fromList = false
 
-    private var canBeEdit = true
-
     private var dailyPaymentId = 0
 
     private lateinit var dailyPaymentDetail: DailyPaymentDetail
 
+    private var financeStatus = -1
+
+    private var managerStatus = -1
+
     override fun getViewBinding() = ActivityAddDailyPaymentBinding.inflate(layoutInflater)
 
     override fun onCreate(savedInstanceState: Bundle?) {
@@ -101,13 +103,8 @@ class AddDailyPaymentActivity : BaseActivity<ActivityAddDailyPaymentBinding>() {
         if (fromList) {
             //来自列表,获取日付item ID
             dailyPaymentId = intent.getIntExtra("daily_payment_id", 0)
-        }
-
-        if (intent.getIntExtra("finance_status", 0) != 0
-            || intent.getIntExtra("manager_status", 0) != 0
-            || !OASystem.authorization(OASystem.DAILY_PAYMENT, OASystem.EDIT)
-        ) {
-            canBeEdit = false
+            financeStatus = intent.getIntExtra("finance_status", -1)
+            managerStatus = intent.getIntExtra("manager_status", -1)
         }
 
         initTitle()
@@ -141,7 +138,7 @@ class AddDailyPaymentActivity : BaseActivity<ActivityAddDailyPaymentBinding>() {
             //根据ID获取日付item详情
             getDailyPaymentFromId(dailyPaymentId)
 
-            if (canBeEdit) {
+            if (canBeEdit()) {
                 binding.commit.text = resources.getString(R.string.update)
             } else {
                 binding.paymentIdentification.isEnabled = false
@@ -461,7 +458,7 @@ class AddDailyPaymentActivity : BaseActivity<ActivityAddDailyPaymentBinding>() {
         binding.commit.setOnClickListener {
 
             if (fromList) {
-                if (!canBeEdit) {
+                if (!canBeEdit()) {
                     back()
                     return@setOnClickListener
                 }
@@ -580,11 +577,7 @@ class AddDailyPaymentActivity : BaseActivity<ActivityAddDailyPaymentBinding>() {
         val adapter = CardAdapter.Builder<DailyPaymentListItem>().apply {
             setLayoutId(R.layout.item_delete_button_selector)
             setData(dailyPaymentList)
-            if (fromList) {
-                setCanDelete(OASystem.authorization(OASystem.DAILY_PAYMENT, OASystem.EDIT))
-            } else {
-                setCanDelete(OASystem.authorization(OASystem.DAILY_PAYMENT, OASystem.ADD))
-            }
+            setCanDelete(canBeEdit())
             addBindView { itemView, data ->
                 itemView.findViewById<TextView>(R.id.left_text).text = data.priceName
                 itemView.findViewById<TextView>(R.id.right_text).text =
@@ -875,4 +868,8 @@ class AddDailyPaymentActivity : BaseActivity<ActivityAddDailyPaymentBinding>() {
             }
         })
     }
+
+    private fun canBeEdit(): Boolean {
+        return OASystem.authorization(OASystem.DAILY_PAYMENT, OASystem.EDIT) and (financeStatus == 0) and (managerStatus == 0)
+    }
 }

+ 17 - 10
app/src/main/java/com/pan_american/android/ui/group_airplane_ticket/airplane_payment_insert/AddAirplaneTicketActivity.kt

@@ -41,10 +41,6 @@ class AddAirplaneTicketActivity : BaseActivity<ActivityAddAirplaneTicketBinding>
 
     private var paymentId = 0
 
-    //2024-04-26 机票费用 设置已审核费用不能修改
-
-    private var isAuditGM = -1
-
     private val apiService = ServiceCreator.create<APIService>()
 
     private var berthList = ArrayList<Selector>()
@@ -95,6 +91,9 @@ class AddAirplaneTicketActivity : BaseActivity<ActivityAddAirplaneTicketBinding>
 
     private val regex = Regex("^-?\\d+(\\.\\d{1,2})?\$")
 
+    //2024-04-26 机票费用 设置已审核费用不能修改
+    private var isAuditGM = -1
+
     override fun getViewBinding() = ActivityAddAirplaneTicketBinding.inflate(layoutInflater)
 
     override fun onCreate(savedInstanceState: Bundle?) {
@@ -105,11 +104,17 @@ class AddAirplaneTicketActivity : BaseActivity<ActivityAddAirplaneTicketBinding>
             fromList = getBooleanExtra("fromList", false)
             groupId = getIntExtra("groupId", 0)
             paymentId = getIntExtra("paymentId", 0)
-            isAuditGM = getIntExtra("isAuditGM", -1)
             binding.groupName.text = getStringExtra("teamName")
             binding.groupNumber.text = getStringExtra("tourCode")
             binding.groupCustomer.text = getStringExtra("clientName")
             binding.visitCountry.text = getStringExtra("visitCountry")
+
+            //2024-04-26 机票费用 设置已审核费用不能修改
+            isAuditGM = if (fromList) {
+                getIntExtra("isAuditGM", -1)
+            } else {
+                0
+            }
         }
 
         initTitle()
@@ -141,8 +146,7 @@ class AddAirplaneTicketActivity : BaseActivity<ActivityAddAirplaneTicketBinding>
             binding.commit.text = resources.getString(R.string.update)
 
             //2024-04-26 机票费用 设置已审核费用不能修改
-
-            if (!OASystem.authorization(OASystem.AIRPLANE_PAYMENT_INSERT, OASystem.EDIT) || isAuditGM == 1) {
+            if (!canBeEdit()) {
                 binding.apply {
                     berthType.isEnabled = false
                     unitPrice.isEnabled = false
@@ -768,8 +772,7 @@ class AddAirplaneTicketActivity : BaseActivity<ActivityAddAirplaneTicketBinding>
         binding.commit.setOnClickListener {
 
             //2024-04-26 机票费用 设置已审核费用不能修改
-
-            if (!OASystem.authorization(OASystem.AIRPLANE_PAYMENT_INSERT, OASystem.EDIT) || isAuditGM == 1) {
+            if (!canBeEdit()) {
                 back()
                 return@setOnClickListener
             }
@@ -1086,7 +1089,7 @@ class AddAirplaneTicketActivity : BaseActivity<ActivityAddAirplaneTicketBinding>
         val adapter = CardAdapter.Builder<Selector>().apply {
             setData(customerList)
             setLayoutId(R.layout.item_delete_button_selector)
-            setCanDelete(OASystem.authorization(OASystem.AIRPLANE_PAYMENT_INSERT, OASystem.EDIT))
+            setCanDelete(canBeEdit())
             addBindView { itemView, data ->
                 itemView.findViewById<TextView>(R.id.left_text).text = data.pinyin
                 itemView.findViewById<TextView>(R.id.right_text).text = String.format(
@@ -1399,4 +1402,8 @@ class AddAirplaneTicketActivity : BaseActivity<ActivityAddAirplaneTicketBinding>
                 }
             })
     }
+
+    private fun canBeEdit(): Boolean {
+        return OASystem.authorization(OASystem.AIRPLANE_PAYMENT_INSERT, OASystem.EDIT) and (isAuditGM == 0)
+    }
 }

+ 23 - 2
app/src/main/java/com/pan_american/android/ui/group_common/insurance_payment_insert/AddInsurancePaymentActivity.kt

@@ -76,6 +76,9 @@ class AddInsurancePaymentActivity : BaseActivity<ActivityAddInsurancePaymentBind
 
     private var updateInsurancePaymentRequest = UpdateInsurancePaymentRequest()
 
+    //2024-04-28 设置保险费用录入,审核通过后无法修改
+    private var isAuditGM = -1
+
     override fun getViewBinding() = ActivityAddInsurancePaymentBinding.inflate(layoutInflater)
 
     override fun onCreate(savedInstanceState: Bundle?) {
@@ -89,6 +92,13 @@ class AddInsurancePaymentActivity : BaseActivity<ActivityAddInsurancePaymentBind
             binding.groupNumber.text = getStringExtra("tourCode")
             binding.groupCustomer.text = getStringExtra("clientName")
             binding.visitCountry.text = getStringExtra("visitCountry")
+
+            //2024-04-28 设置保险费用录入,审核通过后无法修改
+            isAuditGM = if (fromList) {
+                getIntExtra("isAuditGM", -1)
+            } else {
+                0
+            }
         }
 
         initTitle()
@@ -120,7 +130,7 @@ class AddInsurancePaymentActivity : BaseActivity<ActivityAddInsurancePaymentBind
 
             binding.commit.text = resources.getString(R.string.update)
 
-            if (!OASystem.authorization(OASystem.INSURANCE_PAYMENT_INSERT, OASystem.EDIT)) {
+            if (!canBeEdit()) {
                 binding.apply {
                     addCustomer.visibility = View.GONE
                     insuranceNotes.isEnabled(false)
@@ -137,6 +147,8 @@ class AddInsurancePaymentActivity : BaseActivity<ActivityAddInsurancePaymentBind
                     otherSideName.isEnabled = false
                     payee.isEnabled = false
                     paymentMark.isEnabled = false
+
+                    commit.text = resources.getString(R.string.back)
                 }
             }
 
@@ -423,6 +435,11 @@ class AddInsurancePaymentActivity : BaseActivity<ActivityAddInsurancePaymentBind
 
         binding.commit.setOnClickListener {
 
+            if (!canBeEdit()) {
+                back()
+                return@setOnClickListener
+            }
+
             updateInsurancePaymentRequest.id = paymentId
             updateInsurancePaymentRequest.diId = groupId
 
@@ -677,7 +694,7 @@ class AddInsurancePaymentActivity : BaseActivity<ActivityAddInsurancePaymentBind
         val adapter = CardAdapter.Builder<Selector>().apply {
             setData(customerSelectList)
             setLayoutId(R.layout.item_delete_button_selector)
-            setCanDelete(OASystem.authorization(OASystem.INSURANCE_PAYMENT_INSERT, OASystem.EDIT))
+            setCanDelete(canBeEdit())
             addBindView { itemView, data ->
                 itemView.findViewById<TextView>(R.id.left_text).text = data.pinyin
                 itemView.findViewById<TextView>(R.id.right_text).text = String.format(
@@ -919,4 +936,8 @@ class AddInsurancePaymentActivity : BaseActivity<ActivityAddInsurancePaymentBind
                 }
             })
     }
+
+    private fun canBeEdit(): Boolean {
+        return OASystem.authorization(OASystem.INSURANCE_PAYMENT_INSERT, OASystem.EDIT) and (isAuditGM == 0)
+    }
 }

+ 3 - 0
app/src/main/java/com/pan_american/android/ui/group_common/insurance_payment_insert/InsuranceListFragment.kt

@@ -288,6 +288,9 @@ class InsuranceListFragment : BaseFragment<FragmentInsuranceListBinding>() {
                             putExtra("tourCode", tourCode)
                             putExtra("clientName", binding.groupCustomer.text)
                             putExtra("visitCountry", binding.visitCountry.text)
+
+                            //2024-04-28 设置保险费用录入,审核通过后无法修改
+                            putExtra("isAuditGM",insurancePaymentList[position].isAuditGM)
                         }
                     startActivity(intent)
                 }

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

@@ -166,6 +166,9 @@ class AddHotelPredetermineActivity : BaseActivity<ActivityAddHotelPredetermineBi
 
     private var hasCurrency = false
 
+    //2024-04-28 新增酒店费用录入审核后无法修改
+    private var isAuditGM = -1
+
     override fun getViewBinding() = ActivityAddHotelPredetermineBinding.inflate(layoutInflater)
 
     override fun onCreate(savedInstanceState: Bundle?) {
@@ -179,6 +182,13 @@ class AddHotelPredetermineActivity : BaseActivity<ActivityAddHotelPredetermineBi
             binding.groupNumber.text = getStringExtra("tourCode")
             binding.groupCustomer.text = getStringExtra("clientName")
             binding.visitCountry.text = getStringExtra("visitCountry")
+
+            //2024-04-28 新增酒店费用录入审核后无法修改
+            isAuditGM = if (fromList) {
+                getIntExtra("isAuditGM", -1)
+            } else {
+                0
+            }
         }
 
         initTitle()
@@ -214,7 +224,7 @@ class AddHotelPredetermineActivity : BaseActivity<ActivityAddHotelPredetermineBi
         if (fromList) {
             getHotelPredetermineDetail()
 
-            if (!OASystem.authorization(OASystem.HOTEL_PREDETERMINE, OASystem.EDIT)) {
+            if (!canBeEdit()) {
                 binding.apply {
 
                     customerType.isEnabled = false
@@ -1078,7 +1088,7 @@ class AddHotelPredetermineActivity : BaseActivity<ActivityAddHotelPredetermineBi
 
         binding.commit.setOnClickListener {
 
-            if (!OASystem.authorization(OASystem.HOTEL_PREDETERMINE, OASystem.EDIT)) {
+            if (!canBeEdit()) {
                 back()
                 return@setOnClickListener
             }
@@ -1422,7 +1432,7 @@ class AddHotelPredetermineActivity : BaseActivity<ActivityAddHotelPredetermineBi
         val adapter = CardAdapter.Builder<Selector>().apply {
             setData(customerSelectList)
             setLayoutId(R.layout.item_delete_button_selector)
-            setCanDelete(OASystem.authorization(OASystem.HOTEL_PREDETERMINE, OASystem.EDIT))
+            setCanDelete(canBeEdit())
             addBindView { itemView, data ->
                 itemView.findViewById<TextView>(R.id.left_text).text = data.pinyin
                 itemView.findViewById<TextView>(R.id.right_text).text = String.format(
@@ -1989,4 +1999,8 @@ class AddHotelPredetermineActivity : BaseActivity<ActivityAddHotelPredetermineBi
 
         return (((endTime.time.time - startTime.time.time) / (1000 * 60 * 60 * 24)).toInt())
     }
+
+    private fun canBeEdit(): Boolean {
+        return OASystem.authorization(OASystem.HOTEL_PREDETERMINE, OASystem.EDIT) and (isAuditGM == 0)
+    }
 }

+ 3 - 0
app/src/main/java/com/pan_american/android/ui/group_hotel/hotel_predetermine/HotelPredetermineListFragment.kt

@@ -237,6 +237,9 @@ class HotelPredetermineListFragment : BaseFragment<FragmentHotelPredetermineList
                             putExtra("tourCode", tourCode)
                             putExtra("clientName", binding.groupCustomer.text)
                             putExtra("visitCountry", binding.visitCountry.text)
+
+                            //2024-04-28 新增酒店费用录入审核后无法修改
+                            putExtra("isAuditGM", hotelPredetermineList[position].isAuditGM)
                         }
                     startActivity(intent)
                 }

+ 15 - 2
app/src/main/java/com/pan_american/android/ui/group_invite_official/invite_official_payment_insert/AddInvitePaymentActivity.kt

@@ -92,6 +92,9 @@ class AddInvitePaymentActivity : BaseActivity<ActivityAddInvitePaymentBinding>()
 
     private lateinit var updateInviteOfficialRequest: UpdateInviteOfficialRequest
 
+    //2024-04-28 新增邀请公务费用审核后无法修改
+    private var isAudit = -1
+
     override fun getViewBinding() = ActivityAddInvitePaymentBinding.inflate(layoutInflater)
 
     override fun onCreate(savedInstanceState: Bundle?) {
@@ -107,8 +110,15 @@ class AddInvitePaymentActivity : BaseActivity<ActivityAddInvitePaymentBinding>()
             binding.groupCustomer.text = getStringExtra("clientName")
             binding.visitCountry.text = getStringExtra("visitCountry")
 
+
+
             if (fromList) {
                 binding.inviteUnit.text = getStringExtra("currency")
+
+                //2024-04-28 新增邀请公务费用审核后无法修改
+                isAudit = getIntExtra("isAudit", -1)
+            } else {
+                isAudit = 0
             }
         }
 
@@ -151,7 +161,7 @@ class AddInvitePaymentActivity : BaseActivity<ActivityAddInvitePaymentBinding>()
 
             binding.commit.text = resources.getString(R.string.update)
 
-            if (!OASystem.authorization(OASystem.INVITE_OFFICIAL_PAYMENT, OASystem.EDIT)) {
+            if (!canBeEdit()) {
 
                 binding.apply {
                     inviteeName.isEnabled = false
@@ -608,7 +618,7 @@ class AddInvitePaymentActivity : BaseActivity<ActivityAddInvitePaymentBinding>()
 
         binding.commit.setOnClickListener {
 
-            if (!OASystem.authorization(OASystem.INVITE_OFFICIAL_PAYMENT, OASystem.EDIT)) {
+            if (!canBeEdit()) {
                 back()
                 return@setOnClickListener
             }
@@ -1232,4 +1242,7 @@ class AddInvitePaymentActivity : BaseActivity<ActivityAddInvitePaymentBinding>()
             })
     }
 
+    private fun canBeEdit(): Boolean {
+        return OASystem.authorization(OASystem.INVITE_OFFICIAL_PAYMENT, OASystem.EDIT) and (isAudit == 0)
+    }
 }

+ 3 - 0
app/src/main/java/com/pan_american/android/ui/group_invite_official/invite_official_payment_insert/GroupInvitePaymentListFragment.kt

@@ -361,6 +361,9 @@ class GroupInvitePaymentListFragment : BaseFragment<FragmentGroupInvitePaymentLi
                             putExtra("visitCountry", binding.visitCountry.text)
 
                             putExtra("currency", inviteOfficialList[position].currency)
+
+                            //2024-04-28 新增邀请公务费用审核后无法修改
+                            putExtra("isAudit", inviteOfficialList[position].isAudit)
                         }
                     startActivity(intent)
                 }

+ 16 - 2
app/src/main/java/com/pan_american/android/ui/group_op/ground_convey_payment_insert/AddGroundConveyInfoActivity.kt

@@ -57,6 +57,9 @@ class AddGroundConveyInfoActivity : BaseActivity<ActivityAddGroupOpPaymentBindin
 
     private var updateGroundConveyRequest = UpdateGroundConveyRequest()
 
+    //2024-04-28 新增OP费用录入信息审核通过后无法再进行修改
+    private var isAuditGM = -1
+
     override fun getViewBinding() = ActivityAddGroupOpPaymentBinding.inflate(layoutInflater)
 
     override fun onCreate(savedInstanceState: Bundle?) {
@@ -71,6 +74,13 @@ class AddGroundConveyInfoActivity : BaseActivity<ActivityAddGroupOpPaymentBindin
             binding.groupNumber.text = getStringExtra("tourCode")
             binding.groupCustomer.text = getStringExtra("clientName")
             binding.visitCountry.text = getStringExtra("visitCountry")
+
+            //2024-04-28 新增OP费用录入信息审核通过后无法再进行修改
+            isAuditGM = if (fromList) {
+                getIntExtra("isAuditGM", -1)
+            } else {
+                0
+            }
         }
 
         initTitle()
@@ -117,7 +127,7 @@ class AddGroundConveyInfoActivity : BaseActivity<ActivityAddGroupOpPaymentBindin
 
             binding.commit.text = resources.getString(R.string.update)
 
-            if (!OASystem.authorization(OASystem.GROUND_CONVEY_PAYMENT_INSERT, OASystem.EDIT)) {
+            if (!canBeEdit()) {
                 binding.apply {
                     area.isEnabled = false
                     serviceStartTime.isEnabled = false
@@ -302,7 +312,7 @@ class AddGroundConveyInfoActivity : BaseActivity<ActivityAddGroupOpPaymentBindin
 
         binding.commit.setOnClickListener {
 
-            if (!OASystem.authorization(OASystem.GROUND_CONVEY_PAYMENT_INSERT, OASystem.EDIT)) {
+            if (!canBeEdit()) {
                 back()
                 return@setOnClickListener
             }
@@ -547,4 +557,8 @@ class AddGroundConveyInfoActivity : BaseActivity<ActivityAddGroupOpPaymentBindin
                 }
             })
     }
+
+    private fun canBeEdit(): Boolean {
+        return OASystem.authorization(OASystem.GROUND_CONVEY_PAYMENT_INSERT, OASystem.EDIT) and (isAuditGM == 0)
+    }
 }

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

@@ -78,6 +78,9 @@ class GroundConveyPaymentDetailActivity : BaseActivity<ActivityGroundConveyPayme
 
     private val updateGroundConveyDetailRequest = UpdateGroundConveyDetailRequest()
 
+    //2024-04-28 新增OP费用录入详情审核通过后无法再进行修改
+    private var isAuditGM = -1
+
     override fun getViewBinding() = ActivityGroundConveyPaymentDetailBinding.inflate(layoutInflater)
 
     override fun onCreate(savedInstanceState: Bundle?) {
@@ -88,6 +91,7 @@ class GroundConveyPaymentDetailActivity : BaseActivity<ActivityGroundConveyPayme
             groupId = getIntExtra("groupId", 0)
             paymentId = getIntExtra("paymentId", 0)
             headerAdapter.setGroupName(getStringExtra("teamName").toString())
+            isAuditGM = getIntExtra("isAuditGM", -1)
         }
 
         initTitle()
@@ -109,6 +113,15 @@ class GroundConveyPaymentDetailActivity : BaseActivity<ActivityGroundConveyPayme
 
         binding.paymentList.itemAnimator!!.changeDuration = 0
 
+        if (!canBeEdit()) {
+            binding.commit.text = resources.getString(R.string.back)
+        }
+
+        //2024-04-28 新增OP费用录入详情审核通过后无法再进行修改
+        headerAdapter.setCanBeEdit(canBeEdit())
+        adapter.setCanBeEdit(canBeEdit())
+        footerAdapter.setCanBeEdit(canBeEdit())
+
         initList()
     }
 
@@ -116,6 +129,11 @@ class GroundConveyPaymentDetailActivity : BaseActivity<ActivityGroundConveyPayme
 
         binding.commit.setOnClickListener {
 
+            if (!canBeEdit()) {
+                back()
+                return@setOnClickListener
+            }
+
             updateGroundConveyDetailRequest.diId = groupId
             updateGroundConveyDetailRequest.ctggrId = paymentId
 
@@ -621,4 +639,8 @@ class GroundConveyPaymentDetailActivity : BaseActivity<ActivityGroundConveyPayme
                 }
             })
     }
+
+    private fun canBeEdit(): Boolean {
+        return OASystem.authorization(OASystem.GROUND_CONVEY_PAYMENT_INSERT, OASystem.EDIT) and (isAuditGM == 0)
+    }
 }

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

@@ -232,6 +232,9 @@ class GroundConveyPaymentListFragment : BaseFragment<FragmentGroupOpPaymentListB
                             putExtra("tourCode", tourCode)
                             putExtra("clientName", binding.groupCustomer.text)
                             putExtra("visitCountry", binding.visitCountry.text)
+
+                            //2024-04-28 新增OP费用录入信息审核通过后无法再进行修改
+                            putExtra("isAuditGM", groundConveyPaymentList[position].isAuditGM)
                         }
                     startActivity(intent)
                 }
@@ -261,6 +264,9 @@ class GroundConveyPaymentListFragment : BaseFragment<FragmentGroupOpPaymentListB
                         putExtra("groupId", groupId)
                         putExtra("paymentId", groundConveyPaymentList[position].id)
                         putExtra("teamName", binding.groupName.text)
+
+                        //2024-04-28 新增OP费用录入详情审核通过后无法再进行修改
+                        putExtra("isAuditGM", groundConveyPaymentList[position].isAuditGM)
                     }
 
                     startActivity(intent)

+ 14 - 2
app/src/main/java/com/pan_american/android/ui/group_visa/visa_payment_insert/AddVisaPaymentActivity.kt

@@ -77,6 +77,9 @@ class AddVisaPaymentActivity : BaseActivity<ActivityAddVisaPaymentBinding>() {
 
     private var updateVisaPaymentRequest = UpdateVisaPaymentRequest()
 
+    //2024-04-28 新增签证费用录入审核通过后无法再修改
+    private var isAuditGM = -1
+
     override fun getViewBinding() = ActivityAddVisaPaymentBinding.inflate(layoutInflater)
 
     override fun onCreate(savedInstanceState: Bundle?) {
@@ -95,6 +98,11 @@ class AddVisaPaymentActivity : BaseActivity<ActivityAddVisaPaymentBinding>() {
             if (fromList) {
                 binding.priceUnit.text = getStringExtra("paymentCurrency")
                 binding.sumUnit.text = getStringExtra("paymentCurrency")
+
+                //2024-04-28 新增签证费用录入审核通过后无法再修改
+                isAuditGM = getIntExtra("isAuditGM", -1)
+            } else {
+                isAuditGM = 0
             }
         }
 
@@ -128,7 +136,7 @@ class AddVisaPaymentActivity : BaseActivity<ActivityAddVisaPaymentBinding>() {
 
             binding.commit.text = resources.getString(R.string.update)
 
-            if (!OASystem.authorization(OASystem.VISA_PAYMENT_INSERT, OASystem.EDIT)) {
+            if (!canBeEdit()) {
                 binding.apply {
 
                     addCustomer.visibility = View.GONE
@@ -775,7 +783,7 @@ class AddVisaPaymentActivity : BaseActivity<ActivityAddVisaPaymentBinding>() {
         val adapter = CardAdapter.Builder<Selector>().apply {
             setData(customerSelectList)
             setLayoutId(R.layout.item_delete_button_selector)
-            setCanDelete(OASystem.authorization(OASystem.VISA_PAYMENT_INSERT, OASystem.EDIT))
+            setCanDelete(canBeEdit())
             addBindView { itemView, data ->
                 itemView.findViewById<TextView>(R.id.left_text).text = data.pinyin
                 itemView.findViewById<TextView>(R.id.right_text).text = String.format(
@@ -1004,4 +1012,8 @@ class AddVisaPaymentActivity : BaseActivity<ActivityAddVisaPaymentBinding>() {
                 }
             })
     }
+
+    private fun canBeEdit(): Boolean {
+        return OASystem.authorization(OASystem.VISA_PAYMENT_INSERT, OASystem.EDIT) and (isAuditGM == 0)
+    }
 }

+ 3 - 0
app/src/main/java/com/pan_american/android/ui/group_visa/visa_payment_insert/VisaPaymentListFragment.kt

@@ -297,6 +297,9 @@ class VisaPaymentListFragment : BaseFragment<FragmentVisaPaymentListBinding>() {
                             putExtra("visitCountry", binding.visitCountry.text)
 
                             putExtra("paymentCurrency", visaPaymentList[position].visaCurrencyStr)
+
+                            //2024-04-28 新增签证费用录入审核通过后无法再修改
+                            putExtra("isAuditGM", visaPaymentList[position].isAuditGM)
                         }
                     startActivity(intent)
                 }

+ 7 - 1
app/src/main/res/layout/footer_ground_convey_payment_detail.xml

@@ -2,8 +2,10 @@
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
+    xmlns:tools="http://schemas.android.com/tools"
     android:background="@color/white"
-    android:orientation="vertical">
+    android:orientation="vertical"
+    tools:viewBindingIgnore="true">
 
     <LinearLayout
         android:layout_width="match_parent"
@@ -31,6 +33,7 @@
             android:inputType="numberDecimal"
             android:selectAllOnFocus="true"
             android:singleLine="true"
+            android:textColor="@color/text_color"
             android:textColorHint="@color/hint_text_color"
             android:textSize="@dimen/text_size_medium" />
 
@@ -74,6 +77,7 @@
             android:importantForAutofill="no"
             android:inputType="text"
             android:singleLine="true"
+            android:textColor="@color/text_color"
             android:textColorHint="@color/hint_text_color"
             android:textSize="@dimen/text_size_medium" />
     </LinearLayout>
@@ -107,6 +111,7 @@
             android:gravity="end"
             android:hint="@string/please_select"
             android:singleLine="true"
+            android:textColor="@color/text_color"
             android:textColorHint="@color/hint_text_color"
             android:textSize="@dimen/text_size_medium" />
     </LinearLayout>
@@ -140,6 +145,7 @@
             android:gravity="end"
             android:hint="@string/please_select"
             android:singleLine="true"
+            android:textColor="@color/text_color"
             android:textColorHint="@color/hint_text_color"
             android:textSize="@dimen/text_size_medium" />
     </LinearLayout>

+ 5 - 3
app/src/main/res/layout/header_ground_convey_payment_detail.xml

@@ -4,7 +4,8 @@
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:background="@color/white"
-    android:orientation="vertical">
+    android:orientation="vertical"
+    tools:viewBindingIgnore="true">
 
     <LinearLayout
         android:layout_width="match_parent"
@@ -52,6 +53,7 @@
             android:layout_marginStart="@dimen/common_padding"
             android:gravity="end"
             android:hint="@string/please_select"
+            android:textColor="@color/text_color"
             android:textColorHint="@color/hint_text_color"
             android:textSize="@dimen/text_size_medium" />
     </LinearLayout>
@@ -97,9 +99,9 @@
                 android:layout_marginStart="@dimen/common_padding"
                 android:gravity="end"
                 android:text="@string/sift"
+                android:textColor="@color/title_background_color"
                 android:textColorHint="@color/hint_text_color"
-                android:textSize="@dimen/text_size_medium"
-                android:textColor="@color/title_background_color"/>
+                android:textSize="@dimen/text_size_medium" />
 
         </LinearLayout>
 

+ 3 - 1
app/src/main/res/layout/item_ground_convey_table.xml

@@ -70,6 +70,7 @@
                     android:inputType="numberDecimal|numberSigned"
                     android:selectAllOnFocus="true"
                     android:singleLine="true"
+                    android:textColor="@color/text_color"
                     android:textColorHint="@color/hint_text_color"
                     android:textSize="@dimen/text_size_medium" />
 
@@ -144,6 +145,7 @@
                     android:inputType="number"
                     android:selectAllOnFocus="true"
                     android:singleLine="true"
+                    android:textColor="@color/text_color"
                     android:textColorHint="@color/hint_text_color"
                     android:textSize="@dimen/text_size_medium" />
 
@@ -172,6 +174,7 @@
                     android:gravity="end"
                     android:hint="@string/please_select"
                     android:singleLine="true"
+                    android:textColor="@color/text_color"
                     android:textColorHint="@color/hint_text_color"
                     android:textSize="@dimen/text_size_medium" />
 
@@ -205,7 +208,6 @@
                 android:layout_marginStart="@dimen/common_padding"
                 android:background="@color/white"
                 android:gravity="end"
-                android:hint="@string/please_input"
                 android:selectAllOnFocus="true"
                 android:singleLine="true"
                 android:textColorHint="@color/hint_text_color"