package com.kuanzhai.user.ui.mine
|
|
import android.app.Activity
|
import android.content.Intent
|
import android.view.View
|
import android.view.animation.AnimationUtils
|
import androidx.recyclerview.widget.GridLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
import cn.sinata.xldutils.clickDelay
|
import cn.sinata.xldutils.gone
|
import cn.sinata.xldutils.utils.myToast
|
import cn.sinata.xldutils.utils.parserTime
|
import cn.sinata.xldutils.view.SwipeRefreshRecyclerLayout
|
import cn.sinata.xldutils.visible
|
import com.kuanzhai.user.R
|
import com.kuanzhai.user.dialog.ChooseBirthDialog
|
import com.kuanzhai.user.network.HttpManager
|
import com.kuanzhai.user.network.entity.ParamTicketOrder
|
import com.kuanzhai.user.network.entity.TicketOrder
|
import com.kuanzhai.user.network.request
|
import com.kuanzhai.user.ui.TransparentStatusBarActivity
|
import com.kuanzhai.user.ui.mine.adapter.FilterGridAdapter
|
import com.kuanzhai.user.ui.mine.adapter.TicketOrderAdapter
|
import kotlinx.android.synthetic.main.activity_sale_my.*
|
import kotlinx.android.synthetic.main.activity_ticket_order.*
|
import kotlinx.android.synthetic.main.activity_ticket_order.tv_action
|
import org.jetbrains.anko.startActivity
|
import org.jetbrains.anko.startActivityForResult
|
import org.jetbrains.anko.textColorResource
|
|
class TicketOrderActivity : TransparentStatusBarActivity() {
|
override fun setContentView() = R.layout.activity_ticket_order
|
|
private val list = arrayListOf<TicketOrder>()
|
private val adapter = TicketOrderAdapter(list)
|
//接口参数
|
private var page = 1
|
private var type = 1
|
private var orderType:Int? = null
|
private var startTime:String? = null
|
private var endTime:String? = null
|
private var startMoney:Double? = null
|
private var endMoney:Double? = null
|
|
private val types = arrayListOf("快车/专车","出租车","跨城出行","跨城小件物流","同城小件物流")
|
private val typeAdapter = FilterGridAdapter(types)
|
|
private var totalMoney = 0.0
|
|
override fun initClick() {
|
adapter.setOnItemClickListener { view, position ->
|
list[position].checked = !list[position].checked
|
adapter.notifyItemChanged(position)
|
refreshTotal()
|
}
|
|
cb_all.setOnClickListener {
|
list.forEach { it.checked = !cb_all.isSelected }
|
adapter.notifyDataSetChanged()
|
refreshTotal()
|
}
|
|
tv_type.setOnClickListener {
|
if (tv_type.isSelected)
|
closeFilter()
|
else{
|
closeFilter()
|
bg_shadow.visible()
|
ll_type.visible()
|
tv_type.isSelected = true
|
val loadAnimation = AnimationUtils.loadAnimation(this, R.anim.nemu_top_in)
|
ll_type.startAnimation(loadAnimation)
|
}
|
}
|
|
bg_shadow.setOnClickListener { closeFilter() }
|
cl_filter.setOnClickListener {}
|
|
tv_filter.setOnClickListener {
|
// if (tv_filter.isSelected)
|
// closeFilter()
|
// else{
|
closeFilter()
|
bg_shadow.visible()
|
cl_filter.visible()
|
tv_filter.isSelected = true
|
val loadAnimation = AnimationUtils.loadAnimation(this, R.anim.nemu_right_in)
|
cl_filter.startAnimation(loadAnimation)
|
// }
|
}
|
|
tv_enable.setOnClickListener {
|
closeFilter()
|
tv_type.text = tv_enable.text
|
type = 1
|
refreshData()
|
tv_enable.textColorResource = R.color.colorPrimary
|
tv_other.textColorResource = R.color.textColor
|
}
|
|
tv_other.setOnClickListener {
|
closeFilter()
|
tv_type.text = tv_other.text
|
type = 2
|
refreshData()
|
tv_enable.textColorResource = R.color.textColor
|
tv_other.textColorResource = R.color.colorPrimary
|
}
|
|
typeAdapter.setOnItemClickListener { view, position ->
|
typeAdapter.checked = position
|
typeAdapter.notifyDataSetChanged()
|
}
|
|
tv_start_time.clickDelay {
|
val chooseBirthDialog = ChooseBirthDialog()
|
chooseBirthDialog.setCallback(object : ChooseBirthDialog.Callback{
|
override fun onOk(s: String) {
|
tv_start_time.text = s
|
}
|
})
|
chooseBirthDialog.show(supportFragmentManager,"time")
|
}
|
|
tv_end_time.clickDelay {
|
val chooseBirthDialog = ChooseBirthDialog()
|
chooseBirthDialog.setCallback(object : ChooseBirthDialog.Callback{
|
override fun onOk(s: String) {
|
tv_end_time.text = s
|
}
|
})
|
chooseBirthDialog.show(supportFragmentManager,"time")
|
}
|
|
tv_reset.setOnClickListener {
|
typeAdapter.checked = -1
|
typeAdapter.notifyDataSetChanged()
|
et_start_money.setText("")
|
et_end_money.setText("")
|
tv_start_time.text = ""
|
tv_end_time.text = ""
|
}
|
|
tv_ok.setOnClickListener {
|
val startT = tv_start_time.text.toString()
|
val endT = tv_start_time.text.toString()
|
if (startT.isNotEmpty()&&endT.isNotEmpty()&&startT.parserTime("yyyy-MM-dd") >endT.parserTime("yyyy-MM-dd")){
|
myToast("起始时间不能大于结束时间")
|
return@setOnClickListener
|
}
|
val startM = et_start_money.text.toString()
|
val endM = et_end_money.text.toString()
|
try {
|
if (startM.isNotEmpty()&&endM.isNotEmpty()&&startM.toDouble() >endM.toDouble()){
|
myToast("最低价不能大于最高价")
|
return@setOnClickListener
|
}
|
}catch (e:Exception){
|
myToast("请输入正确的金额")
|
return@setOnClickListener
|
}
|
startTime = if (startT.isNotEmpty()) startT else null
|
endTime = if (endT.isNotEmpty()) endT else null
|
startMoney = if (startM.isNotEmpty()) startM.toDouble() else null
|
endMoney = if (endM.isNotEmpty()) endM.toDouble() else null
|
orderType = when(typeAdapter.checked){
|
0,1,2->typeAdapter.checked+1
|
3->5
|
4->4
|
else -> null
|
}
|
closeFilter()
|
refreshData()
|
}
|
|
tv_action.setOnClickListener {
|
val filter = list.filter { it.checked }
|
if (filter.isNullOrEmpty())
|
myToast("请选择开票订单")
|
else{
|
val arrayListOf = arrayListOf<ParamTicketOrder>()
|
arrayListOf.addAll(filter.map { ParamTicketOrder(it.orderId,it.orderType) })
|
startActivityForResult<MakeTicketActivity>(1,"order" to arrayListOf,"money" to totalMoney)
|
}
|
}
|
}
|
|
override fun initView() {
|
title = "开发票"
|
titleBar.addRightButton("历史开票",onClickListener = View.OnClickListener {
|
startActivity<TicketRecordActivity>()
|
})
|
swipeRefreshLayout.setLayoutManager(LinearLayoutManager(this))
|
swipeRefreshLayout.setAdapter(adapter)
|
swipeRefreshLayout.setOnRefreshListener(object :SwipeRefreshRecyclerLayout.OnRefreshListener{
|
override fun onRefresh() {
|
page = 1
|
getData()
|
}
|
|
override fun onLoadMore() {
|
page++
|
getData()
|
}
|
})
|
rv_type.layoutManager = GridLayoutManager(this,3)
|
typeAdapter.checked = -1
|
rv_type.adapter = typeAdapter
|
getData()
|
}
|
|
private fun getData(){
|
HttpManager.queryInvoiceOrder(startTime,endTime,startMoney,endMoney,type,orderType,page).request(this,success = {_,data->
|
swipeRefreshLayout.isRefreshing = false
|
if (page == 1)
|
list.clear()
|
list.addAll(data?: emptyList())
|
adapter.notifyDataSetChanged()
|
refreshTotal()
|
}){_,_->
|
swipeRefreshLayout.isRefreshing = false
|
}
|
}
|
|
private fun refreshData(){
|
swipeRefreshLayout.isRefreshing = true
|
page = 1
|
getData()
|
}
|
|
private fun refreshTotal(){
|
val filter = list.filter { it.checked }
|
cb_all.isSelected = filter.size == list.size
|
totalMoney = filter.sumByDouble { it.payMoney }
|
tv_total.text = "共%d笔订单,合计%.2f元".format(filter.size,totalMoney)
|
}
|
|
private fun closeFilter() {
|
bg_shadow.gone()
|
ll_type.gone()
|
cl_filter.gone()
|
tv_type.isSelected = false
|
tv_filter.isSelected = false
|
}
|
|
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
super.onActivityResult(requestCode, resultCode, data)
|
if (resultCode == Activity.RESULT_OK)
|
refreshData()
|
}
|
}
|