Browse Source

2024-06-13 修改

修改

1. 酒店预订 界面重构
zhaiy 11 months ago
parent
commit
65307f0338
29 changed files with 4945 additions and 4132 deletions
  1. 32 7
      app/src/main/java/com/pan_american/android/OASystem.kt
  2. 24 0
      app/src/main/java/com/pan_american/android/data/model/group_hotel/hotel_payment_insert/entity/HotelReservationsContentDetailsView.kt
  3. 4 21
      app/src/main/java/com/pan_american/android/data/model/group_hotel/hotel_payment_insert/entity/UpdateHotelPredetermine.kt
  4. 9 0
      app/src/main/java/com/pan_american/android/data/model/group_hotel/hotel_payment_insert/network/DeleteHotelPredetermineItemRequest.kt
  5. 1 1
      app/src/main/java/com/pan_american/android/data/model/group_management/group_info/network/GroupOperationRequest.kt
  6. 1 1
      app/src/main/java/com/pan_american/android/data/model/group_op/ground_convey_payment_insert/adapter/GroundConveyTableAdapter.kt
  7. 3 2
      app/src/main/java/com/pan_american/android/data/network/APIService.kt
  8. 11 1
      app/src/main/java/com/pan_american/android/ui/group_common/insurance_payment_insert/AddInsurancePaymentActivity.kt
  9. 141 1850
      app/src/main/java/com/pan_american/android/ui/group_hotel/hotel_predetermine/AddHotelPredetermineActivity.kt
  10. 587 0
      app/src/main/java/com/pan_american/android/ui/group_hotel/hotel_predetermine/HotelPredetermineBaseFragment.kt
  11. 3 2
      app/src/main/java/com/pan_american/android/ui/group_hotel/hotel_predetermine/HotelPredetermineListFragment.kt
  12. 1481 0
      app/src/main/java/com/pan_american/android/ui/group_hotel/hotel_predetermine/HotelPredeterminePaymentFragment.kt
  13. 15 0
      app/src/main/java/com/pan_american/android/ui/group_hotel/hotel_predetermine/HotelPredeterminePaymentLayout.kt
  14. 7 7
      app/src/main/java/com/pan_american/android/ui/group_management/group_info/AddGroupInfoActivity.kt
  15. 7 7
      app/src/main/java/com/pan_american/android/ui/group_management/group_info/GroupCustomerDetailFragment.kt
  16. 9 9
      app/src/main/java/com/pan_american/android/ui/group_management/group_info/GroupCustomerListFragment.kt
  17. 2 2
      app/src/main/java/com/pan_american/android/ui/group_management/group_info/GroupInfoActivity.kt
  18. 10 10
      app/src/main/java/com/pan_american/android/ui/group_management/group_info/GroupInfoBaseFragment.kt
  19. 2 2
      app/src/main/java/com/pan_american/android/ui/group_management/group_info/GroupInfoSearchFragment.kt
  20. 3 3
      app/src/main/java/com/pan_american/android/ui/group_op/ground_convey_payment_insert/GroundConveyPaymentDetailActivity.kt
  21. 3 3
      app/src/main/java/com/pan_american/android/ui/resource_management/guide_resource/AddGuideResourceActivity.kt
  22. 0 8
      app/src/main/java/com/pan_american/android/util/CommitButton.kt
  23. 29 0
      app/src/main/java/com/pan_american/android/util/PaymentApplicationLayout.kt
  24. 5 2196
      app/src/main/res/layout/activity_add_hotel_predetermine.xml
  25. 663 0
      app/src/main/res/layout/fragment_hotel_predetermine_base.xml
  26. 665 0
      app/src/main/res/layout/fragment_hotel_predetermine_payment.xml
  27. 642 0
      app/src/main/res/layout/layout_hotel_predetermine_payment.xml
  28. 579 0
      app/src/main/res/layout/layout_payment_application.xml
  29. 7 0
      app/src/main/res/values/strings.xml

+ 32 - 7
app/src/main/java/com/pan_american/android/OASystem.kt

@@ -5,6 +5,7 @@ import android.app.Application
 import android.content.Context
 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.group_hotel.hotel_payment_insert.entity.UpdateHotelPredetermine
 import com.pan_american.android.data.model.group_management.group_info.entity.GroupCustomerInfo
 import com.pan_american.android.data.model.group_management.group_info.network.GroupOperationRequest
 import com.pan_american.android.data.model.login.entity.Authority
@@ -57,31 +58,55 @@ class OASystem : Application() {
         lateinit var province: ArrayList<SiftListItem>
 
         //接团信息,团组类型
-        var groupType = ArrayList<Selector>()
+        var groupInfoGroupType = ArrayList<Selector>()
 
         //接团信息,客户级别
         var groupInfoCustomerLevel = ArrayList<Selector>()
 
         //接团信息,成单人
-        var tradeDirector = ArrayList<Selector>()
+        var groupInfoTradeDirector = ArrayList<Selector>()
 
         //接团信息,接团客户名单
-        var groupCustomerList = ArrayList<GroupCustomerInfo>()
+        var groupInfoGroupCustomerList = ArrayList<GroupCustomerInfo>()
 
         //接团信息,OP提成等级
-        var opPercentageLevel = ArrayList<Selector>()
+        var groupInfoOpPercentageLevel = ArrayList<Selector>()
 
         //接团信息,舱位类型
-        var berthType = ArrayList<Selector>()
+        var groupInfoBerthType = ArrayList<Selector>()
 
         //接团信息,团组操作(增改)request
         lateinit var groupOperationRequest: GroupOperationRequest
 
         //地接费用录入,单位list
-        var unitList = ArrayList<Selector>()
+        var groundConveyUnitList = ArrayList<Selector>()
+
+        //酒店费用录入,客户类型
+        var hotelPredetermineCustomerType = ArrayList<Selector>()
+
+        //酒店费用录入,支付方式
+        var hotelPredeterminePaymentWay = ArrayList<Selector>()
+
+        //酒店费用录入,团组汇率
+        var hotelPredeterminePaymentCurrency = ArrayList<Selector>()
+
+        //酒店费用录入,银行卡
+        var hotelPredetermineBankCard = ArrayList<Selector>()
+
+        //酒店费用录入,预订网站
+        var hotelPredetermineHotelWebSite = ArrayList<Selector>()
+
+        //酒店费用录入,入住类型
+        var hotelPredetermineCheckInType = ArrayList<Selector>()
+
+        //酒店费用录入,客人名单
+        var hotelPredetermineCustomerList = ArrayList<Selector>()
+
+        //酒店费用录入,费用操作(增改)request
+        lateinit var hotelPredetermineRequest: UpdateHotelPredetermine
 
         //导游地接资料,导游地接类型
-        val guideType = listOf(Selector().apply {
+        val guideResourceGuideType = listOf(Selector().apply {
             id = 0
             name = "公司"
         }, Selector().apply {

+ 24 - 0
app/src/main/java/com/pan_american/android/data/model/group_hotel/hotel_payment_insert/entity/HotelReservationsContentDetailsView.kt

@@ -0,0 +1,24 @@
+package com.pan_american.android.data.model.group_hotel.hotel_payment_insert.entity
+
+class HotelReservationsContentDetailsView {
+    var id = 0
+    var diId = 0
+    var hrId = 0
+    var priceType = 0
+    var price = 0.0
+    var currency = 0
+    var rate = 0.0
+    var isOppay = 0
+    var payDId = 72
+    var consumptionPatterns = ""
+    var consumptionDate = ""
+    var ctdId = 74
+    var bankNo = ""
+    var cardholderName = ""
+    var companyBankNo = ""
+    var otherBankName = ""
+    var otherSideNo = ""
+    var otherSideName = ""
+    var payee = ""
+    var orbitalPrivateTransfer = 0
+}

+ 4 - 21
app/src/main/java/com/pan_american/android/data/model/group_hotel/hotel_payment_insert/entity/UpdateHotelPredetermine.kt

@@ -7,6 +7,7 @@ class UpdateHotelPredetermine {
     val portType = 2
     val userId = OASystem.userInfo.userId
     val pageId = OASystem.HOTEL_PREDETERMINE
+
     var id = 0
     var diId = 0
     var gtId = 0
@@ -34,28 +35,10 @@ class UpdateHotelPredetermine {
     var suiteRoomPrice = 0.0
     var otherRoomCount = 0
     var otherRoomPrice = 0.0
-
     var cardPrice = 0.0
-    var isOpPay = 0
-    var breakfastPrice = 0.0
-    var breakfastCurrency = 0
-    var governmentRent = 0.0
-    var governmentRentCurrency = 0
-    var cityTax = 0.0
-    var cityTaxCurrency = 0
+    var cardPriceCurrency = 0
+
+    var contents = ArrayList<HotelReservationsContentDetailsView>()
 
-    var payDId = 0
-    var consumptionPatterns = ""
-    var consumptionDate = ""
-    var payMoney = 0.0
-    var paymentCurrency = -1
-    var bankNo = ""
-    var cardholderName = ""
-    var companyBankNo = ""
-    var otherBankName = ""
-    var otherSideNo = ""
-    var otherSideName = ""
-    var payee = ""
-    var orbitalPrivateTransfer = -1
     var ccpRemark = ""
 }

+ 9 - 0
app/src/main/java/com/pan_american/android/data/model/group_hotel/hotel_payment_insert/network/DeleteHotelPredetermineItemRequest.kt

@@ -0,0 +1,9 @@
+package com.pan_american.android.data.model.group_hotel.hotel_payment_insert.network
+
+import com.pan_american.android.OASystem
+import com.pan_american.android.base.BaseRequest
+
+class DeleteHotelPredetermineItemRequest(val id: Int, val diId: Int): BaseRequest() {
+    val userId = OASystem.userInfo.userId
+    val pageId = OASystem.HOTEL_PREDETERMINE
+}

+ 1 - 1
app/src/main/java/com/pan_american/android/data/model/group_management/group_info/network/GroupOperationRequest.kt

@@ -35,5 +35,5 @@ class GroupOperationRequest: BaseRequest() {
     var opRoyaltyLv = 0
     var opRoyaltyRemark = ""
     var officialneeds = ""
-    var tourClientListInfos = OASystem.groupCustomerList
+    var tourClientListInfos = OASystem.groupInfoGroupCustomerList
 }

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

@@ -151,7 +151,7 @@ class GroundConveyTableAdapter(private val itemList: ArrayList<GroundConveyTable
         holder.priceUnit.text = item.currencyStr
         holder.count.setText(item.count.toString())
 
-        for (checkedItem in OASystem.unitList) {
+        for (checkedItem in OASystem.groundConveyUnitList) {
             if (checkedItem.id == item.units) {
                 holder.unit.text = checkedItem.name
             }

+ 3 - 2
app/src/main/java/com/pan_american/android/data/network/APIService.kt

@@ -55,6 +55,7 @@ import com.pan_american.android.data.model.group_common_modle.insurance_payment_
 import com.pan_american.android.data.model.group_common_modle.insurance_payment_insert.network.InsurancePaymentResourceResponse
 import com.pan_american.android.data.model.group_common_modle.insurance_payment_insert.network.UpdateInsurancePaymentRequest
 import com.pan_american.android.data.model.group_hotel.hotel_payment_insert.entity.UpdateHotelPredetermine
+import com.pan_american.android.data.model.group_hotel.hotel_payment_insert.network.DeleteHotelPredetermineItemRequest
 import com.pan_american.android.data.model.group_hotel.hotel_payment_insert.network.GetHotelPredetermineDetailRequest
 import com.pan_american.android.data.model.group_hotel.hotel_payment_insert.network.GetHotelPredetermineDetailResponse
 import com.pan_american.android.data.model.group_hotel.hotel_payment_insert.network.HotelCostDetailResponse
@@ -566,8 +567,8 @@ interface APIService {
     /**
      * 团组酒店,酒店费用删除
      */
-    @POST("/api/Groups/DelHotelPrice")
-    fun deleteHotelPredetermine(@Body deleteRequest: DeleteRequest): Call<BaseResponse>
+    @POST("/api/Groups/PostHotelReservationsDel")
+    fun deleteHotelPredetermine(@Body deleteHotelPredetermineItemRequest: DeleteHotelPredetermineItemRequest): Call<BaseResponse>
 
     /**
      * 团组酒店,初始化下拉框数据

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

@@ -306,7 +306,17 @@ class AddInsurancePaymentActivity : BaseActivity<ActivityAddInsurancePaymentBind
                     setData(paymentWayList)
                     setLayoutId(R.layout.item_selector)
                     addBindView { itemView, data ->
-                        itemView.findViewById<TextView>(R.id.selector_item_name).text = data.name
+                        itemView.findViewById<TextView>(R.id.selector_item_name).apply {
+                            text = data.name
+
+                            if (data.id == paymentWayId) {
+                                setTextColor(
+                                    ResourcesCompat.getColor(
+                                        resources, R.color.title_background_color, null
+                                    )
+                                )
+                            }
+                        }
                     }
                 }.create()
 

File diff suppressed because it is too large
+ 141 - 1850
app/src/main/java/com/pan_american/android/ui/group_hotel/hotel_predetermine/AddHotelPredetermineActivity.kt


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

@@ -0,0 +1,587 @@
+package com.pan_american.android.ui.group_hotel.hotel_predetermine
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.TextView
+import androidx.core.content.res.ResourcesCompat
+import androidx.recyclerview.widget.LinearLayoutManager
+import com.pan_american.android.OASystem
+import com.pan_american.android.R
+import com.pan_american.android.base.BaseFragment
+import com.pan_american.android.base.CardAdapter
+import com.pan_american.android.base.ListAdapter
+import com.pan_american.android.data.model.common.entity.Selector
+import com.pan_american.android.data.model.group_hotel.hotel_payment_insert.entity.HotelReservationsContentDetailsView
+import com.pan_american.android.databinding.FragmentHotelPredetermineBaseBinding
+import org.greenrobot.eventbus.EventBus
+import java.text.SimpleDateFormat
+import java.util.Calendar
+import java.util.Date
+import java.util.Locale
+
+class HotelPredetermineBaseFragment : BaseFragment<FragmentHotelPredetermineBaseBinding>() {
+
+    private var fromList = false
+
+    private var teamName = ""
+
+    private var tourCode = ""
+
+    private var clientName = ""
+
+    private var visitCountry = ""
+
+    private var canBeEdit = false
+
+    private var groupId = 0
+
+    private var customerTypeId = 0
+
+    private var customerTypeSelect = false
+
+    private var websiteId = 0
+
+    private var websiteSelect = false
+
+    private var customerSelectList = ArrayList<Selector>()
+
+    private var checkInTypeId = 0
+
+    private var checkInTypeSelect = false
+
+    private var days = 0
+
+    override fun getViewBinding(
+        inflater: LayoutInflater,
+        container: ViewGroup?,
+        bundle: Bundle?
+    ) = FragmentHotelPredetermineBaseBinding.inflate(layoutInflater, container, false)
+
+    override fun onStart() {
+        super.onStart()
+
+        requireArguments().apply {
+            fromList = getBoolean("fromList")
+            teamName = getString("teamName").toString()
+            tourCode = getString("tourCode").toString()
+            clientName = getString("clientName").toString()
+            visitCountry = getString("visitCountry").toString()
+            canBeEdit = getBoolean("canBeEdit")
+
+            groupId = getInt("groupId")
+        }
+
+        initViews()
+        initEvents()
+    }
+
+    override fun initViews() {
+        binding.groupName.text = teamName
+        binding.groupNumber.text = tourCode
+        binding.groupCustomer.text = clientName
+        binding.visitCountry.text = visitCountry
+
+        if (fromList) {
+            OASystem.hotelPredetermineRequest.apply {
+                run {
+                    for (item in OASystem.hotelPredetermineCustomerType) {
+                        if (item.id == gtId) {
+                            binding.customerType.text = item.name
+
+                            customerTypeId = item.id
+                            customerTypeSelect = true
+
+                            return@run
+                        }
+                    }
+                }
+
+                binding.checkInCode.text = checkNumber
+
+                run {
+                    for (item in OASystem.hotelPredetermineHotelWebSite) {
+                        if (item.id == reservationsWebsite) {
+                            binding.predetermineWebsite.text = item.name
+
+                            websiteId = item.id
+                            websiteSelect = true
+
+                            return@run
+                        }
+                    }
+                }
+
+                binding.hotelConfirmCode.setText(determineNo)
+
+                binding.locatedCity.setText(city)
+
+                binding.hotelName.setText(hotelName)
+
+                binding.hotelTel.setText(hotelTel)
+
+                binding.hotelLocation.setText(hotelAddress)
+
+                val customerSelectedId = guestName.split(",")
+
+                customerSelectList.clear()
+
+                for (id in customerSelectedId) {
+                    for (item in OASystem.hotelPredetermineCustomerList) {
+                        if (id.matches(Regex("[0-9]*\$"))) {
+                            if (item.id == id.toInt()) {
+                                customerSelectList.add(item)
+                            }
+                        }
+                    }
+                }
+
+                initCustomerList()
+
+                binding.checkInStartTime.text = checkInDate
+
+                binding.checkInEndTime.text = checkOutDate
+
+                days = if(binding.checkInStartTime.text.isNotBlank() && binding.checkInEndTime.text.isNotBlank()) {
+
+                    val startTime = SimpleDateFormat("yyyy-MM-dd", Locale.CHINA).parse(binding.checkInStartTime.text.toString())
+                    val endTime = SimpleDateFormat("yyyy-MM-dd", Locale.CHINA).parse(binding.checkInEndTime.text.toString())
+
+                    getGapCount(startTime!!, endTime!!)
+
+                } else {
+                    0
+                }
+
+                run {
+                    for (item in OASystem.hotelPredetermineCheckInType) {
+                        if (item.id == checkType) {
+                            binding.checkInType.text = item.name
+
+                            checkInTypeId = item.id
+                            checkInTypeSelect = true
+
+                            return@run
+                        }
+                    }
+                }
+
+                binding.roomIntroduction.setText(roomExplanation)
+
+                binding.hotelNotes.setText(hotelRemark)
+            }
+
+            if (!canBeEdit) {
+                binding.apply {
+                    customerType.isEnabled = false
+                    predetermineWebsite.isEnabled = false
+                    hotelConfirmCode.isEnabled = false
+                    locatedCity.isEnabled = false
+                    hotelName.isEnabled = false
+                    hotelTel.isEnabled = false
+                    hotelLocation.isEnabled(false)
+                    addCustomer.visibility = View.GONE
+                    checkInStartTime.isEnabled = false
+                    checkInEndTime.isEnabled = false
+                    checkInType.isEnabled = false
+                    roomIntroduction.isEnabled(false)
+                    hotelNotes.isEnabled(false)
+
+                    save.visibility = View.GONE
+                }
+            }
+        }
+    }
+
+    override fun initEvents() {
+        binding.customerType.setOnClickListener {
+            showSelector {
+                val adapter = ListAdapter.Builder<Selector>().apply {
+                    setLayoutId(R.layout.item_selector)
+                    setData(OASystem.hotelPredetermineCustomerType)
+                    addBindView { itemView, data ->
+                        itemView.findViewById<TextView>(R.id.selector_item_name).apply {
+                            text = data.name
+
+                            if (customerTypeId == data.id) {
+                                setTextColor(
+                                    ResourcesCompat.getColor(
+                                        resources,
+                                        R.color.title_background_color,
+                                        null
+                                    )
+                                )
+                            }
+                        }
+                    }
+                }.create()
+
+                selector.adapter = adapter
+
+                adapter.onRecyclerViewItemClick =
+                    object : ListAdapter.OnRecyclerViewItemClick<Selector> {
+                        override fun onItemClick(position: Int) {
+                            binding.customerType.text = OASystem.hotelPredetermineCustomerType[position].name
+
+                            customerTypeId = OASystem.hotelPredetermineCustomerType[position].id
+                            customerTypeSelect = true
+
+                            popupWindow.dismiss()
+                        }
+                    }
+            }
+        }
+
+        binding.predetermineWebsite.setOnClickListener {
+            showSelector {
+                val adapter = ListAdapter.Builder<Selector>().apply {
+                    setLayoutId(R.layout.item_selector)
+                    setData(OASystem.hotelPredetermineHotelWebSite)
+                    addBindView { itemView, data ->
+                        itemView.findViewById<TextView>(R.id.selector_item_name).apply {
+                            text = data.name
+
+                            if (websiteId == data.id) {
+                                setTextColor(
+                                    ResourcesCompat.getColor(
+                                        resources,
+                                        R.color.title_background_color,
+                                        null
+                                    )
+                                )
+                            }
+                        }
+                    }
+                }.create()
+
+                selector.adapter = adapter
+
+                adapter.onRecyclerViewItemClick =
+                    object : ListAdapter.OnRecyclerViewItemClick<Selector> {
+                        override fun onItemClick(position: Int) {
+                            binding.predetermineWebsite.text = OASystem.hotelPredetermineHotelWebSite[position].name
+
+                            websiteId = OASystem.hotelPredetermineHotelWebSite[position].id
+                            websiteSelect = true
+
+                            popupWindow.dismiss()
+                        }
+                    }
+            }
+        }
+
+        binding.addCustomer.setOnClickListener {
+            showSelector {
+                val adapter = ListAdapter.Builder<Selector>().apply {
+                    setLayoutId(R.layout.item_selector)
+                    setData(OASystem.hotelPredetermineCustomerList)
+                    addBindView { itemView, data ->
+                        itemView.findViewById<TextView>(R.id.selector_item_name).apply {
+                            text = String.format(
+                                resources.getString(R.string.currency_name_code_format),
+                                String.format(
+                                    resources.getString(R.string.with_space_format),
+                                    data.lastName,
+                                    data.firstName
+                                ),
+                                data.pinyin
+                            )
+
+                            for (item in customerSelectList) {
+                                if (data.id == item.id) {
+                                    setTextColor(
+                                        ResourcesCompat.getColor(
+                                            resources, R.color.title_background_color, null
+                                        )
+                                    )
+                                }
+                            }
+                        }
+                    }
+                }.create()
+
+                selector.adapter = adapter
+
+                adapter.onRecyclerViewItemClick =
+                    object : ListAdapter.OnRecyclerViewItemClick<Selector> {
+                        override fun onItemClick(position: Int) {
+
+                            for (item in customerSelectList) {
+                                if (OASystem.hotelPredetermineCustomerList[position].id == item.id) {
+                                    showMessage(resources.getString(R.string.customer_selected))
+                                    popupWindow.dismiss()
+                                    return
+                                }
+                            }
+
+                            customerSelectList.add(OASystem.hotelPredetermineCustomerList[position])
+                            initCustomerList()
+
+                            popupWindow.dismiss()
+                        }
+                    }
+            }
+        }
+
+        binding.checkInStartTime.setOnClickListener {
+            showDatePicker(
+                resources.getString(R.string.check_in_start_select_hint), binding.checkInStartTime
+            ) {}
+        }
+
+        binding.checkInEndTime.setOnClickListener {
+            showDatePicker(
+                resources.getString(R.string.check_in_end_select_hint), binding.checkInEndTime
+            ) {}
+        }
+
+        binding.checkInType.setOnClickListener {
+            showSelector {
+                val adapter = ListAdapter.Builder<Selector>().apply {
+                    setData(OASystem.hotelPredetermineCheckInType)
+                    setLayoutId(R.layout.item_selector)
+                    addBindView { itemView, data ->
+                        itemView.findViewById<TextView>(R.id.selector_item_name).apply {
+                            text = data.name
+
+                            if (checkInTypeId == data.id) {
+                                setTextColor(
+                                    ResourcesCompat.getColor(
+                                        resources,
+                                        R.color.title_background_color,
+                                        null
+                                    )
+                                )
+                            }
+                        }
+                    }
+                }.create()
+
+                selector.adapter = adapter
+
+                adapter.onRecyclerViewItemClick =
+                    object : ListAdapter.OnRecyclerViewItemClick<Selector> {
+                        override fun onItemClick(position: Int) {
+                            binding.checkInType.text = OASystem.hotelPredetermineCheckInType[position].name
+
+                            checkInTypeId = OASystem.hotelPredetermineCheckInType[position].id
+                            checkInTypeSelect = true
+
+                            popupWindow.dismiss()
+                        }
+                    }
+            }
+        }
+
+        binding.save.setOnClickListener {
+
+            if (hotelBaseDataVerify()) {
+
+                OASystem.hotelPredetermineRequest.diId = groupId
+
+                if (!fromList) {
+                    for (i in 1 .. 4) {
+                        val hotelContent = HotelReservationsContentDetailsView()
+
+                        hotelContent.priceType = i
+
+                        OASystem.hotelPredetermineRequest.contents.add(hotelContent)
+                    }
+                }
+
+                EventBus.getDefault().post(OASystem.hotelPredetermineRequest)
+            }
+
+        }
+
+        binding.nextPage.setOnClickListener {
+
+            if (hotelBaseDataVerify()) {
+                days = if(binding.checkInStartTime.text.isNotBlank() && binding.checkInEndTime.text.isNotBlank()) {
+
+                    val startTime = SimpleDateFormat("yyyy-MM-dd", Locale.CHINA).parse(binding.checkInStartTime.text.toString())
+                    val endTime = SimpleDateFormat("yyyy-MM-dd", Locale.CHINA).parse(binding.checkInEndTime.text.toString())
+
+                    getGapCount(startTime!!, endTime!!)
+
+                } else {
+                    0
+                }
+
+                val hotelPredeterminePaymentFragment = HotelPredeterminePaymentFragment()
+
+                val bundle = Bundle().apply {
+                    putBoolean("fromList", fromList)
+                    putBoolean("canBeEdit", canBeEdit)
+                    putInt("days", days)
+                }
+
+                hotelPredeterminePaymentFragment.arguments = bundle
+
+                parentFragmentManager.beginTransaction().setCustomAnimations(
+                    R.anim.slide_right_in,
+                    R.anim.slide_left_out,
+                    R.anim.slide_left_in,
+                    R.anim.slide_right_out
+                ).addToBackStack(null)
+                    .replace(R.id.hotel_predetermine_container, hotelPredeterminePaymentFragment).commit()
+            }
+        }
+    }
+
+    private fun initCustomerList() {
+        val layoutManager = LinearLayoutManager(OASystem.context)
+        binding.customerList.layoutManager = layoutManager
+
+        val adapter = CardAdapter.Builder<Selector>().apply {
+            setData(customerSelectList)
+            setLayoutId(R.layout.item_delete_button_selector)
+            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(
+                    resources.getString(R.string.with_space_format), data.lastName, data.firstName
+                )
+            }
+        }.create()
+
+        binding.customerList.adapter = adapter
+
+        adapter.onRecyclerViewItemClick = object : CardAdapter.OnRecyclerViewItemClick<Selector> {
+            override fun onItemClick(position: Int) {
+
+            }
+
+            override fun onItemDelete(position: Int) {
+                customerSelectList.removeAt(position)
+                binding.customerList.adapter!!.notifyItemRemoved(position)
+                binding.customerList.adapter!!.notifyItemRangeChanged(position, customerSelectList.size)
+            }
+        }
+    }
+
+    private fun getGapCount(startData: Date, endDate: Date): Int {
+        //开始时间
+        val startTime = Calendar.getInstance()
+        startTime.time = startData
+        startTime.set(Calendar.HOUR_OF_DAY, 0)
+        startTime.set(Calendar.MINUTE, 0)
+        startTime.set(Calendar.SECOND, 0)
+        startTime.set(Calendar.MILLISECOND, 0)
+
+        //结束时间
+        val endTime = Calendar.getInstance()
+        endTime.time = endDate
+        endTime.set(Calendar.HOUR_OF_DAY, 0)
+        endTime.set(Calendar.MINUTE, 0)
+        endTime.set(Calendar.SECOND, 0)
+        endTime.set(Calendar.MILLISECOND, 0)
+
+        return (((endTime.time.time - startTime.time.time) / (1000 * 60 * 60 * 24)).toInt())
+    }
+
+    private fun hotelBaseDataVerify(): Boolean {
+
+        when {
+            !customerTypeSelect -> {
+                showMessage(resources.getString(R.string.customer_type_select_hint))
+                return false
+            }
+
+            !websiteSelect -> {
+                showMessage(resources.getString(R.string.website_select_hint))
+                return false
+            }
+
+            binding.hotelConfirmCode.getText().isBlank() -> {
+                showMessage(resources.getString(R.string.hotel_confirm_code_hint))
+                return false
+            }
+
+            binding.locatedCity.text.isNullOrBlank() -> {
+                showMessage(resources.getString(R.string.hotel_located_input_hint))
+                return false
+            }
+
+            binding.hotelName.text.isNullOrBlank() -> {
+                showMessage(resources.getString(R.string.hotel_name_input_hint))
+                return false
+            }
+
+            binding.hotelTel.text.isNullOrBlank() -> {
+                showMessage(resources.getString(R.string.hotel_tel_input_hint))
+                return false
+            }
+
+            binding.hotelLocation.getText().isBlank() -> {
+                showMessage(resources.getString(R.string.hotel_located_input_hint))
+                return false
+            }
+
+            customerSelectList.size == 0 -> {
+                showMessage(resources.getString(R.string.customer_select_hint))
+                return false
+            }
+
+            binding.checkInStartTime.text.isNullOrBlank() -> {
+                showMessage(resources.getString(R.string.check_in_start_select_hint))
+                return false
+            }
+
+            binding.checkInEndTime.text.isNullOrBlank() -> {
+                showMessage(resources.getString(R.string.check_in_end_select_hint))
+                return false
+            }
+
+            !checkInTypeSelect -> {
+                showMessage(resources.getString(R.string.check_in_type_select_hint))
+                return false
+            }
+
+            binding.roomIntroduction.getText().isBlank() -> {
+                showMessage(resources.getString(R.string.room_introduction_hint))
+                return false
+            }
+
+            else -> {
+
+                OASystem.hotelPredetermineRequest.apply {
+                    gtId = customerTypeId
+                    reservationsWebsite = websiteId
+                    determineNo = binding.hotelConfirmCode.getText()
+                    city = binding.locatedCity.text.toString()
+                    hotelName = binding.hotelName.text.toString()
+                    hotelTel = binding.hotelTel.text.toString()
+                    hotelAddress = binding.hotelLocation.getText()
+
+                    var i = 0
+                    var idList = ""
+                    while (i < customerSelectList.size) {
+
+                        idList += customerSelectList[i].id
+                        i += 1
+
+                        if (i < customerSelectList.size) {
+                            idList += ","
+                        }
+                    }
+
+                    guestName = idList
+
+                    checkInDate = binding.checkInStartTime.text.toString()
+
+                    checkOutDate = binding.checkInEndTime.text.toString()
+
+                    checkType = checkInTypeId
+
+                    roomExplanation = binding.roomIntroduction.getText()
+
+                    hotelRemark = binding.hotelNotes.getText()
+                }
+
+                return true
+            }
+        }
+    }
+}

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

@@ -14,8 +14,8 @@ import com.pan_american.android.base.BaseFragment
 import com.pan_american.android.base.BaseResponse
 import com.pan_american.android.base.CardAdapter
 import com.pan_american.android.base.CustomAlertDialog
-import com.pan_american.android.data.model.common.network.DeleteRequest
 import com.pan_american.android.data.model.group_hotel.hotel_payment_insert.entity.HotelPredetermineListItem
+import com.pan_american.android.data.model.group_hotel.hotel_payment_insert.network.DeleteHotelPredetermineItemRequest
 import com.pan_american.android.data.model.group_hotel.hotel_payment_insert.network.HotelPredetermineListRequest
 import com.pan_american.android.data.model.group_hotel.hotel_payment_insert.network.HotelPredetermineListResponse
 import com.pan_american.android.data.network.APIService
@@ -270,7 +270,8 @@ class HotelPredetermineListFragment : BaseFragment<FragmentHotelPredetermineList
     }
 
     private fun deleteHotelPredetermineItem(position: Int) {
-        apiService.deleteHotelPredetermine(DeleteRequest(hotelPredetermineList[position].id))
+
+        apiService.deleteHotelPredetermine(DeleteHotelPredetermineItemRequest(hotelPredetermineList[position].id, groupId))
             .enqueue(object : Callback<BaseResponse> {
                 override fun onResponse(
                     call: Call<BaseResponse>, response: Response<BaseResponse>

File diff suppressed because it is too large
+ 1481 - 0
app/src/main/java/com/pan_american/android/ui/group_hotel/hotel_predetermine/HotelPredeterminePaymentFragment.kt


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

@@ -0,0 +1,15 @@
+package com.pan_american.android.ui.group_hotel.hotel_predetermine
+
+import android.content.Context
+import android.util.AttributeSet
+import android.view.LayoutInflater
+import android.widget.LinearLayout
+import com.pan_american.android.R
+
+class HotelPredeterminePaymentLayout(context: Context, attrs: AttributeSet?) : LinearLayout(context, attrs) {
+
+    init {
+        LayoutInflater.from(context).inflate(R.layout.layout_hotel_predetermine_payment, this)
+    }
+
+}

+ 7 - 7
app/src/main/java/com/pan_american/android/ui/group_management/group_info/AddGroupInfoActivity.kt

@@ -78,7 +78,7 @@ class AddGroupInfoActivity : BaseActivity<ActivityAddGroupInfoBinding>() {
         }
 
         OASystem.groupOperationRequest = GroupOperationRequest()
-        OASystem.groupCustomerList.clear()
+        OASystem.groupInfoGroupCustomerList.clear()
 
         if (fromList) {
             getGroupInfoDetail()
@@ -167,7 +167,7 @@ class AddGroupInfoActivity : BaseActivity<ActivityAddGroupInfoBinding>() {
 
                     if (selectorResponse != null) {
                         if (selectorResponse.code == 200) {
-                            OASystem.opPercentageLevel = selectorResponse.data
+                            OASystem.groupInfoOpPercentageLevel = selectorResponse.data
 
                             getBerthType()
 
@@ -193,7 +193,7 @@ class AddGroupInfoActivity : BaseActivity<ActivityAddGroupInfoBinding>() {
 
                     if (selectorResponse != null) {
                         if (selectorResponse.code == 200) {
-                            OASystem.berthType = selectorResponse.data
+                            OASystem.groupInfoBerthType = selectorResponse.data
 
                             supportFragmentManager.beginTransaction().addToBackStack(null)
                                 .replace(binding.addGroupInfoContainer.id, GroupInfoBaseFragment())
@@ -225,7 +225,7 @@ class AddGroupInfoActivity : BaseActivity<ActivityAddGroupInfoBinding>() {
 
                             OASystem.groupOperationRequest = detailResponse.data
 
-                            OASystem.groupCustomerList =
+                            OASystem.groupInfoGroupCustomerList =
                                 OASystem.groupOperationRequest.tourClientListInfos
 
                             OASystem.groupOperationRequest.userId = OASystem.userInfo.userId
@@ -351,10 +351,10 @@ class AddGroupInfoActivity : BaseActivity<ActivityAddGroupInfoBinding>() {
                             }
 
                             for (item in listResponse.data) {
-                                OASystem.groupCustomerList.add(item)
+                                OASystem.groupInfoGroupCustomerList.add(item)
                             }
 
-                            EventBus.getDefault().post(OASystem.groupCustomerList)
+                            EventBus.getDefault().post(OASystem.groupInfoGroupCustomerList)
 
                         } else {
                             showMessage(listResponse.msg)
@@ -388,7 +388,7 @@ class AddGroupInfoActivity : BaseActivity<ActivityAddGroupInfoBinding>() {
 
                         finish()
 
-                        OASystem.groupCustomerList.clear()
+                        OASystem.groupInfoGroupCustomerList.clear()
 
                     } else {
                         showMessage(operateResponse.msg)

+ 7 - 7
app/src/main/java/com/pan_american/android/ui/group_management/group_info/GroupCustomerDetailFragment.kt

@@ -43,7 +43,7 @@ class GroupCustomerDetailFragment : BaseFragment<FragmentGroupCustomerDetailBind
         }
 
         if (fromList) {
-            groupCustomerInfo = OASystem.groupCustomerList[position]
+            groupCustomerInfo = OASystem.groupInfoGroupCustomerList[position]
         }
 
         initViews()
@@ -82,7 +82,7 @@ class GroupCustomerDetailFragment : BaseFragment<FragmentGroupCustomerDetailBind
             binding.idCard.setText(groupCustomerInfo.idCardNo)
             binding.customerBirthday.text = groupCustomerInfo.birthDay
 
-            for (item in OASystem.berthType) {
+            for (item in OASystem.groupInfoBerthType) {
                 if (item.id == groupCustomerInfo.shippingSpaceTypeId) {
                     binding.berthType.text = item.name
                 }
@@ -98,7 +98,7 @@ class GroupCustomerDetailFragment : BaseFragment<FragmentGroupCustomerDetailBind
             binding.commit.text = resources.getString(R.string.add)
 
             //默认经济舱
-            for (item in OASystem.berthType) {
+            for (item in OASystem.groupInfoBerthType) {
                 if (item.id == groupCustomerInfo.shippingSpaceTypeId) {
                     binding.berthType.text = item.name
                 }
@@ -221,7 +221,7 @@ class GroupCustomerDetailFragment : BaseFragment<FragmentGroupCustomerDetailBind
         binding.berthType.setOnClickListener {
             showSelector {
                 val adapter = ListAdapter.Builder<Selector>().apply {
-                    setData(OASystem.berthType)
+                    setData(OASystem.groupInfoBerthType)
                     setLayoutId(R.layout.item_selector)
                     addBindView { itemView, data ->
                         itemView.findViewById<TextView>(R.id.selector_item_name).text = data.name
@@ -233,7 +233,7 @@ class GroupCustomerDetailFragment : BaseFragment<FragmentGroupCustomerDetailBind
                 adapter.onRecyclerViewItemClick =
                     object : ListAdapter.OnRecyclerViewItemClick<Selector> {
                         override fun onItemClick(position: Int) {
-                            OASystem.berthType[position].apply {
+                            OASystem.groupInfoBerthType[position].apply {
                                 binding.berthType.text = name
 
                                 groupCustomerInfo.shippingSpaceTypeId = id
@@ -247,7 +247,7 @@ class GroupCustomerDetailFragment : BaseFragment<FragmentGroupCustomerDetailBind
 
         binding.commit.setOnClickListener {
             if (fromList) {
-                OASystem.groupCustomerList[position].apply {
+                OASystem.groupInfoGroupCustomerList[position].apply {
                     lastName = binding.lastName.text.toString()
                     firstName = binding.firstName.text.toString()
                     pinyin = binding.nameSpell.text.toString()
@@ -339,7 +339,7 @@ class GroupCustomerDetailFragment : BaseFragment<FragmentGroupCustomerDetailBind
                     remark = binding.notes.getText()
                 }
 
-                OASystem.groupCustomerList.add(groupCustomerInfo)
+                OASystem.groupInfoGroupCustomerList.add(groupCustomerInfo)
 
                 showMessage(resources.getString(R.string.insert_success))
             }

+ 9 - 9
app/src/main/java/com/pan_american/android/ui/group_management/group_info/GroupCustomerListFragment.kt

@@ -47,7 +47,7 @@ class GroupCustomerListFragment : BaseFragment<FragmentGroupCustomerListBinding>
 
     override fun initViews() {
 
-        initList(OASystem.groupCustomerList)
+        initList(OASystem.groupInfoGroupCustomerList)
 
         if (!OASystem.authorization(OASystem.GROUP_CLIENT_LIST, OASystem.EDIT)) {
             binding.apply {
@@ -89,7 +89,7 @@ class GroupCustomerListFragment : BaseFragment<FragmentGroupCustomerListBinding>
 
         binding.reset.setOnClickListener {
 
-            if (OASystem.groupCustomerList.size == 0) {
+            if (OASystem.groupInfoGroupCustomerList.size == 0) {
                 return@setOnClickListener
             }
 
@@ -100,15 +100,15 @@ class GroupCustomerListFragment : BaseFragment<FragmentGroupCustomerListBinding>
                     dialog.dismiss()
                 }
                 setPositiveButtonAndListener(resources.getString(R.string.confirm)) { _, _ ->
-                    OASystem.groupCustomerList.clear()
-                    initList(OASystem.groupCustomerList)
+                    OASystem.groupInfoGroupCustomerList.clear()
+                    initList(OASystem.groupInfoGroupCustomerList)
                 }
             }.show()
         }
 
         binding.nextPage.setOnClickListener {
 
-            for ((i, item) in OASystem.groupCustomerList.withIndex()) {
+            for ((i, item) in OASystem.groupInfoGroupCustomerList.withIndex()) {
                 if (item.companyFullName == resources.getString(R.string.no_info) || item.companyFullName.isBlank()) {
                     showMessage(String.format(resources.getString(R.string.client_company_hint), i + 1))
                     return@setOnClickListener
@@ -176,7 +176,7 @@ class GroupCustomerListFragment : BaseFragment<FragmentGroupCustomerListBinding>
                     }
                 }
 
-                for (item in OASystem.berthType) {
+                for (item in OASystem.groupInfoBerthType) {
                     if (item.id == data.shippingSpaceTypeId) {
                         itemView.findViewById<TextView>(R.id.berth_name).text = item.name
                     }
@@ -218,18 +218,18 @@ class GroupCustomerListFragment : BaseFragment<FragmentGroupCustomerListBinding>
                         setMessage(
                             String.format(
                                 resources.getString(R.string.delete_alert_text),
-                                OASystem.groupCustomerList[position].lastName + OASystem.groupCustomerList[position].firstName
+                                OASystem.groupInfoGroupCustomerList[position].lastName + OASystem.groupInfoGroupCustomerList[position].firstName
                             )
                         )
                         setNegativeButtonAndListener(resources.getString(R.string.cancel)) { dialog, _ ->
                             dialog.dismiss()
                         }
                         setPositiveButtonAndListener(resources.getString(R.string.confirm)) { _, _ ->
-                            OASystem.groupCustomerList.removeAt(position)
+                            OASystem.groupInfoGroupCustomerList.removeAt(position)
 
                             adapter.notifyItemRemoved(position)
                             adapter.notifyItemRangeChanged(
-                                position, OASystem.groupCustomerList.size
+                                position, OASystem.groupInfoGroupCustomerList.size
                             )
                         }
                         setCancelable(false)

+ 2 - 2
app/src/main/java/com/pan_american/android/ui/group_management/group_info/GroupInfoActivity.kt

@@ -67,11 +67,11 @@ class GroupInfoActivity : BaseActivity<ActivityGroupInfoBinding>() {
                     if (baseDataResponse != null) {
                         if (baseDataResponse.code == 200) {
 
-                            OASystem.groupType = baseDataResponse.data.teamTypeData
+                            OASystem.groupInfoGroupType = baseDataResponse.data.teamTypeData
 
                             OASystem.groupInfoCustomerLevel = baseDataResponse.data.teamLevData
 
-                            OASystem.tradeDirector = baseDataResponse.data.userData
+                            OASystem.groupInfoTradeDirector = baseDataResponse.data.userData
 
                             supportFragmentManager.beginTransaction().addToBackStack(null).replace(
                                 binding.groupInformationContainer.id, GroupInfoSearchFragment()

+ 10 - 10
app/src/main/java/com/pan_american/android/ui/group_management/group_info/GroupInfoBaseFragment.kt

@@ -40,7 +40,7 @@ class GroupInfoBaseFragment : BaseFragment<FragmentGroupInfoBaseBinding>() {
 
             salesQuotation.text = OASystem.groupOperationRequest.salesQuoteNo
 
-            for (item in OASystem.tradeDirector) {
+            for (item in OASystem.groupInfoTradeDirector) {
                 if (OASystem.groupOperationRequest.jietuanOperator == item.id) {
                     groupTradeDirector.text = item.cnName
                 }
@@ -52,7 +52,7 @@ class GroupInfoBaseFragment : BaseFragment<FragmentGroupInfoBaseBinding>() {
                 }
             }
 
-            for (item in OASystem.groupType) {
+            for (item in OASystem.groupInfoGroupType) {
                 if (OASystem.groupOperationRequest.teamDid == item.id) {
                     groupType.text = item.name
                 }
@@ -69,7 +69,7 @@ class GroupInfoBaseFragment : BaseFragment<FragmentGroupInfoBaseBinding>() {
             visitDaysBefore.setText(OASystem.groupOperationRequest.payDay.toString())
             prePayment.setText(OASystem.groupOperationRequest.paymentMoney.toString())
 
-            for (item in OASystem.opPercentageLevel) {
+            for (item in OASystem.groupInfoOpPercentageLevel) {
                 if (OASystem.groupOperationRequest.opRoyaltyLv == item.id) {
                     opPercentageLevel.text = item.name
 
@@ -111,7 +111,7 @@ class GroupInfoBaseFragment : BaseFragment<FragmentGroupInfoBaseBinding>() {
         }
 
         if (OASystem.groupOperationRequest.status == 2) {
-            for (item in OASystem.opPercentageLevel) {
+            for (item in OASystem.groupInfoOpPercentageLevel) {
                 if (item.id == OASystem.groupOperationRequest.opRoyaltyLv) {
                     opPercentageSubLevel = item.remark.split("&")
                 }
@@ -126,7 +126,7 @@ class GroupInfoBaseFragment : BaseFragment<FragmentGroupInfoBaseBinding>() {
         binding.groupTradeDirector.setOnClickListener {
             showSelector {
                 val adapter = ListAdapter.Builder<Selector>().apply {
-                    setData(OASystem.tradeDirector)
+                    setData(OASystem.groupInfoTradeDirector)
                     setLayoutId(R.layout.item_selector)
                     addBindView { itemView, data ->
                         itemView.findViewById<TextView>(R.id.selector_item_name).apply {
@@ -146,7 +146,7 @@ class GroupInfoBaseFragment : BaseFragment<FragmentGroupInfoBaseBinding>() {
                 adapter.onRecyclerViewItemClick =
                     object : ListAdapter.OnRecyclerViewItemClick<Selector> {
                         override fun onItemClick(position: Int) {
-                            OASystem.tradeDirector[position].apply {
+                            OASystem.groupInfoTradeDirector[position].apply {
                                 binding.groupTradeDirector.text = cnName
                                 OASystem.groupOperationRequest.jietuanOperator = id
                             }
@@ -194,7 +194,7 @@ class GroupInfoBaseFragment : BaseFragment<FragmentGroupInfoBaseBinding>() {
         binding.groupType.setOnClickListener {
             showSelector {
                 val adapter = ListAdapter.Builder<Selector>().apply {
-                    setData(OASystem.groupType)
+                    setData(OASystem.groupInfoGroupType)
                     setLayoutId(R.layout.item_selector)
                     addBindView { itemView, data ->
                         itemView.findViewById<TextView>(R.id.selector_item_name).apply {
@@ -214,7 +214,7 @@ class GroupInfoBaseFragment : BaseFragment<FragmentGroupInfoBaseBinding>() {
                 adapter.onRecyclerViewItemClick =
                     object : ListAdapter.OnRecyclerViewItemClick<Selector> {
                         override fun onItemClick(position: Int) {
-                            OASystem.groupType[position].apply {
+                            OASystem.groupInfoGroupType[position].apply {
                                 binding.groupType.text = name
                                 OASystem.groupOperationRequest.teamDid = id
                             }
@@ -278,7 +278,7 @@ class GroupInfoBaseFragment : BaseFragment<FragmentGroupInfoBaseBinding>() {
         binding.opPercentageLevel.setOnClickListener {
             showSelector {
                 val adapter = ListAdapter.Builder<Selector>().apply {
-                    setData(OASystem.opPercentageLevel)
+                    setData(OASystem.groupInfoOpPercentageLevel)
                     setLayoutId(R.layout.item_selector)
                     addBindView { itemView, data ->
                         itemView.findViewById<TextView>(R.id.selector_item_name).apply {
@@ -298,7 +298,7 @@ class GroupInfoBaseFragment : BaseFragment<FragmentGroupInfoBaseBinding>() {
                 adapter.onRecyclerViewItemClick =
                     object : ListAdapter.OnRecyclerViewItemClick<Selector> {
                         override fun onItemClick(position: Int) {
-                            OASystem.opPercentageLevel[position].apply {
+                            OASystem.groupInfoOpPercentageLevel[position].apply {
                                 binding.opPercentageLevel.text = name
 
                                 opPercentageSubLevel = remark.split("&")

+ 2 - 2
app/src/main/java/com/pan_american/android/ui/group_management/group_info/GroupInfoSearchFragment.kt

@@ -46,7 +46,7 @@ class GroupInfoSearchFragment : BaseFragment<FragmentGroupInfoSearchBinding>() {
             name = resources.getString(R.string.all)
         })
 
-        for (item in OASystem.groupType) {
+        for (item in OASystem.groupInfoGroupType) {
             groupTypeList.add(item)
         }
     }
@@ -75,7 +75,7 @@ class GroupInfoSearchFragment : BaseFragment<FragmentGroupInfoSearchBinding>() {
         if (inStack) {
 
             if (groupTypeId != 0) {
-                for (item in OASystem.groupType) {
+                for (item in OASystem.groupInfoGroupType) {
                     if (item.id == groupTypeId) {
                         binding.groupType.text = item.name
                     }

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

@@ -292,7 +292,7 @@ class GroundConveyPaymentDetailActivity : BaseActivity<ActivityGroundConveyPayme
                                 carTouristGuides.add(item)
                             }
 
-                            OASystem.unitList = resourceResponse.data.ssdv
+                            OASystem.groundConveyUnitList = resourceResponse.data.ssdv
 
                             for (item in resourceResponse.data.checkedItemId) {
                                 if (!checkedItemId.contains(item)) {
@@ -633,7 +633,7 @@ class GroundConveyPaymentDetailActivity : BaseActivity<ActivityGroundConveyPayme
                 override fun onUnitClick(itemPosition: Int) {
                     showSelector {
                         val unitAdapter = ListAdapter.Builder<Selector>().apply {
-                            setData(OASystem.unitList)
+                            setData(OASystem.groundConveyUnitList)
                             setLayoutId(R.layout.item_selector)
                             addBindView { itemView, data ->
                                 itemView.findViewById<TextView>(R.id.selector_item_name).text = data.name
@@ -644,7 +644,7 @@ class GroundConveyPaymentDetailActivity : BaseActivity<ActivityGroundConveyPayme
 
                         unitAdapter.onRecyclerViewItemClick = object : ListAdapter.OnRecyclerViewItemClick<Selector> {
                             override fun onItemClick(position: Int) {
-                                OASystem.unitList[position].apply {
+                                OASystem.groundConveyUnitList[position].apply {
 
                                     for (item in carTouristGuides) {
                                         if (showItemList[position].id == item.id) {

+ 3 - 3
app/src/main/java/com/pan_american/android/ui/resource_management/guide_resource/AddGuideResourceActivity.kt

@@ -136,7 +136,7 @@ class AddGuideResourceActivity : BaseActivity<ActivityAddGuideResourceBinding>()
         binding.guideType.setOnClickListener {
             showSelector {
                 val adapter = ListAdapter.Builder<Selector>().apply {
-                    setData(OASystem.guideType)
+                    setData(OASystem.guideResourceGuideType)
                     setLayoutId(R.layout.item_selector)
                     addBindView { itemView, data ->
                         itemView.findViewById<TextView>(R.id.selector_item_name).apply {
@@ -157,7 +157,7 @@ class AddGuideResourceActivity : BaseActivity<ActivityAddGuideResourceBinding>()
                     object : ListAdapter.OnRecyclerViewItemClick<Selector> {
                         override fun onItemClick(position: Int) {
 
-                            OASystem.guideType[position].apply {
+                            OASystem.guideResourceGuideType[position].apply {
                                 binding.guideType.text = name
                                 guideTypeId = id
                             }
@@ -262,7 +262,7 @@ class AddGuideResourceActivity : BaseActivity<ActivityAddGuideResourceBinding>()
                         guideResource = resourceDetailResponse.data
 
                         binding.apply {
-                            for (item in OASystem.guideType) {
+                            for (item in OASystem.guideResourceGuideType) {
                                 if (item.id == guideResource.staffType) {
                                     guideType.text = item.name
                                     guideTypeId = item.id

+ 0 - 8
app/src/main/java/com/pan_american/android/util/CommitButton.kt

@@ -32,14 +32,6 @@ class CommitButton(context: Context, attrs: AttributeSet?) : LinearLayout(contex
         commitText.text = text
     }
 
-//    fun setTextSize(textSize: Int) {
-//        commitText.setTextSize(TypedValue.COMPLEX_UNIT_SP, textSize.toFloat())
-//    }
-//
-//    fun setTextStyle(style: Typeface) {
-//        commitText.typeface = style
-//    }
-
     fun setButtonStatus(type: Int) {
         when(type) {
             1 -> {

+ 29 - 0
app/src/main/java/com/pan_american/android/util/PaymentApplicationLayout.kt

@@ -0,0 +1,29 @@
+package com.pan_american.android.util
+
+import android.content.Context
+import android.util.AttributeSet
+import android.view.LayoutInflater
+import android.view.View
+import android.widget.LinearLayout
+import com.pan_american.android.R
+
+class PaymentApplicationLayout(context: Context, attrs: AttributeSet?) : LinearLayout(context, attrs) {
+
+    private val view: View
+
+    private val swipe: LinearLayout
+
+    private val transfer: LinearLayout
+
+    private val remit: LinearLayout
+
+    init {
+
+        LayoutInflater.from(context).inflate(R.layout.layout_payment_application, this)
+
+        view = LayoutInflater.from(context).inflate(R.layout.layout_payment_application, this)
+        swipe = view.findViewById(R.id.swipe)
+        transfer = view.findViewById(R.id.transfer)
+        remit = view.findViewById(R.id.remit)
+    }
+}

File diff suppressed because it is too large
+ 5 - 2196
app/src/main/res/layout/activity_add_hotel_predetermine.xml


+ 663 - 0
app/src/main/res/layout/fragment_hotel_predetermine_base.xml

@@ -0,0 +1,663 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/white"
+    android:orientation="vertical">
+
+    <ScrollView
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_margin="@dimen/common_padding"
+        android:scrollbars="none">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical">
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/common_padding_huge"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:orientation="horizontal">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center"
+                    android:text="@string/group_name"
+                    android:textSize="@dimen/text_size_medium" />
+
+                <TextView
+                    android:id="@+id/group_name"
+                    android:layout_width="0dp"
+                    android:layout_height="match_parent"
+                    android:layout_marginStart="@dimen/common_padding"
+                    android:layout_weight="1"
+                    android:background="@color/white"
+                    android:gravity="end"
+                    android:singleLine="true"
+                    android:textSize="@dimen/text_size_medium" />
+            </LinearLayout>
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/line"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:background="@color/line_color" />
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:orientation="horizontal">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center"
+                    android:text="@string/group_number"
+                    android:textSize="@dimen/text_size_medium" />
+
+                <TextView
+                    android:id="@+id/group_number"
+                    android:layout_width="0dp"
+                    android:layout_height="match_parent"
+                    android:layout_marginStart="@dimen/common_padding"
+                    android:layout_weight="1"
+                    android:background="@color/white"
+                    android:gravity="end"
+                    android:singleLine="true"
+                    android:textSize="@dimen/text_size_medium" />
+            </LinearLayout>
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/line"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:background="@color/line_color" />
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:orientation="horizontal">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center"
+                    android:text="@string/group_customer"
+                    android:textSize="@dimen/text_size_medium" />
+
+                <TextView
+                    android:id="@+id/group_customer"
+                    android:layout_width="0dp"
+                    android:layout_height="match_parent"
+                    android:layout_marginStart="@dimen/common_padding"
+                    android:layout_weight="1"
+                    android:background="@color/white"
+                    android:gravity="end"
+                    android:singleLine="true"
+                    android:textSize="@dimen/text_size_medium" />
+            </LinearLayout>
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/line"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:background="@color/line_color" />
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:orientation="horizontal">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center"
+                    android:text="@string/visit_country"
+                    android:textSize="@dimen/text_size_medium" />
+
+                <TextView
+                    android:id="@+id/visit_country"
+                    android:layout_width="0dp"
+                    android:layout_height="match_parent"
+                    android:layout_marginStart="@dimen/common_padding"
+                    android:layout_weight="1"
+                    android:background="@color/white"
+                    android:gravity="end"
+                    android:singleLine="true"
+                    android:textSize="@dimen/text_size_medium" />
+            </LinearLayout>
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/line"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:background="@color/line_color" />
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:orientation="horizontal">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center"
+                    android:text="@string/customer_type"
+                    android:textSize="@dimen/text_size_medium" />
+
+                <TextView
+                    android:id="@+id/customer_type"
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="@dimen/common_padding"
+                    android:layout_weight="1"
+                    android:background="@color/white"
+                    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>
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/line"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:background="@color/line_color" />
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:orientation="horizontal">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center"
+                    android:text="@string/check_in_ticket_number"
+                    android:textSize="@dimen/text_size_medium" />
+
+                <TextView
+                    android:id="@+id/check_in_code"
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="@dimen/common_padding"
+                    android:layout_weight="1"
+                    android:background="@color/white"
+                    android:gravity="end"
+                    android:hint="@string/wait_to_create"
+                    android:singleLine="true"
+                    android:textColorHint="@color/hint_text_color"
+                    android:textSize="@dimen/text_size_medium" />
+            </LinearLayout>
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/line"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:background="@color/line_color" />
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:orientation="horizontal">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center"
+                    android:text="@string/predetermine_website"
+                    android:textSize="@dimen/text_size_medium" />
+
+                <TextView
+                    android:id="@+id/predetermine_website"
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="@dimen/common_padding"
+                    android:layout_weight="1"
+                    android:background="@color/white"
+                    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>
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/line"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:background="@color/line_color" />
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:orientation="vertical">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/hotel_confirm_code"
+                    android:textSize="@dimen/text_size_medium" />
+
+                <com.pan_american.android.util.ScrollEditText
+                    android:id="@+id/hotel_confirm_code"
+                    android:layout_width="match_parent"
+                    android:layout_height="60dp"
+                    android:layout_marginTop="@dimen/common_padding" />
+            </LinearLayout>
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/line"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:background="@color/line_color" />
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:orientation="horizontal">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center"
+                    android:text="@string/located_city"
+                    android:textSize="@dimen/text_size_medium" />
+
+                <EditText
+                    android:id="@+id/located_city"
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="@dimen/common_padding"
+                    android:layout_weight="1"
+                    android:background="@color/white"
+                    android:gravity="end"
+                    android:hint="@string/please_input"
+                    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>
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/line"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:background="@color/line_color" />
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:orientation="horizontal">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center"
+                    android:text="@string/hotel_name"
+                    android:textSize="@dimen/text_size_medium" />
+
+                <EditText
+                    android:id="@+id/hotel_name"
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="@dimen/common_padding"
+                    android:layout_weight="1"
+                    android:background="@color/white"
+                    android:gravity="end"
+                    android:hint="@string/please_input"
+                    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>
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/line"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:background="@color/line_color" />
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:orientation="horizontal">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center"
+                    android:text="@string/hotel_tel"
+                    android:textSize="@dimen/text_size_medium" />
+
+                <EditText
+                    android:id="@+id/hotel_tel"
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="@dimen/common_padding"
+                    android:layout_weight="1"
+                    android:background="@color/white"
+                    android:gravity="end"
+                    android:hint="@string/please_input"
+                    android:importantForAutofill="no"
+                    android:inputType="phone"
+                    android:singleLine="true"
+                    android:textColor="@color/text_color"
+                    android:textColorHint="@color/hint_text_color"
+                    android:textSize="@dimen/text_size_medium" />
+            </LinearLayout>
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/line"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:background="@color/line_color" />
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:orientation="vertical">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="start"
+                    android:text="@string/hotel_location"
+                    android:textSize="@dimen/text_size_medium" />
+
+                <com.pan_american.android.util.ScrollEditText
+                    android:id="@+id/hotel_location"
+                    android:layout_width="match_parent"
+                    android:layout_height="60dp"
+                    android:layout_marginTop="@dimen/common_padding" />
+
+            </LinearLayout>
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/line"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:background="@color/line_color" />
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:orientation="horizontal">
+
+                <TextView
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1"
+                    android:text="@string/customer_name"
+                    android:textSize="@dimen/text_size_medium" />
+
+                <TextView
+                    android:id="@+id/add_customer"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="@dimen/common_padding"
+                    android:background="@color/white"
+                    android:gravity="end"
+                    android:singleLine="true"
+                    android:text="@string/add"
+                    android:textColor="@color/text_color_blue"
+                    android:textSize="@dimen/text_size_medium"
+                    android:textStyle="bold" />
+            </LinearLayout>
+
+            <androidx.recyclerview.widget.RecyclerView
+                android:id="@+id/customer_list"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/common_padding" />
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/line"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:background="@color/line_color" />
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:orientation="horizontal">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center"
+                    android:text="@string/check_in_start_time"
+                    android:textSize="@dimen/text_size_medium" />
+
+                <TextView
+                    android:id="@+id/check_in_start_time"
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="@dimen/common_padding"
+                    android:layout_weight="1"
+                    android:background="@color/white"
+                    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>
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/line"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:background="@color/line_color" />
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:orientation="horizontal">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center"
+                    android:text="@string/check_in_end_time"
+                    android:textSize="@dimen/text_size_medium" />
+
+                <TextView
+                    android:id="@+id/check_in_end_time"
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="@dimen/common_padding"
+                    android:layout_weight="1"
+                    android:background="@color/white"
+                    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>
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/line"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:background="@color/line_color" />
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:orientation="horizontal">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="center"
+                    android:text="@string/check_in_type"
+                    android:textSize="@dimen/text_size_medium" />
+
+                <TextView
+                    android:id="@+id/check_in_type"
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_marginStart="@dimen/common_padding"
+                    android:layout_weight="1"
+                    android:background="@color/white"
+                    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>
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/line"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:background="@color/line_color" />
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:orientation="vertical">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="start"
+                    android:text="@string/room_introduction"
+                    android:textSize="@dimen/text_size_medium" />
+
+                <com.pan_american.android.util.ScrollEditText
+                    android:id="@+id/room_introduction"
+                    android:layout_width="match_parent"
+                    android:layout_height="120dp"
+                    android:layout_marginTop="@dimen/common_padding" />
+
+            </LinearLayout>
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/line"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:background="@color/line_color" />
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding_huge"
+                android:orientation="vertical">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_gravity="start"
+                    android:text="@string/notes"
+                    android:textSize="@dimen/text_size_medium" />
+
+                <com.pan_american.android.util.ScrollEditText
+                    android:id="@+id/hotel_notes"
+                    android:layout_width="match_parent"
+                    android:layout_height="120dp"
+                    android:layout_marginTop="@dimen/common_padding" />
+
+            </LinearLayout>
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/button_height"
+                android:layout_marginTop="@dimen/common_padding_huge"
+                android:layout_marginBottom="50dp"
+                android:orientation="horizontal">
+
+                <TextView
+                    android:id="@+id/save"
+                    android:layout_width="0dp"
+                    android:layout_height="@dimen/button_height"
+                    android:layout_marginEnd="@dimen/common_padding_heavy"
+                    android:layout_weight="1"
+                    android:background="@drawable/shape_corner_solid_blue"
+                    android:gravity="center"
+                    android:text="@string/save"
+                    android:textColor="@color/white"
+                    android:textSize="@dimen/text_size_large"
+                    android:textStyle="bold" />
+
+                <TextView
+                    android:id="@+id/next_page"
+                    android:layout_width="0dp"
+                    android:layout_height="@dimen/button_height"
+                    android:layout_weight="1"
+                    android:background="@drawable/shape_corner_solid_blue"
+                    android:gravity="center"
+                    android:text="@string/next_page"
+                    android:textColor="@color/white"
+                    android:textSize="@dimen/text_size_large"
+                    android:textStyle="bold" />
+
+            </LinearLayout>
+
+        </LinearLayout>
+    </ScrollView>
+</LinearLayout>

+ 665 - 0
app/src/main/res/layout/fragment_hotel_predetermine_payment.xml

@@ -0,0 +1,665 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <ScrollView
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_margin="@dimen/common_padding"
+        android:scrollbars="none">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical">
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:orientation="vertical">
+
+                <include
+                    android:id="@+id/hotel_predetermine"
+                    layout="@layout/layout_hotel_predetermine_payment"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content" />
+
+                <include
+                    android:id="@+id/hotel_payment_application"
+                    layout="@layout/layout_payment_application"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content" />
+
+            </LinearLayout>
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:orientation="vertical">
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="@dimen/common_padding"
+                    android:orientation="horizontal">
+
+                    <TextView
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="center"
+                        android:layout_weight="1"
+                        android:text="@string/city_tax"
+                        android:textColor="@color/text_color_blue"
+                        android:textSize="@dimen/text_size_large"
+                        android:textStyle="bold" />
+
+                    <TextView
+                        android:id="@+id/city_tax_currency"
+                        android:layout_width="wrap_content"
+                        android:layout_height="match_parent"
+                        android:gravity="center"
+                        android:textColor="@color/color_caution"
+                        android:textSize="@dimen/text_size_minimum" />
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="@dimen/line"
+                    android:layout_marginTop="@dimen/common_padding"
+                    android:layout_marginBottom="@dimen/common_padding"
+                    android:background="@color/line_color" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="@dimen/common_padding"
+                    android:layout_marginBottom="@dimen/common_padding"
+                    android:baselineAligned="false"
+                    android:orientation="horizontal">
+
+                    <LinearLayout
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="2"
+                        android:orientation="horizontal">
+
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_gravity="center"
+                            android:text="@string/city_tax"
+                            android:textSize="@dimen/text_size_medium" />
+
+                        <EditText
+                            android:id="@+id/city_tax"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:layout_marginStart="@dimen/common_padding"
+                            android:background="@color/white"
+                            android:gravity="end"
+                            android:hint="@string/please_input"
+                            android:importantForAutofill="no"
+                            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" />
+                    </LinearLayout>
+
+                    <LinearLayout
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_marginStart="@dimen/common_padding_huge"
+                        android:layout_weight="1"
+                        android:orientation="horizontal">
+
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_gravity="center"
+                            android:text="@string/unit"
+                            android:textSize="@dimen/text_size_medium" />
+
+                        <TextView
+                            android:id="@+id/city_tax_unit"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:layout_marginStart="@dimen/common_padding"
+                            android:background="@color/white"
+                            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>
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="@dimen/line"
+                    android:layout_marginTop="@dimen/common_padding"
+                    android:layout_marginBottom="@dimen/common_padding"
+                    android:background="@color/line_color" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="@dimen/common_padding_small"
+                    android:orientation="horizontal">
+
+                    <TextView
+                        android:layout_width="0dp"
+                        android:layout_height="match_parent"
+                        android:layout_weight="1"
+                        android:gravity="center_vertical"
+                        android:text="@string/city_tax_op_pay"
+                        android:textSize="@dimen/text_size_medium" />
+
+                    <RadioGroup
+                        android:id="@+id/city_tax_op_pay"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:gravity="end"
+                        android:orientation="horizontal">
+
+                        <RadioButton
+                            android:id="@+id/city_tax_yes"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:background="@drawable/style_radio_button"
+                            android:buttonTint="@color/title_background_color"
+                            android:text="@string/yes"
+                            android:textColor="@color/text_color" />
+
+                        <RadioButton
+                            android:id="@+id/city_tax_no"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_marginStart="@dimen/common_padding"
+                            android:background="@drawable/style_radio_button"
+                            android:buttonTint="@color/title_background_color"
+                            android:checked="true"
+                            android:text="@string/no"
+                            android:textColor="@color/text_color" />
+                    </RadioGroup>
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="@dimen/line"
+                    android:layout_marginTop="@dimen/common_padding"
+                    android:layout_marginBottom="@dimen/common_padding"
+                    android:background="@color/line_color" />
+
+                <include
+                    android:id="@+id/city_tax_payment_application"
+                    layout="@layout/layout_payment_application"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content" />
+
+            </LinearLayout>
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:orientation="vertical">
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="@dimen/common_padding"
+                    android:orientation="horizontal">
+
+                    <TextView
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="center"
+                        android:layout_weight="1"
+                        android:text="@string/local_tax"
+                        android:textColor="@color/text_color_blue"
+                        android:textSize="@dimen/text_size_large"
+                        android:textStyle="bold" />
+
+                    <TextView
+                        android:id="@+id/local_tax_currency"
+                        android:layout_width="wrap_content"
+                        android:layout_height="match_parent"
+                        android:gravity="center"
+                        android:textColor="@color/color_caution"
+                        android:textSize="@dimen/text_size_minimum" />
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="@dimen/line"
+                    android:layout_marginTop="@dimen/common_padding"
+                    android:layout_marginBottom="@dimen/common_padding"
+                    android:background="@color/line_color" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="@dimen/common_padding"
+                    android:layout_marginBottom="@dimen/common_padding"
+                    android:baselineAligned="false"
+                    android:orientation="horizontal">
+
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:baselineAligned="false"
+                        android:orientation="horizontal">
+
+                        <LinearLayout
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_marginEnd="@dimen/common_padding_huge"
+                            android:layout_weight="2"
+                            android:orientation="horizontal">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:layout_gravity="center"
+                                android:text="@string/local_tax"
+                                android:textSize="@dimen/text_size_medium" />
+
+                            <EditText
+                                android:id="@+id/local_tax"
+                                android:layout_width="match_parent"
+                                android:layout_height="wrap_content"
+                                android:layout_marginStart="@dimen/common_padding"
+                                android:background="@color/white"
+                                android:gravity="end"
+                                android:hint="@string/please_input"
+                                android:importantForAutofill="no"
+                                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" />
+                        </LinearLayout>
+
+                        <LinearLayout
+                            android:layout_width="0dp"
+                            android:layout_height="wrap_content"
+                            android:layout_marginStart="@dimen/common_padding_huge"
+                            android:layout_weight="1"
+                            android:orientation="horizontal">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:layout_gravity="center"
+                                android:text="@string/unit"
+                                android:textSize="@dimen/text_size_medium" />
+
+                            <TextView
+                                android:id="@+id/local_tax_unit"
+                                android:layout_width="match_parent"
+                                android:layout_height="wrap_content"
+                                android:layout_marginStart="@dimen/common_padding"
+                                android:background="@color/white"
+                                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>
+                    </LinearLayout>
+
+                    <View
+                        android:layout_width="match_parent"
+                        android:layout_height="@dimen/line"
+                        android:layout_marginTop="@dimen/common_padding"
+                        android:layout_marginBottom="@dimen/common_padding"
+                        android:background="@color/line_color" />
+
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="@dimen/line"
+                    android:layout_marginTop="@dimen/common_padding"
+                    android:layout_marginBottom="@dimen/common_padding"
+                    android:background="@color/line_color" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="@dimen/common_padding_small"
+                    android:orientation="horizontal">
+
+                    <TextView
+                        android:layout_width="0dp"
+                        android:layout_height="match_parent"
+                        android:layout_weight="1"
+                        android:gravity="center_vertical"
+                        android:text="@string/local_tax_op_pay"
+                        android:textSize="@dimen/text_size_medium" />
+
+                    <RadioGroup
+                        android:id="@+id/local_tax_op_pay"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:gravity="end"
+                        android:orientation="horizontal">
+
+                        <RadioButton
+                            android:id="@+id/local_tax_yes"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:background="@drawable/style_radio_button"
+                            android:buttonTint="@color/title_background_color"
+                            android:text="@string/yes"
+                            android:textColor="@color/text_color" />
+
+                        <RadioButton
+                            android:id="@+id/local_tax_no"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_marginStart="@dimen/common_padding"
+                            android:background="@drawable/style_radio_button"
+                            android:buttonTint="@color/title_background_color"
+                            android:checked="true"
+                            android:text="@string/no"
+                            android:textColor="@color/text_color" />
+                    </RadioGroup>
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="@dimen/line"
+                    android:layout_marginTop="@dimen/common_padding"
+                    android:layout_marginBottom="@dimen/common_padding"
+                    android:background="@color/line_color" />
+
+                <include
+                    android:id="@+id/local_tax_payment_application"
+                    layout="@layout/layout_payment_application"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content" />
+
+            </LinearLayout>
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding"
+                android:orientation="vertical">
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="@dimen/common_padding"
+                    android:orientation="horizontal">
+
+                    <TextView
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="center"
+                        android:layout_weight="1"
+                        android:text="@string/hotel_breakfast"
+                        android:textColor="@color/text_color_blue"
+                        android:textSize="@dimen/text_size_large"
+                        android:textStyle="bold" />
+
+                    <TextView
+                        android:id="@+id/breakfast_currency"
+                        android:layout_width="wrap_content"
+                        android:layout_height="match_parent"
+                        android:gravity="center"
+                        android:textColor="@color/color_caution"
+                        android:textSize="@dimen/text_size_minimum" />
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="@dimen/line"
+                    android:layout_marginTop="@dimen/common_padding"
+                    android:layout_marginBottom="@dimen/common_padding"
+                    android:background="@color/line_color" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="@dimen/common_padding"
+                    android:layout_marginBottom="@dimen/common_padding"
+                    android:baselineAligned="false"
+                    android:orientation="horizontal">
+
+                    <LinearLayout
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_marginEnd="@dimen/common_padding_huge"
+                        android:layout_weight="2"
+                        android:orientation="horizontal">
+
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_gravity="center"
+                            android:text="@string/hotel_breakfast"
+                            android:textSize="@dimen/text_size_medium" />
+
+                        <EditText
+                            android:id="@+id/hotel_breakfast"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:layout_marginStart="@dimen/common_padding"
+                            android:background="@color/white"
+                            android:gravity="end"
+                            android:hint="@string/please_input"
+                            android:importantForAutofill="no"
+                            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" />
+                    </LinearLayout>
+
+                    <LinearLayout
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_marginStart="@dimen/common_padding_huge"
+                        android:layout_weight="1"
+                        android:orientation="horizontal">
+
+                        <TextView
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_gravity="center"
+                            android:text="@string/unit"
+                            android:textSize="@dimen/text_size_medium" />
+
+                        <TextView
+                            android:id="@+id/hotel_breakfast_unit"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:layout_marginStart="@dimen/common_padding"
+                            android:background="@color/white"
+                            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>
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="@dimen/line"
+                    android:layout_marginTop="@dimen/common_padding"
+                    android:layout_marginBottom="@dimen/common_padding"
+                    android:background="@color/line_color" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="@dimen/common_padding_small"
+                    android:orientation="horizontal">
+
+                    <TextView
+                        android:layout_width="0dp"
+                        android:layout_height="match_parent"
+                        android:layout_weight="1"
+                        android:gravity="center_vertical"
+                        android:text="@string/breakfast_op_pay"
+                        android:textSize="@dimen/text_size_medium" />
+
+                    <RadioGroup
+                        android:id="@+id/breakfast_op_pay"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:gravity="end"
+                        android:orientation="horizontal">
+
+                        <RadioButton
+                            android:id="@+id/breakfast_yes"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:background="@drawable/style_radio_button"
+                            android:buttonTint="@color/title_background_color"
+                            android:text="@string/yes"
+                            android:textColor="@color/text_color" />
+
+                        <RadioButton
+                            android:id="@+id/breakfast_no"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_marginStart="@dimen/common_padding"
+                            android:background="@drawable/style_radio_button"
+                            android:buttonTint="@color/title_background_color"
+                            android:checked="true"
+                            android:text="@string/no"
+                            android:textColor="@color/text_color" />
+                    </RadioGroup>
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="@dimen/line"
+                    android:layout_marginTop="@dimen/common_padding_huge"
+                    android:layout_marginBottom="@dimen/common_padding"
+                    android:background="@color/line_color" />
+
+                <include
+                    android:id="@+id/breakfast_payment_application"
+                    layout="@layout/layout_payment_application"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content" />
+
+            </LinearLayout>
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="@dimen/common_padding"
+                android:layout_marginBottom="@dimen/common_padding_huge"
+                android:orientation="vertical">
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="@dimen/common_padding"
+                    android:orientation="horizontal">
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="center"
+                        android:text="@string/other_info"
+                        android:textColor="@color/text_color_blue"
+                        android:textSize="@dimen/text_size_large"
+                        android:textStyle="bold" />
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="@dimen/line"
+                    android:layout_marginTop="@dimen/common_padding"
+                    android:layout_marginBottom="@dimen/common_padding"
+                    android:background="@color/line_color" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="vertical">
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="start"
+                        android:text="@string/notes"
+                        android:textSize="@dimen/text_size_medium" />
+
+                    <com.pan_american.android.util.ScrollEditText
+                        android:id="@+id/payment_apply_notes"
+                        android:layout_width="match_parent"
+                        android:layout_height="120dp"
+                        android:layout_marginTop="@dimen/common_padding" />
+
+                </LinearLayout>
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="@dimen/common_padding_huge"
+                    android:orientation="horizontal">
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_gravity="center"
+                        android:text="@string/payment_total"
+                        android:textSize="@dimen/text_size_large"
+                        android:textStyle="bold" />
+
+                    <TextView
+                        android:id="@+id/payment_sum"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginStart="@dimen/common_padding"
+                        android:background="@color/white"
+                        android:gravity="end"
+                        android:singleLine="true"
+                        android:textColor="@color/text_color"
+                        android:textSize="@dimen/text_size_large"
+                        android:textStyle="bold" />
+                </LinearLayout>
+
+            </LinearLayout>
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="@dimen/button_height"
+                android:layout_marginTop="@dimen/common_padding_huge"
+                android:layout_marginBottom="50dp"
+                android:background="@drawable/shape_corner_solid_blue"
+                android:orientation="horizontal">
+
+                <com.pan_american.android.util.CommitButton
+                    android:id="@+id/commit"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent" />
+
+            </LinearLayout>
+        </LinearLayout>
+    </ScrollView>
+</LinearLayout>

+ 642 - 0
app/src/main/res/layout/layout_hotel_predetermine_payment.xml

@@ -0,0 +1,642 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal">
+
+        <TextView
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:layout_weight="1"
+            android:text="@string/hotel_predetermine_sub_payment"
+            android:textColor="@color/text_color_blue"
+            android:textSize="@dimen/text_size_large"
+            android:textStyle="bold" />
+
+        <TextView
+            android:id="@+id/hotel_predetermine_currency"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:gravity="center"
+            android:textColor="@color/color_caution"
+            android:textSize="@dimen/text_size_minimum"/>
+    </LinearLayout>
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/line"
+        android:layout_marginTop="@dimen/common_padding"
+        android:layout_marginBottom="@dimen/common_padding"
+        android:background="@color/line_color" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="@dimen/common_padding"
+        android:layout_marginBottom="@dimen/common_padding"
+        android:orientation="horizontal">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:text="@string/payment_currency"
+            android:textSize="@dimen/text_size_medium" />
+
+        <TextView
+            android:id="@+id/hotel_payment_currency"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/common_padding"
+            android:layout_weight="1"
+            android:background="@color/white"
+            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>
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/line"
+        android:layout_marginTop="@dimen/common_padding"
+        android:layout_marginBottom="@dimen/common_padding"
+        android:background="@color/line_color" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="@dimen/common_padding"
+        android:layout_marginBottom="@dimen/common_padding"
+        android:orientation="horizontal">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:text="@string/reality_single_room"
+            android:textSize="@dimen/text_size_medium" />
+
+        <EditText
+            android:id="@+id/reality_single_room"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/common_padding"
+            android:layout_weight="1"
+            android:background="@color/white"
+            android:gravity="end"
+            android:hint="@string/please_input"
+            android:importantForAutofill="no"
+            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" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:layout_marginStart="@dimen/common_padding_huge"
+            android:text="@string/room_numbers"
+            android:textSize="@dimen/text_size_medium" />
+    </LinearLayout>
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/line"
+        android:layout_marginTop="@dimen/common_padding"
+        android:layout_marginBottom="@dimen/common_padding"
+        android:background="@color/line_color" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="@dimen/common_padding"
+        android:layout_marginBottom="@dimen/common_padding"
+        android:baselineAligned="false"
+        android:orientation="horizontal">
+
+        <LinearLayout
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_marginEnd="@dimen/common_padding_huge"
+            android:layout_weight="2"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center"
+                android:text="@string/single_room_price"
+                android:textSize="@dimen/text_size_medium" />
+
+            <EditText
+                android:id="@+id/single_room_price"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/common_padding"
+                android:background="@color/white"
+                android:gravity="end"
+                android:hint="@string/please_input"
+                android:importantForAutofill="no"
+                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" />
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/common_padding_huge"
+            android:layout_weight="1"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center"
+                android:text="@string/unit"
+                android:textSize="@dimen/text_size_medium" />
+
+            <TextView
+                android:id="@+id/single_room_unit"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/common_padding"
+                android:background="@color/white"
+                android:gravity="end"
+                android:hint="@string/no_info"
+                android:singleLine="true"
+                android:textColorHint="@color/hint_text_color"
+                android:textSize="@dimen/text_size_medium" />
+        </LinearLayout>
+    </LinearLayout>
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/line"
+        android:layout_marginTop="@dimen/common_padding"
+        android:layout_marginBottom="@dimen/common_padding"
+        android:background="@color/line_color" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="@dimen/common_padding"
+        android:layout_marginBottom="@dimen/common_padding"
+        android:orientation="horizontal">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:text="@string/reality_double_room"
+            android:textSize="@dimen/text_size_medium" />
+
+        <EditText
+            android:id="@+id/reality_double_room"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/common_padding"
+            android:layout_weight="1"
+            android:background="@color/white"
+            android:gravity="end"
+            android:hint="@string/please_input"
+            android:importantForAutofill="no"
+            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" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:layout_marginStart="@dimen/common_padding_huge"
+            android:text="@string/room_numbers"
+            android:textSize="@dimen/text_size_medium" />
+    </LinearLayout>
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/line"
+        android:layout_marginTop="@dimen/common_padding"
+        android:layout_marginBottom="@dimen/common_padding"
+        android:background="@color/line_color" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="@dimen/common_padding"
+        android:layout_marginBottom="@dimen/common_padding"
+        android:baselineAligned="false"
+        android:orientation="horizontal">
+
+        <LinearLayout
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_marginEnd="@dimen/common_padding_huge"
+            android:layout_weight="2"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center"
+                android:text="@string/double_room_price"
+                android:textSize="@dimen/text_size_medium" />
+
+            <EditText
+                android:id="@+id/double_room_price"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/common_padding"
+                android:background="@color/white"
+                android:gravity="end"
+                android:hint="@string/please_input"
+                android:importantForAutofill="no"
+                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" />
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/common_padding_huge"
+            android:layout_weight="1"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center"
+                android:text="@string/unit"
+                android:textSize="@dimen/text_size_medium" />
+
+            <TextView
+                android:id="@+id/double_room_unit"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/common_padding"
+                android:background="@color/white"
+                android:gravity="end"
+                android:hint="@string/no_info"
+                android:singleLine="true"
+                android:textColorHint="@color/hint_text_color"
+                android:textSize="@dimen/text_size_medium" />
+        </LinearLayout>
+    </LinearLayout>
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/line"
+        android:layout_marginTop="@dimen/common_padding"
+        android:layout_marginBottom="@dimen/common_padding"
+        android:background="@color/line_color" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="@dimen/common_padding"
+        android:layout_marginBottom="@dimen/common_padding"
+        android:orientation="horizontal">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:text="@string/reality_suite_room"
+            android:textSize="@dimen/text_size_medium" />
+
+        <EditText
+            android:id="@+id/reality_suite_room"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/common_padding"
+            android:layout_weight="1"
+            android:background="@color/white"
+            android:gravity="end"
+            android:hint="@string/please_input"
+            android:importantForAutofill="no"
+            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" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:layout_marginStart="@dimen/common_padding_huge"
+            android:text="@string/room_numbers"
+            android:textSize="@dimen/text_size_medium" />
+    </LinearLayout>
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/line"
+        android:layout_marginTop="@dimen/common_padding"
+        android:layout_marginBottom="@dimen/common_padding"
+        android:background="@color/line_color" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="@dimen/common_padding"
+        android:layout_marginBottom="@dimen/common_padding"
+        android:baselineAligned="false"
+        android:orientation="horizontal">
+
+        <LinearLayout
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_marginEnd="@dimen/common_padding_huge"
+            android:layout_weight="2"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center"
+                android:text="@string/suite_room_price"
+                android:textSize="@dimen/text_size_medium" />
+
+            <EditText
+                android:id="@+id/suite_room_price"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/common_padding"
+                android:background="@color/white"
+                android:gravity="end"
+                android:hint="@string/please_input"
+                android:importantForAutofill="no"
+                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" />
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/common_padding_huge"
+            android:layout_weight="1"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center"
+                android:text="@string/unit"
+                android:textSize="@dimen/text_size_medium" />
+
+            <TextView
+                android:id="@+id/suite_room_unit"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/common_padding"
+                android:background="@color/white"
+                android:gravity="end"
+                android:hint="@string/no_info"
+                android:singleLine="true"
+                android:textColorHint="@color/hint_text_color"
+                android:textSize="@dimen/text_size_medium" />
+        </LinearLayout>
+    </LinearLayout>
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/line"
+        android:layout_marginTop="@dimen/common_padding"
+        android:layout_marginBottom="@dimen/common_padding"
+        android:background="@color/line_color" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="@dimen/common_padding"
+        android:layout_marginBottom="@dimen/common_padding"
+        android:orientation="horizontal">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:text="@string/reality_other_room"
+            android:textSize="@dimen/text_size_medium" />
+
+        <EditText
+            android:id="@+id/reality_other_room"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/common_padding"
+            android:layout_weight="1"
+            android:background="@color/white"
+            android:gravity="end"
+            android:hint="@string/please_input"
+            android:importantForAutofill="no"
+            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" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:layout_marginStart="@dimen/common_padding_huge"
+            android:text="@string/room_numbers"
+            android:textSize="@dimen/text_size_medium" />
+    </LinearLayout>
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/line"
+        android:layout_marginTop="@dimen/common_padding"
+        android:layout_marginBottom="@dimen/common_padding"
+        android:background="@color/line_color" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="@dimen/common_padding"
+        android:layout_marginBottom="@dimen/common_padding"
+        android:baselineAligned="false"
+        android:orientation="horizontal">
+
+        <LinearLayout
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_marginEnd="@dimen/common_padding_huge"
+            android:layout_weight="2"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center"
+                android:text="@string/other_room_price"
+                android:textSize="@dimen/text_size_medium" />
+
+            <EditText
+                android:id="@+id/other_room_price"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/common_padding"
+                android:background="@color/white"
+                android:gravity="end"
+                android:hint="@string/please_input"
+                android:importantForAutofill="no"
+                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" />
+        </LinearLayout>
+
+        <LinearLayout
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/common_padding_huge"
+            android:layout_weight="1"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center"
+                android:text="@string/unit"
+                android:textSize="@dimen/text_size_medium" />
+
+            <TextView
+                android:id="@+id/other_room_unit"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/common_padding"
+                android:background="@color/white"
+                android:gravity="end"
+                android:hint="@string/no_info"
+                android:singleLine="true"
+                android:textColorHint="@color/hint_text_color"
+                android:textSize="@dimen/text_size_medium" />
+        </LinearLayout>
+    </LinearLayout>
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/line"
+        android:layout_marginTop="@dimen/common_padding"
+        android:layout_marginBottom="@dimen/common_padding"
+        android:background="@color/line_color" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="@dimen/common_padding_small"
+        android:orientation="horizontal">
+
+        <TextView
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:text="@string/hotel_op_pay"
+            android:gravity="center_vertical"
+            android:textSize="@dimen/text_size_medium" />
+
+        <RadioGroup
+            android:id="@+id/hotel_op_pay"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:gravity="end"
+            android:orientation="horizontal">
+
+            <RadioButton
+                android:id="@+id/hotel_yes"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:background="@drawable/style_radio_button"
+                android:buttonTint="@color/title_background_color"
+                android:text="@string/yes"
+                android:textColor="@color/text_color" />
+
+            <RadioButton
+                android:id="@+id/hotel_no"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/common_padding"
+                android:background="@drawable/style_radio_button"
+                android:buttonTint="@color/title_background_color"
+                android:checked="true"
+                android:text="@string/no"
+                android:textColor="@color/text_color" />
+        </RadioGroup>
+    </LinearLayout>
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/line"
+        android:layout_marginTop="@dimen/common_padding"
+        android:layout_marginBottom="@dimen/common_padding"
+        android:background="@color/line_color" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="@dimen/common_padding"
+        android:layout_marginBottom="@dimen/common_padding"
+        android:orientation="horizontal">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:text="@string/credit_card_amount"
+            android:textSize="@dimen/text_size_medium" />
+
+        <TextView
+            android:id="@+id/credit_card_payment"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/common_padding"
+            android:layout_weight="1"
+            android:background="@color/white"
+            android:gravity="end"
+            android:singleLine="true"
+            android:textColorHint="@color/hint_text_color"
+            android:textSize="@dimen/text_size_medium" />
+    </LinearLayout>
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/line"
+        android:layout_marginTop="@dimen/common_padding"
+        android:layout_marginBottom="@dimen/common_padding"
+        android:background="@color/line_color" />
+
+</LinearLayout>

+ 579 - 0
app/src/main/res/layout/layout_payment_application.xml

@@ -0,0 +1,579 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="vertical">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="@dimen/common_padding"
+        android:layout_marginBottom="@dimen/common_padding"
+        android:orientation="horizontal">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:text="@string/payment_way"
+            android:textSize="@dimen/text_size_medium" />
+
+        <TextView
+            android:id="@+id/payment_way"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/common_padding"
+            android:layout_weight="1"
+            android:background="@color/white"
+            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>
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/line"
+        android:layout_marginTop="@dimen/common_padding"
+        android:layout_marginBottom="@dimen/common_padding"
+        android:background="@color/line_color" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="@dimen/common_padding"
+        android:layout_marginBottom="@dimen/common_padding"
+        android:orientation="horizontal">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:text="@string/consume_way"
+            android:textSize="@dimen/text_size_medium" />
+
+        <EditText
+            android:id="@+id/consume_way"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/common_padding"
+            android:layout_weight="1"
+            android:background="@color/white"
+            android:gravity="end"
+            android:hint="@string/please_input"
+            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>
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/line"
+        android:layout_marginTop="@dimen/common_padding"
+        android:layout_marginBottom="@dimen/common_padding"
+        android:background="@color/line_color" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="@dimen/common_padding"
+        android:layout_marginBottom="@dimen/common_padding"
+        android:orientation="horizontal">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:text="@string/consume_date"
+            android:textSize="@dimen/text_size_medium" />
+
+        <TextView
+            android:id="@+id/consume_date"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/common_padding"
+            android:layout_weight="1"
+            android:background="@color/white"
+            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>
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/line"
+        android:layout_marginTop="@dimen/common_padding"
+        android:layout_marginBottom="@dimen/common_padding"
+        android:background="@color/line_color" />
+
+    <LinearLayout
+        android:id="@+id/swipe"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical"
+        android:visibility="gone">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/common_padding"
+            android:layout_marginBottom="@dimen/common_padding"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center"
+                android:text="@string/card_type"
+                android:textSize="@dimen/text_size_medium" />
+
+            <TextView
+                android:id="@+id/card_type"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/common_padding"
+                android:layout_weight="1"
+                android:background="@color/white"
+                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>
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/line"
+            android:layout_marginTop="@dimen/common_padding"
+            android:layout_marginBottom="@dimen/common_padding"
+            android:background="@color/line_color" />
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/common_padding"
+            android:layout_marginBottom="@dimen/common_padding"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center"
+                android:text="@string/bank_card_number"
+                android:textSize="@dimen/text_size_medium" />
+
+            <TextView
+                android:id="@+id/bank_card_number"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/common_padding"
+                android:layout_weight="1"
+                android:background="@color/white"
+                android:gravity="end"
+                android:singleLine="true"
+                android:textColor="@color/text_color"
+                android:textSize="@dimen/text_size_medium" />
+        </LinearLayout>
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/line"
+            android:layout_marginTop="@dimen/common_padding"
+            android:layout_marginBottom="@dimen/common_padding"
+            android:background="@color/line_color" />
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/common_padding"
+            android:layout_marginBottom="@dimen/common_padding"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center"
+                android:text="@string/bank_card_owner"
+                android:textSize="@dimen/text_size_medium" />
+
+            <TextView
+                android:id="@+id/bank_card_owner"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/common_padding"
+                android:layout_weight="1"
+                android:background="@color/white"
+                android:gravity="end"
+                android:hint="@string/no_info"
+                android:singleLine="true"
+                android:textColor="@color/text_color"
+                android:textColorHint="@color/hint_text_color"
+                android:textSize="@dimen/text_size_medium" />
+        </LinearLayout>
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/line"
+            android:layout_marginTop="@dimen/common_padding"
+            android:layout_marginBottom="@dimen/common_padding"
+            android:background="@color/line_color" />
+    </LinearLayout>
+
+    <LinearLayout
+        android:id="@+id/transfer"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical"
+        android:visibility="gone">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/common_padding"
+            android:layout_marginBottom="@dimen/common_padding"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center"
+                android:text="@string/company_bank_no"
+                android:textSize="@dimen/text_size_medium" />
+
+            <EditText
+                android:id="@+id/company_bank_no"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/common_padding"
+                android:layout_weight="1"
+                android:background="@color/white"
+                android:gravity="end"
+                android:hint="@string/please_input"
+                android:importantForAutofill="no"
+                android:inputType="phone"
+                android:singleLine="true"
+                android:textColor="@color/text_color"
+                android:textColorHint="@color/hint_text_color"
+                android:textSize="@dimen/text_size_medium" />
+        </LinearLayout>
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/line"
+            android:layout_marginTop="@dimen/common_padding"
+            android:layout_marginBottom="@dimen/common_padding"
+            android:background="@color/line_color" />
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/common_padding"
+            android:layout_marginBottom="@dimen/common_padding"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center"
+                android:text="@string/other_bank_name"
+                android:textSize="@dimen/text_size_medium" />
+
+            <EditText
+                android:id="@+id/transfer_other_bank_name"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/common_padding"
+                android:layout_weight="1"
+                android:background="@color/white"
+                android:gravity="end"
+                android:hint="@string/please_input"
+                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>
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/line"
+            android:layout_marginTop="@dimen/common_padding"
+            android:layout_marginBottom="@dimen/common_padding"
+            android:background="@color/line_color" />
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/common_padding"
+            android:layout_marginBottom="@dimen/common_padding"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center"
+                android:text="@string/other_side_no"
+                android:textSize="@dimen/text_size_medium" />
+
+            <EditText
+                android:id="@+id/transfer_other_side_no"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/common_padding"
+                android:layout_weight="1"
+                android:background="@color/white"
+                android:gravity="end"
+                android:hint="@string/please_input"
+                android:importantForAutofill="no"
+                android:inputType="phone"
+                android:singleLine="true"
+                android:textColor="@color/text_color"
+                android:textColorHint="@color/hint_text_color"
+                android:textSize="@dimen/text_size_medium" />
+        </LinearLayout>
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/line"
+            android:layout_marginTop="@dimen/common_padding"
+            android:layout_marginBottom="@dimen/common_padding"
+            android:background="@color/line_color" />
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/common_padding"
+            android:layout_marginBottom="@dimen/common_padding"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center"
+                android:text="@string/other_side_name"
+                android:textSize="@dimen/text_size_medium" />
+
+            <EditText
+                android:id="@+id/transfer_other_side_name"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/common_padding"
+                android:layout_weight="1"
+                android:background="@color/white"
+                android:gravity="end"
+                android:hint="@string/please_input"
+                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>
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/line"
+            android:layout_marginTop="@dimen/common_padding"
+            android:layout_marginBottom="@dimen/common_padding"
+            android:background="@color/line_color" />
+    </LinearLayout>
+
+    <LinearLayout
+        android:id="@+id/remit"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical"
+        android:visibility="gone">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/common_padding"
+            android:layout_marginBottom="@dimen/common_padding"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center"
+                android:text="@string/other_bank_name"
+                android:textSize="@dimen/text_size_medium" />
+
+            <EditText
+                android:id="@+id/other_bank_name"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/common_padding"
+                android:layout_weight="1"
+                android:background="@color/white"
+                android:gravity="end"
+                android:hint="@string/please_input"
+                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>
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/line"
+            android:layout_marginTop="@dimen/common_padding"
+            android:layout_marginBottom="@dimen/common_padding"
+            android:background="@color/line_color" />
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/common_padding"
+            android:layout_marginBottom="@dimen/common_padding"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center"
+                android:text="@string/other_side_no"
+                android:textSize="@dimen/text_size_medium" />
+
+            <EditText
+                android:id="@+id/other_side_no"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/common_padding"
+                android:layout_weight="1"
+                android:background="@color/white"
+                android:gravity="end"
+                android:hint="@string/please_input"
+                android:importantForAutofill="no"
+                android:inputType="phone"
+                android:singleLine="true"
+                android:textColor="@color/text_color"
+                android:textColorHint="@color/hint_text_color"
+                android:textSize="@dimen/text_size_medium" />
+        </LinearLayout>
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/line"
+            android:layout_marginTop="@dimen/common_padding"
+            android:layout_marginBottom="@dimen/common_padding"
+            android:background="@color/line_color" />
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/common_padding"
+            android:layout_marginBottom="@dimen/common_padding"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center"
+                android:text="@string/other_side_name"
+                android:textSize="@dimen/text_size_medium" />
+
+            <EditText
+                android:id="@+id/other_side_name"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="@dimen/common_padding"
+                android:layout_weight="1"
+                android:background="@color/white"
+                android:gravity="end"
+                android:hint="@string/please_input"
+                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>
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/line"
+            android:layout_marginTop="@dimen/common_padding"
+            android:layout_marginBottom="@dimen/common_padding"
+            android:background="@color/line_color" />
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="@dimen/common_padding"
+        android:layout_marginBottom="@dimen/common_padding"
+        android:orientation="horizontal">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:text="@string/payee"
+            android:textSize="@dimen/text_size_medium" />
+
+        <EditText
+            android:id="@+id/payee"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/common_padding"
+            android:layout_weight="1"
+            android:background="@color/white"
+            android:gravity="end"
+            android:hint="@string/please_input"
+            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>
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/line"
+        android:layout_marginTop="@dimen/common_padding"
+        android:layout_marginBottom="@dimen/common_padding"
+        android:background="@color/line_color" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="@dimen/common_padding"
+        android:layout_marginBottom="@dimen/common_padding"
+        android:orientation="horizontal">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center"
+            android:text="@string/payment_mark"
+            android:textSize="@dimen/text_size_medium" />
+
+        <TextView
+            android:id="@+id/payment_mark"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/common_padding"
+            android:layout_weight="1"
+            android:background="@color/white"
+            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>
+</LinearLayout>

+ 7 - 0
app/src/main/res/values/strings.xml

@@ -28,6 +28,8 @@
 
     <string name="reset">重置</string>
 
+    <string name="save">保存</string>
+
     <string name="next_page">下一页</string>
 
     <string name="back">返回</string>
@@ -778,10 +780,13 @@
     <string name="other_room_price">其它房型价格</string>
 
     <string name="credit_card_amount">信用卡金额</string>
+    <string name="hotel_op_pay">房费地接代付</string>
     <string name="hotel_breakfast">酒店早餐</string>
     <string name="breakfast_op_pay">早餐地接代付</string>
     <string name="local_tax">地税</string>
+    <string name="local_tax_op_pay">地税地接代付</string>
     <string name="city_tax">城市税</string>
+    <string name="city_tax_op_pay">城市税地接代付</string>
     <string name="check_in_type">入住类型</string>
     <string name="room_introduction">房间说明</string>
 
@@ -906,5 +911,7 @@
     <string name="reimbursement_form">省级单位出(境)经费报销单</string>
 
     <string name="group_select">团组选择</string>
+    <!-- TODO: Remove or change this placeholder text -->
+    <string name="hello_blank_fragment">Hello blank fragment</string>
 
 </resources>