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) : BaseQuickAdapter(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 { 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 } } }