This commit is contained in:
2026-02-10 09:36:18 +08:00
parent 038a325b3d
commit 3d29e17225
18 changed files with 977 additions and 493 deletions
@@ -0,0 +1,29 @@
//package com.sw.inbound.adapter
//
//import android.content.Context
//import android.view.LayoutInflater
//import android.view.ViewGroup
//import com.chad.library.adapter4.BaseQuickAdapter
//import com.chad.library.adapter4.viewholder.QuickViewHolder
//import com.sw.inbound.databinding.ListItemCollectSearchBinding
//import com.sw.inbound.databinding.ListItemPurchaseOrderBinding
//import com.sw.inbound.model.response.SearchGoodsInfo
//import com.sw.inbound.model.response.SupplierInfo
//
////List<SupplierInfo?>
//class PurchaseOrderAdapter:BaseQuickAdapter<SupplierInfo, > {
//
// inner class VH(var binding: ListItemCollectSearchBinding) : QuickViewHolder(binding.root)
//
// override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): VH {
// val inflater = LayoutInflater.from(context)
// val binding = ListItemPurchaseOrderBinding.inflate(inflater, parent, false)
// return VH(binding)
// }
//
// override fun onBindViewHolder(holder: VH, position: Int, item: SupplierInfo) {
//
//
// }
//
//}
@@ -1,5 +1,6 @@
package com.sw.inbound.adapter
import android.annotation.SuppressLint
import android.content.Context
import android.text.InputType
import android.view.LayoutInflater
@@ -14,23 +15,23 @@ 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.activity.ReceiptActivity
import com.sw.inbound.databinding.ListItemReceiptGoodsBinding
import com.sw.inbound.dialog.WarnDialog
import com.sw.inbound.ext.toFormattedString
import com.sw.inbound.ext.toSafeDouble
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.hideKeyboard
import com.sw.inbound.utils.ext.ifNullOrBlank
import com.sw.inbound.utils.ext.ifNullOrZero
import com.sw.inbound.utils.ext.roundedDecimalPlace
import com.sw.inbound.utils.ext.setShapeDrawable
import com.sw.inbound.utils.ext.toJsonString
import com.sw.inbound.utils.ext.toast
import com.sw.inbound.utils.ext.visible
import com.sw.inbound.utils.removeTrailingZeros
class ReceiptGoodsAdapter(var list: MutableList<GoodsInfo>) :
class ReceiptGoodsAdapter(var receiptActivity: ReceiptActivity, var list: MutableList<GoodsInfo>) :
BaseQuickAdapter<GoodsInfo, ReceiptGoodsAdapter.VH>(list) {
inner class VH(var binding: ListItemReceiptGoodsBinding) : QuickViewHolder(binding.root)
@@ -41,6 +42,7 @@ class ReceiptGoodsAdapter(var list: MutableList<GoodsInfo>) :
return VH(binding)
}
@SuppressLint("NotifyDataSetChanged")
override fun onBindViewHolder(holder: VH, position: Int, item: GoodsInfo?) {
holder.binding.run {
root.updateLayoutParams<RecyclerView.LayoutParams> {
@@ -63,8 +65,9 @@ class ReceiptGoodsAdapter(var list: MutableList<GoodsInfo>) :
)
tvGoodsName.text = item.goodName.ifNullOrBlank("-")
tvProcurementUnit.text = item.unitName.ifNullOrBlank("-")
val realCount = item.receiveCount?:0.toDouble()
tvProcurementCount.text = if (realCount == 0.toDouble()) "-" else realCount.removeTrailingZeros()
val realCount = item.receiveCount ?: 0.toDouble()
tvProcurementCount.text =
if (realCount == 0.toDouble()) "-" else realCount.removeTrailingZeros()
//tvProcurementPrice.text = item.recUnitPriceTaxInBak.toSafeDouble(2).ifNullOrZero("-")
//tvProcurementAmount.text = item.recPriceExItem.toSafeDouble(2).ifNullOrZero("-")
//tvReceiptCount.text = item.receivedNum.toSafeDouble(2).ifNullOrZero("-")
@@ -87,7 +90,9 @@ class ReceiptGoodsAdapter(var list: MutableList<GoodsInfo>) :
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 if ((item.receivedNum ?: 0.toDouble()) < (item.receiveCount
?: 0.toDouble())
) R.mipmap.ic_receipt_part
else R.mipmap.ic_receipt_all
)
}
@@ -113,7 +118,7 @@ class ReceiptGoodsAdapter(var list: MutableList<GoodsInfo>) :
setText("-")
}
}
etReceiptAmount.run {
etReceiptAmount.run {
isEnabled = item.recPriceInItem != null && item.recPriceInItem != 0.toDouble()
updateLayoutParams<LinearLayout.LayoutParams> {
topMargin = if (isEnabled) 20.dp else 0
@@ -159,6 +164,9 @@ class ReceiptGoodsAdapter(var list: MutableList<GoodsInfo>) :
showWarnDialog(content = "请确认是否删除该条采购数据,删除后不可恢复?") {
list.removeAt(position)
notifyDataSetChanged()
receiptActivity.run {
userViewModel.putGoodsData(localGoodsKey, list.toJsonString())
}
}
return@setOnClickListener
}
@@ -169,13 +177,16 @@ class ReceiptGoodsAdapter(var list: MutableList<GoodsInfo>) :
item.recUnitPriceTaxIn = 0.0
item.unitName = item.unitNameBak
notifyItemChanged(position)
receiptActivity.run {
userViewModel.putGoodsData(localGoodsKey, list.toJsonString())
}
}
}
}
}
}
private fun showWarnDialog(content:String, callback:()-> Unit) {
private fun showWarnDialog(content: String, callback: () -> Unit) {
WarnDialog(context = context, content = content, confirmBlock = callback).show()
}
@@ -213,8 +224,8 @@ class ReceiptGoodsAdapter(var list: MutableList<GoodsInfo>) :
}
}
private fun doubleFormat(num:Double?): String{
val realNum = num?:0.toDouble()
private fun doubleFormat(num: Double?): String {
val realNum = num ?: 0.toDouble()
return if (realNum == 0.toDouble()) "-" else realNum.toFormattedString(2)
}