Browse Source

2024-04-28 修改

新增

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

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

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

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

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

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

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

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

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

修改

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

2. 机票费用录入 部分逻辑优化修改
zhaiy 11 months ago
parent
commit
bdf0961c32
19 changed files with 288 additions and 122 deletions
  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"