80 lines
3.2 KiB
Kotlin
80 lines
3.2 KiB
Kotlin
package com.sw.inbound.adapter
|
|
|
|
import android.content.Context
|
|
import android.view.LayoutInflater
|
|
import android.view.ViewGroup
|
|
import android.widget.TextView
|
|
import androidx.core.graphics.toColorInt
|
|
import androidx.core.view.updateLayoutParams
|
|
import androidx.recyclerview.widget.RecyclerView
|
|
import com.chad.library.adapter4.BaseQuickAdapter
|
|
import com.chad.library.adapter4.viewholder.QuickViewHolder
|
|
import com.sw.inbound.R
|
|
import com.sw.inbound.databinding.ListItemReceiptGoodsBinding
|
|
import com.sw.inbound.ext.toSafeDouble
|
|
import com.sw.inbound.model.bean.ReceiptGoodsInfo
|
|
import com.sw.inbound.model.response.GoodsInfo
|
|
import com.sw.inbound.utils.ext.dp
|
|
import com.sw.inbound.utils.ext.gone
|
|
import com.sw.inbound.utils.ext.ifNullOrBlank
|
|
import com.sw.inbound.utils.ext.ifNullOrZero
|
|
import com.sw.inbound.utils.ext.setShapeDrawable
|
|
import com.sw.inbound.utils.ext.visible
|
|
|
|
class ReceiptGoodsAdapter(var list: MutableList<GoodsInfo>) :
|
|
BaseQuickAdapter<GoodsInfo, ReceiptGoodsAdapter.VH>(list) {
|
|
|
|
inner class VH(var binding: ListItemReceiptGoodsBinding) : QuickViewHolder(binding.root)
|
|
|
|
override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): VH {
|
|
val inflater = LayoutInflater.from(context)
|
|
val binding = ListItemReceiptGoodsBinding.inflate(inflater, parent, false)
|
|
return VH(binding)
|
|
}
|
|
|
|
override fun onBindViewHolder(holder: VH, position: Int, item: GoodsInfo?) {
|
|
holder.binding.run {
|
|
root.updateLayoutParams<RecyclerView.LayoutParams> {
|
|
height = 100.dp
|
|
topMargin = 2.dp
|
|
bottomMargin = 3.dp
|
|
}
|
|
root.setShapeDrawable(
|
|
solidColor = if (item!!.isSelected) "#FFD5E1FF" else "#FFFFFFFF",
|
|
radius = 6.dp
|
|
)
|
|
updateTextView(
|
|
tvGoodsName, tvProcurementUnit,
|
|
tvProcurementCount, tvProcurementPrice,
|
|
tvProcurementAmount, tvReceiptCount, tvGoodsWeight,
|
|
)
|
|
tvGoodsName.text = item.goodName.ifNullOrBlank("-")
|
|
tvProcurementUnit.text = item.unitName.ifNullOrBlank("-")
|
|
tvProcurementCount.text = item.receiveCount.ifNullOrZero("-")
|
|
tvProcurementPrice.text = item.recUnitPriceTaxIn.toSafeDouble(2).ifNullOrZero("-")
|
|
tvProcurementAmount.text = item.recPriceExItem.toSafeDouble(2).ifNullOrZero("-")
|
|
tvReceiptCount.text = item.receivedNum.toSafeDouble(2).ifNullOrZero("-")
|
|
tvGoodsWeight.text = item.goodsWeight?.toDouble().toSafeDouble(2).ifNullOrZero("-")
|
|
|
|
tvState.gone()
|
|
ivState.run {
|
|
visible()
|
|
setImageResource(
|
|
if (item.isSelected.not()) R.mipmap.ic_receipt_no
|
|
else if (item.isLocalGoods) R.mipmap.ic_receipt_local
|
|
else if ((item.receivedNum?:0.toDouble()) < (item.receiveCount?:0.toDouble())) R.mipmap.ic_receipt_part
|
|
else R.mipmap.ic_receipt_all
|
|
)
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
private fun updateTextView(vararg views: TextView) {
|
|
views.forEach {
|
|
it.setTextColor("#FF1E2832".toColorInt())
|
|
it.paint.isFakeBoldText = true
|
|
}
|
|
}
|
|
|
|
} |