Commit 4d8b3f07 by Wyh

合併代碼,提交供應鏈代碼

parents aa1d974d 407b7fea
...@@ -46,7 +46,6 @@ import okhttp3.Request; ...@@ -46,7 +46,6 @@ import okhttp3.Request;
import okhttp3.RequestBody; import okhttp3.RequestBody;
import okhttp3.Response; import okhttp3.Response;
@ActivityScope @ActivityScope
public class OrderDetailsPresenter extends BasePresenter<OrderDetailsContract.Model, OrderDetailsContract.View> { public class OrderDetailsPresenter extends BasePresenter<OrderDetailsContract.Model, OrderDetailsContract.View> {
@Inject @Inject
...@@ -148,7 +147,7 @@ public class OrderDetailsPresenter extends BasePresenter<OrderDetailsContract.Mo ...@@ -148,7 +147,7 @@ public class OrderDetailsPresenter extends BasePresenter<OrderDetailsContract.Mo
public void thirdDelivery(OrderDetails.DataBean dataBean) { public void thirdDelivery(OrderDetails.DataBean dataBean) {
//驗證訂單金額是否正確 //驗證訂單金額是否正確
if(OrderDetails.verificationAmount(dataBean)){ if(OrderDetails.verificationAmount(dataBean)){
mRootView.showMessage("訂單金額不正確,請檢查"); mRootView.showMessage(OrderDetails.getVerifiAmountTip());
return; return;
} }
ThirdItem third = new ThirdItem(); ThirdItem third = new ThirdItem();
...@@ -210,7 +209,7 @@ public class OrderDetailsPresenter extends BasePresenter<OrderDetailsContract.Mo ...@@ -210,7 +209,7 @@ public class OrderDetailsPresenter extends BasePresenter<OrderDetailsContract.Mo
public void updateOrderState(OrderDetails.DataBean dataBean, int status, String labUrl) { public void updateOrderState(OrderDetails.DataBean dataBean, int status, String labUrl) {
//驗證訂單金額是否正確 //驗證訂單金額是否正確
if(OrderDetails.verificationAmount(dataBean)){ if(OrderDetails.verificationAmount(dataBean)){
mRootView.showMessage("訂單金額不正確,請檢查"); mRootView.showMessage(OrderDetails.getVerifiAmountTip());
return; return;
} }
//添加PRJ //添加PRJ
......
...@@ -13,7 +13,7 @@ android { ...@@ -13,7 +13,7 @@ android {
defaultConfig { defaultConfig {
if (project.ext.runAsApp) { if (project.ext.runAsApp) {
applicationId "com.gingersoft.gsa.com.gingersoft.gsa.delivery_pick_mode" applicationId "com.gingersoft.gsa.delivery_pick_mode"
} }
minSdkVersion rootProject.ext.android["minSdkVersion"] minSdkVersion rootProject.ext.android["minSdkVersion"]
targetSdkVersion rootProject.ext.android["targetSdkVersion"] targetSdkVersion rootProject.ext.android["targetSdkVersion"]
...@@ -44,7 +44,9 @@ android { ...@@ -44,7 +44,9 @@ android {
} }
} }
} }
kapt {
useBuildCache = true
}
dependencies { dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar']) implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
......
...@@ -17,6 +17,7 @@ import com.gingersoft.gsa.cloud.common.constans.AppConstans ...@@ -17,6 +17,7 @@ import com.gingersoft.gsa.cloud.common.constans.AppConstans
import com.gingersoft.gsa.cloud.common.constans.FoodSummaryConstans import com.gingersoft.gsa.cloud.common.constans.FoodSummaryConstans
import com.gingersoft.gsa.cloud.common.constans.PrintConstans import com.gingersoft.gsa.cloud.common.constans.PrintConstans
import com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails import com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails
import com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails.Companion.verifiAmountTip
import com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails.Companion.verificationAmount import com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails.Companion.verificationAmount
import com.gingersoft.gsa.cloud.print.bean.adapter.PrintContentAdapter import com.gingersoft.gsa.cloud.print.bean.adapter.PrintContentAdapter
import com.gingersoft.gsa.cloud.common.core.restaurant.ResturantInfoManager import com.gingersoft.gsa.cloud.common.core.restaurant.ResturantInfoManager
...@@ -406,7 +407,7 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() { ...@@ -406,7 +407,7 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
fun confirmOrder(dataBean: OrderDetails.DataBean, status: Int, trafficType: String = "", restaurantId: Int, isPrintPrj: Boolean = true, isPrintBill: Boolean = true, listener: (MessageBean) -> Unit) { fun confirmOrder(dataBean: OrderDetails.DataBean, status: Int, trafficType: String = "", restaurantId: Int, isPrintPrj: Boolean = true, isPrintBill: Boolean = true, listener: (MessageBean) -> Unit) {
if (verificationAmount(dataBean)) { if (verificationAmount(dataBean)) {
listener.invoke(getMsgBean(0, "訂單金額不正確,請取消", false)) listener.invoke(getMsgBean(0, verifiAmountTip, false))
return return
} }
launch({ launch({
...@@ -535,7 +536,7 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() { ...@@ -535,7 +536,7 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
*/ */
fun updateOrderAndPrint(restaurantId: Int, dataBean: OrderDetails.DataBean, status: Int, isPrintPrj: Boolean = true, isPrintBill: Boolean = true, listener: (MessageBean) -> Unit) { fun updateOrderAndPrint(restaurantId: Int, dataBean: OrderDetails.DataBean, status: Int, isPrintPrj: Boolean = true, isPrintBill: Boolean = true, listener: (MessageBean) -> Unit) {
if (verificationAmount(dataBean)) { if (verificationAmount(dataBean)) {
listener.invoke(getMsgBean(0, "訂單金額不正確,請取消", false)) listener.invoke(getMsgBean(0, verifiAmountTip, false))
return return
} }
launch({ launch({
...@@ -805,7 +806,7 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() { ...@@ -805,7 +806,7 @@ class PageViewModel(private val repository: WeatherRepository) : ViewModel() {
if (selectIndex != -1) { if (selectIndex != -1) {
//驗證訂單金額是否正確 //驗證訂單金額是否正確
if (verificationAmount(dataBean)) { if (verificationAmount(dataBean)) {
ToastUtils.show(context, "訂單金額不正確,請檢查") ToastUtils.show(context, verifiAmountTip)
return@setOnClickListener return@setOnClickListener
} }
launch({ launch({
......
...@@ -43,7 +43,7 @@ import com.gingersoft.gsa.delivery_pick_mode.mvp.ui.activity.SendOrderActivity ...@@ -43,7 +43,7 @@ import com.gingersoft.gsa.delivery_pick_mode.mvp.ui.activity.SendOrderActivity
import com.gingersoft.gsa.delivery_pick_mode.ui.adapter.SectionsPagerAdapter import com.gingersoft.gsa.delivery_pick_mode.ui.adapter.SectionsPagerAdapter
import com.gingersoft.gsa.delivery_pick_mode.ui.base.BaseActivity import com.gingersoft.gsa.delivery_pick_mode.ui.base.BaseActivity
import com.gingersoft.gsa.delivery_pick_mode.util.InjectorUtil import com.gingersoft.gsa.delivery_pick_mode.util.InjectorUtil
import com.gingersoft.gsa.delivery_pick_mode.util.getmColor import com.gingersoft.gsa.delivery_pick_mode.util.getCustomColor
import com.gingersoft.gsa.delivery_pick_mode.util.setState import com.gingersoft.gsa.delivery_pick_mode.util.setState
import com.jess.arms.mvp.IPresenter import com.jess.arms.mvp.IPresenter
import com.qmuiteam.qmui.alpha.QMUIAlphaImageButton import com.qmuiteam.qmui.alpha.QMUIAlphaImageButton
...@@ -52,8 +52,6 @@ import com.qmuiteam.qmui.util.QMUIDisplayHelper ...@@ -52,8 +52,6 @@ import com.qmuiteam.qmui.util.QMUIDisplayHelper
import com.qmuiteam.qmui.widget.popup.QMUIPopup import com.qmuiteam.qmui.widget.popup.QMUIPopup
import com.qmuiteam.qmui.widget.popup.QMUIPopups import com.qmuiteam.qmui.widget.popup.QMUIPopups
import kotlinx.android.synthetic.main.activity_other_order.* import kotlinx.android.synthetic.main.activity_other_order.*
class DeliveryOrderMainActivity : BaseActivity<IPresenter>(), View.OnClickListener { class DeliveryOrderMainActivity : BaseActivity<IPresenter>(), View.OnClickListener {
private val pageViewModel by lazy { ViewModelProvider(this, InjectorUtil.getWeatherModelFactory())[PageViewModel::class.java] } private val pageViewModel by lazy { ViewModelProvider(this, InjectorUtil.getWeatherModelFactory())[PageViewModel::class.java] }
...@@ -81,6 +79,7 @@ class DeliveryOrderMainActivity : BaseActivity<IPresenter>(), View.OnClickListen ...@@ -81,6 +79,7 @@ class DeliveryOrderMainActivity : BaseActivity<IPresenter>(), View.OnClickListen
private var titles: ArrayList<TextView> = ArrayList() private var titles: ArrayList<TextView> = ArrayList()
private var layoutHeight: Float = 0F private var layoutHeight: Float = 0F
private var btnHeight: Float = 0F private var btnHeight: Float = 0F
private val functionByResModule by lazy { private val functionByResModule by lazy {
FunctionManager.getDefault().getFunctionByResModule(this, FunctionManagerConstants.takeaway::class.java, FunctionManagerConstants.takeaway.takeawayMain, "btn") FunctionManager.getDefault().getFunctionByResModule(this, FunctionManagerConstants.takeaway::class.java, FunctionManagerConstants.takeaway.takeawayMain, "btn")
} }
...@@ -108,7 +107,7 @@ class DeliveryOrderMainActivity : BaseActivity<IPresenter>(), View.OnClickListen ...@@ -108,7 +107,7 @@ class DeliveryOrderMainActivity : BaseActivity<IPresenter>(), View.OnClickListen
initOrderType() initOrderType()
//是否自動接單 //是否自動接單
cb_takeaway_auto_receiving_orders.setOnCheckedChangeListener { buttonView, isChecked -> cb_takeaway_auto_receiving_orders.setOnCheckedChangeListener { _, isChecked ->
if(isChecked){ if(isChecked){
pageViewModel.startAutoConfirmOrder() pageViewModel.startAutoConfirmOrder()
} else { } else {
...@@ -128,9 +127,9 @@ class DeliveryOrderMainActivity : BaseActivity<IPresenter>(), View.OnClickListen ...@@ -128,9 +127,9 @@ class DeliveryOrderMainActivity : BaseActivity<IPresenter>(), View.OnClickListen
tv_balance.text = "餘額:${data.balance}" + "(保證金: ${data.bond} )" tv_balance.text = "餘額:${data.balance}" + "(保證金: ${data.bond} )"
if (data.balance <= data.threshold) { if (data.balance <= data.threshold) {
//提示餘額不足 //提示餘額不足
tv_balance.setTextColor(getmColor(R.color.theme_red_color)) tv_balance.setTextColor(getCustomColor(R.color.theme_red_color))
} else { } else {
tv_balance.setTextColor(getmColor(R.color.theme_333_color)) tv_balance.setTextColor(getCustomColor(R.color.theme_333_color))
} }
} }
}) })
......
...@@ -13,7 +13,7 @@ import com.gingersoft.gsa.delivery_pick_mode.model.viewModel.HistoryOrderViewMod ...@@ -13,7 +13,7 @@ import com.gingersoft.gsa.delivery_pick_mode.model.viewModel.HistoryOrderViewMod
import com.gingersoft.gsa.delivery_pick_mode.ui.base.BaseActivity import com.gingersoft.gsa.delivery_pick_mode.ui.base.BaseActivity
import com.gingersoft.gsa.delivery_pick_mode.ui.fragment.HistoryFragment import com.gingersoft.gsa.delivery_pick_mode.ui.fragment.HistoryFragment
import com.gingersoft.gsa.delivery_pick_mode.util.InjectorUtil import com.gingersoft.gsa.delivery_pick_mode.util.InjectorUtil
import com.gingersoft.gsa.delivery_pick_mode.util.getmColor import com.gingersoft.gsa.delivery_pick_mode.util.getCustomColor
import com.google.android.material.tabs.TabLayout import com.google.android.material.tabs.TabLayout
import com.jess.arms.mvp.IPresenter import com.jess.arms.mvp.IPresenter
import kotlinx.android.synthetic.main.activity_history_order.* import kotlinx.android.synthetic.main.activity_history_order.*
...@@ -81,7 +81,7 @@ class HistoryOrderActivity : BaseActivity<IPresenter>() { ...@@ -81,7 +81,7 @@ class HistoryOrderActivity : BaseActivity<IPresenter>() {
private fun initAppTop() { private fun initAppTop() {
qm_other_order_bar.setTitle(R.string.history_order) qm_other_order_bar.setTitle(R.string.history_order)
qm_other_order_bar.addLeftImageButton(R.drawable.icon_return, R.id.iv_left_back).setOnClickListener { finish() } qm_other_order_bar.addLeftImageButton(R.drawable.icon_return, R.id.iv_left_back).setOnClickListener { finish() }
qm_other_order_bar.setBackgroundColor(getmColor(R.color.theme_color)) qm_other_order_bar.setBackgroundColor(getCustomColor(R.color.theme_color))
} }
fun onClickListener(v: View?) { fun onClickListener(v: View?) {
......
...@@ -19,6 +19,7 @@ import com.ethanhua.skeleton.Skeleton ...@@ -19,6 +19,7 @@ import com.ethanhua.skeleton.Skeleton
import com.ethanhua.skeleton.ViewSkeletonScreen import com.ethanhua.skeleton.ViewSkeletonScreen
import com.gingersoft.gsa.cloud.common.constans.FunctionManagerConstants import com.gingersoft.gsa.cloud.common.constans.FunctionManagerConstants
import com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails import com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails
import com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails.Companion.verifiAmountTip
import com.gingersoft.gsa.cloud.common.core.restaurant.ResturantInfoManager import com.gingersoft.gsa.cloud.common.core.restaurant.ResturantInfoManager
import com.gingersoft.gsa.cloud.common.core.user.UserContext import com.gingersoft.gsa.cloud.common.core.user.UserContext
import com.gingersoft.gsa.cloud.common.function.FunctionManager import com.gingersoft.gsa.cloud.common.function.FunctionManager
...@@ -46,10 +47,7 @@ import com.gingersoft.gsa.delivery_pick_mode.ui.adapter.FoodListAdapter ...@@ -46,10 +47,7 @@ import com.gingersoft.gsa.delivery_pick_mode.ui.adapter.FoodListAdapter
import com.gingersoft.gsa.delivery_pick_mode.ui.adapter.OrderDetailsAdapter import com.gingersoft.gsa.delivery_pick_mode.ui.adapter.OrderDetailsAdapter
import com.gingersoft.gsa.delivery_pick_mode.ui.adapter.ThirdExpensesAdapter import com.gingersoft.gsa.delivery_pick_mode.ui.adapter.ThirdExpensesAdapter
import com.gingersoft.gsa.delivery_pick_mode.ui.base.BaseActivity import com.gingersoft.gsa.delivery_pick_mode.ui.base.BaseActivity
import com.gingersoft.gsa.delivery_pick_mode.util.InjectorUtil import com.gingersoft.gsa.delivery_pick_mode.util.*
import com.gingersoft.gsa.delivery_pick_mode.util.getmColor
import com.gingersoft.gsa.delivery_pick_mode.util.showSelectDialog
import com.gingersoft.gsa.delivery_pick_mode.util.showWaringDialog
import com.jess.arms.mvp.IPresenter import com.jess.arms.mvp.IPresenter
import com.qmuiteam.qmui.widget.QMUITopBar import com.qmuiteam.qmui.widget.QMUITopBar
import kotlinx.android.synthetic.main.activity_order_details.* import kotlinx.android.synthetic.main.activity_order_details.*
...@@ -166,7 +164,7 @@ class OrderDetailsActivity : BaseActivity<IPresenter>() { ...@@ -166,7 +164,7 @@ class OrderDetailsActivity : BaseActivity<IPresenter>() {
btnList.add(it) btnList.add(it)
} }
orderStatusText = "待確認" orderStatusText = "待確認"
tv_order_state.setTextColor(getmColor(R.color.order_state0_color)) tv_order_state.setTextColor(getCustomColor(R.color.order_state0_color))
if (orderDetails.isDelete == 0) { if (orderDetails.isDelete == 0) {
btnBuilder.getLogisticsBtn()?.let { btnBuilder.getLogisticsBtn()?.let {
btnList.add(it) btnList.add(it)
...@@ -187,7 +185,7 @@ class OrderDetailsActivity : BaseActivity<IPresenter>() { ...@@ -187,7 +185,7 @@ class OrderDetailsActivity : BaseActivity<IPresenter>() {
btnBuilder.getProductionCompletedBtn()?.let { btnBuilder.getProductionCompletedBtn()?.let {
btnList.add(it) btnList.add(it)
} }
tv_order_state.setTextColor(getmColor(R.color.order_state0_color)) tv_order_state.setTextColor(getCustomColor(R.color.order_state0_color))
} else { } else {
//製作中的外賣,應該有打印、取消物流、取消訂單 //製作中的外賣,應該有打印、取消物流、取消訂單
if (orderDetails.isDelete == 0) { if (orderDetails.isDelete == 0) {
...@@ -210,7 +208,7 @@ class OrderDetailsActivity : BaseActivity<IPresenter>() { ...@@ -210,7 +208,7 @@ class OrderDetailsActivity : BaseActivity<IPresenter>() {
btnList.add(it) btnList.add(it)
} }
} }
tv_order_state.setTextColor(getmColor(R.color.order_state1_color)) tv_order_state.setTextColor(getCustomColor(R.color.order_state1_color))
} }
orderStatusText = "製作中" orderStatusText = "製作中"
} }
...@@ -228,7 +226,7 @@ class OrderDetailsActivity : BaseActivity<IPresenter>() { ...@@ -228,7 +226,7 @@ class OrderDetailsActivity : BaseActivity<IPresenter>() {
btnBuilder.getClosingBtn()?.let { btnBuilder.getClosingBtn()?.let {
btnList.add(it) btnList.add(it)
} }
tv_order_state.setTextColor(getmColor(R.color.order_state3_color)) tv_order_state.setTextColor(getCustomColor(R.color.order_state3_color))
} else { } else {
// 外賣有打印 // 外賣有打印
// 如果是第三方物流,不顯示結賬 // 如果是第三方物流,不顯示結賬
...@@ -244,7 +242,7 @@ class OrderDetailsActivity : BaseActivity<IPresenter>() { ...@@ -244,7 +242,7 @@ class OrderDetailsActivity : BaseActivity<IPresenter>() {
} }
} }
orderStatusText = "派送中" orderStatusText = "派送中"
tv_order_state.setTextColor(getmColor(R.color.order_state2_color)) tv_order_state.setTextColor(getCustomColor(R.color.order_state2_color))
} }
} }
8 -> {//預約單 8 -> {//預約單
...@@ -360,7 +358,7 @@ class OrderDetailsActivity : BaseActivity<IPresenter>() { ...@@ -360,7 +358,7 @@ class OrderDetailsActivity : BaseActivity<IPresenter>() {
} }
} else { } else {
if (OrderDetails.verificationAmount(orderDetails)) { if (OrderDetails.verificationAmount(orderDetails)) {
ToastUtils.show(this@OrderDetailsActivity, "訂單金額不正確,請檢查") ToastUtils.show(this@OrderDetailsActivity, verifiAmountTip)
return@setOnItemClickListener return@setOnItemClickListener
} }
val intent = Intent(this@OrderDetailsActivity, PayActivity::class.java) val intent = Intent(this@OrderDetailsActivity, PayActivity::class.java)
...@@ -600,7 +598,7 @@ class OrderDetailsActivity : BaseActivity<IPresenter>() { ...@@ -600,7 +598,7 @@ class OrderDetailsActivity : BaseActivity<IPresenter>() {
finish() finish()
} }
AmountError.toString() -> { AmountError.toString() -> {
ToastUtils.show(this@OrderDetailsActivity, "訂單金額錯誤,請檢查") ToastUtils.show(this@OrderDetailsActivity, verifiAmountTip)
} }
else -> { else -> {
if (TextUtil.isNotEmptyOrNullOrUndefined(msg.errorMsg)) { if (TextUtil.isNotEmptyOrNullOrUndefined(msg.errorMsg)) {
......
...@@ -8,6 +8,7 @@ import androidx.lifecycle.Observer ...@@ -8,6 +8,7 @@ import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails import com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails
import com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails.Companion.verifiAmountTip
import com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails.DataBean import com.gingersoft.gsa.cloud.common.core.delivery.OrderDetails.DataBean
import com.gingersoft.gsa.cloud.common.core.restaurant.ResturantInfoManager import com.gingersoft.gsa.cloud.common.core.restaurant.ResturantInfoManager
import com.gingersoft.gsa.cloud.common.utils.MoneyUtil import com.gingersoft.gsa.cloud.common.utils.MoneyUtil
...@@ -45,8 +46,8 @@ class PayActivity : BaseActivity<IPresenter>() { ...@@ -45,8 +46,8 @@ class PayActivity : BaseActivity<IPresenter>() {
rv_order_pay_food.layoutManager = LinearLayoutManager(this) rv_order_pay_food.layoutManager = LinearLayoutManager(this)
rv_order_pay_food.adapter = FoodListAdapter(this, it) rv_order_pay_food.adapter = FoodListAdapter(this, it)
for (bean in it) { for (bean in it) {
bean.child?.let { it -> bean.child?.let { second ->
for (child in it) { for (child in second) {
child.child?.let { child.child?.let {
for (childBean in it) { for (childBean in it) {
foodCount += childBean.num!!.toInt() foodCount += childBean.num!!.toInt()
...@@ -60,7 +61,7 @@ class PayActivity : BaseActivity<IPresenter>() { ...@@ -60,7 +61,7 @@ class PayActivity : BaseActivity<IPresenter>() {
} }
var totalAmount = orderDetails.TOTAL_AMOUNT!!.toDouble() var totalAmount = orderDetails.TOTAL_AMOUNT!!.toDouble()
orderDetails.couponList?.let { orderDetails.couponList?.let {
for (coupon in it){ for (coupon in it) {
totalAmount = MoneyUtil.sub(totalAmount, coupon.discount_amount) totalAmount = MoneyUtil.sub(totalAmount, coupon.discount_amount)
} }
} }
...@@ -86,7 +87,7 @@ class PayActivity : BaseActivity<IPresenter>() { ...@@ -86,7 +87,7 @@ class PayActivity : BaseActivity<IPresenter>() {
dialog.dismiss() dialog.dismiss()
showLoading() showLoading()
if (OrderDetails.verificationAmount(orderDetails)) { if (OrderDetails.verificationAmount(orderDetails)) {
ToastUtils.show(this@PayActivity, "訂單金額不正確,請檢查") ToastUtils.show(this@PayActivity, verifiAmountTip)
return@setOnClickListener return@setOnClickListener
} }
pageViewModel.closingBill(orderDetails, payMethods) { _, _ -> pageViewModel.closingBill(orderDetails, payMethods) { _, _ ->
...@@ -118,8 +119,8 @@ class PayActivity : BaseActivity<IPresenter>() { ...@@ -118,8 +119,8 @@ class PayActivity : BaseActivity<IPresenter>() {
billBeans.add(BillBean("送貨費:", orderDetails.DELIVERY_CHARGE)) billBeans.add(BillBean("送貨費:", orderDetails.DELIVERY_CHARGE))
} }
orderDetails.couponList?.let { orderDetails.couponList?.let {
for (coupon in it){ for (coupon in it) {
billBeans.add(BillBean(coupon.couponName+":", coupon.discount_amount, 1)) billBeans.add(BillBean(coupon.couponName + ":", coupon.discount_amount, 1))
} }
} }
billBeans.add(BillBean("支付金額:", totalAmount)) billBeans.add(BillBean("支付金額:", totalAmount))
......
...@@ -41,7 +41,7 @@ class OtherOrdersAdapter(var context: Context, var outTime: Int) : Adapter<Other ...@@ -41,7 +41,7 @@ class OtherOrdersAdapter(var context: Context, var outTime: Int) : Adapter<Other
val data = this.databeans!![position] val data = this.databeans!![position]
holder.binding.data = data holder.binding.data = data
holder.binding.isSelf = data.order_type == 7 holder.binding.isSelf = data.order_type == 7
if (data.isDelete == 0) { if (data.order_type !=7 && data.isDelete == 0) {
holder.binding.deliveryState = when (data.curStat) { holder.binding.deliveryState = when (data.curStat) {
1 -> "已通知物流" 1 -> "已通知物流"
2 -> "配送員已接單" 2 -> "配送員已接單"
......
...@@ -48,11 +48,11 @@ class DeliveryFragment : BaseFragment() { ...@@ -48,11 +48,11 @@ class DeliveryFragment : BaseFragment() {
if (deliveryListAdapter == null) { if (deliveryListAdapter == null) {
deliveryListAdapter = DeliveryListAdapter(it.data.list) deliveryListAdapter = DeliveryListAdapter(it.data.list)
rv_delivery.adapter = deliveryListAdapter rv_delivery.adapter = deliveryListAdapter
rv_delivery.layoutManager = LinearLayoutManager(context!!) rv_delivery.layoutManager = LinearLayoutManager(requireContext())
} else { } else {
deliveryListAdapter!!.setNewInstance(it.data.list) deliveryListAdapter!!.setNewInstance(it.data.list)
} }
deliveryListAdapter!!.setOnItemChildClickListener { adapter, view, position -> deliveryListAdapter!!.setOnItemChildClickListener { _, view, position ->
when (view.id) { when (view.id) {
R.id.iv_delete -> { R.id.iv_delete -> {
AppDialog().showWaringDialog(context, "是否確認刪除") { _, dialog -> AppDialog().showWaringDialog(context, "是否確認刪除") { _, dialog ->
......
...@@ -110,7 +110,7 @@ class PlaceholderFragment : BaseFragment(R.layout.fragment_other_order) { ...@@ -110,7 +110,7 @@ class PlaceholderFragment : BaseFragment(R.layout.fragment_other_order) {
private fun initRecyclerView() { private fun initRecyclerView() {
rv_other_order.layoutManager = LinearLayoutManager(activity) rv_other_order.layoutManager = LinearLayoutManager(activity)
adapter = OtherOrdersAdapter(activity!!, pageViewModel.timeOut * 60 * 1000) adapter = OtherOrdersAdapter(requireActivity(), pageViewModel.timeOut * 60 * 1000)
adapter.setOnItemClickListenter { data -> adapter.setOnItemClickListenter { data ->
// 點擊查詢食品詳情 // 點擊查詢食品詳情
val intent = Intent(activity, OrderDetailsActivity::class.java) val intent = Intent(activity, OrderDetailsActivity::class.java)
......
...@@ -45,7 +45,7 @@ object OtherOrderUtils { ...@@ -45,7 +45,7 @@ object OtherOrderUtils {
layoutOrderInfoDialogBinding.totalAmount = totalAmount layoutOrderInfoDialogBinding.totalAmount = totalAmount
//是歷史訂單,就不顯示訂單狀態 //是歷史訂單,就不顯示訂單狀態
layoutOrderInfoDialogBinding.isHistory = isHistory layoutOrderInfoDialogBinding.isHistory = isHistory
var btnContent = "" var btnContent: String
var cancelBtnContent = "" var cancelBtnContent = ""
val type = if (orderType == 7) "自取" else "外送" val type = if (orderType == 7) "自取" else "外送"
...@@ -224,7 +224,7 @@ object OtherOrderUtils { ...@@ -224,7 +224,7 @@ object OtherOrderUtils {
private fun loadSound(context: Context, resId: Int) { private fun loadSound(context: Context, resId: Int) {
val voiceId = soundPool!!.load(context, resId, 1) val voiceId = soundPool!!.load(context, resId, 1)
//异步需要等待加载完成,音频才能播放成功 //异步需要等待加载完成,音频才能播放成功
soundPool!!.setOnLoadCompleteListener { soundPool, sampleId, status -> soundPool!!.setOnLoadCompleteListener { soundPool, _, status ->
if (status == 0) { if (status == 0) {
//第一个参数soundID //第一个参数soundID
//第二个参数leftVolume为左侧音量值(范围= 0.0到1.0) //第二个参数leftVolume为左侧音量值(范围= 0.0到1.0)
......
...@@ -5,6 +5,7 @@ import android.app.Dialog ...@@ -5,6 +5,7 @@ import android.app.Dialog
import android.view.View import android.view.View
import androidx.annotation.ColorRes import androidx.annotation.ColorRes
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.gingersoft.gsa.cloud.ui.utils.AppDialog import com.gingersoft.gsa.cloud.ui.utils.AppDialog
import com.gingersoft.gsa.delivery_pick_mode.R import com.gingersoft.gsa.delivery_pick_mode.R
...@@ -44,9 +45,13 @@ fun Activity.showSelectDialog(title: String, spanCount: Int, adapter: RecyclerVi ...@@ -44,9 +45,13 @@ fun Activity.showSelectDialog(title: String, spanCount: Int, adapter: RecyclerVi
} }
} }
fun Activity.getmColor(@ColorRes colorId: Int): Int { fun Activity.getCustomColor(@ColorRes colorId: Int): Int {
return ContextCompat.getColor(this, colorId) return ContextCompat.getColor(this, colorId)
} }
fun Fragment.getCustomColor(@ColorRes colorId: Int): Int {
activity?.let {
return ContextCompat.getColor(it, colorId)
}
return 0
}
package com.gingersoft.gsa.delivery_pick_mode.util
import android.net.Uri
import com.gingersoft.gsa.cloud.common.utils.encryption.Base64
import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils
import org.json.JSONObject
fun main() {
var url = "https://hktest.ricepon.com:64377/ricepon-web/app/index.html?arg="
var json = JSONObject()
json.put("menutype", 273)
json.put("type", 1)
json.put("shopid", 233)//23233
var jsonString = GsonUtils.GsonString(json)
var lastUrl = Uri.encode(Base64.encode(jsonString.toByteArray())) + "_ricepon_"
println(lastUrl)
}
...@@ -278,7 +278,7 @@ public class DownloadPresenter extends BasePresenter<DownloadContract.Model, Dow ...@@ -278,7 +278,7 @@ public class DownloadPresenter extends BasePresenter<DownloadContract.Model, Dow
@Override @Override
public void onNext(@NonNull BaseResult result) { public void onNext(@NonNull BaseResult result) {
if (result.isSuccess()) { if (result.isSuccess()) {
List<Food> foodList = GsonUtils.GsonToList(result.getData(),Food.class); List<Food> foodList = GsonUtils.jsonToList(result.getData(), Food.class);
if (foodList != null) { if (foodList != null) {
Observable.just(0) Observable.just(0)
.observeOn(Schedulers.io()) .observeOn(Schedulers.io())
......
...@@ -10,6 +10,8 @@ ...@@ -10,6 +10,8 @@
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!--相机权限-->
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
......
...@@ -9,6 +9,7 @@ import android.widget.ImageView; ...@@ -9,6 +9,7 @@ import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import com.gingersoft.gsa.cloud.common.utils.glide.GlideUtils;
import com.gingersoft.gsa.cloud.database.bean.Function; import com.gingersoft.gsa.cloud.database.bean.Function;
import com.gingersoft.gsa.cloud.main.R; import com.gingersoft.gsa.cloud.main.R;
...@@ -64,7 +65,7 @@ public class FunctionAdapter extends BaseAdapter { ...@@ -64,7 +65,7 @@ public class FunctionAdapter extends BaseAdapter {
viewholder = (ViewHolder) convertView.getTag(); viewholder = (ViewHolder) convertView.getTag();
} }
com.gingersoft.gsa.cloud.base.utils.glide.GlideUtils.display(mContext, viewholder.iv_image, dataBean.getImageURL(), R.drawable.ic_selected_main, R.drawable.ic_selected_main, R.drawable.ic_selected_main); GlideUtils.display(mContext, viewholder.iv_image, dataBean.getImageURL(), R.drawable.ic_selected_main, R.drawable.ic_selected_main, R.drawable.ic_selected_main);
viewholder.tv_title.setText(dataBean.getResName()); viewholder.tv_title.setText(dataBean.getResName());
viewholder.ll_container.setOnClickListener(new View.OnClickListener() { viewholder.ll_container.setOnClickListener(new View.OnClickListener() {
......
...@@ -58,4 +58,5 @@ dependencies { ...@@ -58,4 +58,5 @@ dependencies {
implementation rootProject.ext.dependencies["glide"] implementation rootProject.ext.dependencies["glide"]
annotationProcessor rootProject.ext.dependencies["glide-compiler"] annotationProcessor rootProject.ext.dependencies["glide-compiler"]
implementation 'com.github.yalantis:ucrop:2.2.6'
} }
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.gingersoft.supply_chain"> package="com.gingersoft.supply_chain">
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application android:networkSecurityConfig="@xml/network_android" <uses-feature
android:requestLegacyExternalStorage="true"> android:name="android.hardware.camera"
android:required="false" />
<!--相机权限-->
<uses-permission android:name="android.permission.CAMERA" />
<application android:networkSecurityConfig="@xml/network_android">
<activity android:name=".mvp.ui.activity.SupplyChainMainActivity" />
<activity <activity
android:name=".mvp.ui.activity.SupplyChainMainActivity" android:name=".mvp.ui.activity.SupplyChainMainActivity"
android:screenOrientation="portrait" /> android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data <meta-data
android:name="com.gingersoft.gsa.cloud.common.config.globalconfig.GlobalConfiguration" android:name="com.gingersoft.gsa.cloud.common.config.globalconfig.GlobalConfiguration"
android:value="ConfigModule" /> android:value="ConfigModule" />
...@@ -19,6 +32,11 @@ ...@@ -19,6 +32,11 @@
<meta-data <meta-data
android:name="design_height_in_dp" android:name="design_height_in_dp"
android:value="640" /> android:value="640" />
<activity
android:name="com.yalantis.ucrop.UCropActivity"
android:screenOrientation="portrait"
android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
</application> </application>
</manifest> </manifest>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.gingersoft.supply_chain"> package="com.gingersoft.supply_chain">
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
...@@ -11,8 +12,7 @@ ...@@ -11,8 +12,7 @@
<application <application
android:name="com.gingersoft.gsa.cloud.app.GsaCloudApplication" android:name="com.gingersoft.gsa.cloud.app.GsaCloudApplication"
android:networkSecurityConfig="@xml/network_android" android:networkSecurityConfig="@xml/network_android">
android:requestLegacyExternalStorage="true">
<activity android:name=".mvp.ui.activity.SupplyChainMainActivity"> <activity android:name=".mvp.ui.activity.SupplyChainMainActivity">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
...@@ -31,15 +31,18 @@ ...@@ -31,15 +31,18 @@
<meta-data <meta-data
android:name="design_height_in_dp" android:name="design_height_in_dp"
android:value="640" /> <!-- 适配android 7.0文件访问 --> android:value="640" /> <!-- 适配android 7.0文件访问 -->
<provider <!-- <provider-->
android:name="androidx.core.content.FileProvider" <!-- android:name="androidx.core.content.FileProvider"-->
android:authorities="com.gingersoft.supply_chain" <!-- android:authorities="com.gingersoft.supply_chain.fileprovider">-->
android:exported="false" <!-- <meta-data-->
android:grantUriPermissions="true"> <!-- android:name="android.support.FILE_PROVIDER_PATHS"-->
<meta-data <!-- android:resource="@xml/file_paths" />-->
android:name="android.support.FILE_PROVIDER_PATHS" <!-- </provider>-->
android:resource="@xml/file_paths" />
</provider> <activity
android:name="com.yalantis.ucrop.UCropActivity"
android:screenOrientation="portrait"
android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>
</application> </application>
</manifest> </manifest>
\ No newline at end of file
...@@ -30,7 +30,6 @@ public class ComponentSupplyChain implements IComponent { ...@@ -30,7 +30,6 @@ public class ComponentSupplyChain implements IComponent {
@Override @Override
public boolean onCall(CC cc) { public boolean onCall(CC cc) {
String actionName = cc.getActionName(); String actionName = cc.getActionName();
Log.e("eee", "調用供應鏈" + actionName);
switch (actionName) { switch (actionName) {
case AppConstans.SUPPLY_CHAIN_MAIN_ACTION: case AppConstans.SUPPLY_CHAIN_MAIN_ACTION:
CCUtil.navigateTo(cc, SupplyChainMainActivity.class); CCUtil.navigateTo(cc, SupplyChainMainActivity.class);
......
package com.gingersoft.supply_chain.di.component;
import dagger.BindsInstance;
import dagger.Component;
import com.jess.arms.di.component.AppComponent;
import com.gingersoft.supply_chain.di.module.FoodUnitPageModule;
import com.gingersoft.supply_chain.mvp.contract.FoodUnitPageContract;
import com.jess.arms.di.scope.FragmentScope;
import com.gingersoft.supply_chain.mvp.ui.fragment.food.FoodUnitPageFragment;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 12/28/2020 16:05
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
@FragmentScope
@Component(modules = FoodUnitPageModule.class, dependencies = AppComponent.class)
public interface FoodUnitPageComponent {
void inject(FoodUnitPageFragment fragment);
@Component.Builder
interface Builder {
@BindsInstance
Builder view(FoodUnitPageContract.View view);
Builder appComponent(AppComponent appComponent);
FoodUnitPageComponent build();
}
}
\ No newline at end of file
package com.gingersoft.supply_chain.di.module;
import com.jess.arms.di.scope.FragmentScope;
import dagger.Binds;
import dagger.Module;
import dagger.Provides;
import com.gingersoft.supply_chain.mvp.contract.FoodUnitPageContract;
import com.gingersoft.supply_chain.mvp.model.FoodUnitPageModel;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 12/28/2020 16:05
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
@Module
public abstract class FoodUnitPageModule {
@Binds
abstract FoodUnitPageContract.Model bindFoodUnitPageModel(FoodUnitPageModel model);
}
\ No newline at end of file
package com.gingersoft.supply_chain.mvp.bean;
import java.util.List;
import lombok.Data;
/**
* @author 宇航.
* User: admin
* Date: 2020/12/29
* Time: 16:41
* Use:
*/
@Data
public class BasicUnitBean {
/**
* content : 瓶
* uid : 341
* restaurantId : 26
* createTime : 1609224558054
* updateTime : 1609224558054
* updateUid : 341
*/
private String content;
private int uid;
private int restaurantId;
private long createTime;
private long updateTime;
private int updateUid;
}
...@@ -20,7 +20,7 @@ import lombok.Data; ...@@ -20,7 +20,7 @@ import lombok.Data;
public class ConfirmOrderBean { public class ConfirmOrderBean {
private PurchaseOrder purchaseOrder; private PurchaseOrder purchaseOrder;
private List<PurchaseOrderDetails> purchaseOrderDetails; private List<PurchaseOrderDetails> purchaseOrderDetails;
private double minimumAmount;//最低採購金額
@Data @Data
public static class PurchaseOrder implements Serializable { public static class PurchaseOrder implements Serializable {
private static final long serialVersionUID = -8777410033061311699L; private static final long serialVersionUID = -8777410033061311699L;
......
package com.gingersoft.supply_chain.mvp.bean;
import lombok.Data;
/**
* @author 宇航.
* User: admin
* Date: 2020/12/29
* Time: 17:13
* Use:
*/
@Data
public class DeputyUnitBean {
/**
* 品牌id
*/
private Long brandId;
/**
* 餐廳id
*/
private Long restaurantId;
/**
* 食材id,沒有時傳0
*/
private Long foodUnitId;
/**
* 副單位
*/
private String deputyUnit;
/**
* 換算倍數
*/
private String conversionMultiple = "1";
/**
* 是否删除:0正常,1删除
*/
private Boolean deletes;
}
...@@ -14,15 +14,12 @@ import lombok.Data; ...@@ -14,15 +14,12 @@ import lombok.Data;
@Data @Data
public class FoodPackingSpecificationBean implements Serializable { public class FoodPackingSpecificationBean implements Serializable {
private static final long serialVersionUID = -2313739462020089855L; private static final long serialVersionUID = -2313739462020089855L;
private int id;
private int foodUnitId; private int foodUnitId;
/**
* 包裝類型規格
* 1、訂貨
* 2、收貨
*/
private int type;
public final static int ORDERING_TYPE = 1; public final static int ORDERING_TYPE = 1;
public final static int RECEIVING_TYPE = 2; public final static int RECEIVING_TYPE = 2;
private int brandId;
private int restaurantId;
private double quantityStarts; private double quantityStarts;
private double quantityEnd; private double quantityEnd;
......
...@@ -24,4 +24,7 @@ public class OrderBean { ...@@ -24,4 +24,7 @@ public class OrderBean {
private long updateTime; private long updateTime;
private long createTime; private long createTime;
private int deletes; private int deletes;
private int supplierId;
private String supplierName;
} }
package com.gingersoft.supply_chain.mvp.bean; package com.gingersoft.supply_chain.mvp.bean;
import java.util.List;
import lombok.Data; import lombok.Data;
/** /**
...@@ -14,15 +16,21 @@ public class OrderWareHouseBean { ...@@ -14,15 +16,21 @@ public class OrderWareHouseBean {
private int status; private int status;
private int orderId; private int orderId;
private PurchaseWarehousingOrder purchaseWarehousingOrder;
private List<PurchaseWarehousingOrderDetail> purchaseWarehousingOrderDetails;
@Data @Data
public static class PurchaseWarehousingOrder { public static class PurchaseWarehousingOrder {
private String files; private String files;
private String remarks; private String remarks;
private double totalPrice; private double totalPrice;
private int brandId;
private int restaurantId;
} }
@Data @Data
public static class PurchaseWarehousingOrderDetails { public static class PurchaseWarehousingOrderDetail {
private int orderDetailsId; private int orderDetailsId;
private int purchaseFoodId; private int purchaseFoodId;
private int foodQuantity; private int foodQuantity;
......
...@@ -32,6 +32,13 @@ public class PurchaseFoodListVosBean implements Serializable { ...@@ -32,6 +32,13 @@ public class PurchaseFoodListVosBean implements Serializable {
private String unitContent; private String unitContent;
private long createTime; private long createTime;
private int foodQuantity; private int foodQuantity;
private double minimumAmount;
private String address;
/**
* 是否審核
*/
private boolean reviews;
/** /**
* 分類id * 分類id
*/ */
...@@ -43,7 +50,7 @@ public class PurchaseFoodListVosBean implements Serializable { ...@@ -43,7 +50,7 @@ public class PurchaseFoodListVosBean implements Serializable {
/** /**
* 是否選中 * 是否選中
*/ */
private boolean isChecked; private boolean isChecked = true;
/** /**
* 是否刪除 * 是否刪除
* {@link Constant.DELETE,Constant.NORMAL} * {@link Constant.DELETE,Constant.NORMAL}
...@@ -55,15 +62,15 @@ public class PurchaseFoodListVosBean implements Serializable { ...@@ -55,15 +62,15 @@ public class PurchaseFoodListVosBean implements Serializable {
private InventoryAlarm inventoryAlarm; private InventoryAlarm inventoryAlarm;
@Data @Data
public static class InventoryAlarm { public static class InventoryAlarm {
//食品id
private int id;
//庫存預警,單位id //庫存預警,單位id
private int foodUnitId; private int foodUnitId;
//最低庫存 //最低庫存
private int minimumInventory; private int minimumImventory;
} }
//包裝規格 //包裝規格
private List<FoodPackingSpecificationBean> foodPackingSpecifications; private List<DeputyUnitBean> deputyUnitBeans;
public boolean isChecked() { public boolean isChecked() {
return isChecked; return isChecked;
......
package com.gingersoft.supply_chain.mvp.bean;
import java.util.List;
import lombok.Data;
/**
* @author 宇航.
* User: admin
* Date: 2020/12/23
* Time: 18:00
* Use:
*/
@Data
public class PurchaseOrderDetailsBean {
/**
* id : 92
* orderNo : JK1630553667
* createTime : 1608365460896
* initialShippingTime : 1608451855391
* totalAmount : 100.1
* shipping : 0
* actualPayment : 100.1
* status : 1
* <p>
* purchaseOrderDetailsInfoVOS : [{"id":65,"foodQuantity":1,"foodPrice":100,"status":1,"purchaseFoodId":3,"images":"https://baike.baidu.com/pic/%E9%A6%99%E8%95%89/150475/1/5d6034a85edf8db12c69 f8ef0f23dd54574e74f2?fr=lemma&amp;ct=single#aid=1&amp;pic=5d6034a85edf8db12c69f8ef0f23dd54574e74f2","foodNo":"1606560266815","quantityStarts":4,"quantityEnd":9,"type":1,"unit_content":"ML"}]
*/
private int id;
private String orderNo;
private long createTime;
private String initialShippingTime;
private double totalAmount;
private int shipping;
private double actualPayment;
/**
* 狀態:0全部 1待收貨 2部分收貨 3已完成 4拒收
*/
private int status;
public static final int ALL = 0;
private static String[] states = new String[]{"", "待收貨", "部分收貨", "已完成", "拒收"};
public static String getStringByOrderState(int state) {
if (state < 0 || state > states.length) {
return "";
}
return states[state];
}
public static final int WAIT_RECEIVED = 1;
public static final int PART_RECEIVED = 2;
public static final int COMPLETE_RECEIVED = 3;
public static final int REFUSE_RECEIVED = 4;
private String supplierName;
private List<PurchaseOrderDetailsInfoVosBean> purchaseOrderDetailsInfoVOS;
@Data
public static class PurchaseOrderDetailsInfoVosBean {
/**
* id : 65
* foodQuantity : 1
* foodPrice : 100
* status : 1
* purchaseFoodId : 3
* images : https://baike.baidu.com/pic/%E9%A6%99%E8%95%89/150475/1/5d6034a85edf8db12c69 f8ef0f23dd54574e74f2?fr=lemma&amp;ct=single#aid=1&amp;pic=5d6034a85edf8db12c69f8ef0f23dd54574e74f2
* foodNo : 1606560266815
* quantityStarts : 4
* quantityEnd : 9
* type : 1
* unit_content : ML
*/
private int id;
private int foodQuantity;
private int foodPrice;
private int status;
private int purchaseFoodId;
private String images;
private String foodNo;
private int quantityStarts;
private int quantityEnd;
private int type;
private String unit_content;
private String name;
//自定義字段,總價
private double totalAmount;
//是否被選中
private boolean isChecked = false;
}
}
...@@ -15,6 +15,7 @@ import lombok.Data; ...@@ -15,6 +15,7 @@ import lombok.Data;
public class PurchaseOrderResultBean { public class PurchaseOrderResultBean {
private boolean success; private boolean success;
private String errMsg;
private long sysTime; private long sysTime;
private DataBean data; private DataBean data;
......
package com.gingersoft.supply_chain.mvp.bean;
import java.util.List;
import lombok.Data;
/**
* @author 宇航.
* User: admin
* Date: 2020/12/29
* Time: 10:41
* Use:
*/
@Data
public class SendSupplierMsgBean {
//供應商ID
private int id;
private String supplierName;
private int orderId;
//是否展開顯示所有聯繫方式
private boolean isOpen;
//自定義字段,當前選中的發送方式
private int checkPosition = 0;
private List<SupplierInfoBean.SupplierContacts> supplierContacts;
}
package com.gingersoft.supply_chain.mvp.bean; package com.gingersoft.supply_chain.mvp.bean;
import com.gingersoft.supply_chain.R;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
import javax.annotation.Resource;
import lombok.Data; import lombok.Data;
/** /**
...@@ -31,6 +35,7 @@ public class SupplierInfoBean implements Serializable { ...@@ -31,6 +35,7 @@ public class SupplierInfoBean implements Serializable {
private long createTime; private long createTime;
private long updateTime; private long updateTime;
private int deletes; private int deletes;
private double minimumAmount;
private List<SupplierContacts> supplierContacts; private List<SupplierContacts> supplierContacts;
...@@ -51,6 +56,9 @@ public class SupplierInfoBean implements Serializable { ...@@ -51,6 +56,9 @@ public class SupplierInfoBean implements Serializable {
private int id; private int id;
private int supplierId; private int supplierId;
private String configText; private String configText;
//是否默認
private boolean isDefault;
private long createTime; private long createTime;
private long updateTime; private long updateTime;
/** /**
...@@ -66,20 +74,60 @@ public class SupplierInfoBean implements Serializable { ...@@ -66,20 +74,60 @@ public class SupplierInfoBean implements Serializable {
*/ */
private int type; private int type;
public final static int Email = 1; public final static int Email = 1;
public final static int SMS = 6;
public final static int Efax = 7;
//接收軟件 //接收軟件
public final static int Whatsapp = 2; public final static int Whatsapp = 2;
public final static int WeChat = 3; public final static int WeChat = 3;
public final static int Line = 4; public final static int Line = 4;
public final static int Kakao_Talk= 5; public final static int Kakao_Talk = 5;
public final static int SMS = 6;
public final static int Efax = 7;
public static String getContractTitleByType(int type) {
switch (type) {
case Email:
return "Email";
case Whatsapp:
return "WhatsApp";
case WeChat:
return "WeChat";
case Line:
return "Line";
case Kakao_Talk:
return "Kakao Talk";
case SMS:
return "SMS";
case Efax:
return "Efax";
default:
return "";
}
}
public SupplierContacts() { public static @Resource
int getContractPicByType(int type) {
switch (type) {
case Email:
return R.drawable.ic_email;
case Whatsapp:
return R.drawable.ic_whatsapp;
case WeChat:
return R.drawable.ic_wechat;
case Line:
return R.drawable.ic_line;
case Kakao_Talk:
return R.drawable.ic_talk;
case SMS:
return R.drawable.ic_sms;
case Efax:
return R.drawable.img_small_default;
default:
return R.drawable.img_small_default;
}
} }
public SupplierContacts(String configText, int type) { public SupplierContacts(String configText, int type, boolean isDefault) {
this.configText = configText; this.configText = configText;
this.type = type; this.type = type;
this.isDefault = isDefault;
} }
} }
} }
package com.gingersoft.supply_chain.mvp.bean;
import java.util.List;
import lombok.Data;
/**
* @author 宇航.
* User: admin
* Date: 2020/12/26
* Time: 15:46
* Use:
*/
@Data
public class WareHousingOrderBean {
private int count;
private List<WareHousingBean> list;
@Data
public static class WareHousingBean {
private int id;
private String warehousingOrderNo;
private int uid;
private int orderId;
private int totalPrice;
private int status;
private long createTime;
private long updateTime;
private int purchaseFoodCount;
private String name;
}
}
...@@ -12,12 +12,19 @@ import java.util.Map; ...@@ -12,12 +12,19 @@ import java.util.Map;
* Use: * Use:
*/ */
public class Constant { public class Constant {
public static final int PAGE_SIZE = 10;
public static final int PURCHASE_FOOD_MAX = 9999;
public static final int DELETE = 1; public static final int DELETE = 1;
public static final int NORMAL = 0; public static final int NORMAL = 0;
public static final String GET_INFO_ERROR = "數據獲取失敗,請稍候再試"; public static final String GET_INFO_ERROR = "數據獲取失敗,請稍候再試";
public static final String INFO_SYNTAX_ERROR = "數據解析失敗,請聯繫開發人員"; public static final String INFO_SYNTAX_ERROR = "數據解析失敗,請聯繫開發人員";
public static final String GET_INFO_LOADING = "數據獲取中..."; public static final String GET_INFO_LOADING = "數據獲取中...";
public static final String NULL_INFO_ERROR = "未獲取到數據,請退出後重試";
public static final String SAVE_SUCCESS = "保存成功";
public static final String SAVE_FAIL = "保存失敗";
public static void addBrandId(Map<String, Object> map) { public static void addBrandId(Map<String, Object> map) {
...@@ -29,7 +36,7 @@ public class Constant { ...@@ -29,7 +36,7 @@ public class Constant {
} }
public static void addPageSize(Map<String, Object> map) { public static void addPageSize(Map<String, Object> map) {
map.put("pageSize", 10); map.put("pageSize", PAGE_SIZE);
} }
} }
...@@ -8,6 +8,7 @@ import com.qmuiteam.qmui.widget.section.QMUISection; ...@@ -8,6 +8,7 @@ import com.qmuiteam.qmui.widget.section.QMUISection;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import io.reactivex.Observable; import io.reactivex.Observable;
......
...@@ -50,6 +50,10 @@ public interface FoodIngredientsContract { ...@@ -50,6 +50,10 @@ public interface FoodIngredientsContract {
void loadCategory(List<OrderCategoryBean.FoodCategoryTrees> foodCategoryTrees); void loadCategory(List<OrderCategoryBean.FoodCategoryTrees> foodCategoryTrees);
void loadFail(); void loadFail();
void setCurrentSupplierName(String name);
void setCurrentCategoryName(String name);
} }
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存 //Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
......
package com.gingersoft.supply_chain.mvp.contract;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.supply_chain.mvp.bean.BasicUnitBean;
import com.gingersoft.supply_chain.mvp.bean.DeputyUnitBean;
import com.jess.arms.mvp.IView;
import com.jess.arms.mvp.IModel;
import java.util.List;
import io.reactivex.Observable;
import okhttp3.RequestBody;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 12/28/2020 16:05
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
public interface FoodUnitPageContract {
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface View extends IView {
void loadBasicUnitAdapter(List<BasicUnitBean> basicUnitBeans);
void loadDeputyUnitAdapter(List<DeputyUnitBean> deputyUnitBeans);
}
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends IModel {
/**
* 獲取基本單位集合
* @param brandId 品牌id
* @param restaurantId 餐廳ID
* @return
*/
Observable<BaseResult> getDeputyUnitList(int brandId, int restaurantId);
/**
* 批量修改副單位
* @return
*/
Observable<BaseResult> updateDeputyUnitList(RequestBody requestBody);
}
}
...@@ -38,5 +38,8 @@ public interface NewFoodIngredientsContract { ...@@ -38,5 +38,8 @@ public interface NewFoodIngredientsContract {
Observable<BaseResult> upLoadPic(List<MultipartBody.Part> parts); Observable<BaseResult> upLoadPic(List<MultipartBody.Part> parts);
Observable<BaseResult> addFood(RequestBody requestBody); Observable<BaseResult> addFood(RequestBody requestBody);
Observable<BaseResult> updateFood(RequestBody requestBody);
} }
} }
...@@ -34,5 +34,9 @@ public interface NewSupplierContract { ...@@ -34,5 +34,9 @@ public interface NewSupplierContract {
Observable<BaseResult> getSupplierContact(String supplierId); Observable<BaseResult> getSupplierContact(String supplierId);
Observable<BaseResult> updateSupplierContact(RequestBody requestBody);
Observable<BaseResult> addSupplierContact(RequestBody requestBody);
} }
} }
package com.gingersoft.supply_chain.mvp.contract; package com.gingersoft.supply_chain.mvp.contract;
import com.gingersoft.gsa.cloud.common.bean.BaseResult; import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.supply_chain.mvp.bean.OrderDetailsBean; import com.gingersoft.supply_chain.mvp.bean.PurchaseOrderDetailsBean;
import com.jess.arms.mvp.IView; import com.jess.arms.mvp.IView;
import com.jess.arms.mvp.IModel; import com.jess.arms.mvp.IModel;
...@@ -24,7 +24,7 @@ import okhttp3.RequestBody; ...@@ -24,7 +24,7 @@ import okhttp3.RequestBody;
public interface OrderDetailsContract { public interface OrderDetailsContract {
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息 //对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface View extends IView { interface View extends IView {
void loadOrderDetails(OrderDetailsBean orderDetailsBean); void loadOrderDetails(PurchaseOrderDetailsBean orderDetailsBean);
} }
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存 //Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
......
...@@ -30,6 +30,10 @@ public interface PurchaseListContract { ...@@ -30,6 +30,10 @@ public interface PurchaseListContract {
interface View extends IView { interface View extends IView {
void loadOrderList(List<OrderBean> list); void loadOrderList(List<OrderBean> list);
void loadFail();
void loadError();
void deleteOrder(int position); void deleteOrder(int position);
} }
......
package com.gingersoft.supply_chain.mvp.contract; package com.gingersoft.supply_chain.mvp.contract;
import com.gingersoft.gsa.cloud.common.bean.BaseResult; import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.supply_chain.mvp.bean.SendSupplierMsgBean;
import com.jess.arms.mvp.IModel; import com.jess.arms.mvp.IModel;
import com.jess.arms.mvp.IView; import com.jess.arms.mvp.IView;
import java.util.List;
import io.reactivex.Observable; import io.reactivex.Observable;
import okhttp3.RequestBody; import okhttp3.RequestBody;
...@@ -24,6 +27,8 @@ public interface SendMsgContract { ...@@ -24,6 +27,8 @@ public interface SendMsgContract {
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息 //对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface View extends IView { interface View extends IView {
void loadQrCode(String url); void loadQrCode(String url);
void loadSupplierList(List<SendSupplierMsgBean> sendSupplierMsgBeans);
} }
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存 //Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
...@@ -31,5 +36,8 @@ public interface SendMsgContract { ...@@ -31,5 +36,8 @@ public interface SendMsgContract {
Observable<BaseResult> getPurchaseOrderQrCode(String orderId); Observable<BaseResult> getPurchaseOrderQrCode(String orderId);
Observable<BaseResult> senMsg(RequestBody requestBody); Observable<BaseResult> senMsg(RequestBody requestBody);
Observable<BaseResult> getSupplierContact(String supplierId);
} }
} }
package com.gingersoft.supply_chain.mvp.contract; package com.gingersoft.supply_chain.mvp.contract;
import com.gingersoft.gsa.cloud.common.bean.BaseResult; import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.supply_chain.mvp.bean.ConfirmOrderBean;
import com.gingersoft.supply_chain.mvp.bean.PurchaseFoodListVosBean; import com.gingersoft.supply_chain.mvp.bean.PurchaseFoodListVosBean;
import com.jess.arms.mvp.IModel; import com.jess.arms.mvp.IModel;
import com.jess.arms.mvp.IView; import com.jess.arms.mvp.IView;
...@@ -29,10 +30,13 @@ public interface ShoppingCatContract { ...@@ -29,10 +30,13 @@ public interface ShoppingCatContract {
void loadAdapter(List<List<PurchaseFoodListVosBean>> supplierFoods); void loadAdapter(List<List<PurchaseFoodListVosBean>> supplierFoods);
void setTotalInfo(int typeTotal, double totalPrice); void setTotalInfo(int typeTotal, double totalPrice);
void addOrderSuccess(List<ConfirmOrderBean.PurchaseOrder> purchaseOrders);
} }
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存 //Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends IModel { interface Model extends IModel {
Observable<BaseResult> addNewPurchaseOrder(RequestBody requestBody); Observable<BaseResult> addNewPurchaseOrder(RequestBody requestBody);
} }
} }
package com.gingersoft.supply_chain.mvp.contract; package com.gingersoft.supply_chain.mvp.contract;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.supply_chain.mvp.bean.WareHousingOrderBean;
import com.jess.arms.mvp.IView; import com.jess.arms.mvp.IView;
import com.jess.arms.mvp.IModel; import com.jess.arms.mvp.IModel;
import java.util.List;
import java.util.Map;
import io.reactivex.Observable;
/** /**
* ================================================ * ================================================
...@@ -19,11 +25,15 @@ import com.jess.arms.mvp.IModel; ...@@ -19,11 +25,15 @@ import com.jess.arms.mvp.IModel;
public interface StorageListContract { public interface StorageListContract {
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息 //对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface View extends IView { interface View extends IView {
void loadError();
void loadEmpty();
void loadSuccess(List<WareHousingOrderBean.WareHousingBean> list);
} }
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存 //Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface Model extends IModel { interface Model extends IModel {
Observable<BaseResult> getWareHouseList(Map<String, Object> map);
} }
} }
package com.gingersoft.supply_chain.mvp.model;
import android.app.Application;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.supply_chain.mvp.server.SupplierServer;
import com.google.gson.Gson;
import com.jess.arms.integration.IRepositoryManager;
import com.jess.arms.mvp.BaseModel;
import com.jess.arms.di.scope.FragmentScope;
import javax.inject.Inject;
import com.gingersoft.supply_chain.mvp.contract.FoodUnitPageContract;
import io.reactivex.Observable;
import okhttp3.RequestBody;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 12/28/2020 16:05
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
@FragmentScope
public class FoodUnitPageModel extends BaseModel implements FoodUnitPageContract.Model {
@Inject
Gson mGson;
@Inject
Application mApplication;
@Inject
public FoodUnitPageModel(IRepositoryManager repositoryManager) {
super(repositoryManager);
}
@Override
public void onDestroy() {
super.onDestroy();
this.mGson = null;
this.mApplication = null;
}
@Override
public Observable<BaseResult> getDeputyUnitList(int brandId, int restaurantId) {
return mRepositoryManager.obtainRetrofitService(SupplierServer.class).getDeputyUnitList(brandId, restaurantId);
}
@Override
public Observable<BaseResult> updateDeputyUnitList(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(SupplierServer.class).updateDeputyUnitList(requestBody);
}
}
\ No newline at end of file
...@@ -60,5 +60,10 @@ public class NewFoodIngredientsModel extends BaseModel implements NewFoodIngredi ...@@ -60,5 +60,10 @@ public class NewFoodIngredientsModel extends BaseModel implements NewFoodIngredi
return mRepositoryManager.obtainRetrofitService(SupplierServer.class).addFood(requestBody); return mRepositoryManager.obtainRetrofitService(SupplierServer.class).addFood(requestBody);
} }
@Override
public Observable<BaseResult> updateFood(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(SupplierServer.class).updateFood(requestBody);
}
} }
\ No newline at end of file
...@@ -61,4 +61,14 @@ public class NewSupplierModel extends BaseModel implements NewSupplierContract.M ...@@ -61,4 +61,14 @@ public class NewSupplierModel extends BaseModel implements NewSupplierContract.M
public Observable<BaseResult> getSupplierContact(String supplierId) { public Observable<BaseResult> getSupplierContact(String supplierId) {
return mRepositoryManager.obtainRetrofitService(SupplierServer.class).getSupplierContact(supplierId); return mRepositoryManager.obtainRetrofitService(SupplierServer.class).getSupplierContact(supplierId);
} }
@Override
public Observable<BaseResult> updateSupplierContact(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(SupplierServer.class).updateSupplierContact(requestBody);
}
@Override
public Observable<BaseResult> addSupplierContact(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(SupplierServer.class).addSupplierContact(requestBody);
}
} }
\ No newline at end of file
...@@ -56,4 +56,9 @@ public class SendMsgModel extends BaseModel implements SendMsgContract.Model { ...@@ -56,4 +56,9 @@ public class SendMsgModel extends BaseModel implements SendMsgContract.Model {
public Observable<BaseResult> senMsg(RequestBody requestBody) { public Observable<BaseResult> senMsg(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(SupplierServer.class).sendMsg(requestBody); return mRepositoryManager.obtainRetrofitService(SupplierServer.class).sendMsg(requestBody);
} }
@Override
public Observable<BaseResult> getSupplierContact(String supplierId) {
return mRepositoryManager.obtainRetrofitService(SupplierServer.class).getSupplierContact(supplierId);
}
} }
\ No newline at end of file
...@@ -51,4 +51,5 @@ public class ShoppingCatModel extends BaseModel implements ShoppingCatContract.M ...@@ -51,4 +51,5 @@ public class ShoppingCatModel extends BaseModel implements ShoppingCatContract.M
public Observable<BaseResult> addNewPurchaseOrder(RequestBody requestBody) { public Observable<BaseResult> addNewPurchaseOrder(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(SupplierServer.class).addNewPurchaseOrder(requestBody); return mRepositoryManager.obtainRetrofitService(SupplierServer.class).addNewPurchaseOrder(requestBody);
} }
} }
\ No newline at end of file
...@@ -2,6 +2,8 @@ package com.gingersoft.supply_chain.mvp.model; ...@@ -2,6 +2,8 @@ package com.gingersoft.supply_chain.mvp.model;
import android.app.Application; import android.app.Application;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.supply_chain.mvp.server.SupplierServer;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.jess.arms.integration.IRepositoryManager; import com.jess.arms.integration.IRepositoryManager;
import com.jess.arms.mvp.BaseModel; import com.jess.arms.mvp.BaseModel;
...@@ -12,6 +14,10 @@ import javax.inject.Inject; ...@@ -12,6 +14,10 @@ import javax.inject.Inject;
import com.gingersoft.supply_chain.mvp.contract.StorageListContract; import com.gingersoft.supply_chain.mvp.contract.StorageListContract;
import java.util.Map;
import io.reactivex.Observable;
/** /**
* ================================================ * ================================================
...@@ -43,4 +49,9 @@ public class StorageListModel extends BaseModel implements StorageListContract.M ...@@ -43,4 +49,9 @@ public class StorageListModel extends BaseModel implements StorageListContract.M
this.mGson = null; this.mGson = null;
this.mApplication = null; this.mApplication = null;
} }
@Override
public Observable<BaseResult> getWareHouseList( Map<String, Object> map) {
return mRepositoryManager.obtainRetrofitService(SupplierServer.class).getWareHouseList(map);
}
} }
\ No newline at end of file
...@@ -128,6 +128,7 @@ public class FoodIngredientsPresenter extends BasePresenter<FoodIngredientsContr ...@@ -128,6 +128,7 @@ public class FoodIngredientsPresenter extends BasePresenter<FoodIngredientsContr
} }
mRootView.loadLeftSupplierInfo(categoryBeans); mRootView.loadLeftSupplierInfo(categoryBeans);
if (info.getData().size() > 0) { if (info.getData().size() > 0) {
mRootView.setCurrentSupplierName(info.getData().get(0).getSupplierName());
mRootView.loadRightFoodIngredients(info.getData().get(0).getPurchaseFoodListVOS()); mRootView.loadRightFoodIngredients(info.getData().get(0).getPurchaseFoodListVOS());
} }
} }
...@@ -196,13 +197,14 @@ public class FoodIngredientsPresenter extends BasePresenter<FoodIngredientsContr ...@@ -196,13 +197,14 @@ public class FoodIngredientsPresenter extends BasePresenter<FoodIngredientsContr
} }
public void getFoodsBySupplierId(int supplierId) { public void getFoodsBySupplierId(int supplierId) {
if (supplierFoodsMap != null) { if (supplierFoodsMap == null) {
List<PurchaseFoodListVosBean> purchaseFoodListVOSBeans = supplierFoodsMap.get(supplierId); supplierFoodsMap = new HashMap<>(5);
if (purchaseFoodListVOSBeans != null) { }
mRootView.loadRightFoodIngredients(purchaseFoodListVOSBeans); List<PurchaseFoodListVosBean> purchaseFoodListVOSBeans = supplierFoodsMap.get(supplierId);
} else { if (purchaseFoodListVOSBeans != null && purchaseFoodListVOSBeans.size() > 0) {
loadFoodsBySupplierId(supplierId); mRootView.loadRightFoodIngredients(purchaseFoodListVOSBeans);
} } else {
loadFoodsBySupplierId(supplierId);
} }
} }
......
package com.gingersoft.supply_chain.mvp.presenter;
import android.app.Application;
import android.util.Log;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.core.restaurant.ResturantInfoManager;
import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.common.utils.other.TextUtil;
import com.gingersoft.supply_chain.mvp.bean.BasicUnitBean;
import com.gingersoft.supply_chain.mvp.bean.DeputyUnitBean;
import com.gingersoft.supply_chain.mvp.bean.PurchaseFoodListVosBean;
import com.gingersoft.supply_chain.mvp.content.Constant;
import com.jess.arms.integration.AppManager;
import com.jess.arms.di.scope.FragmentScope;
import com.jess.arms.mvp.BasePresenter;
import com.jess.arms.http.imageloader.ImageLoader;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber;
import okhttp3.MediaType;
import okhttp3.RequestBody;
import javax.inject.Inject;
import com.gingersoft.supply_chain.mvp.contract.FoodUnitPageContract;
import com.jess.arms.utils.RxLifecycleUtils;
import java.util.ArrayList;
import java.util.List;
import static com.gingersoft.supply_chain.mvp.content.Constant.GET_INFO_ERROR;
import static com.gingersoft.supply_chain.mvp.content.Constant.GET_INFO_LOADING;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 12/28/2020 16:05
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
@FragmentScope
public class FoodUnitPagePresenter extends BasePresenter<FoodUnitPageContract.Model, FoodUnitPageContract.View> {
@Inject
RxErrorHandler mErrorHandler;
@Inject
Application mApplication;
@Inject
ImageLoader mImageLoader;
@Inject
AppManager mAppManager;
/**
* 副單位
*/
private List<DeputyUnitBean> deputyUnitBeans;
@Inject
public FoodUnitPagePresenter(FoodUnitPageContract.Model model, FoodUnitPageContract.View rootView) {
super(model, rootView);
}
@Override
public void onDestroy() {
super.onDestroy();
this.mErrorHandler = null;
this.mAppManager = null;
this.mImageLoader = null;
this.mApplication = null;
}
public void getDeputyUnitList() {
mModel.getDeputyUnitList(ResturantInfoManager.newInstance().getBrandId(), ResturantInfoManager.newInstance().getRestaurantId())
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(GET_INFO_LOADING))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(BaseResult baseResult) {
if (baseResult.isSuccess() && baseResult.getData() != null) {
List<BasicUnitBean> basicUnitBeans = GsonUtils.jsonToList(GsonUtils.GsonString(baseResult.getData()), BasicUnitBean.class);
BasicUnitBean basicUnitBean = new BasicUnitBean();
basicUnitBean.setContent("+新增");
basicUnitBeans.add(basicUnitBean);
mRootView.loadBasicUnitAdapter(basicUnitBeans);
} else if (TextUtil.isNotEmptyOrNullOrUndefined(baseResult.getErrMsg())) {
mRootView.showMessage(baseResult.getErrMsg());
} else {
mRootView.showMessage(GET_INFO_ERROR);
}
}
});
}
public void addDeputyUnit() {
if (deputyUnitBeans.size() > 0) {
DeputyUnitBean basicUnitBean = deputyUnitBeans.get(deputyUnitBeans.size() - 1);
if (TextUtil.isEmptyOrNullOrUndefined(basicUnitBean.getDeputyUnit())) {
mRootView.showMessage("請輸入副單位");
mRootView.loadDeputyUnitAdapter(deputyUnitBeans);
return;
}
}
DeputyUnitBean unitBean = new DeputyUnitBean();
deputyUnitBeans.add(unitBean);
mRootView.loadDeputyUnitAdapter(deputyUnitBeans);
}
public void loadDeputyUnit(List<DeputyUnitBean> unitBeans) {
if (unitBeans == null) {
deputyUnitBeans = new ArrayList<>();
} else {
deputyUnitBeans = unitBeans;
}
mRootView.loadDeputyUnitAdapter(deputyUnitBeans);
}
}
...@@ -2,11 +2,11 @@ package com.gingersoft.supply_chain.mvp.presenter; ...@@ -2,11 +2,11 @@ package com.gingersoft.supply_chain.mvp.presenter;
import android.app.Application; import android.app.Application;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.core.restaurant.ResturantInfoManager; import com.gingersoft.gsa.cloud.common.core.restaurant.ResturantInfoManager;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils; import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.common.utils.other.TextUtil; import com.gingersoft.gsa.cloud.common.utils.other.TextUtil;
import com.gingersoft.gsa.cloud.ui.bean.InfoMultiBean; import com.gingersoft.gsa.cloud.ui.adapter.bean.InfoMultiBean;
import com.gingersoft.supply_chain.mvp.bean.MeasurementUnitBean; import com.gingersoft.supply_chain.mvp.bean.MeasurementUnitBean;
import com.gingersoft.supply_chain.mvp.contract.NewFoodUnitContract; import com.gingersoft.supply_chain.mvp.contract.NewFoodUnitContract;
import com.jess.arms.di.scope.FragmentScope; import com.jess.arms.di.scope.FragmentScope;
...@@ -15,6 +15,7 @@ import com.jess.arms.integration.AppManager; ...@@ -15,6 +15,7 @@ import com.jess.arms.integration.AppManager;
import com.jess.arms.mvp.BasePresenter; import com.jess.arms.mvp.BasePresenter;
import com.jess.arms.utils.RxLifecycleUtils; import com.jess.arms.utils.RxLifecycleUtils;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import javax.inject.Inject; import javax.inject.Inject;
...@@ -69,7 +70,9 @@ public class NewFoodUnitPresenter extends BasePresenter<NewFoodUnitContract.Mode ...@@ -69,7 +70,9 @@ public class NewFoodUnitPresenter extends BasePresenter<NewFoodUnitContract.Mode
if (foodUnit == null) { if (foodUnit == null) {
return; return;
} }
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(foodUnit)); ArrayList<MeasurementUnitBean.DataBean.Unit> units = new ArrayList<>();
units.add(foodUnit);
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(units));
mModel.addFoodUnit(requestBody) mModel.addFoodUnit(requestBody)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading("保存中...")) .doOnSubscribe(disposable -> mRootView.showLoading("保存中..."))
......
...@@ -3,17 +3,16 @@ package com.gingersoft.supply_chain.mvp.presenter; ...@@ -3,17 +3,16 @@ package com.gingersoft.supply_chain.mvp.presenter;
import android.app.Application; import android.app.Application;
import com.gingersoft.gsa.cloud.common.bean.BaseResult; import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.core.restaurant.ResturantInfoManager;
import com.gingersoft.gsa.cloud.common.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils; import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.common.utils.other.TextUtil; import com.gingersoft.gsa.cloud.common.utils.other.TextUtil;
import com.gingersoft.supply_chain.mvp.bean.OrderDetailsBean; import com.gingersoft.supply_chain.mvp.bean.PurchaseOrderDetailsBean;
import com.gingersoft.supply_chain.mvp.contract.OrderDetailsContract; import com.gingersoft.supply_chain.mvp.bean.OrderWareHouseBean;
import com.jess.arms.di.scope.FragmentScope;
import com.jess.arms.http.imageloader.ImageLoader;
import com.jess.arms.integration.AppManager; import com.jess.arms.integration.AppManager;
import com.jess.arms.di.scope.FragmentScope;
import com.jess.arms.mvp.BasePresenter; import com.jess.arms.mvp.BasePresenter;
import com.jess.arms.utils.RxLifecycleUtils; import com.jess.arms.http.imageloader.ImageLoader;
import javax.inject.Inject;
import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers; import io.reactivex.schedulers.Schedulers;
...@@ -22,8 +21,17 @@ import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber; ...@@ -22,8 +21,17 @@ import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber;
import okhttp3.MediaType; import okhttp3.MediaType;
import okhttp3.RequestBody; import okhttp3.RequestBody;
import javax.inject.Inject;
import com.gingersoft.supply_chain.mvp.contract.OrderDetailsContract;
import com.jess.arms.utils.RxLifecycleUtils;
import java.util.ArrayList;
import java.util.List;
import static com.gingersoft.supply_chain.mvp.content.Constant.GET_INFO_ERROR; import static com.gingersoft.supply_chain.mvp.content.Constant.GET_INFO_ERROR;
import static com.gingersoft.supply_chain.mvp.content.Constant.GET_INFO_LOADING; import static com.gingersoft.supply_chain.mvp.content.Constant.GET_INFO_LOADING;
import static com.gingersoft.supply_chain.mvp.content.Constant.NULL_INFO_ERROR;
/** /**
...@@ -49,6 +57,9 @@ public class OrderDetailsPresenter extends BasePresenter<OrderDetailsContract.Mo ...@@ -49,6 +57,9 @@ public class OrderDetailsPresenter extends BasePresenter<OrderDetailsContract.Mo
@Inject @Inject
AppManager mAppManager; AppManager mAppManager;
private int orderId;
private int orderDetailsId;
@Inject @Inject
public OrderDetailsPresenter(OrderDetailsContract.Model model, OrderDetailsContract.View rootView) { public OrderDetailsPresenter(OrderDetailsContract.Model model, OrderDetailsContract.View rootView) {
super(model, rootView); super(model, rootView);
...@@ -75,8 +86,10 @@ public class OrderDetailsPresenter extends BasePresenter<OrderDetailsContract.Mo ...@@ -75,8 +86,10 @@ public class OrderDetailsPresenter extends BasePresenter<OrderDetailsContract.Mo
@Override @Override
public void onNext(BaseResult baseResult) { public void onNext(BaseResult baseResult) {
if (baseResult.isSuccess()) { if (baseResult.isSuccess()) {
OrderDetailsBean orderDetailsBean = GsonUtils.GsonToBean(baseResult.getData().toString(), OrderDetailsBean.class); PurchaseOrderDetailsBean orderDetailsBean = GsonUtils.GsonToBean(GsonUtils.GsonString(baseResult.getData()), PurchaseOrderDetailsBean.class);
if (orderDetailsBean != null) { if (orderDetailsBean != null) {
OrderDetailsPresenter.this.orderId = orderId;
orderDetailsId = orderDetailsBean.getId();
mRootView.loadOrderDetails(orderDetailsBean); mRootView.loadOrderDetails(orderDetailsBean);
} else { } else {
mRootView.showMessage(GET_INFO_ERROR); mRootView.showMessage(GET_INFO_ERROR);
...@@ -90,9 +103,13 @@ public class OrderDetailsPresenter extends BasePresenter<OrderDetailsContract.Mo ...@@ -90,9 +103,13 @@ public class OrderDetailsPresenter extends BasePresenter<OrderDetailsContract.Mo
}); });
} }
public void addWarehouse() { public void addWarehouse(int state, String files, String remark, double totalAmount, List<PurchaseOrderDetailsBean.PurchaseOrderDetailsInfoVosBean> purchaseOrderDetailsInfoVosBeans) {
RequestBody requestBody = RequestBody.create(MediaType.parse("aplication/json"), ""); List<OrderWareHouseBean.PurchaseWarehousingOrderDetail> purchaseWarehousingOrderDetails = transformWareHoses(purchaseOrderDetailsInfoVosBeans);
OrderWareHouseBean wareHouseBean = getWareHouseBean(state, files, remark, totalAmount, purchaseWarehousingOrderDetails);
if(wareHouseBean == null){
return;
}
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(wareHouseBean));
mModel.addWarehouse(requestBody) mModel.addWarehouse(requestBody)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading(GET_INFO_LOADING)) .doOnSubscribe(disposable -> mRootView.showLoading(GET_INFO_LOADING))
...@@ -104,12 +121,8 @@ public class OrderDetailsPresenter extends BasePresenter<OrderDetailsContract.Mo ...@@ -104,12 +121,8 @@ public class OrderDetailsPresenter extends BasePresenter<OrderDetailsContract.Mo
@Override @Override
public void onNext(BaseResult baseResult) { public void onNext(BaseResult baseResult) {
if (baseResult.isSuccess()) { if (baseResult.isSuccess()) {
OrderDetailsBean orderDetailsBean = GsonUtils.GsonToBean(baseResult.getData().toString(), OrderDetailsBean.class); mRootView.showMessage("收貨成功");
if (orderDetailsBean != null) { mRootView.killMyself();
mRootView.loadOrderDetails(orderDetailsBean);
} else {
mRootView.showMessage(GET_INFO_ERROR);
}
} else if (TextUtil.isNotEmptyOrNullOrUndefined(baseResult.getErrMsg())) { } else if (TextUtil.isNotEmptyOrNullOrUndefined(baseResult.getErrMsg())) {
mRootView.showMessage(baseResult.getErrMsg()); mRootView.showMessage(baseResult.getErrMsg());
} else { } else {
...@@ -118,4 +131,51 @@ public class OrderDetailsPresenter extends BasePresenter<OrderDetailsContract.Mo ...@@ -118,4 +131,51 @@ public class OrderDetailsPresenter extends BasePresenter<OrderDetailsContract.Mo
} }
}); });
} }
private OrderWareHouseBean getWareHouseBean(int state, String files, String remark, double totalAmount, List<OrderWareHouseBean.PurchaseWarehousingOrderDetail> purchaseWarehousingOrderDetails) {
if(purchaseWarehousingOrderDetails == null){
return null;
}
OrderWareHouseBean orderWareHouseBean = new OrderWareHouseBean();
orderWareHouseBean.setStatus(state);
orderWareHouseBean.setOrderId(orderId);
OrderWareHouseBean.PurchaseWarehousingOrder purchaseWarehousingOrder = new OrderWareHouseBean.PurchaseWarehousingOrder();
purchaseWarehousingOrder.setRestaurantId(ResturantInfoManager.newInstance().getRestaurantId());
purchaseWarehousingOrder.setBrandId(ResturantInfoManager.newInstance().getBrandId());
purchaseWarehousingOrder.setFiles(files);
purchaseWarehousingOrder.setRemarks(remark);
purchaseWarehousingOrder.setTotalPrice(totalAmount);
orderWareHouseBean.setPurchaseWarehousingOrder(purchaseWarehousingOrder);
orderWareHouseBean.setPurchaseWarehousingOrderDetails(purchaseWarehousingOrderDetails);
return orderWareHouseBean;
}
private List<OrderWareHouseBean.PurchaseWarehousingOrderDetail> transformWareHoses(List<PurchaseOrderDetailsBean.PurchaseOrderDetailsInfoVosBean> purchaseOrderDetailsInfoVosBeans) {
if (purchaseOrderDetailsInfoVosBeans == null || purchaseOrderDetailsInfoVosBeans.size() <= 0) {
mRootView.showMessage(NULL_INFO_ERROR);
return null;
}
List<OrderWareHouseBean.PurchaseWarehousingOrderDetail> purchaseWarehousingOrderDetails = new ArrayList<>();
for (PurchaseOrderDetailsBean.PurchaseOrderDetailsInfoVosBean purchaseOrderDetailsInfoVosBean : purchaseOrderDetailsInfoVosBeans) {
if (purchaseOrderDetailsInfoVosBean.isChecked()) {
OrderWareHouseBean.PurchaseWarehousingOrderDetail purchaseWarehousingOrderDetail = new OrderWareHouseBean.PurchaseWarehousingOrderDetail();
purchaseWarehousingOrderDetail.setOrderDetailsId(orderDetailsId);
purchaseWarehousingOrderDetail.setPurchaseFoodId(purchaseOrderDetailsInfoVosBean.getId());
purchaseWarehousingOrderDetail.setFoodQuantity(purchaseOrderDetailsInfoVosBean.getFoodQuantity());
purchaseWarehousingOrderDetail.setFoodPrice(purchaseOrderDetailsInfoVosBean.getFoodPrice());
purchaseWarehousingOrderDetail.setTotalPrice(MoneyUtil.priceCalculation(purchaseOrderDetailsInfoVosBean.getFoodPrice(), purchaseOrderDetailsInfoVosBean.getFoodQuantity()));
purchaseWarehousingOrderDetail.setType(1);
purchaseWarehousingOrderDetail.setUnitContent(purchaseOrderDetailsInfoVosBean.getUnit_content() +"");
purchaseWarehousingOrderDetails.add(purchaseWarehousingOrderDetail);
}
}
if (purchaseWarehousingOrderDetails.size() <= 0) {
mRootView.showMessage("請選擇需要操作的食品");
return null;
}
return purchaseWarehousingOrderDetails;
}
} }
...@@ -3,8 +3,9 @@ package com.gingersoft.supply_chain.mvp.presenter; ...@@ -3,8 +3,9 @@ package com.gingersoft.supply_chain.mvp.presenter;
import android.app.Application; import android.app.Application;
import android.text.InputFilter; import android.text.InputFilter;
import android.view.inputmethod.EditorInfo; import android.view.inputmethod.EditorInfo;
import com.gingersoft.gsa.cloud.ui.bean.InfoMultiBean;
import com.gingersoft.gsa.cloud.ui.bean.MultiInputSelectBean; import com.gingersoft.gsa.cloud.ui.adapter.bean.InfoMultiBean;
import com.gingersoft.gsa.cloud.ui.adapter.bean.MultiInputSelectBean;
import com.gingersoft.supply_chain.mvp.bean.FoodPackingSpecificationBean; import com.gingersoft.supply_chain.mvp.bean.FoodPackingSpecificationBean;
import com.gingersoft.supply_chain.mvp.bean.MeasurementUnitBean; import com.gingersoft.supply_chain.mvp.bean.MeasurementUnitBean;
import com.gingersoft.supply_chain.mvp.contract.PackageSpecificationContract; import com.gingersoft.supply_chain.mvp.contract.PackageSpecificationContract;
...@@ -13,10 +14,14 @@ import com.jess.arms.di.scope.FragmentScope; ...@@ -13,10 +14,14 @@ import com.jess.arms.di.scope.FragmentScope;
import com.jess.arms.http.imageloader.ImageLoader; import com.jess.arms.http.imageloader.ImageLoader;
import com.jess.arms.integration.AppManager; import com.jess.arms.integration.AppManager;
import com.jess.arms.mvp.BasePresenter; import com.jess.arms.mvp.BasePresenter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import javax.inject.Inject; import javax.inject.Inject;
import me.jessyan.rxerrorhandler.core.RxErrorHandler; import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import static com.gingersoft.supply_chain.mvp.ui.fragment.food.PackageSpecificationFragment.OrderingUnitRequestCode; import static com.gingersoft.supply_chain.mvp.ui.fragment.food.PackageSpecificationFragment.OrderingUnitRequestCode;
import static com.gingersoft.supply_chain.mvp.ui.fragment.food.PackageSpecificationFragment.ReceivingUnitRequestCode; import static com.gingersoft.supply_chain.mvp.ui.fragment.food.PackageSpecificationFragment.ReceivingUnitRequestCode;
...@@ -81,7 +86,7 @@ public class PackageSpecificationPresenter extends BasePresenter<PackageSpecific ...@@ -81,7 +86,7 @@ public class PackageSpecificationPresenter extends BasePresenter<PackageSpecific
//訂貨單位最小價格 //訂貨單位最小價格
FoodPackingSpecificationBean orderingUnitBean = new FoodPackingSpecificationBean(); FoodPackingSpecificationBean orderingUnitBean = new FoodPackingSpecificationBean();
orderingUnitBean.setFoodUnitId(orderingUnit.getId()); orderingUnitBean.setFoodUnitId(orderingUnit.getId());
orderingUnitBean.setType(FoodPackingSpecificationBean.ORDERING_TYPE); // orderingUnitBean.setType(FoodPackingSpecificationBean.ORDERING_TYPE);
orderingUnitBean.setQuantityStarts(Double.parseDouble(getOrderingMinNum(infoMultiBeans))); orderingUnitBean.setQuantityStarts(Double.parseDouble(getOrderingMinNum(infoMultiBeans)));
orderingUnitBean.setQuantityEnd(Double.parseDouble(getOrderingMaxNum(infoMultiBeans))); orderingUnitBean.setQuantityEnd(Double.parseDouble(getOrderingMaxNum(infoMultiBeans)));
orderingUnitBean.setTypeName(infoMultiBeans.get(orderingUnitIndex).getShowValueThird()); orderingUnitBean.setTypeName(infoMultiBeans.get(orderingUnitIndex).getShowValueThird());
...@@ -90,7 +95,7 @@ public class PackageSpecificationPresenter extends BasePresenter<PackageSpecific ...@@ -90,7 +95,7 @@ public class PackageSpecificationPresenter extends BasePresenter<PackageSpecific
FoodPackingSpecificationBean receivingUnitBean = new FoodPackingSpecificationBean(); FoodPackingSpecificationBean receivingUnitBean = new FoodPackingSpecificationBean();
receivingUnitBean.setFoodUnitId(receivingUnit.getId()); receivingUnitBean.setFoodUnitId(receivingUnit.getId());
receivingUnitBean.setType(FoodPackingSpecificationBean.RECEIVING_TYPE); // receivingUnitBean.setType(FoodPackingSpecificationBean.RECEIVING_TYPE);
receivingUnitBean.setQuantityStarts(Double.parseDouble(getReceivingMinNum(infoMultiBeans))); receivingUnitBean.setQuantityStarts(Double.parseDouble(getReceivingMinNum(infoMultiBeans)));
receivingUnitBean.setQuantityEnd(Double.parseDouble(getReceivingMaxNum(infoMultiBeans))); receivingUnitBean.setQuantityEnd(Double.parseDouble(getReceivingMaxNum(infoMultiBeans)));
receivingUnitBean.setTypeName(infoMultiBeans.get(receivingUnitIndex).getShowValueThird()); receivingUnitBean.setTypeName(infoMultiBeans.get(receivingUnitIndex).getShowValueThird());
......
...@@ -28,6 +28,8 @@ import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber; ...@@ -28,6 +28,8 @@ import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber;
import okhttp3.MediaType; import okhttp3.MediaType;
import okhttp3.RequestBody; import okhttp3.RequestBody;
import static com.gingersoft.supply_chain.mvp.content.Constant.PAGE_SIZE;
/** /**
* Description:採購列表 * Description:採購列表
...@@ -69,7 +71,7 @@ public class PurchaseListPresenter extends BasePresenter<PurchaseListContract.Mo ...@@ -69,7 +71,7 @@ public class PurchaseListPresenter extends BasePresenter<PurchaseListContract.Mo
if (orderStatus != 0) { if (orderStatus != 0) {
map.put("status", orderStatus); map.put("status", orderStatus);
} }
map.put("pageIndex", pageIndex); map.put("pageIndex", pageIndex * PAGE_SIZE);
mModel.getOrderList(map) mModel.getOrderList(map)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading("獲取中...")) .doOnSubscribe(disposable -> mRootView.showLoading("獲取中..."))
...@@ -81,14 +83,29 @@ public class PurchaseListPresenter extends BasePresenter<PurchaseListContract.Mo ...@@ -81,14 +83,29 @@ public class PurchaseListPresenter extends BasePresenter<PurchaseListContract.Mo
@Override @Override
public void onNext(@NonNull PurchaseOrderResultBean info) { public void onNext(@NonNull PurchaseOrderResultBean info) {
if (info.isSuccess() && info.getData() != null) { if (info.isSuccess() && info.getData() != null) {
mRootView.loadOrderList(info.getData().getList()); if (info.getData().getCount() > 0) {
mRootView.loadOrderList(info.getData().getList());
} else if (pageIndex <= 0) {
mRootView.loadFail();
}
} else if (TextUtil.isNotEmptyOrNullOrUndefined(info.getErrMsg())) {
mRootView.showMessage(info.getErrMsg());
mRootView.loadFail();
} else {
mRootView.loadFail();
} }
} }
@Override
public void onError(Throwable t) {
super.onError(t);
mRootView.loadError();
}
}); });
} }
public void deleteOrder(int position, OrderBean orderBean){ public void deleteOrder(int position, OrderBean orderBean) {
orderBean.setDeletes(Constant.DELETE); orderBean.setDeletes(Constant.DELETE);
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(orderBean)); RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(orderBean));
mModel.updateOrder(requestBody) mModel.updateOrder(requestBody)
...@@ -101,7 +118,7 @@ public class PurchaseListPresenter extends BasePresenter<PurchaseListContract.Mo ...@@ -101,7 +118,7 @@ public class PurchaseListPresenter extends BasePresenter<PurchaseListContract.Mo
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) { .subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
@Override @Override
public void onNext(@NonNull BaseResult info) { public void onNext(@NonNull BaseResult info) {
if(info.isSuccess()){ if (info.isSuccess()) {
mRootView.deleteOrder(position); mRootView.deleteOrder(position);
} }
} }
......
...@@ -3,8 +3,12 @@ package com.gingersoft.supply_chain.mvp.presenter; ...@@ -3,8 +3,12 @@ package com.gingersoft.supply_chain.mvp.presenter;
import android.app.Application; import android.app.Application;
import com.gingersoft.gsa.cloud.common.bean.BaseResult; import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.utils.JsonUtils;
import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils; import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.common.utils.other.TextUtil; import com.gingersoft.gsa.cloud.common.utils.other.TextUtil;
import com.gingersoft.supply_chain.mvp.bean.ConfirmOrderBean;
import com.gingersoft.supply_chain.mvp.bean.SendSupplierMsgBean;
import com.gingersoft.supply_chain.mvp.bean.SupplierInfoBean;
import com.gingersoft.supply_chain.mvp.contract.SendMsgContract; import com.gingersoft.supply_chain.mvp.contract.SendMsgContract;
import com.jess.arms.di.scope.FragmentScope; import com.jess.arms.di.scope.FragmentScope;
import com.jess.arms.http.imageloader.ImageLoader; import com.jess.arms.http.imageloader.ImageLoader;
...@@ -12,7 +16,9 @@ import com.jess.arms.integration.AppManager; ...@@ -12,7 +16,9 @@ import com.jess.arms.integration.AppManager;
import com.jess.arms.mvp.BasePresenter; import com.jess.arms.mvp.BasePresenter;
import com.jess.arms.utils.RxLifecycleUtils; import com.jess.arms.utils.RxLifecycleUtils;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
import javax.inject.Inject; import javax.inject.Inject;
...@@ -25,6 +31,11 @@ import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber; ...@@ -25,6 +31,11 @@ import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber;
import okhttp3.MediaType; import okhttp3.MediaType;
import okhttp3.RequestBody; import okhttp3.RequestBody;
import static com.gingersoft.supply_chain.mvp.bean.SupplierInfoBean.SupplierContacts.Kakao_Talk;
import static com.gingersoft.supply_chain.mvp.bean.SupplierInfoBean.SupplierContacts.Line;
import static com.gingersoft.supply_chain.mvp.bean.SupplierInfoBean.SupplierContacts.WeChat;
import static com.gingersoft.supply_chain.mvp.bean.SupplierInfoBean.SupplierContacts.Whatsapp;
/** /**
* ================================================ * ================================================
...@@ -50,6 +61,7 @@ public class SendMsgPresenter extends BasePresenter<SendMsgContract.Model, SendM ...@@ -50,6 +61,7 @@ public class SendMsgPresenter extends BasePresenter<SendMsgContract.Model, SendM
AppManager mAppManager; AppManager mAppManager;
private Map<String, String> qrCodeMap = new HashMap<>(); private Map<String, String> qrCodeMap = new HashMap<>();
private List<SendSupplierMsgBean> sendSupplierMsgBeans;
@Inject @Inject
public SendMsgPresenter(SendMsgContract.Model model, SendMsgContract.View rootView) { public SendMsgPresenter(SendMsgContract.Model model, SendMsgContract.View rootView) {
...@@ -94,10 +106,44 @@ public class SendMsgPresenter extends BasePresenter<SendMsgContract.Model, SendM ...@@ -94,10 +106,44 @@ public class SendMsgPresenter extends BasePresenter<SendMsgContract.Model, SendM
private String configText; private String configText;
} }
public void sendMsg(int orderId, int type) { public void sendMsg() {
PurchaseMsgBean purchaseMsgBean = new PurchaseMsgBean(); if (sendSupplierMsgBeans == null) {
purchaseMsgBean.orderId = orderId; mRootView.showMessage("供應商信息獲取失敗,請退出重試");
purchaseMsgBean.type = type; return;
}
if (currentSelectedSupplier > sendSupplierMsgBeans.size()) {
mRootView.showMessage("請重新選擇供應商");
return;
}
SendSupplierMsgBean sendSupplierMsgBean = sendSupplierMsgBeans.get(currentSelectedSupplier);
int checkPosition = sendSupplierMsgBean.getCheckPosition();
List<SupplierInfoBean.SupplierContacts> supplierContacts = sendSupplierMsgBean.getSupplierContacts();
if (supplierContacts == null) {
mRootView.showMessage("當前供應商沒有發送方式");
return;
}
if (checkPosition > supplierContacts.size()) {
mRootView.showMessage("請重新選擇供應商的發送方式");
return;
}
int sendType = supplierContacts.get(checkPosition).getType();
if (sendType == Whatsapp) {
} else if (sendType == WeChat) {
} else if (sendType == Line) {
} else if (sendType == Kakao_Talk) {
} else {
PurchaseMsgBean purchaseMsgBean = new PurchaseMsgBean();
purchaseMsgBean.orderId = sendSupplierMsgBean.getOrderId();
purchaseMsgBean.type = sendType;
sendMsgByOrderIdAndType(purchaseMsgBean);
}
}
public void sendMsgByOrderIdAndType(PurchaseMsgBean purchaseMsgBean) {
//configText //configText
mModel.senMsg(RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(purchaseMsgBean))) mModel.senMsg(RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(purchaseMsgBean)))
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
...@@ -116,4 +162,93 @@ public class SendMsgPresenter extends BasePresenter<SendMsgContract.Model, SendM ...@@ -116,4 +162,93 @@ public class SendMsgPresenter extends BasePresenter<SendMsgContract.Model, SendM
}); });
} }
public void getSupplierListByOrders(List<ConfirmOrderBean.PurchaseOrder> purchaseOrders) {
//將訂單信息轉為用於顯示的供應商信息
if (purchaseOrders != null) {
sendSupplierMsgBeans = new ArrayList<>();
for (ConfirmOrderBean.PurchaseOrder purchaseOrder : purchaseOrders) {
SendSupplierMsgBean sendSupplierMsgBean = new SendSupplierMsgBean();
sendSupplierMsgBean.setId(purchaseOrder.getSupplierId());
sendSupplierMsgBean.setOrderId(purchaseOrder.getId());
sendSupplierMsgBean.setSupplierName(purchaseOrder.getSupplierName());
sendSupplierMsgBeans.add(sendSupplierMsgBean);
}
if (sendSupplierMsgBeans.size() > 0) {
//獲取第一個供應商的聯繫方式
getContactsBySupplier(0);
}
} else {
mRootView.showMessage("未獲取到訂單信息");
mRootView.killMyself();
}
}
/**
* 當前選中的供應商
*/
private int currentSelectedSupplier;
/**
* 獲取供應商聯繫方式
*
* @param supplierIndex 供應商在集合中的下標,方便將聯繫方式插入到集合中
*/
public void getContactsBySupplier(int supplierIndex) {
currentSelectedSupplier = supplierIndex;
String supplierId;
if (sendSupplierMsgBeans != null && sendSupplierMsgBeans.size() > supplierIndex) {
supplierId = sendSupplierMsgBeans.get(supplierIndex).getId() + "";
List<SupplierInfoBean.SupplierContacts> supplierContacts = sendSupplierMsgBeans.get(supplierIndex).getSupplierContacts();
for (SendSupplierMsgBean sendSupplierMsgBean : sendSupplierMsgBeans) {
sendSupplierMsgBean.setOpen(false);
}
sendSupplierMsgBeans.get(supplierIndex).setOpen(true);
if (supplierContacts != null) {
//如果已有聯繫方式,就不用調用接口
if (supplierContacts.size() <= 0) {
mRootView.showMessage("當前供應商沒有聯繫方式");
return;
} else {
mRootView.loadSupplierList(sendSupplierMsgBeans);
}
}
} else {
mRootView.showMessage("未獲取到供應商聯繫方式");
return;
}
mModel.getSupplierContact(supplierId)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading("查詢中..."))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseResult info) {
if (info != null) {
if (info.isSuccess() && info.getData() != null) {
List<SupplierInfoBean.SupplierContacts> supplierContacts = JsonUtils.parseArray(info.getData(), SupplierInfoBean.SupplierContacts.class);
if (supplierContacts != null) {
for (int i = 0; i < supplierContacts.size(); i++) {
if (supplierContacts.get(i).isDefault()) {
sendSupplierMsgBeans.get(supplierIndex).setCheckPosition(i);
break;
}
}
}
sendSupplierMsgBeans.get(supplierIndex).setSupplierContacts(supplierContacts);
mRootView.loadSupplierList(sendSupplierMsgBeans);
} else if (TextUtil.isNotEmptyOrNullOrUndefined(info.getErrMsg())) {
mRootView.showMessage(info.getErrMsg());
} else {
//獲取聯繫方式失敗
mRootView.showMessage("獲取聯繫方式失敗或供應商沒有聯繫方式");
}
} else {
mRootView.showMessage("獲取聯繫方式失敗");
}
}
});
}
} }
...@@ -8,6 +8,10 @@ import com.gingersoft.gsa.cloud.common.bean.BaseResult; ...@@ -8,6 +8,10 @@ import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.core.restaurant.ResturantInfoManager; import com.gingersoft.gsa.cloud.common.core.restaurant.ResturantInfoManager;
import com.gingersoft.gsa.cloud.common.utils.JsonUtils; import com.gingersoft.gsa.cloud.common.utils.JsonUtils;
import com.gingersoft.gsa.cloud.common.utils.MoneyUtil; import com.gingersoft.gsa.cloud.common.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.common.utils.other.TextUtil;
import com.gingersoft.supply_chain.R;
import com.gingersoft.supply_chain.mvp.bean.ConfirmOrderBean;
import com.gingersoft.supply_chain.mvp.bean.NewPurchaseOrderBean; import com.gingersoft.supply_chain.mvp.bean.NewPurchaseOrderBean;
import com.gingersoft.supply_chain.mvp.bean.PurchaseFoodListVosBean; import com.gingersoft.supply_chain.mvp.bean.PurchaseFoodListVosBean;
import com.gingersoft.supply_chain.mvp.content.SupplyShoppingCart; import com.gingersoft.supply_chain.mvp.content.SupplyShoppingCart;
...@@ -20,6 +24,7 @@ import com.jess.arms.utils.RxLifecycleUtils; ...@@ -20,6 +24,7 @@ import com.jess.arms.utils.RxLifecycleUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -176,4 +181,88 @@ public class ShoppingCatPresenter extends BasePresenter<ShoppingCatContract.Mode ...@@ -176,4 +181,88 @@ public class ShoppingCatPresenter extends BasePresenter<ShoppingCatContract.Mode
} }
public List<ConfirmOrderBean> getOrganizeShopCartData() {
Map<Integer, ConfirmOrderBean> listMap = new HashMap<>(4);
for (PurchaseFoodListVosBean cartFood : SupplyShoppingCart.getInstance().getCartFoods()) {
//計算總價
if (cartFood.isChecked()) {
ConfirmOrderBean confirmOrderBean = listMap.get(cartFood.getSupplierId());
if (confirmOrderBean == null) {
confirmOrderBean = new ConfirmOrderBean();
confirmOrderBean.setPurchaseOrder(ConfirmOrderBean.conversionPurchaseOrder(cartFood));
confirmOrderBean.setMinimumAmount(cartFood.getMinimumAmount());
List<ConfirmOrderBean.PurchaseOrderDetails> purchaseOrderDetails = new ArrayList<>();
purchaseOrderDetails.add(ConfirmOrderBean.conversionPurchaseOrderDetails(cartFood));
confirmOrderBean.setPurchaseOrderDetails(purchaseOrderDetails);
listMap.put(cartFood.getSupplierId(), confirmOrderBean);
} else {
ConfirmOrderBean.PurchaseOrder purchaseOrder = confirmOrderBean.getPurchaseOrder();
//重新計算總價
purchaseOrder.setTotalAmount(MoneyUtil.sum(purchaseOrder.getTotalAmount(), MoneyUtil.priceCalculation(cartFood.getUnitPrice(), cartFood.getFoodQuantity())));
//計算加上運費之後的實際應付金額
purchaseOrder.setActualPayment(MoneyUtil.sum(purchaseOrder.getTotalAmount(), purchaseOrder.getShipping()));
//食品列表添加當前食品
List<ConfirmOrderBean.PurchaseOrderDetails> purchaseOrderDetails = confirmOrderBean.getPurchaseOrderDetails();
purchaseOrderDetails.add(ConfirmOrderBean.conversionPurchaseOrderDetails(cartFood));
}
}
}
ArrayList<ConfirmOrderBean> confirmOrderBeans = new ArrayList<>(listMap.values());
for (ConfirmOrderBean confirmOrderBean : confirmOrderBeans) {
if (MoneyUtil.compareTo(confirmOrderBean.getPurchaseOrder().getTotalAmount(), confirmOrderBean.getMinimumAmount()) < 0) {
//小於最低採購金額
mRootView.showMessage("不滿足【" + confirmOrderBean.getPurchaseOrder().getSupplierName() + "】的最低採購金額");
return null;
}
}
return new ArrayList<>(listMap.values());
}
public void addPurchaseOrder() {
List<ConfirmOrderBean> confirmOrderBeans = getOrganizeShopCartData();
if(confirmOrderBeans == null){
return;
}
mModel.addNewPurchaseOrder(RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(confirmOrderBeans)))
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading("訂單創建中..."))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(BaseResult baseResult) {
if (baseResult.isSuccess()) {
List<ConfirmOrderBean> confirmOrderBeanList = GsonUtils.jsonToList(baseResult.getData().toString(), ConfirmOrderBean.class);
List<ConfirmOrderBean.PurchaseOrder> purchaseOrders = new ArrayList<>();
for (ConfirmOrderBean confirmOrderBean : confirmOrderBeanList) {
for (ConfirmOrderBean confirmOrderBean1 : confirmOrderBeans) {
if (confirmOrderBean.getPurchaseOrder().getSupplierId() == confirmOrderBean1.getPurchaseOrder().getSupplierId()) {
confirmOrderBean.getPurchaseOrder().setSupplierName(confirmOrderBean1.getPurchaseOrder().getSupplierName());
break;
}
}
purchaseOrders.add(confirmOrderBean.getPurchaseOrder());
}
//訂單添加成功,將購物車中這些食品移除
Iterator<PurchaseFoodListVosBean> iterator = SupplyShoppingCart.getInstance().getCartFoods().iterator();
while (iterator.hasNext()) {
if (iterator.next().isChecked()) {
iterator.remove();
}
}
mRootView.addOrderSuccess(purchaseOrders);
} else if (TextUtil.isNotEmptyOrNullOrUndefined(baseResult.getErrMsg())) {
mRootView.showMessage(baseResult.getErrMsg());
} else {
mRootView.showMessage("創建訂單失敗,請稍後重試");
}
}
});
}
} }
...@@ -2,15 +2,30 @@ package com.gingersoft.supply_chain.mvp.presenter; ...@@ -2,15 +2,30 @@ package com.gingersoft.supply_chain.mvp.presenter;
import android.app.Application; import android.app.Application;
import com.gingersoft.gsa.cloud.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.common.core.restaurant.ResturantInfoManager;
import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.common.utils.other.TextUtil;
import com.gingersoft.supply_chain.mvp.bean.SupplierResultBean;
import com.gingersoft.supply_chain.mvp.bean.WareHousingOrderBean;
import com.gingersoft.supply_chain.mvp.contract.StorageListContract; import com.gingersoft.supply_chain.mvp.contract.StorageListContract;
import com.jess.arms.di.scope.FragmentScope; import com.jess.arms.di.scope.FragmentScope;
import com.jess.arms.http.imageloader.ImageLoader; import com.jess.arms.http.imageloader.ImageLoader;
import com.jess.arms.integration.AppManager; import com.jess.arms.integration.AppManager;
import com.jess.arms.mvp.BasePresenter; import com.jess.arms.mvp.BasePresenter;
import com.jess.arms.utils.RxLifecycleUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import javax.inject.Inject; import javax.inject.Inject;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.annotations.NonNull;
import io.reactivex.schedulers.Schedulers;
import me.jessyan.rxerrorhandler.core.RxErrorHandler; import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber;
/** /**
...@@ -53,7 +68,49 @@ public class StorageListPresenter extends BasePresenter<StorageListContract.Mode ...@@ -53,7 +68,49 @@ public class StorageListPresenter extends BasePresenter<StorageListContract.Mode
/** /**
* 獲取入庫單列表 * 獲取入庫單列表
*/ */
public void getStorageList(){ public void getStorageList(int pageIndex, int status, String orderNo) {
Map<String, Object> map = new HashMap<>(6);
map.put("pageSize", 10);
map.put("pageIndex", pageIndex);
map.put("restaurantId", ResturantInfoManager.newInstance().getRestaurantId());
map.put("brandId", ResturantInfoManager.newInstance().getBrandId());
map.put("status", status);
if (TextUtil.isNotEmptyOrNullOrUndefined(orderNo)) {
map.put("orderNo", orderNo);
}
mModel.getWareHouseList(map)
.subscribeOn(Schedulers.io())
.doOnSubscribe(disposable -> mRootView.showLoading("獲取中..."))
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(() -> mRootView.hideLoading())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResult>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseResult info) {
if (info != null) {
if (info.isSuccess()) {
WareHousingOrderBean wareHousingOrderBean = GsonUtils.GsonToBean(GsonUtils.GsonString(info.getData()), WareHousingOrderBean.class);
if (wareHousingOrderBean != null && wareHousingOrderBean.getList() != null && wareHousingOrderBean.getList().size() > 0) {
mRootView.loadSuccess(wareHousingOrderBean.getList());
} else {
mRootView.loadEmpty();
}
} else if (TextUtil.isNotEmptyOrNullOrUndefined(info.getErrMsg())) {
mRootView.showMessage(info.getErrMsg());
mRootView.loadError();
} else {
mRootView.loadError();
}
}
}
@Override
public void onError(Throwable t) {
super.onError(t);
mRootView.loadError();
}
});
} }
} }
...@@ -8,6 +8,7 @@ import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils; ...@@ -8,6 +8,7 @@ import com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.common.utils.other.TextUtil; import com.gingersoft.gsa.cloud.common.utils.other.TextUtil;
import com.gingersoft.supply_chain.mvp.bean.SupplierInfoBean; import com.gingersoft.supply_chain.mvp.bean.SupplierInfoBean;
import com.gingersoft.supply_chain.mvp.bean.SupplierResultBean; import com.gingersoft.supply_chain.mvp.bean.SupplierResultBean;
import com.gingersoft.supply_chain.mvp.content.Constant;
import com.gingersoft.supply_chain.mvp.contract.SupplierListContract; import com.gingersoft.supply_chain.mvp.contract.SupplierListContract;
import com.jess.arms.di.scope.FragmentScope; import com.jess.arms.di.scope.FragmentScope;
import com.jess.arms.http.imageloader.ImageLoader; import com.jess.arms.http.imageloader.ImageLoader;
...@@ -55,6 +56,7 @@ public class SupplierListPresenter extends BasePresenter<SupplierListContract.Mo ...@@ -55,6 +56,7 @@ public class SupplierListPresenter extends BasePresenter<SupplierListContract.Mo
AppManager mAppManager; AppManager mAppManager;
private List<SupplierInfoBean> supplierBeanList; private List<SupplierInfoBean> supplierBeanList;
@Inject @Inject
public SupplierListPresenter(SupplierListContract.Model model, SupplierListContract.View rootView) { public SupplierListPresenter(SupplierListContract.Model model, SupplierListContract.View rootView) {
super(model, rootView); super(model, rootView);
...@@ -70,9 +72,9 @@ public class SupplierListPresenter extends BasePresenter<SupplierListContract.Mo ...@@ -70,9 +72,9 @@ public class SupplierListPresenter extends BasePresenter<SupplierListContract.Mo
} }
public void getSupplierList(String content, int pageIndex) { public void getSupplierList(String content, int pageIndex) {
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>(5);
map.put("pageSize", 10); map.put("pageSize", Constant.PAGE_SIZE);
map.put("pageIndex", pageIndex); map.put("pageIndex", pageIndex * Constant.PAGE_SIZE);
map.put("restaurantId", ResturantInfoManager.newInstance().getRestaurantId()); map.put("restaurantId", ResturantInfoManager.newInstance().getRestaurantId());
map.put("brandId", ResturantInfoManager.newInstance().getBrandId()); map.put("brandId", ResturantInfoManager.newInstance().getBrandId());
if (!TextUtil.isEmptyOrNullOrUndefined(content)) { if (!TextUtil.isEmptyOrNullOrUndefined(content)) {
...@@ -91,10 +93,10 @@ public class SupplierListPresenter extends BasePresenter<SupplierListContract.Mo ...@@ -91,10 +93,10 @@ public class SupplierListPresenter extends BasePresenter<SupplierListContract.Mo
public void onNext(@NonNull SupplierResultBean info) { public void onNext(@NonNull SupplierResultBean info) {
if (info != null) { if (info != null) {
if (info.isSuccess()) { if (info.isSuccess()) {
if(supplierBeanList == null){ if (supplierBeanList == null) {
supplierBeanList = new ArrayList<>(); supplierBeanList = new ArrayList<>();
} }
if(pageIndex == 0){ if (pageIndex == 0) {
supplierBeanList.clear(); supplierBeanList.clear();
} }
supplierBeanList.addAll(info.getData().getList()); supplierBeanList.addAll(info.getData().getList());
...@@ -117,6 +119,7 @@ public class SupplierListPresenter extends BasePresenter<SupplierListContract.Mo ...@@ -117,6 +119,7 @@ public class SupplierListPresenter extends BasePresenter<SupplierListContract.Mo
public void deleteSupplier(SupplierInfoBean supplierBean, int position) { public void deleteSupplier(SupplierInfoBean supplierBean, int position) {
supplierBean.setDeletes(1); supplierBean.setDeletes(1);
supplierBean.setSupplierName(null);
supplierBean.setSupplierNo(null); supplierBean.setSupplierNo(null);
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(supplierBean)); RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(supplierBean));
mModel.updateSupplier(requestBody) mModel.updateSupplier(requestBody)
......
...@@ -26,17 +26,19 @@ import retrofit2.http.POST; ...@@ -26,17 +26,19 @@ import retrofit2.http.POST;
import retrofit2.http.Part; import retrofit2.http.Part;
import retrofit2.http.Query; import retrofit2.http.Query;
import retrofit2.http.QueryMap; import retrofit2.http.QueryMap;
import retrofit2.http.QueryName;
/** /**
* @author 宇航. * @author 宇航.
* User: admin * User: admin
*Date: 2020/11/20 * Date: 2020/11/20
* Time: 15:29 * Time: 15:29
* Use: * Use:
*/ */
public interface SupplierServer { public interface SupplierServer {
/** /**
* 新增供應商 * 新增供應商
*
* @param requestBody * @param requestBody
* @return * @return
*/ */
...@@ -46,6 +48,7 @@ public interface SupplierServer { ...@@ -46,6 +48,7 @@ public interface SupplierServer {
/** /**
* 獲取供應商列表 * 獲取供應商列表
*
* @param map * @param map
* @return * @return
*/ */
...@@ -55,6 +58,7 @@ public interface SupplierServer { ...@@ -55,6 +58,7 @@ public interface SupplierServer {
/** /**
* 修改供應商信息 * 修改供應商信息
*
* @param requestBody * @param requestBody
* @return * @return
*/ */
...@@ -64,6 +68,7 @@ public interface SupplierServer { ...@@ -64,6 +68,7 @@ public interface SupplierServer {
/** /**
* 獲取供應商聯繫方式 * 獲取供應商聯繫方式
*
* @param supplierId * @param supplierId
* @return * @return
*/ */
...@@ -72,7 +77,22 @@ public interface SupplierServer { ...@@ -72,7 +77,22 @@ public interface SupplierServer {
Observable<BaseResult> getSupplierContact(@Query("supplierId") String supplierId); Observable<BaseResult> getSupplierContact(@Query("supplierId") String supplierId);
/** /**
* 獲取供應商聯繫方式
*/
@Headers({"Domain-Name: ricepon-purchase"})
@POST("supplier/contact/update" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> updateSupplierContact(@Body RequestBody requestBody);
/**
* 批量新增供應商聯繫方式
*/
@Headers({"Domain-Name: ricepon-purchase"})
@POST("/supplier/contact/add" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> addSupplierContact(@Body RequestBody requestBody);
/**
* 獲取食品單位列表集合 * 獲取食品單位列表集合
*
* @param map * @param map
* @return * @return
*/ */
...@@ -82,6 +102,7 @@ public interface SupplierServer { ...@@ -82,6 +102,7 @@ public interface SupplierServer {
/** /**
* 修改食品單位 * 修改食品單位
*
* @param requestBody * @param requestBody
* @return * @return
*/ */
...@@ -91,6 +112,7 @@ public interface SupplierServer { ...@@ -91,6 +112,7 @@ public interface SupplierServer {
/** /**
* 獲取食品分類 * 獲取食品分類
*
* @param map * @param map
* @return * @return
*/ */
...@@ -100,15 +122,17 @@ public interface SupplierServer { ...@@ -100,15 +122,17 @@ public interface SupplierServer {
/** /**
* 新增食品單位 * 新增食品單位
*
* @param requestBody * @param requestBody
* @return * @return
*/ */
@Headers({"Domain-Name: ricepon-purchase"}) @Headers({"Domain-Name: ricepon-purchase"})
@POST("foodCategory/add" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2) @POST("foodUnit/add" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> addFoodUnit(@Body RequestBody requestBody); Observable<BaseResult> addFoodUnit(@Body RequestBody requestBody);
/** /**
* 新增分類 * 新增分類
*
* @param requestBody * @param requestBody
* @return * @return
*/ */
...@@ -118,6 +142,7 @@ public interface SupplierServer { ...@@ -118,6 +142,7 @@ public interface SupplierServer {
/** /**
* 修改分類 * 修改分類
*
* @param requestBody * @param requestBody
* @return * @return
*/ */
...@@ -127,6 +152,7 @@ public interface SupplierServer { ...@@ -127,6 +152,7 @@ public interface SupplierServer {
/** /**
* 上傳圖片 * 上傳圖片
*
* @param parts * @param parts
* @return * @return
*/ */
...@@ -137,6 +163,7 @@ public interface SupplierServer { ...@@ -137,6 +163,7 @@ public interface SupplierServer {
/** /**
* 新增食品 * 新增食品
*
* @param requestBody * @param requestBody
* @return * @return
*/ */
...@@ -146,6 +173,7 @@ public interface SupplierServer { ...@@ -146,6 +173,7 @@ public interface SupplierServer {
/** /**
* 根據供應商獲取食品集合信息 * 根據供應商獲取食品集合信息
*
* @param map * @param map
* @return * @return
*/ */
...@@ -155,6 +183,7 @@ public interface SupplierServer { ...@@ -155,6 +183,7 @@ public interface SupplierServer {
/** /**
* 和上面的是同一個接口,返回數據不一致 * 和上面的是同一個接口,返回數據不一致
*
* @param map * @param map
* @return * @return
*/ */
...@@ -164,6 +193,7 @@ public interface SupplierServer { ...@@ -164,6 +193,7 @@ public interface SupplierServer {
/** /**
* 修改食材信息 * 修改食材信息
*
* @param requestBody * @param requestBody
* @return * @return
*/ */
...@@ -173,6 +203,7 @@ public interface SupplierServer { ...@@ -173,6 +203,7 @@ public interface SupplierServer {
/** /**
* 獲取採購單列表 * 獲取採購單列表
*
* @param map * @param map
* @return * @return
*/ */
...@@ -182,6 +213,7 @@ public interface SupplierServer { ...@@ -182,6 +213,7 @@ public interface SupplierServer {
/** /**
* 修改採購單信息 * 修改採購單信息
*
* @param requestBody * @param requestBody
* @return * @return
*/ */
...@@ -191,14 +223,17 @@ public interface SupplierServer { ...@@ -191,14 +223,17 @@ public interface SupplierServer {
/** /**
* 獲取下單頁面的分類結構 * 獲取下單頁面的分類結構
*
* @param map * @param map
* @return * @return
*/ */
@Headers({"Domain-Name: ricepon-purchase"}) @Headers({"Domain-Name: ricepon-purchase"})
@GET("foodCategory/tree/get" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2) @GET("foodCategory/tree/get" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<OrderCategoryBean> getCategoryTrees(@QueryMap Map<String, Object> map); Observable<OrderCategoryBean> getCategoryTrees(@QueryMap Map<String, Object> map);
/** /**
* 新增採購訂單 * 新增採購訂單
*
* @param requestBody * @param requestBody
* @return * @return
*/ */
...@@ -208,6 +243,7 @@ public interface SupplierServer { ...@@ -208,6 +243,7 @@ public interface SupplierServer {
/** /**
* 獲取下單頁面的分類結構 * 獲取下單頁面的分類結構
*
* @param map * @param map
* @return * @return
*/ */
...@@ -217,6 +253,7 @@ public interface SupplierServer { ...@@ -217,6 +253,7 @@ public interface SupplierServer {
/** /**
* 獲取訂單生成後用於展示的鏈接 * 獲取訂單生成後用於展示的鏈接
*
* @param orderId * @param orderId
* @return * @return
*/ */
...@@ -227,6 +264,7 @@ public interface SupplierServer { ...@@ -227,6 +264,7 @@ public interface SupplierServer {
/** /**
* 根據用戶選擇的類型發送消息 * 根據用戶選擇的類型發送消息
*
* @return * @return
*/ */
@Headers({"Domain-Name: ricepon-purchase"}) @Headers({"Domain-Name: ricepon-purchase"})
...@@ -235,6 +273,7 @@ public interface SupplierServer { ...@@ -235,6 +273,7 @@ public interface SupplierServer {
/** /**
* 獲取訂單詳情 * 獲取訂單詳情
*
* @return * @return
*/ */
@Headers({"Domain-Name: ricepon-purchase"}) @Headers({"Domain-Name: ricepon-purchase"})
...@@ -242,7 +281,6 @@ public interface SupplierServer { ...@@ -242,7 +281,6 @@ public interface SupplierServer {
Observable<BaseResult> getOrderDetailsById(@Query("orderId") int orderId); Observable<BaseResult> getOrderDetailsById(@Query("orderId") int orderId);
/** /**
* 添加入庫 * 添加入庫
*/ */
...@@ -250,4 +288,29 @@ public interface SupplierServer { ...@@ -250,4 +288,29 @@ public interface SupplierServer {
@POST("purchaseOrder/warehousing/update" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2) @POST("purchaseOrder/warehousing/update" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> addWarehouse(@Body RequestBody requestBody); Observable<BaseResult> addWarehouse(@Body RequestBody requestBody);
/**
* 獲取訂單詳情
*
* @return
*/
@Headers({"Domain-Name: ricepon-purchase"})
@GET("purchaseWarehousingOrder/list" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> getWareHouseList(@QueryMap Map<String, Object> map);
/**
* 獲取基本單位
*/
@Headers({"Domain-Name: ricepon-purchase"})
@GET("basicUnitType/list" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> getDeputyUnitList(@Query("brandId") int brandId, @Query("restaurantId") int restaurantId);
/**
* 批量修改副單位
*/
@Headers({"Domain-Name: ricepon-purchase"})
@POST("basicUnitType/set" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> updateDeputyUnitList(@Body RequestBody requestBody);
} }
package com.gingersoft.supply_chain.mvp.ui.adapter;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.viewholder.BaseViewHolder;
import com.gingersoft.supply_chain.R;
import com.gingersoft.supply_chain.mvp.bean.BasicUnitBean;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.List;
/**
* @author 宇航.
* User: admin
* Date: 2020/12/29
* Time: 15:52
* Use:
*/
public class BasicUnitAdapter extends BaseQuickAdapter<BasicUnitBean, BaseViewHolder> {
public BasicUnitAdapter(@Nullable List<BasicUnitBean> data) {
super(R.layout.item_basic_unit, data);
}
@Override
protected void convert(@NotNull BaseViewHolder viewHolder, BasicUnitBean item) {
viewHolder.setText(R.id.tv_basic_unit, item.getContent());
if (viewHolder.getAdapterPosition() == getData().size() - 1) {
viewHolder.setTextColorRes(R.id.tv_basic_unit, R.color.theme_color);
} else {
viewHolder.setTextColorRes(R.id.tv_basic_unit, R.color.color_3c);
}
}
}
package com.gingersoft.supply_chain.mvp.ui.adapter;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.EditText;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.viewholder.BaseViewHolder;
import com.gingersoft.gsa.cloud.common.utils.other.TextUtil;
import com.gingersoft.supply_chain.R;
import com.gingersoft.supply_chain.mvp.bean.BasicUnitBean;
import com.gingersoft.supply_chain.mvp.bean.DeputyUnitBean;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.List;
/**
* @author 宇航.
* User: admin
* Date: 2020/12/29
* Time: 16:31
* Use:
*/
public class DeputyUnitAdapter extends BaseQuickAdapter<DeputyUnitBean, BaseViewHolder> {
public DeputyUnitAdapter(@Nullable List<DeputyUnitBean> data) {
super(R.layout.item_deputy_unit, data);
addChildClickViewIds(R.id.iv_deputy_unit_delete);
}
@Override
protected void convert(@NotNull BaseViewHolder viewHolder, DeputyUnitBean item) {
EditText edDeputyUnitName = viewHolder.getView(R.id.ed_deputy_unit_name);
EditText edConversionMultiple = viewHolder.getView(R.id.ed_deputy_unit_conversion_multiple);
viewHolder.setText(R.id.tv_deputy_unit_title, "副單位" + viewHolder.getAdapterPosition() + 1);
viewHolder.setText(R.id.ed_deputy_unit_name, item.getDeputyUnit());
viewHolder.setText(R.id.ed_deputy_unit_conversion_multiple, item.getConversionMultiple());
if (TextUtil.isEmptyOrNullOrUndefined(item.getDeputyUnit())) {
edDeputyUnitName.requestFocus();
}
TextWatcher deputyUnitNameWatcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
DeputyUnitBean deputyUnitBean = getData().get(viewHolder.getAdapterPosition());
deputyUnitBean.setDeputyUnit(s + "");
}
};
setFocusChangeListener(edDeputyUnitName, deputyUnitNameWatcher);
TextWatcher conversionMultipleWatcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
DeputyUnitBean deputyUnitBean = getData().get(viewHolder.getAdapterPosition());
deputyUnitBean.setConversionMultiple(s + "");
}
};
setFocusChangeListener(edConversionMultiple, conversionMultipleWatcher);
}
private void setFocusChangeListener(EditText edDeputyUnitName, TextWatcher deputyUnitNameWatcher) {
edDeputyUnitName.setOnFocusChangeListener((v, hasFocus) -> {
if (hasFocus) {
edDeputyUnitName.addTextChangedListener(deputyUnitNameWatcher);
} else {
edDeputyUnitName.removeTextChangedListener(deputyUnitNameWatcher);
}
});
}
}
...@@ -10,7 +10,7 @@ import android.widget.ImageView; ...@@ -10,7 +10,7 @@ import android.widget.ImageView;
import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.viewholder.BaseViewHolder; import com.chad.library.adapter.base.viewholder.BaseViewHolder;
import com.gingersoft.gsa.cloud.base.utils.glide.GlideUtils; import com.gingersoft.gsa.cloud.common.utils.glide.GlideUtils;
import com.gingersoft.gsa.cloud.common.utils.other.TextUtil; import com.gingersoft.gsa.cloud.common.utils.other.TextUtil;
import com.gingersoft.supply_chain.R; import com.gingersoft.supply_chain.R;
import com.gingersoft.supply_chain.mvp.bean.PurchaseFoodListVosBean; import com.gingersoft.supply_chain.mvp.bean.PurchaseFoodListVosBean;
...@@ -22,8 +22,10 @@ import java.util.HashMap; ...@@ -22,8 +22,10 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import static com.gingersoft.supply_chain.mvp.content.Constant.PURCHASE_FOOD_MAX;
import static com.gingersoft.supply_chain.mvp.ui.fragment.food.FoodIngredientsFragment.ADD_ORDER; import static com.gingersoft.supply_chain.mvp.ui.fragment.food.FoodIngredientsFragment.ADD_ORDER;
import static com.gingersoft.supply_chain.mvp.ui.fragment.food.FoodIngredientsFragment.FOOD_INGREDIENTS; import static com.gingersoft.supply_chain.mvp.ui.fragment.food.FoodIngredientsFragment.FOOD_INGREDIENTS;
import static com.gingersoft.supply_chain.mvp.ui.fragment.food.FoodIngredientsFragment.ORDER_TYPE;
/** /**
* @author 宇航. * @author 宇航.
...@@ -41,8 +43,6 @@ public class FoodListAdapter extends BaseQuickAdapter<PurchaseFoodListVosBean, F ...@@ -41,8 +43,6 @@ public class FoodListAdapter extends BaseQuickAdapter<PurchaseFoodListVosBean, F
* ORDER_TYPE * ORDER_TYPE
*/ */
private int adapterType; private int adapterType;
public final static int ORDER_TYPE = 3;
/** /**
* key 為foodId * key 為foodId
* value 為 food信息 * value 為 food信息
...@@ -84,13 +84,6 @@ public class FoodListAdapter extends BaseQuickAdapter<PurchaseFoodListVosBean, F ...@@ -84,13 +84,6 @@ public class FoodListAdapter extends BaseQuickAdapter<PurchaseFoodListVosBean, F
viewHolder.setGone(R.id.layout_operation_food_num, true); viewHolder.setGone(R.id.layout_operation_food_num, true);
viewHolder.setGone(R.id.cb_order_item_all_select, true); viewHolder.setGone(R.id.cb_order_item_all_select, true);
viewHolder.setGone(R.id.line_supplier_info, false); viewHolder.setGone(R.id.line_supplier_info, false);
} else if (adapterType == ADD_ORDER) {
viewHolder.setGone(R.id.iv_supplier_edit, true);
viewHolder.setGone(R.id.iv_supplier_delete, true);
viewHolder.setGone(R.id.layout_operation_food_num, false);
viewHolder.setGone(R.id.cb_order_item_all_select, true);
viewHolder.setGone(R.id.line_supplier_info, false);
setEdit(viewHolder, foodInfoBean);
} else if (adapterType == ORDER_TYPE) { } else if (adapterType == ORDER_TYPE) {
viewHolder.setGone(R.id.iv_supplier_edit, false); viewHolder.setGone(R.id.iv_supplier_edit, false);
viewHolder.setGone(R.id.iv_supplier_delete, false); viewHolder.setGone(R.id.iv_supplier_delete, false);
...@@ -105,6 +98,13 @@ public class FoodListAdapter extends BaseQuickAdapter<PurchaseFoodListVosBean, F ...@@ -105,6 +98,13 @@ public class FoodListAdapter extends BaseQuickAdapter<PurchaseFoodListVosBean, F
onCheckedChangeListener.onChanged(isChecked, getData().get(viewHolder.getAdapterPosition())); onCheckedChangeListener.onChanged(isChecked, getData().get(viewHolder.getAdapterPosition()));
} }
}); });
} else {
viewHolder.setGone(R.id.iv_supplier_edit, true);
viewHolder.setGone(R.id.iv_supplier_delete, true);
viewHolder.setGone(R.id.layout_operation_food_num, false);
viewHolder.setGone(R.id.cb_order_item_all_select, true);
viewHolder.setGone(R.id.line_supplier_info, false);
setEdit(viewHolder, foodInfoBean);
} }
} }
...@@ -214,7 +214,7 @@ public class FoodListAdapter extends BaseQuickAdapter<PurchaseFoodListVosBean, F ...@@ -214,7 +214,7 @@ public class FoodListAdapter extends BaseQuickAdapter<PurchaseFoodListVosBean, F
private void addNumber(EditText editText, PurchaseFoodListVosBean foodInfoBean) { private void addNumber(EditText editText, PurchaseFoodListVosBean foodInfoBean) {
PurchaseFoodListVosBean purchaseFoodListVosBean = integerMap.get(foodInfoBean.getId()); PurchaseFoodListVosBean purchaseFoodListVosBean = integerMap.get(foodInfoBean.getId());
if (purchaseFoodListVosBean != null) { if (purchaseFoodListVosBean != null) {
if (purchaseFoodListVosBean.getFoodQuantity() < 9999) { if (purchaseFoodListVosBean.getFoodQuantity() < PURCHASE_FOOD_MAX) {
purchaseFoodListVosBean.setFoodQuantity(purchaseFoodListVosBean.getFoodQuantity() + 1); purchaseFoodListVosBean.setFoodQuantity(purchaseFoodListVosBean.getFoodQuantity() + 1);
} }
} else { } else {
......
package com.gingersoft.supply_chain.mvp.ui.adapter; package com.gingersoft.supply_chain.mvp.ui.adapter;
import android.content.Context; import android.content.Context;
import android.view.View;
import android.widget.LinearLayout;
import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.viewholder.BaseViewHolder; import com.chad.library.adapter.base.viewholder.BaseViewHolder;
import com.gingersoft.gsa.cloud.common.utils.MoneyUtil; import com.gingersoft.gsa.cloud.common.utils.MoneyUtil;
import com.gingersoft.supply_chain.R; import com.gingersoft.supply_chain.R;
import com.gingersoft.supply_chain.mvp.bean.OrderDetailsBean; import com.gingersoft.supply_chain.mvp.bean.PurchaseOrderDetailsBean;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
...@@ -22,17 +20,17 @@ import java.util.List; ...@@ -22,17 +20,17 @@ import java.util.List;
* Time: 9:07 * Time: 9:07
* Use: * Use:
*/ */
public class OrderDetailsFoodAdapter extends BaseQuickAdapter<OrderDetailsBean.PurchaseOrderDetailsInfoVosBean, BaseViewHolder> { public class OrderDetailsFoodAdapter extends BaseQuickAdapter<PurchaseOrderDetailsBean.PurchaseOrderDetailsInfoVosBean, BaseViewHolder> {
private Context context; private Context context;
public OrderDetailsFoodAdapter(Context context, @Nullable List<OrderDetailsBean.PurchaseOrderDetailsInfoVosBean> data) { public OrderDetailsFoodAdapter(Context context, @Nullable List<PurchaseOrderDetailsBean.PurchaseOrderDetailsInfoVosBean> data) {
super(R.layout.item_order_details_food, data); super(R.layout.item_order_details_food, data);
this.context = context; this.context = context;
} }
@Override @Override
protected void convert(@NotNull BaseViewHolder viewHolder, OrderDetailsBean.PurchaseOrderDetailsInfoVosBean item) { protected void convert(@NotNull BaseViewHolder viewHolder, PurchaseOrderDetailsBean.PurchaseOrderDetailsInfoVosBean item) {
viewHolder.setText(R.id.tv_order_details_item_food_name, item.getName()); viewHolder.setText(R.id.tv_order_details_item_food_name, item.getName());
viewHolder.setText(R.id.tv_order_details_item_purchasing_unit, item.getUnit_content()); viewHolder.setText(R.id.tv_order_details_item_purchasing_unit, item.getUnit_content());
viewHolder.setText(R.id.tv_order_details_item_purchasing_unit_price, String.valueOf(item.getFoodPrice())); viewHolder.setText(R.id.tv_order_details_item_purchasing_unit_price, String.valueOf(item.getFoodPrice()));
......
package com.gingersoft.supply_chain.mvp.ui.adapter; package com.gingersoft.supply_chain.mvp.ui.adapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.viewholder.BaseViewHolder; import com.chad.library.adapter.base.viewholder.BaseViewHolder;
import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils; import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils;
...@@ -20,6 +24,7 @@ import java.util.List; ...@@ -20,6 +24,7 @@ import java.util.List;
*/ */
public class PurchaseOrderAdapter extends BaseQuickAdapter<OrderBean, BaseViewHolder> { public class PurchaseOrderAdapter extends BaseQuickAdapter<OrderBean, BaseViewHolder> {
public PurchaseOrderAdapter(@Nullable List<OrderBean> data) { public PurchaseOrderAdapter(@Nullable List<OrderBean> data) {
super(R.layout.item_purchase_order, data); super(R.layout.item_purchase_order, data);
addChildClickViewIds(R.id.iv_supplier_delete, R.id.btn_purchase_send, R.id.btn_purchase_buy_again, R.id.btn_receiver_goods); addChildClickViewIds(R.id.iv_supplier_delete, R.id.btn_purchase_send, R.id.btn_purchase_buy_again, R.id.btn_receiver_goods);
......
package com.gingersoft.supply_chain.mvp.ui.adapter;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.listener.OnItemClickListener;
import com.chad.library.adapter.base.viewholder.BaseViewHolder;
import com.gingersoft.supply_chain.R;
import com.gingersoft.supply_chain.mvp.bean.SendSupplierMsgBean;
import com.gingersoft.supply_chain.mvp.bean.SupplierInfoBean;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.List;
import static com.gingersoft.supply_chain.mvp.bean.SupplierInfoBean.SupplierContacts.getContractPicByType;
/**
* @author 宇航.
* User: admin
* Date: 2020/12/29
* Time: 10:38
* Use:
*/
public class SendSupplierMsgAdapter extends BaseQuickAdapter<SendSupplierMsgBean, BaseViewHolder> {
public SendSupplierMsgAdapter(List<SendSupplierMsgBean> sendSupplierMsgBeans) {
super(R.layout.item_supplier_send_msg, sendSupplierMsgBeans);
}
@Override
protected void convert(@NotNull BaseViewHolder viewHolder, SendSupplierMsgBean sendSupplierMsgBean) {
viewHolder.setText(R.id.tv_item_send_supplier_msg_supplier_name, sendSupplierMsgBean.getSupplierName());
RecyclerView rvContacts = viewHolder.getView(R.id.rv_item_send_supplier_msg);
ContactsListAdapter contactsListAdapter = new ContactsListAdapter(sendSupplierMsgBean.getSupplierContacts());
contactsListAdapter.setOnItemClickListener((adapter, view, position) -> {
contactsListAdapter.setSelectIndex(position);
contactsListAdapter.notifyItemChanged(sendSupplierMsgBean.getCheckPosition());
contactsListAdapter.notifyItemChanged(position);
sendSupplierMsgBean.setCheckPosition(position);
});
rvContacts.setAdapter(contactsListAdapter);
LinearLayout contactsLayout = viewHolder.getView(R.id.layout_send_supplier_msg_hide_show);
viewHolder.getView(R.id.layout_open_hide_send_supplier_msg).setOnClickListener(v -> contactsLayout.setVisibility(View.GONE));
viewHolder.getView(R.id.tv_item_send_supplier_msg_supplier_name).setOnClickListener(v -> contactsLayout.setVisibility(View.VISIBLE));
}
public static class ContactsListAdapter extends BaseQuickAdapter<SupplierInfoBean.SupplierContacts, BaseViewHolder> {
private int selectIndex = 0;
public ContactsListAdapter(@Nullable List<SupplierInfoBean.SupplierContacts> data) {
super(R.layout.item_pic_radio, data);
}
@Override
protected void convert(@NotNull BaseViewHolder viewHolder, SupplierInfoBean.SupplierContacts item) {
RadioButton radioButton = viewHolder.getView(R.id.rb_select_dialog_list_radio);
radioButton.setChecked(viewHolder.getAdapterPosition() == selectIndex);
viewHolder.setText(R.id.tv_select_dialog_list_title, SupplierInfoBean.SupplierContacts.getContractTitleByType(item.getType()));
viewHolder.setImageResource(R.id.iv_item_pic_radio_pic, getContractPicByType(item.getType()));
radioButton.setOnCheckedChangeListener((buttonView, isChecked) -> {
if (isChecked) {
setSelectIndex(viewHolder.getAdapterPosition());
notifyDataSetChanged();
}
});
}
public void setSelectIndex(int selectIndex) {
this.selectIndex = selectIndex;
}
public int getSelectIndex() {
return selectIndex;
}
}
}
...@@ -5,6 +5,7 @@ import android.view.View; ...@@ -5,6 +5,7 @@ import android.view.View;
import android.widget.CheckBox; import android.widget.CheckBox;
import android.widget.TextView; import android.widget.TextView;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseQuickAdapter;
...@@ -22,7 +23,7 @@ import java.util.ArrayList; ...@@ -22,7 +23,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import static com.gingersoft.supply_chain.mvp.ui.adapter.FoodListAdapter.ORDER_TYPE; import static com.gingersoft.supply_chain.mvp.ui.fragment.food.FoodIngredientsFragment.ORDER_TYPE;
/** /**
* @author 宇航. * @author 宇航.
...@@ -44,6 +45,7 @@ public class ShoppingCartAdapter extends BaseQuickAdapter<List<PurchaseFoodListV ...@@ -44,6 +45,7 @@ public class ShoppingCartAdapter extends BaseQuickAdapter<List<PurchaseFoodListV
/** /**
* 將集合中已選中的食品添加到 用於操作的集合中 * 將集合中已選中的食品添加到 用於操作的集合中
*
* @param data * @param data
*/ */
public void addChecked(@Nullable List<List<PurchaseFoodListVosBean>> data) { public void addChecked(@Nullable List<List<PurchaseFoodListVosBean>> data) {
...@@ -63,7 +65,15 @@ public class ShoppingCartAdapter extends BaseQuickAdapter<List<PurchaseFoodListV ...@@ -63,7 +65,15 @@ public class ShoppingCartAdapter extends BaseQuickAdapter<List<PurchaseFoodListV
protected void convert(@NotNull BaseViewHolder viewHolder, List<PurchaseFoodListVosBean> purchaseFoodListVosBeans) { protected void convert(@NotNull BaseViewHolder viewHolder, List<PurchaseFoodListVosBean> purchaseFoodListVosBeans) {
RecyclerView rvFoods = viewHolder.getView(R.id.rv_shopping_cart_food); RecyclerView rvFoods = viewHolder.getView(R.id.rv_shopping_cart_food);
if (purchaseFoodListVosBeans != null && purchaseFoodListVosBeans.size() > 0) { if (purchaseFoodListVosBeans != null && purchaseFoodListVosBeans.size() > 0) {
viewHolder.setText(R.id.tv_order_item_supplier_name, purchaseFoodListVosBeans.get(0).getSupplierName()); //先判斷是否滿足最低採購金額
double minimumAmount = purchaseFoodListVosBeans.get(0).getMinimumAmount();
double totalAmount = getTotalAmount(purchaseFoodListVosBeans);
if (MoneyUtil.compareTo(totalAmount, minimumAmount) < 0) {
//小於最低採購金額
viewHolder.setText(R.id.tv_minimumAmount, String.format(context.getString(R.string.minimumAmount), minimumAmount));
} else {
viewHolder.setText(R.id.tv_minimumAmount, purchaseFoodListVosBeans.get(0).getAddress());
}
TextView tvPrice = viewHolder.getView(R.id.tv_order_item_total_amount); TextView tvPrice = viewHolder.getView(R.id.tv_order_item_total_amount);
TextView tvFoodTypeNumber = viewHolder.getView(R.id.tv_order_item_food_type_total); TextView tvFoodTypeNumber = viewHolder.getView(R.id.tv_order_item_food_type_total);
...@@ -86,8 +96,9 @@ public class ShoppingCartAdapter extends BaseQuickAdapter<List<PurchaseFoodListV ...@@ -86,8 +96,9 @@ public class ShoppingCartAdapter extends BaseQuickAdapter<List<PurchaseFoodListV
rvFoods.setAdapter(foodListAdapter); rvFoods.setAdapter(foodListAdapter);
CheckBox cbAllSelect = viewHolder.getView(R.id.cb_order_item_all_select); CheckBox cbAllSelect = viewHolder.getView(R.id.cb_order_item_all_select);
cbAllSelect.setText(purchaseFoodListVosBeans.get(0).getSupplierName());
//全選按鈕的事件監聽 //全選按鈕的事件監聽
allSelectListener(foodListAdapter, cbAllSelect); allSelectListener(foodListAdapter, tvPrice, tvFoodTypeNumber, cbAllSelect);
//單個食品的數量修改 //單個食品的數量修改
foodListAdapter.setOnNumberChangeListener((foodId, number, position) -> { foodListAdapter.setOnNumberChangeListener((foodId, number, position) -> {
...@@ -123,9 +134,9 @@ public class ShoppingCartAdapter extends BaseQuickAdapter<List<PurchaseFoodListV ...@@ -123,9 +134,9 @@ public class ShoppingCartAdapter extends BaseQuickAdapter<List<PurchaseFoodListV
calculateTotalPrice(purchaseFoodListVosBeans, tvPrice, tvFoodTypeNumber, cbAllSelect); calculateTotalPrice(purchaseFoodListVosBeans, tvPrice, tvFoodTypeNumber, cbAllSelect);
rvFoods.setVisibility(View.VISIBLE); rvFoods.setVisibility(View.VISIBLE);
} else { } else {
viewHolder.setText(R.id.tv_order_item_supplier_name, "");
viewHolder.setText(R.id.tv_order_item_food_type_total, String.valueOf(0)); viewHolder.setText(R.id.tv_order_item_food_type_total, String.valueOf(0));
viewHolder.setText(R.id.tv_order_item_total_amount, "$0"); viewHolder.setText(R.id.tv_order_item_total_amount, "$0");
viewHolder.setText(R.id.cb_order_item_all_select, "");
rvFoods.setVisibility(View.GONE); rvFoods.setVisibility(View.GONE);
} }
} }
...@@ -176,7 +187,7 @@ public class ShoppingCartAdapter extends BaseQuickAdapter<List<PurchaseFoodListV ...@@ -176,7 +187,7 @@ public class ShoppingCartAdapter extends BaseQuickAdapter<List<PurchaseFoodListV
* @param foodListAdapter 顯示所有食品的adapter * @param foodListAdapter 顯示所有食品的adapter
* @param cbAllSelect 複選框 * @param cbAllSelect 複選框
*/ */
private void allSelectListener(FoodListAdapter foodListAdapter, CheckBox cbAllSelect) { private void allSelectListener(FoodListAdapter foodListAdapter, TextView tvPrice, TextView tvNumber, CheckBox cbAllSelect) {
//全選 //全選
cbAllSelect.setOnCheckedChangeListener((buttonView, isChecked) -> { cbAllSelect.setOnCheckedChangeListener((buttonView, isChecked) -> {
if (buttonView.isPressed()) { if (buttonView.isPressed()) {
...@@ -186,6 +197,7 @@ public class ShoppingCartAdapter extends BaseQuickAdapter<List<PurchaseFoodListV ...@@ -186,6 +197,7 @@ public class ShoppingCartAdapter extends BaseQuickAdapter<List<PurchaseFoodListV
} }
purchaseFoodListVosBean.setChecked(isChecked); purchaseFoodListVosBean.setChecked(isChecked);
} }
calculateTotalPrice(foodListAdapter.getData(), tvPrice, tvNumber, cbAllSelect);
foodListAdapter.notifyDataSetChanged(); foodListAdapter.notifyDataSetChanged();
} }
}); });
...@@ -215,6 +227,20 @@ public class ShoppingCartAdapter extends BaseQuickAdapter<List<PurchaseFoodListV ...@@ -215,6 +227,20 @@ public class ShoppingCartAdapter extends BaseQuickAdapter<List<PurchaseFoodListV
} }
} }
/**
* 獲取所有食品的總金額
*
* @param purchaseFoodListVosBeans
* @return
*/
private double getTotalAmount(List<PurchaseFoodListVosBean> purchaseFoodListVosBeans) {
double totalAmount = 0;
for (PurchaseFoodListVosBean purchaseFoodListVosBean : purchaseFoodListVosBeans) {
totalAmount = MoneyUtil.sum(totalAmount, MoneyUtil.priceCalculation(purchaseFoodListVosBean.getUnitPrice(), purchaseFoodListVosBean.getFoodQuantity()));
}
return totalAmount;
}
public List<PurchaseFoodListVosBean> getPurchaseFoodListVosBeans() { public List<PurchaseFoodListVosBean> getPurchaseFoodListVosBeans() {
return selectFoods; return selectFoods;
} }
......
...@@ -29,8 +29,7 @@ public class SupplierAdapter extends BaseQuickAdapter<SupplierInfoBean, BaseView ...@@ -29,8 +29,7 @@ public class SupplierAdapter extends BaseQuickAdapter<SupplierInfoBean, BaseView
public SupplierAdapter(@Nullable List<SupplierInfoBean> data, boolean isSelect) { public SupplierAdapter(@Nullable List<SupplierInfoBean> data, boolean isSelect) {
super(R.layout.item_supplier, data); super(R.layout.item_supplier, data);
addChildClickViewIds(R.id.iv_supplier_delete); addChildClickViewIds(R.id.iv_supplier_delete, R.id.layout_supplier_food_info);
addChildClickViewIds(R.id.layout_supplier_food_info);
this.isSelect = isSelect; this.isSelect = isSelect;
} }
......
package com.gingersoft.supply_chain.mvp.ui.adapter;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.viewholder.BaseViewHolder;
import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils;
import com.gingersoft.supply_chain.R;
import com.gingersoft.supply_chain.mvp.bean.PurchaseOrderDetailsBean;
import com.gingersoft.supply_chain.mvp.bean.WareHousingOrderBean;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.List;
/**
* @author 宇航.
* User: admin
* Date: 2020/12/2
* Time: 17:36
* Use: 採購訂單列表
*/
public class WareHousingAdapter extends BaseQuickAdapter<WareHousingOrderBean.WareHousingBean, BaseViewHolder> {
public WareHousingAdapter() {
super(R.layout.item_ware_housing);
// addChildClickViewIds(R.id.iv_supplier_delete, R.id.btn_purchase_send, R.id.btn_purchase_buy_again, R.id.btn_receiver_goods);
}
@Override
protected void convert(@NotNull BaseViewHolder viewHolder, WareHousingOrderBean.WareHousingBean wareHousingBean) {
// viewHolder.setText(R.id.tv_warehouse_supplier_name, "" + wareHousingBean.getOrderNo());
viewHolder.setText(R.id.tv_warehouse_create_time, TimeUtils.getTime(wareHousingBean.getCreateTime(), TimeUtils.DEFAULT_DATE_FORMAT_YMDHM));
viewHolder.setText(R.id.tv_warehouse_no, wareHousingBean.getWarehousingOrderNo()+"");
// viewHolder.setText(R.id.tv_warehouse_order_no, purchaseOrderBean.getName());
viewHolder.setText(R.id.tv_warehouse_goods_num, wareHousingBean.getName());
viewHolder.setText(R.id.tv_warehouse_total_price, wareHousingBean.getTotalPrice()+"");
viewHolder.setText(R.id.tv_warehouse_order_state, PurchaseOrderDetailsBean.getStringByOrderState(wareHousingBean.getStatus()));
}
}
...@@ -76,7 +76,6 @@ public class FunctionListFragment extends BaseSupplyChainFragment<FunctionListPr ...@@ -76,7 +76,6 @@ public class FunctionListFragment extends BaseSupplyChainFragment<FunctionListPr
@Override @Override
public void initData(@Nullable Bundle savedInstanceState) { public void initData(@Nullable Bundle savedInstanceState) {
initTopBar(); initTopBar();
List<PurchaseFunctionBean> purchaseFunctionBeans = new ArrayList<>(); List<PurchaseFunctionBean> purchaseFunctionBeans = new ArrayList<>();
List<Function> basicManagementFunction = new ArrayList<>(); List<Function> basicManagementFunction = new ArrayList<>();
......
...@@ -2,6 +2,7 @@ package com.gingersoft.supply_chain.mvp.ui.fragment.category; ...@@ -2,6 +2,7 @@ package com.gingersoft.supply_chain.mvp.ui.fragment.category;
import android.app.Dialog; import android.app.Dialog;
import android.os.Bundle; import android.os.Bundle;
import android.text.InputFilter;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
...@@ -16,6 +17,7 @@ import androidx.core.content.ContextCompat; ...@@ -16,6 +17,7 @@ import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.gingersoft.gsa.cloud.common.utils.inputFilter.InputFilterUtils;
import com.gingersoft.gsa.cloud.common.utils.other.TextUtil; import com.gingersoft.gsa.cloud.common.utils.other.TextUtil;
import com.gingersoft.gsa.cloud.common.utils.toast.ToastUtils; import com.gingersoft.gsa.cloud.common.utils.toast.ToastUtils;
import com.gingersoft.gsa.cloud.ui.adapter.BaseCategoryAdapter; import com.gingersoft.gsa.cloud.ui.adapter.BaseCategoryAdapter;
...@@ -157,6 +159,7 @@ public class CategoryFragment extends BaseSupplyChainFragment<CategoryPresenter> ...@@ -157,6 +159,7 @@ public class CategoryFragment extends BaseSupplyChainFragment<CategoryPresenter>
public void initLayout(ViewHepler hepler, Dialog dialog) { public void initLayout(ViewHepler hepler, Dialog dialog) {
hepler.setText(R.id.tv_parent_category_name, finalParentCategoryName); hepler.setText(R.id.tv_parent_category_name, finalParentCategoryName);
EditText editText = hepler.getView(R.id.ed_new_category_name); EditText editText = hepler.getView(R.id.ed_new_category_name);
editText.setFilters(new InputFilter[]{InputFilterUtils.getLengthFilter(mContext, 4), InputFilterUtils.getChAndEnAndNumInputFilter(mContext)});
hepler.setOnClickListenter(R.id.btn_create_category, v1 -> { hepler.setOnClickListenter(R.id.btn_create_category, v1 -> {
if (TextUtil.isEmptyOrNullOrUndefined(editText)) { if (TextUtil.isEmptyOrNullOrUndefined(editText)) {
ToastUtils.show(mContext, "請輸入分類名稱"); ToastUtils.show(mContext, "請輸入分類名稱");
......
...@@ -31,7 +31,6 @@ import java.util.List; ...@@ -31,7 +31,6 @@ import java.util.List;
import butterknife.BindView; import butterknife.BindView;
import butterknife.OnClick; import butterknife.OnClick;
import static com.gingersoft.gsa.cloud.ui.adapter.BaseRadioSectionAdapter.SEPARATOR; import static com.gingersoft.gsa.cloud.ui.adapter.BaseRadioSectionAdapter.SEPARATOR;
......
package com.gingersoft.supply_chain.mvp.ui.fragment.food;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.EditText;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.FragmentActivity;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.listener.OnItemChildClickListener;
import com.chad.library.adapter.base.listener.OnItemClickListener;
import com.gingersoft.supply_chain.R;
import com.gingersoft.supply_chain.R2;
import com.gingersoft.supply_chain.di.component.DaggerFoodUnitPageComponent;
import com.gingersoft.supply_chain.mvp.bean.BasicUnitBean;
import com.gingersoft.supply_chain.mvp.bean.DeputyUnitBean;
import com.gingersoft.supply_chain.mvp.contract.FoodUnitPageContract;
import com.gingersoft.supply_chain.mvp.presenter.FoodUnitPagePresenter;
import com.gingersoft.supply_chain.mvp.ui.adapter.BasicUnitAdapter;
import com.gingersoft.supply_chain.mvp.ui.adapter.DeputyUnitAdapter;
import com.gingersoft.supply_chain.mvp.ui.fragment.BaseSupplyChainFragment;
import com.jess.arms.di.component.AppComponent;
import com.qmuiteam.qmui.alpha.QMUIAlphaTextView;
import com.qmuiteam.qmui.widget.QMUITopBar;
import java.util.List;
import butterknife.BindView;
import butterknife.OnClick;
/**
* ================================================
* Description: 最新版食品單位填寫頁面
*/
public class FoodUnitPageFragment extends BaseSupplyChainFragment<FoodUnitPagePresenter> implements FoodUnitPageContract.View {
@BindView(R2.id.supply_top_bar)
QMUITopBar topBar;
@BindView(R2.id.ed_basic_unit)
EditText edBasicUnit;
@BindView(R2.id.rv_deputy_unit_list)
RecyclerView rvDeputyUnitList;
@BindView(R2.id.rv_basic_unit_list)
RecyclerView rvBasicUnitList;
@BindView(R2.id.tv_food_unit_complete)
QMUIAlphaTextView tvFoodUnitComplete;
private DeputyUnitAdapter deputyUnitAdapter;
public static FoodUnitPageFragment newInstance() {
FoodUnitPageFragment fragment = new FoodUnitPageFragment();
return fragment;
}
@Override
public void setupFragmentComponent(@NonNull AppComponent appComponent) {
DaggerFoodUnitPageComponent //如找不到该类,请编译一下项目
.builder()
.appComponent(appComponent)
.view(this)
.build()
.inject(this);
}
@Override
public View initView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_food_unit_page, container, false);
}
@Override
public void initData(@Nullable Bundle savedInstanceState) {
initTopBar(topBar, "填寫商品單位");
mPresenter.getDeputyUnitList();
mPresenter.loadDeputyUnit(null);
}
@OnClick({R2.id.tv_add_deputy})
public void onClick(View view) {
int viewId = view.getId();
if (viewId == R.id.tv_add_deputy) {
//添加副單位
mPresenter.addDeputyUnit();
}
}
@Override
public void loadBasicUnitAdapter(List<BasicUnitBean> basicUnitBeans) {
BasicUnitAdapter basicUnitAdapter = new BasicUnitAdapter(basicUnitBeans);
rvBasicUnitList.setLayoutManager(new GridLayoutManager(mContext, 5));
rvBasicUnitList.setAdapter(basicUnitAdapter);
basicUnitAdapter.setOnItemClickListener((adapter, view, position) -> {
//先獲取當前焦點在哪個輸入框上,然後再填充內容
FragmentActivity activity = getActivity();
if (activity != null) {
Window window = activity.getWindow();
if (window != null) {
View decorView = window.getDecorView();
View focusView = decorView.findFocus();
if (focusView instanceof EditText) {
EditText editText = (EditText) focusView;
editText.setText(editText.getText() + basicUnitAdapter.getData().get(position).getContent());
}
}
}
});
}
@Override
public void loadDeputyUnitAdapter(List<DeputyUnitBean> deputyUnitBeans) {
if (deputyUnitAdapter == null) {
deputyUnitAdapter = new DeputyUnitAdapter(deputyUnitBeans);
rvDeputyUnitList.setAdapter(deputyUnitAdapter);
deputyUnitAdapter.setOnItemChildClickListener((adapter, view, position) -> {
if (view.getId() == R.id.iv_deputy_unit_delete) {
//刪除副單位
deputyUnitAdapter.removeAt(position);
}
});
} else {
deputyUnitAdapter.setList(deputyUnitBeans);
}
}
}
...@@ -10,6 +10,7 @@ import android.widget.LinearLayout; ...@@ -10,6 +10,7 @@ import android.widget.LinearLayout;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.gingersoft.gsa.cloud.common.loadsir.EmptyCallback; import com.gingersoft.gsa.cloud.common.loadsir.EmptyCallback;
import com.gingersoft.gsa.cloud.ui.utils.AppDialog; import com.gingersoft.gsa.cloud.ui.utils.AppDialog;
import com.gingersoft.supply_chain.R; import com.gingersoft.supply_chain.R;
......
package com.gingersoft.supply_chain.mvp.ui.fragment.food; package com.gingersoft.supply_chain.mvp.ui.fragment.food;
import android.os.Bundle; import android.os.Bundle;
import android.text.InputFilter;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
...@@ -9,9 +10,10 @@ import androidx.annotation.NonNull; ...@@ -9,9 +10,10 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.gingersoft.gsa.cloud.common.utils.inputFilter.InputFilterUtils;
import com.gingersoft.gsa.cloud.ui.adapter.bean.InfoMultiBean;
import com.gingersoft.gsa.cloud.ui.adapter.bean.MultiInputBean;
import com.gingersoft.gsa.cloud.ui.adapter.multi.InfoMultiAdapter; import com.gingersoft.gsa.cloud.ui.adapter.multi.InfoMultiAdapter;
import com.gingersoft.gsa.cloud.ui.bean.InfoMultiBean;
import com.gingersoft.gsa.cloud.ui.bean.MultiInputBean;
import com.gingersoft.gsa.cloud.ui.recylcler.decorator.DividerItemDecoration; import com.gingersoft.gsa.cloud.ui.recylcler.decorator.DividerItemDecoration;
import com.gingersoft.supply_chain.R; import com.gingersoft.supply_chain.R;
import com.gingersoft.supply_chain.R2; import com.gingersoft.supply_chain.R2;
...@@ -35,16 +37,7 @@ import static com.gingersoft.supply_chain.mvp.ui.fragment.food.MeasurementUnitFr ...@@ -35,16 +37,7 @@ import static com.gingersoft.supply_chain.mvp.ui.fragment.food.MeasurementUnitFr
/** /**
* ================================================
* Description: 新增計量單位 * Description: 新增計量單位
* <p>
* Created by MVPArmsTemplate on 11/21/2020 16:52
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/ */
public class NewFoodUnitFragment extends BaseSupplyChainFragment<NewFoodUnitPresenter> implements NewFoodUnitContract.View, View.OnClickListener { public class NewFoodUnitFragment extends BaseSupplyChainFragment<NewFoodUnitPresenter> implements NewFoodUnitContract.View, View.OnClickListener {
...@@ -104,8 +97,8 @@ public class NewFoodUnitFragment extends BaseSupplyChainFragment<NewFoodUnitPres ...@@ -104,8 +97,8 @@ public class NewFoodUnitFragment extends BaseSupplyChainFragment<NewFoodUnitPres
unitType.setInfoMultiBeans(units); unitType.setInfoMultiBeans(units);
infoMultiBeans.add(unitType); infoMultiBeans.add(unitType);
infoMultiBeans.add(new MultiInputBean(InfoMultiBean.ITEM_TYPE_INPUT, "計量單位", false, "請輸入計量單位")); infoMultiBeans.add(new MultiInputBean(InfoMultiBean.ITEM_TYPE_INPUT, "計量單位", false, "請輸入計量單位", new InputFilter[]{InputFilterUtils.getLengthFilter(mContext, 4), InputFilterUtils.getChAndEnAndNumInputFilter(mContext)}));
infoMultiBeans.add(new MultiInputBean(InfoMultiBean.ITEM_TYPE_INPUT, "備註", false, "請輸入備註")); infoMultiBeans.add(new MultiInputBean(InfoMultiBean.ITEM_MULTIPLE_INPUT_REMARK, "備註", false, "請輸入備註", new InputFilter[]{InputFilterUtils.getChAndEnAndNumInputFilter(mContext)}));
if(foodUnit != null){ if(foodUnit != null){
units.get(foodUnit.getType()).setChecked(true); units.get(foodUnit.getType()).setChecked(true);
infoMultiBeans.get(1).setShowValue(foodUnit.getUnitContent()); infoMultiBeans.get(1).setShowValue(foodUnit.getUnitContent());
......
...@@ -11,9 +11,9 @@ import androidx.recyclerview.widget.RecyclerView; ...@@ -11,9 +11,9 @@ import androidx.recyclerview.widget.RecyclerView;
import com.gingersoft.gsa.cloud.common.utils.other.TextUtil; import com.gingersoft.gsa.cloud.common.utils.other.TextUtil;
import com.gingersoft.gsa.cloud.common.utils.toast.ToastUtils; import com.gingersoft.gsa.cloud.common.utils.toast.ToastUtils;
import com.gingersoft.gsa.cloud.ui.adapter.bean.InfoMultiBean;
import com.gingersoft.gsa.cloud.ui.adapter.bean.MultiInputSelectBean;
import com.gingersoft.gsa.cloud.ui.adapter.multi.InfoMultiAdapter; import com.gingersoft.gsa.cloud.ui.adapter.multi.InfoMultiAdapter;
import com.gingersoft.gsa.cloud.ui.bean.InfoMultiBean;
import com.gingersoft.gsa.cloud.ui.bean.MultiInputSelectBean;
import com.gingersoft.gsa.cloud.ui.recylcler.decorator.DividerItemDecoration; import com.gingersoft.gsa.cloud.ui.recylcler.decorator.DividerItemDecoration;
import com.gingersoft.supply_chain.R; import com.gingersoft.supply_chain.R;
import com.gingersoft.supply_chain.R2; import com.gingersoft.supply_chain.R2;
......
...@@ -6,21 +6,29 @@ import android.view.View; ...@@ -6,21 +6,29 @@ import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.EditText; import android.widget.EditText;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import androidx.viewpager2.widget.ViewPager2; import androidx.viewpager2.widget.ViewPager2;
import com.gingersoft.gsa.cloud.common.loadsir.EmptyCallback;
import com.gingersoft.gsa.cloud.common.loadsir.ErrorCallback;
import com.gingersoft.supply_chain.R; import com.gingersoft.supply_chain.R;
import com.gingersoft.supply_chain.R2; import com.gingersoft.supply_chain.R2;
import com.gingersoft.supply_chain.di.component.DaggerStorageListComponent; import com.gingersoft.supply_chain.di.component.DaggerStorageListComponent;
import com.gingersoft.supply_chain.mvp.bean.OrderBean; import com.gingersoft.supply_chain.mvp.bean.PurchaseOrderDetailsBean;
import com.gingersoft.supply_chain.mvp.bean.WareHousingOrderBean;
import com.gingersoft.supply_chain.mvp.contract.StorageListContract; import com.gingersoft.supply_chain.mvp.contract.StorageListContract;
import com.gingersoft.supply_chain.mvp.presenter.StorageListPresenter; import com.gingersoft.supply_chain.mvp.presenter.StorageListPresenter;
import com.gingersoft.supply_chain.mvp.ui.adapter.PurchasePageAdapter; import com.gingersoft.supply_chain.mvp.ui.adapter.PurchasePageAdapter;
import com.gingersoft.supply_chain.mvp.ui.adapter.StorageAdapter; import com.gingersoft.supply_chain.mvp.ui.adapter.WareHousingAdapter;
import com.gingersoft.supply_chain.mvp.ui.fragment.BaseSupplyChainFragment; import com.gingersoft.supply_chain.mvp.ui.fragment.BaseSupplyChainFragment;
import com.gingersoft.supply_chain.mvp.ui.widget.ScreenView; import com.gingersoft.supply_chain.mvp.ui.widget.ScreenView;
import com.jess.arms.di.component.AppComponent; import com.jess.arms.di.component.AppComponent;
import com.kingja.loadsir.callback.SuccessCallback;
import com.kingja.loadsir.core.LoadService;
import com.kingja.loadsir.core.LoadSir;
import com.qmuiteam.qmui.alpha.QMUIAlphaButton; import com.qmuiteam.qmui.alpha.QMUIAlphaButton;
import com.qmuiteam.qmui.layout.QMUILinearLayout; import com.qmuiteam.qmui.layout.QMUILinearLayout;
import com.qmuiteam.qmui.util.QMUIDisplayHelper; import com.qmuiteam.qmui.util.QMUIDisplayHelper;
...@@ -30,23 +38,16 @@ import com.qmuiteam.qmui.widget.tab.QMUITabBuilder; ...@@ -30,23 +38,16 @@ import com.qmuiteam.qmui.widget.tab.QMUITabBuilder;
import com.qmuiteam.qmui.widget.tab.QMUITabIndicator; import com.qmuiteam.qmui.widget.tab.QMUITabIndicator;
import com.qmuiteam.qmui.widget.tab.QMUITabSegment; import com.qmuiteam.qmui.widget.tab.QMUITabSegment;
import com.qmuiteam.qmui.widget.tab.QMUITabSegment2; import com.qmuiteam.qmui.widget.tab.QMUITabSegment2;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import butterknife.BindView; import butterknife.BindView;
import butterknife.OnClick; import butterknife.OnClick;
/** /**
* ================================================
* Description: 入庫單列表 * Description: 入庫單列表
* <p>
* Created by MVPArmsTemplate on 12/10/2020 18:09
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/ */
public class StorageListFragment extends BaseSupplyChainFragment<StorageListPresenter> implements StorageListContract.View, View.OnClickListener { public class StorageListFragment extends BaseSupplyChainFragment<StorageListPresenter> implements StorageListContract.View, View.OnClickListener {
...@@ -66,8 +67,14 @@ public class StorageListFragment extends BaseSupplyChainFragment<StorageListPres ...@@ -66,8 +67,14 @@ public class StorageListFragment extends BaseSupplyChainFragment<StorageListPres
ViewPager2 contentViewPager; ViewPager2 contentViewPager;
@BindView(R2.id.btn_save) @BindView(R2.id.btn_save)
QMUIAlphaButton btnSave; QMUIAlphaButton btnSave;
@BindView(R2.id.view_load_bg)
View replaceView;
String[] tabs = new String[]{"待收貨", "已完成"};
private int pageIndex = 0;
private int stateIndex = 0;
private final int[] orderState = new int[]{PurchaseOrderDetailsBean.WAIT_RECEIVED, PurchaseOrderDetailsBean.COMPLETE_RECEIVED};
String[] tabs = new String[]{"全部", "待收貨", "部分收貨", "全部收貨", "拒收"}; private LoadService loadSir;
public static StorageListFragment newInstance() { public static StorageListFragment newInstance() {
StorageListFragment fragment = new StorageListFragment(); StorageListFragment fragment = new StorageListFragment();
...@@ -91,8 +98,14 @@ public class StorageListFragment extends BaseSupplyChainFragment<StorageListPres ...@@ -91,8 +98,14 @@ public class StorageListFragment extends BaseSupplyChainFragment<StorageListPres
@Override @Override
public void initData(@Nullable Bundle savedInstanceState) { public void initData(@Nullable Bundle savedInstanceState) {
loadSir = LoadSir.getDefault().register(replaceView);
initTopBar(); initTopBar();
initTabAndData(); initTabAndData();
}
private void getInfoList() {
mPresenter.getStorageList(pageIndex, orderState[stateIndex], "");
} }
private void initTopBar() { private void initTopBar() {
...@@ -101,18 +114,17 @@ public class StorageListFragment extends BaseSupplyChainFragment<StorageListPres ...@@ -101,18 +114,17 @@ public class StorageListFragment extends BaseSupplyChainFragment<StorageListPres
btnSave.setVisibility(View.GONE); btnSave.setVisibility(View.GONE);
} }
private WareHousingAdapter wareHouseAdapter;
private void initTabAndData() { private void initTabAndData() {
QMUITabBuilder builder = mTabSegment.tabBuilder() QMUITabBuilder builder = mTabSegment.tabBuilder()
.setNormalColor(ContextCompat.getColor(mContext, R.color.color_86)) .setNormalColor(ContextCompat.getColor(mContext, R.color.color_86))
.setSelectColor(ContextCompat.getColor(mContext, R.color.theme_color)); .setSelectColor(ContextCompat.getColor(mContext, R.color.theme_color));
List<OrderBean> orderBeans = new ArrayList<>(); // List<OrderBean> orderBeans = new ArrayList<>();
// for (int i = 0; i < 10; i++) { // StorageAdapter storageAdapter = new StorageAdapter(orderBeans);
// OrderBean orderBean = new OrderBean("S0001", 5, 11.11, 1, System.currentTimeMillis()); wareHouseAdapter = new WareHousingAdapter();
// orderBeans.add(orderBean); PurchasePageAdapter adapter = new PurchasePageAdapter(wareHouseAdapter, tabs.length);
// }
StorageAdapter storageAdapter = new StorageAdapter(orderBeans);
PurchasePageAdapter adapter = new PurchasePageAdapter(storageAdapter, tabs.length);
contentViewPager.setAdapter(adapter); contentViewPager.setAdapter(adapter);
mTabSegment.setupWithViewPager(contentViewPager); mTabSegment.setupWithViewPager(contentViewPager);
mTabSegment.setIndicator(new QMUITabIndicator( mTabSegment.setIndicator(new QMUITabIndicator(
...@@ -124,7 +136,8 @@ public class StorageListFragment extends BaseSupplyChainFragment<StorageListPres ...@@ -124,7 +136,8 @@ public class StorageListFragment extends BaseSupplyChainFragment<StorageListPres
mTabSegment.addOnTabSelectedListener(new QMUIBasicTabSegment.OnTabSelectedListener() { mTabSegment.addOnTabSelectedListener(new QMUIBasicTabSegment.OnTabSelectedListener() {
@Override @Override
public void onTabSelected(int index) { public void onTabSelected(int index) {
// mPresenter.getOrderList("", orderState[index], pageIndex); stateIndex = index;
getInfoList();
} }
@Override @Override
...@@ -152,4 +165,25 @@ public class StorageListFragment extends BaseSupplyChainFragment<StorageListPres ...@@ -152,4 +165,25 @@ public class StorageListFragment extends BaseSupplyChainFragment<StorageListPres
screenView.setVisibility(screenView.getVisibility() == View.VISIBLE ? View.GONE : View.VISIBLE); screenView.setVisibility(screenView.getVisibility() == View.VISIBLE ? View.GONE : View.VISIBLE);
} }
} }
@Override
public void loadError() {
loadSir.showCallback(ErrorCallback.class);
}
@Override
public void loadEmpty() {
loadSir.showCallback(EmptyCallback.class);
}
@Override
public void loadSuccess(List<WareHousingOrderBean.WareHousingBean> list) {
loadSir.showCallback(SuccessCallback.class);
wareHouseAdapter.setList(list);
}
// @Override
// public void loadSuccess() {
// loadSir.showCallback(SuccessCallback.class);
// }
} }
package com.gingersoft.supply_chain.mvp.ui.fragment.order; package com.gingersoft.supply_chain.mvp.ui.fragment.order;
import android.content.ContentValues;
import android.os.Bundle; import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.CheckBox; import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText; import android.widget.EditText;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.gingersoft.gsa.cloud.common.utils.MoneyUtil; import com.gingersoft.gsa.cloud.common.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils; import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils;
import com.gingersoft.supply_chain.R; import com.gingersoft.supply_chain.R;
import com.gingersoft.supply_chain.R2; import com.gingersoft.supply_chain.R2;
import com.gingersoft.supply_chain.di.component.DaggerOrderDetailsComponent; import com.gingersoft.supply_chain.di.component.DaggerOrderDetailsComponent;
import com.gingersoft.supply_chain.mvp.bean.OrderDetailsBean; import com.gingersoft.supply_chain.mvp.bean.PurchaseOrderDetailsBean;
import com.gingersoft.supply_chain.mvp.contract.OrderDetailsContract; import com.gingersoft.supply_chain.mvp.contract.OrderDetailsContract;
import com.gingersoft.supply_chain.mvp.presenter.OrderDetailsPresenter; import com.gingersoft.supply_chain.mvp.presenter.OrderDetailsPresenter;
import com.gingersoft.supply_chain.mvp.ui.adapter.OrderDetailsFoodAdapter; import com.gingersoft.supply_chain.mvp.ui.adapter.OrderDetailsFoodAdapter;
...@@ -27,6 +25,7 @@ import com.gingersoft.supply_chain.mvp.ui.fragment.BaseSupplyChainFragment; ...@@ -27,6 +25,7 @@ import com.gingersoft.supply_chain.mvp.ui.fragment.BaseSupplyChainFragment;
import com.jess.arms.di.component.AppComponent; import com.jess.arms.di.component.AppComponent;
import com.qmuiteam.qmui.alpha.QMUIAlphaTextView; import com.qmuiteam.qmui.alpha.QMUIAlphaTextView;
import com.qmuiteam.qmui.widget.QMUITopBar; import com.qmuiteam.qmui.widget.QMUITopBar;
import butterknife.BindView; import butterknife.BindView;
import butterknife.OnClick; import butterknife.OnClick;
...@@ -124,20 +123,34 @@ public class OrderDetailsFragment extends BaseSupplyChainFragment<OrderDetailsPr ...@@ -124,20 +123,34 @@ public class OrderDetailsFragment extends BaseSupplyChainFragment<OrderDetailsPr
} else if (viewId == R.id.tv_order_details_partial_receipt) { } else if (viewId == R.id.tv_order_details_partial_receipt) {
//部分收貨 //部分收貨
mPresenter.addWarehouse(PurchaseOrderDetailsBean.PART_RECEIVED, "", edOrderDetailsRemark.getText() + "", totalAmount, orderDetailsFoodAdapter.getData());
} else if (viewId == R.id.tv_order_details_receipt) { } else if (viewId == R.id.tv_order_details_receipt) {
//收貨 //收貨
mPresenter.addWarehouse(PurchaseOrderDetailsBean.COMPLETE_RECEIVED, "", edOrderDetailsRemark.getText() + "", totalAmount, orderDetailsFoodAdapter.getData());
} }
} }
@Override @Override
public void loadOrderDetails(OrderDetailsBean orderDetailsBean) { public void loadOrderDetails(PurchaseOrderDetailsBean orderDetailsBean) {
tvOrderDetailsSupplierName.setText(orderDetailsBean.getSupplierName()); tvOrderDetailsSupplierName.setText(orderDetailsBean.getSupplierName());
tvOrderDetailsOrderNo.setText(orderDetailsBean.getOrderNo()); tvOrderDetailsOrderNo.setText(orderDetailsBean.getOrderNo());
tvOrderDetailsCreateTime.setText(TimeUtils.getStringByFormat(orderDetailsBean.getCreateTime(), TimeUtils.DEFAULT_DATE_FORMAT_YMDHM)); tvOrderDetailsCreateTime.setText(TimeUtils.getStringByFormat(orderDetailsBean.getCreateTime(), TimeUtils.DEFAULT_DATE_FORMAT_YMDHM));
// tvOrderDetailsOrderState.setText(orderDetailsBean.getStatus()?); switch (orderDetailsBean.getStatus()) {
typesOfFood = orderDetailsBean.getPurchaseOrderDetailsInfoVOS().size(); case PurchaseOrderDetailsBean.WAIT_RECEIVED:
tvOrderDetailsOrderState.setText("待收貨");
break;
case PurchaseOrderDetailsBean.PART_RECEIVED:
tvOrderDetailsOrderState.setText("部分收貨");
break;
case PurchaseOrderDetailsBean.COMPLETE_RECEIVED:
tvOrderDetailsOrderState.setText("已完成");
break;
case PurchaseOrderDetailsBean.REFUSE_RECEIVED:
tvOrderDetailsOrderState.setText("拒收");
break;
default:
break;
}
setTypesOfFood(); setTypesOfFood();
initRecyclerView(orderDetailsBean); initRecyclerView(orderDetailsBean);
//全選按鈕狀態切換 //全選按鈕狀態切換
...@@ -146,7 +159,7 @@ public class OrderDetailsFragment extends BaseSupplyChainFragment<OrderDetailsPr ...@@ -146,7 +159,7 @@ public class OrderDetailsFragment extends BaseSupplyChainFragment<OrderDetailsPr
totalAmount = 0; totalAmount = 0;
typesOfFood = isChecked ? orderDetailsFoodAdapter.getData().size() : 0; typesOfFood = isChecked ? orderDetailsFoodAdapter.getData().size() : 0;
//修改所有食品的選中狀態 //修改所有食品的選中狀態
for (OrderDetailsBean.PurchaseOrderDetailsInfoVosBean datum : orderDetailsFoodAdapter.getData()) { for (PurchaseOrderDetailsBean.PurchaseOrderDetailsInfoVosBean datum : orderDetailsFoodAdapter.getData()) {
datum.setChecked(isChecked); datum.setChecked(isChecked);
if (isChecked) { if (isChecked) {
totalAmount = MoneyUtil.sum(totalAmount, MoneyUtil.priceCalculation(datum.getFoodPrice(), datum.getFoodQuantity())); totalAmount = MoneyUtil.sum(totalAmount, MoneyUtil.priceCalculation(datum.getFoodPrice(), datum.getFoodQuantity()));
...@@ -166,11 +179,11 @@ public class OrderDetailsFragment extends BaseSupplyChainFragment<OrderDetailsPr ...@@ -166,11 +179,11 @@ public class OrderDetailsFragment extends BaseSupplyChainFragment<OrderDetailsPr
tvOrderDetailsTotalAmount.setText(String.valueOf(totalAmount)); tvOrderDetailsTotalAmount.setText(String.valueOf(totalAmount));
} }
private void initRecyclerView(OrderDetailsBean orderDetailsBean) { private void initRecyclerView(PurchaseOrderDetailsBean orderDetailsBean) {
orderDetailsFoodAdapter = new OrderDetailsFoodAdapter(mContext, orderDetailsBean.getPurchaseOrderDetailsInfoVOS()); orderDetailsFoodAdapter = new OrderDetailsFoodAdapter(mContext, orderDetailsBean.getPurchaseOrderDetailsInfoVOS());
rvOrderDetailsFoodList.setAdapter(orderDetailsFoodAdapter); rvOrderDetailsFoodList.setAdapter(orderDetailsFoodAdapter);
orderDetailsFoodAdapter.setOnItemClickListener((adapter, view, position) -> { orderDetailsFoodAdapter.setOnItemClickListener((adapter, view, position) -> {
OrderDetailsBean.PurchaseOrderDetailsInfoVosBean infoVosBean = orderDetailsFoodAdapter.getData().get(position); PurchaseOrderDetailsBean.PurchaseOrderDetailsInfoVosBean infoVosBean = orderDetailsFoodAdapter.getData().get(position);
infoVosBean.setChecked(!infoVosBean.isChecked()); infoVosBean.setChecked(!infoVosBean.isChecked());
adapter.notifyItemChanged(position); adapter.notifyItemChanged(position);
//修改選中狀態後,重新計算總價 //修改選中狀態後,重新計算總價
......
package com.gingersoft.supply_chain.mvp.ui.fragment.order; package com.gingersoft.supply_chain.mvp.ui.fragment.order;
import android.os.Bundle; import android.os.Bundle;
import android.text.InputFilter;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
...@@ -12,11 +14,16 @@ import androidx.annotation.Nullable; ...@@ -12,11 +14,16 @@ import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import androidx.viewpager2.widget.ViewPager2; import androidx.viewpager2.widget.ViewPager2;
import com.gingersoft.gsa.cloud.common.loadsir.EmptyCallback;
import com.gingersoft.gsa.cloud.common.loadsir.ErrorCallback;
import com.gingersoft.gsa.cloud.common.utils.inputFilter.InputFilterUtils;
import com.gingersoft.gsa.cloud.ui.utils.AppDialog; import com.gingersoft.gsa.cloud.ui.utils.AppDialog;
import com.gingersoft.supply_chain.R; import com.gingersoft.supply_chain.R;
import com.gingersoft.supply_chain.R2; import com.gingersoft.supply_chain.R2;
import com.gingersoft.supply_chain.di.component.DaggerPurchaseListComponent; import com.gingersoft.supply_chain.di.component.DaggerPurchaseListComponent;
import com.gingersoft.supply_chain.mvp.bean.ConfirmOrderBean;
import com.gingersoft.supply_chain.mvp.bean.OrderBean; import com.gingersoft.supply_chain.mvp.bean.OrderBean;
import com.gingersoft.supply_chain.mvp.bean.PurchaseOrderDetailsBean;
import com.gingersoft.supply_chain.mvp.content.SupplyShoppingCart; import com.gingersoft.supply_chain.mvp.content.SupplyShoppingCart;
import com.gingersoft.supply_chain.mvp.contract.PurchaseListContract; import com.gingersoft.supply_chain.mvp.contract.PurchaseListContract;
import com.gingersoft.supply_chain.mvp.presenter.PurchaseListPresenter; import com.gingersoft.supply_chain.mvp.presenter.PurchaseListPresenter;
...@@ -26,6 +33,10 @@ import com.gingersoft.supply_chain.mvp.ui.fragment.BaseSupplyChainFragment; ...@@ -26,6 +33,10 @@ import com.gingersoft.supply_chain.mvp.ui.fragment.BaseSupplyChainFragment;
import com.gingersoft.supply_chain.mvp.ui.fragment.food.FoodIngredientsFragment; import com.gingersoft.supply_chain.mvp.ui.fragment.food.FoodIngredientsFragment;
import com.gingersoft.supply_chain.mvp.ui.widget.ScreenView; import com.gingersoft.supply_chain.mvp.ui.widget.ScreenView;
import com.jess.arms.di.component.AppComponent; import com.jess.arms.di.component.AppComponent;
import com.kingja.loadsir.callback.Callback;
import com.kingja.loadsir.callback.SuccessCallback;
import com.kingja.loadsir.core.LoadService;
import com.kingja.loadsir.core.LoadSir;
import com.qmuiteam.qmui.alpha.QMUIAlphaButton; import com.qmuiteam.qmui.alpha.QMUIAlphaButton;
import com.qmuiteam.qmui.util.QMUIDisplayHelper; import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.widget.QMUITopBar; import com.qmuiteam.qmui.widget.QMUITopBar;
...@@ -34,7 +45,12 @@ import com.qmuiteam.qmui.widget.tab.QMUITabBuilder; ...@@ -34,7 +45,12 @@ import com.qmuiteam.qmui.widget.tab.QMUITabBuilder;
import com.qmuiteam.qmui.widget.tab.QMUITabIndicator; import com.qmuiteam.qmui.widget.tab.QMUITabIndicator;
import com.qmuiteam.qmui.widget.tab.QMUITabSegment; import com.qmuiteam.qmui.widget.tab.QMUITabSegment;
import com.qmuiteam.qmui.widget.tab.QMUITabSegment2; import com.qmuiteam.qmui.widget.tab.QMUITabSegment2;
import com.scwang.smartrefresh.layout.SmartRefreshLayout;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener;
import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
import java.util.Collections;
import java.util.List; import java.util.List;
import butterknife.BindView; import butterknife.BindView;
...@@ -58,16 +74,26 @@ public class PurchaseListFragment extends BaseSupplyChainFragment<PurchaseListPr ...@@ -58,16 +74,26 @@ public class PurchaseListFragment extends BaseSupplyChainFragment<PurchaseListPr
QMUIAlphaButton btnNewOrder; QMUIAlphaButton btnNewOrder;
@BindView(R2.id.screen_view) @BindView(R2.id.screen_view)
ScreenView screenView; ScreenView screenView;
private PurchaseOrderAdapter purchaseOrderAdapter; @BindView(R2.id.view_load_bg)
View loadBg;
@BindView(R2.id.ed_food_ingredients_search)
EditText edSearch;
@BindView(R2.id.srl_purchase_list)
SmartRefreshLayout refreshPurchaseList;
private PurchaseOrderAdapter purchaseOrderAdapter;
public static PurchaseListFragment newInstance() { public static PurchaseListFragment newInstance() {
PurchaseListFragment fragment = new PurchaseListFragment(); PurchaseListFragment fragment = new PurchaseListFragment();
return fragment; return fragment;
} }
private final int[] orderState = new int[]{0, 1, 2, 3}; private final int[] orderState = new int[]{PurchaseOrderDetailsBean.WAIT_RECEIVED, PurchaseOrderDetailsBean.COMPLETE_RECEIVED};
private int pageIndex = 1; private int pageIndex = 0;
/**
* 當前訂單列表類型的下標
*/
private int orderStateIndex = 0;
@Override @Override
public void setupFragmentComponent(@NonNull AppComponent appComponent) { public void setupFragmentComponent(@NonNull AppComponent appComponent) {
...@@ -87,13 +113,27 @@ public class PurchaseListFragment extends BaseSupplyChainFragment<PurchaseListPr ...@@ -87,13 +113,27 @@ public class PurchaseListFragment extends BaseSupplyChainFragment<PurchaseListPr
@Override @Override
public void initData(@Nullable Bundle savedInstanceState) { public void initData(@Nullable Bundle savedInstanceState) {
btnNewOrder.setText("+新增訂單"); btnNewOrder.setText("+新增訂單");
edSearch.setFilters(new InputFilter[]{InputFilterUtils.getChAndEnAndNumInputFilter(mContext), InputFilterUtils.getLengthFilter(mContext, 20)});
btnNewOrder.setOnClickListener(v -> { btnNewOrder.setOnClickListener(v -> {
//跳轉到下單頁面 //跳轉到下單頁面
start(FoodIngredientsFragment.newInstance(ADD_ORDER)); start(FoodIngredientsFragment.newInstance(ADD_ORDER));
}); });
loadService = LoadSir.getDefault().register(loadBg, (Callback.OnReloadListener) v -> getOrderList());
refreshPurchaseList.setOnRefreshListener(refreshLayout -> {
pageIndex = 0;
getOrderList();
});
refreshPurchaseList.setOnLoadMoreListener(refreshLayout -> {
pageIndex++;
getOrderList();
});
initTopBar(); initTopBar();
initTabAndData(); initTabAndData();
mPresenter.getOrderList("", orderState[0], pageIndex); getOrderList();
}
private void getOrderList() {
mPresenter.getOrderList(edSearch.getText() + "", orderState[orderStateIndex], pageIndex);
} }
@Override @Override
...@@ -134,6 +174,16 @@ public class PurchaseListFragment extends BaseSupplyChainFragment<PurchaseListPr ...@@ -134,6 +174,16 @@ public class PurchaseListFragment extends BaseSupplyChainFragment<PurchaseListPr
mPresenter.deleteOrder(position, data.get(position)); mPresenter.deleteOrder(position, data.get(position));
dialog.dismiss(); dialog.dismiss();
}); });
} else if (viewId == R.id.btn_purchase_send) {
//發送採購單
List<OrderBean> data = purchaseOrderAdapter.getData();
OrderBean orderBean = data.get(position);
ConfirmOrderBean.PurchaseOrder purchaseOrder = new ConfirmOrderBean.PurchaseOrder();
purchaseOrder.setId(orderBean.getId());
purchaseOrder.setSupplierId(orderBean.getSupplierId());
purchaseOrder.setSupplierName(orderBean.getSupplierName());
start(SendMsgFragment.newInstance(Collections.singletonList(purchaseOrder)));
} }
}); });
PurchasePageAdapter adapter = new PurchasePageAdapter(purchaseOrderAdapter, 4); PurchasePageAdapter adapter = new PurchasePageAdapter(purchaseOrderAdapter, 4);
...@@ -141,16 +191,17 @@ public class PurchaseListFragment extends BaseSupplyChainFragment<PurchaseListPr ...@@ -141,16 +191,17 @@ public class PurchaseListFragment extends BaseSupplyChainFragment<PurchaseListPr
mTabSegment.setupWithViewPager(contentViewPager); mTabSegment.setupWithViewPager(contentViewPager);
mTabSegment.setIndicator(new QMUITabIndicator( mTabSegment.setIndicator(new QMUITabIndicator(
QMUIDisplayHelper.dp2px(getContext(), 2), false, false)); QMUIDisplayHelper.dp2px(getContext(), 2), false, false));
mTabSegment.addTab(builder.setText("全部").build(getContext())).getSelectedIndex();
mTabSegment.addTab(builder.setText("待收貨").build(getContext())); mTabSegment.addTab(builder.setText("待收貨").build(getContext()));
mTabSegment.addTab(builder.setText("部分收貨").build(getContext())); mTabSegment.addTab(builder.setText("已完成").build(getContext()));
mTabSegment.addTab(builder.setText("全部收貨").build(getContext())); // mTabSegment.addTab(builder.setText("部分收貨").build(getContext()));
// mTabSegment.addTab(builder.setText("全部收貨").build(getContext()));
mTabSegment.notifyDataChanged(); mTabSegment.notifyDataChanged();
mTabSegment.setMode(QMUITabSegment.MODE_FIXED); mTabSegment.setMode(QMUITabSegment.MODE_FIXED);
mTabSegment.addOnTabSelectedListener(new QMUIBasicTabSegment.OnTabSelectedListener() { mTabSegment.addOnTabSelectedListener(new QMUIBasicTabSegment.OnTabSelectedListener() {
@Override @Override
public void onTabSelected(int index) { public void onTabSelected(int index) {
mPresenter.getOrderList("", orderState[index], pageIndex); orderStateIndex = index;
getOrderList();
} }
@Override @Override
...@@ -170,22 +221,37 @@ public class PurchaseListFragment extends BaseSupplyChainFragment<PurchaseListPr ...@@ -170,22 +221,37 @@ public class PurchaseListFragment extends BaseSupplyChainFragment<PurchaseListPr
}); });
} }
@OnClick({R2.id.layout_purchase_list_screen}) @OnClick({R2.id.layout_purchase_list_screen, R2.id.iv_purchase_list_search})
@Override @Override
public void onClick(View v) { public void onClick(View v) {
int viewId = v.getId(); int viewId = v.getId();
if (viewId == R.id.layout_purchase_list_screen) { if (viewId == R.id.layout_purchase_list_screen) {
//篩選 //篩選
screenView.setVisibility(screenView.getVisibility() == View.VISIBLE ? View.GONE : View.VISIBLE); screenView.setVisibility(screenView.getVisibility() == View.VISIBLE ? View.GONE : View.VISIBLE);
} else if (viewId == R.id.iv_purchase_list_search) {
getOrderList();
} }
} }
@Override @Override
public void loadOrderList(List<OrderBean> list) { public void loadOrderList(List<OrderBean> list) {
loadService.showCallback(SuccessCallback.class);
purchaseOrderAdapter.setList(list); purchaseOrderAdapter.setList(list);
} }
@Override @Override
public void loadFail() {
purchaseOrderAdapter.setList(null);
loadService.showCallback(EmptyCallback.class);
}
@Override
public void loadError() {
purchaseOrderAdapter.setList(null);
loadService.showCallback(ErrorCallback.class);
}
@Override
public void deleteOrder(int position) { public void deleteOrder(int position) {
purchaseOrderAdapter.removeAt(position); purchaseOrderAdapter.removeAt(position);
} }
......
...@@ -4,41 +4,31 @@ import android.os.Bundle; ...@@ -4,41 +4,31 @@ import android.os.Bundle;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.gingersoft.gsa.cloud.ui.adapter.RadioListAdapter;
import com.gingersoft.supply_chain.R; import com.gingersoft.supply_chain.R;
import com.gingersoft.supply_chain.R2; import com.gingersoft.supply_chain.R2;
import com.gingersoft.supply_chain.di.component.DaggerSendMsgComponent; import com.gingersoft.supply_chain.di.component.DaggerSendMsgComponent;
import com.gingersoft.supply_chain.mvp.bean.ConfirmOrderBean; import com.gingersoft.supply_chain.mvp.bean.ConfirmOrderBean;
import com.gingersoft.supply_chain.mvp.bean.SendSupplierMsgBean;
import com.gingersoft.supply_chain.mvp.contract.SendMsgContract; import com.gingersoft.supply_chain.mvp.contract.SendMsgContract;
import com.gingersoft.supply_chain.mvp.presenter.SendMsgPresenter; import com.gingersoft.supply_chain.mvp.presenter.SendMsgPresenter;
import com.gingersoft.supply_chain.mvp.ui.adapter.SendSupplierMsgAdapter;
import com.gingersoft.supply_chain.mvp.ui.fragment.BaseSupplyChainFragment; import com.gingersoft.supply_chain.mvp.ui.fragment.BaseSupplyChainFragment;
import com.jess.arms.di.component.AppComponent; import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.DeviceUtils;
import com.qmuiteam.qmui.alpha.QMUIAlphaButton; import com.qmuiteam.qmui.alpha.QMUIAlphaButton;
import com.qmuiteam.qmui.widget.QMUITopBar; import com.qmuiteam.qmui.widget.QMUITopBar;
import java.io.Serializable; import java.io.Serializable;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import butterknife.BindView; import butterknife.BindView;
import butterknife.OnClick; import butterknife.OnClick;
import static com.gingersoft.supply_chain.mvp.bean.SupplierInfoBean.SupplierContacts.Efax;
import static com.gingersoft.supply_chain.mvp.bean.SupplierInfoBean.SupplierContacts.Email;
import static com.gingersoft.supply_chain.mvp.bean.SupplierInfoBean.SupplierContacts.SMS;
/** /**
* Description: 發送消息到供應商 * Description: 發送消息到供應商
...@@ -51,37 +41,13 @@ public class SendMsgFragment extends BaseSupplyChainFragment<SendMsgPresenter> i ...@@ -51,37 +41,13 @@ public class SendMsgFragment extends BaseSupplyChainFragment<SendMsgPresenter> i
QMUITopBar supplyTopBar; QMUITopBar supplyTopBar;
@BindView(R2.id.rv_send_select_supplier) @BindView(R2.id.rv_send_select_supplier)
RecyclerView rvSupplier; RecyclerView rvSupplier;
@BindView(R2.id.cb_email)
CheckBox cbEmail;
@BindView(R2.id.cb_sms)
CheckBox cbSms;
@BindView(R2.id.cb_efax)
CheckBox cbEfax;
@BindView(R2.id.rb_whatsapp)
RadioButton rbWhatsapp;
@BindView(R2.id.rb_wechat)
RadioButton rbWechat;
@BindView(R2.id.rb_line)
RadioButton rbLine;
@BindView(R2.id.rb_kakao)
RadioButton rbKakao;
@BindView(R2.id.rg_send_msg_method)
RadioGroup rgSendMsgMethod;
@BindView(R2.id.layout_contact_information)
LinearLayout layoutContactInformation;
@BindView(R2.id.horizontal_dotted)
View horizontalDotted;
@BindView(R2.id.cb_has_qrcode)
CheckBox cbHasQrCode;
@BindView(R2.id.iv_msg_qr_code)
ImageView ivQrCode;
@BindView(R2.id.btn_supplier_confirm) @BindView(R2.id.btn_supplier_confirm)
QMUIAlphaButton btnSupplierConfirm; QMUIAlphaButton btnSupplierConfirm;
@BindView(R2.id.btn_supplier_cancel) @BindView(R2.id.btn_supplier_cancel)
QMUIAlphaButton btnSupplierCancel; QMUIAlphaButton btnSupplierCancel;
private List<ConfirmOrderBean.PurchaseOrder> purchaseOrders; private List<ConfirmOrderBean.PurchaseOrder> purchaseOrders;
private RadioListAdapter radioListAdapter; private SendSupplierMsgAdapter sendSupplierMsgAdapter;
public static SendMsgFragment newInstance(List<ConfirmOrderBean.PurchaseOrder> purchaseOrders) { public static SendMsgFragment newInstance(List<ConfirmOrderBean.PurchaseOrder> purchaseOrders) {
SendMsgFragment fragment = new SendMsgFragment(); SendMsgFragment fragment = new SendMsgFragment();
...@@ -112,25 +78,9 @@ public class SendMsgFragment extends BaseSupplyChainFragment<SendMsgPresenter> i ...@@ -112,25 +78,9 @@ public class SendMsgFragment extends BaseSupplyChainFragment<SendMsgPresenter> i
Bundle arguments = getArguments(); Bundle arguments = getArguments();
if (arguments != null) { if (arguments != null) {
purchaseOrders = (List<ConfirmOrderBean.PurchaseOrder>) arguments.getSerializable(KEY_PURCHASE_ORDER_INFO); purchaseOrders = (List<ConfirmOrderBean.PurchaseOrder>) arguments.getSerializable(KEY_PURCHASE_ORDER_INFO);
} mPresenter.getSupplierListByOrders(purchaseOrders);
if (purchaseOrders != null && purchaseOrders.size() > 0) {
List<String> supplierNames = new ArrayList<>();
for (ConfirmOrderBean.PurchaseOrder purchaseOrder : purchaseOrders) {
supplierNames.add(purchaseOrder.getSupplierName());
}
radioListAdapter = new RadioListAdapter(R.layout.item_radio_left, supplierNames);
radioListAdapter.setSelectIndex(0);
mPresenter.getPurchaseOrderQrCode(purchaseOrders.get(radioListAdapter.getSelectIndex()).getId() + "");
rvSupplier.setLayoutManager(new GridLayoutManager(mContext, 2));
rvSupplier.setAdapter(radioListAdapter);
radioListAdapter.setOnItemClickListener((adapter, view, position) -> {
//切換供應商
//選擇默認的聯繫方式
//獲取信息鏈接
mPresenter.getPurchaseOrderQrCode(purchaseOrders.get(position).getId() + "");
radioListAdapter.setSelectIndex(position);
});
} else { } else {
showMessage("訂單信息獲取失敗,請重試");
killMyself(); killMyself();
} }
} }
...@@ -140,46 +90,59 @@ public class SendMsgFragment extends BaseSupplyChainFragment<SendMsgPresenter> i ...@@ -140,46 +90,59 @@ public class SendMsgFragment extends BaseSupplyChainFragment<SendMsgPresenter> i
int viewId = view.getId(); int viewId = view.getId();
if (viewId == R.id.btn_supplier_confirm) { if (viewId == R.id.btn_supplier_confirm) {
//發送 //發送
if (rgSendMsgMethod.getCheckedRadioButtonId() == R.id.rb_whatsapp) { mPresenter.sendMsg();
//分享到WhatsApp // if (rgSendMsgMethod.getCheckedRadioButtonId() == R.id.rb_whatsapp) {
DeviceUtils.shareWhatsApp(mContext, url); // //分享到WhatsApp
} else if (rgSendMsgMethod.getCheckedRadioButtonId() == R.id.rb_wechat) { // DeviceUtils.shareWhatsApp(mContext, url);
//分享到微信 // } else if (rgSendMsgMethod.getCheckedRadioButtonId() == R.id.rb_wechat) {
DeviceUtils.shareWeChatFriend(mContext, url); // //分享到微信
} else if (rgSendMsgMethod.getCheckedRadioButtonId() == R.id.rb_line) { // DeviceUtils.shareWeChatFriend(mContext, url);
//分享到Line // } else if (rgSendMsgMethod.getCheckedRadioButtonId() == R.id.rb_line) {
DeviceUtils.shareLine(mContext, "", url); // //分享到Line
} else if (rgSendMsgMethod.getCheckedRadioButtonId() == R.id.rb_kakao) { // DeviceUtils.shareLine(mContext, "", url);
//跳轉Kakao // } else if (rgSendMsgMethod.getCheckedRadioButtonId() == R.id.rb_kakao) {
// //跳轉Kakao
} //
if (cbEmail.isChecked()) { // }
//發送email // if (cbEmail.isChecked()) {
sendMsg(Email); // //發送email
} // sendMsg(Email);
if (cbSms.isChecked()) { // }
//發送SMS // if (cbSms.isChecked()) {
sendMsg(SMS); // //發送SMS
} // sendMsg(SMS);
if (cbEfax.isChecked()) { // }
//發送Efax // if (cbEfax.isChecked()) {
sendMsg(Efax); // //發送Efax
} // sendMsg(Efax);
// }
} else if (viewId == R.id.btn_supplier_cancel) { } else if (viewId == R.id.btn_supplier_cancel) {
popTo(PurchaseListFragment.class, true); popTo(PurchaseListFragment.class, true);
} }
} }
private void sendMsg(int email) { // private void sendMsg(int email) {
mPresenter.sendMsg(purchaseOrders.get(radioListAdapter.getSelectIndex()).getId(), email); // mPresenter.sendMsg(purchaseOrders.get(sendSupplierMsgAdapter.getSelectIndex()).getId(), email);
} // }
private String url; private String url;
@Override @Override
public void loadQrCode(String url) { public void loadQrCode(String url) {
this.url = url; }
com.gingersoft.gsa.cloud.base.utils.glide.GlideUtils.display(mContext, ivQrCode, url);
@Override
public void loadSupplierList(List<SendSupplierMsgBean> sendSupplierMsgBeans) {
sendSupplierMsgAdapter = new SendSupplierMsgAdapter(sendSupplierMsgBeans);
rvSupplier.setLayoutManager(new GridLayoutManager(mContext, 2));
rvSupplier.setAdapter(sendSupplierMsgAdapter);
sendSupplierMsgAdapter.setOnItemClickListener((adapter, view, position) -> {
//切換供應商
//選擇默認的聯繫方式
//獲取信息鏈接
mPresenter.getContactsBySupplier(position);
// mPresenter.getPurchaseOrderQrCode(purchaseOrders.get(position).getId() + "");
// sendSupplierMsgAdapter.setSelectIndex(position);
});
} }
} }
...@@ -16,6 +16,7 @@ import com.gingersoft.gsa.cloud.common.utils.MoneyUtil; ...@@ -16,6 +16,7 @@ import com.gingersoft.gsa.cloud.common.utils.MoneyUtil;
import com.gingersoft.supply_chain.R; import com.gingersoft.supply_chain.R;
import com.gingersoft.supply_chain.R2; import com.gingersoft.supply_chain.R2;
import com.gingersoft.supply_chain.di.component.DaggerShoppingCatComponent; import com.gingersoft.supply_chain.di.component.DaggerShoppingCatComponent;
import com.gingersoft.supply_chain.mvp.bean.ConfirmOrderBean;
import com.gingersoft.supply_chain.mvp.bean.PurchaseFoodListVosBean; import com.gingersoft.supply_chain.mvp.bean.PurchaseFoodListVosBean;
import com.gingersoft.supply_chain.mvp.content.SupplyShoppingCart; import com.gingersoft.supply_chain.mvp.content.SupplyShoppingCart;
import com.gingersoft.supply_chain.mvp.contract.ShoppingCatContract; import com.gingersoft.supply_chain.mvp.contract.ShoppingCatContract;
...@@ -30,6 +31,7 @@ import java.util.List; ...@@ -30,6 +31,7 @@ import java.util.List;
import butterknife.BindView; import butterknife.BindView;
import butterknife.OnClick; import butterknife.OnClick;
import me.yokeyword.fragmentation.ISupportFragment;
import static com.gingersoft.supply_chain.mvp.ui.fragment.food.FoodIngredientsFragment.ADD_ORDER; import static com.gingersoft.supply_chain.mvp.ui.fragment.food.FoodIngredientsFragment.ADD_ORDER;
...@@ -119,7 +121,8 @@ public class ShoppingCatFragment extends BaseSupplyChainFragment<ShoppingCatPres ...@@ -119,7 +121,8 @@ public class ShoppingCatFragment extends BaseSupplyChainFragment<ShoppingCatPres
} }
} }
if (isHasChecked) { if (isHasChecked) {
start(ConfirmOrderFragment.newInstance()); //關閉選擇食材的頁面
mPresenter.addPurchaseOrder();
} else { } else {
showMessage("請選擇食品"); showMessage("請選擇食品");
} }
...@@ -137,12 +140,13 @@ public class ShoppingCatFragment extends BaseSupplyChainFragment<ShoppingCatPres ...@@ -137,12 +140,13 @@ public class ShoppingCatFragment extends BaseSupplyChainFragment<ShoppingCatPres
shoppingCartAdapter = new ShoppingCartAdapter(mContext, supplierFoods); shoppingCartAdapter = new ShoppingCartAdapter(mContext, supplierFoods);
shoppingCartAdapter.setOnFoodDeleteListener((supplierIndex, foodListVosBean) -> { shoppingCartAdapter.setOnFoodDeleteListener((supplierIndex, foodListVosBean) -> {
SupplyShoppingCart.getInstance().getCartFoods().remove(foodListVosBean); SupplyShoppingCart.getInstance().getCartFoods().remove(foodListVosBean);
List<PurchaseFoodListVosBean> purchaseFoodListVosBeans = shoppingCartAdapter.getData().get(supplierIndex); List<PurchaseFoodListVosBean> purchaseFoodListVosBeans = shoppingCartAdapter.getData().get(supplierIndex);
purchaseFoodListVosBeans.remove(foodListVosBean); purchaseFoodListVosBeans.remove(foodListVosBean);
if (purchaseFoodListVosBeans.size() <= 0) { if (purchaseFoodListVosBeans.size() <= 0) {
shoppingCartAdapter.getData().remove(purchaseFoodListVosBeans); shoppingCartAdapter.removeAt(supplierIndex);
} }
shoppingCartAdapter.notifyItemChanged(supplierIndex);
}); });
rvOrderContent.setAdapter(shoppingCartAdapter); rvOrderContent.setAdapter(shoppingCartAdapter);
shoppingCartAdapter.setOnInfoChangeListener(() -> mPresenter.calculateTotalPrice(cbOrderContentAllSelect)); shoppingCartAdapter.setOnInfoChangeListener(() -> mPresenter.calculateTotalPrice(cbOrderContentAllSelect));
...@@ -153,4 +157,13 @@ public class ShoppingCatFragment extends BaseSupplyChainFragment<ShoppingCatPres ...@@ -153,4 +157,13 @@ public class ShoppingCatFragment extends BaseSupplyChainFragment<ShoppingCatPres
tvOrderContentFoodTypeTotal.setText(String.valueOf(typeTotal)); tvOrderContentFoodTypeTotal.setText(String.valueOf(typeTotal));
tvOrderContentTotalAmount.setText("$" + totalPrice); tvOrderContentTotalAmount.setText("$" + totalPrice);
} }
@Override
public void addOrderSuccess(List<ConfirmOrderBean.PurchaseOrder> purchaseOrders) {
ShoppingCatFragment childFragment = findChildFragment(ShoppingCatFragment.class);
if (childFragment != null) {
childFragment.killMyself();
}
startWithPop(SendMsgFragment.newInstance(purchaseOrders));
}
} }
...@@ -27,7 +27,6 @@ import butterknife.BindView; ...@@ -27,7 +27,6 @@ import butterknife.BindView;
import butterknife.OnClick; import butterknife.OnClick;
import static com.gingersoft.gsa.cloud.ui.recylcler.decorator.DividerItemDecoration.VERTICAL_LIST; import static com.gingersoft.gsa.cloud.ui.recylcler.decorator.DividerItemDecoration.VERTICAL_LIST;
import static com.gingersoft.supply_chain.mvp.ui.fragment.supplier.SupplierListFragment.SUPPLIER_LIST;
/** /**
...@@ -121,7 +120,7 @@ public class NewSupplierFragment extends BaseSupplyChainFragment<NewSupplierPres ...@@ -121,7 +120,7 @@ public class NewSupplierFragment extends BaseSupplyChainFragment<NewSupplierPres
@Override @Override
public void saveSuccess() { public void saveSuccess() {
setFragmentResult(SUPPLIER_LIST, null); setFragmentResult(RESULT_OK, null);
killMyself(); killMyself();
} }
} }
...@@ -21,6 +21,7 @@ import com.gingersoft.supply_chain.mvp.contract.SupplierListContract; ...@@ -21,6 +21,7 @@ import com.gingersoft.supply_chain.mvp.contract.SupplierListContract;
import com.gingersoft.supply_chain.mvp.presenter.SupplierListPresenter; import com.gingersoft.supply_chain.mvp.presenter.SupplierListPresenter;
import com.gingersoft.supply_chain.mvp.ui.adapter.SupplierAdapter; import com.gingersoft.supply_chain.mvp.ui.adapter.SupplierAdapter;
import com.gingersoft.supply_chain.mvp.ui.fragment.BaseSupplyChainFragment; import com.gingersoft.supply_chain.mvp.ui.fragment.BaseSupplyChainFragment;
import com.gingersoft.supply_chain.mvp.ui.fragment.food.FoodIngredientsFragment;
import com.jess.arms.di.component.AppComponent; import com.jess.arms.di.component.AppComponent;
import com.kingja.loadsir.callback.Callback; import com.kingja.loadsir.callback.Callback;
import com.kingja.loadsir.core.LoadSir; import com.kingja.loadsir.core.LoadSir;
...@@ -42,7 +43,6 @@ public class SupplierListFragment extends BaseSupplyChainFragment<SupplierListPr ...@@ -42,7 +43,6 @@ public class SupplierListFragment extends BaseSupplyChainFragment<SupplierListPr
public final static int SELECT_SUPPLIER_RESULTCODE = 1001; public final static int SELECT_SUPPLIER_RESULTCODE = 1001;
public final static String SELECT_SUPPLIER_DATA = "supplier_data"; public final static String SELECT_SUPPLIER_DATA = "supplier_data";
@BindView(R2.id.topbar_supplier_list) @BindView(R2.id.topbar_supplier_list)
QMUITopBar mTopBarSupplierList; QMUITopBar mTopBarSupplierList;
@BindView(R2.id.rv_supplier_list) @BindView(R2.id.rv_supplier_list)
...@@ -95,6 +95,8 @@ public class SupplierListFragment extends BaseSupplyChainFragment<SupplierListPr ...@@ -95,6 +95,8 @@ public class SupplierListFragment extends BaseSupplyChainFragment<SupplierListPr
@Override @Override
public void initData(@Nullable Bundle savedInstanceState) { public void initData(@Nullable Bundle savedInstanceState) {
smartRefreshLayout.setPrimaryColorsId(R.color.trans, R.color.black);
Bundle arguments = getArguments(); Bundle arguments = getArguments();
if (arguments != null) { if (arguments != null) {
isSelect = arguments.getBoolean(IS_SELECT_KEY); isSelect = arguments.getBoolean(IS_SELECT_KEY);
...@@ -106,23 +108,23 @@ public class SupplierListFragment extends BaseSupplyChainFragment<SupplierListPr ...@@ -106,23 +108,23 @@ public class SupplierListFragment extends BaseSupplyChainFragment<SupplierListPr
loadService = LoadSir.getDefault().register(smartRefreshLayout, (Callback.OnReloadListener) v -> { loadService = LoadSir.getDefault().register(smartRefreshLayout, (Callback.OnReloadListener) v -> {
// 重新加载逻辑 // 重新加载逻辑
pageIndex = 0; pageIndex = 0;
getSupplierList(""); getSupplierList();
}); });
initTopBar(); initTopBar();
getSupplierList(""); getSupplierList();
smartRefreshLayout.setOnRefreshListener(refreshLayout -> { smartRefreshLayout.setOnRefreshListener(refreshLayout -> {
pageIndex = 0; pageIndex = 0;
getSupplierList(""); getSupplierList();
}); });
smartRefreshLayout.setOnLoadMoreListener(refreshLayout -> { smartRefreshLayout.setOnLoadMoreListener(refreshLayout -> {
pageIndex++; pageIndex++;
getSupplierList(""); getSupplierList();
}); });
} }
private void getSupplierList(String content) { private void getSupplierList() {
mPresenter.getSupplierList(content, pageIndex); mPresenter.getSupplierList(edSupplier.getText() + "", pageIndex);
} }
private void initTopBar() { private void initTopBar() {
...@@ -142,7 +144,7 @@ public class SupplierListFragment extends BaseSupplyChainFragment<SupplierListPr ...@@ -142,7 +144,7 @@ public class SupplierListFragment extends BaseSupplyChainFragment<SupplierListPr
//新增供應商 //新增供應商
startForResult(NewSupplierFragment.newInstance(null), SUPPLIER_LIST); startForResult(NewSupplierFragment.newInstance(null), SUPPLIER_LIST);
} else if (viewId == R.id.btn_supplier_search) { } else if (viewId == R.id.btn_supplier_search) {
getSupplierList(edSupplier.getText() + ""); getSupplierList();
} else if (viewId == R.id.btn_supplier_cancel) { } else if (viewId == R.id.btn_supplier_cancel) {
killMyself(); killMyself();
} else if (viewId == R.id.btn_supplier_confirm) { } else if (viewId == R.id.btn_supplier_confirm) {
...@@ -164,9 +166,9 @@ public class SupplierListFragment extends BaseSupplyChainFragment<SupplierListPr ...@@ -164,9 +166,9 @@ public class SupplierListFragment extends BaseSupplyChainFragment<SupplierListPr
@Override @Override
public void onFragmentResult(int requestCode, int resultCode, Bundle data) { public void onFragmentResult(int requestCode, int resultCode, Bundle data) {
super.onFragmentResult(requestCode, resultCode, data); super.onFragmentResult(requestCode, resultCode, data);
if (requestCode == SUPPLIER_LIST) { if (requestCode == SUPPLIER_LIST && resultCode == RESULT_OK) {
//新增或編輯了供應商,重新獲取所有供應商數據 //新增或編輯了供應商,重新獲取所有供應商數據
getSupplierList(""); getSupplierList();
} }
} }
...@@ -199,7 +201,8 @@ public class SupplierListFragment extends BaseSupplyChainFragment<SupplierListPr ...@@ -199,7 +201,8 @@ public class SupplierListFragment extends BaseSupplyChainFragment<SupplierListPr
}); });
} else if (view.getId() == R.id.layout_supplier_food_info) { } else if (view.getId() == R.id.layout_supplier_food_info) {
//跳轉到供應商食品詳情 //跳轉到供應商食品詳情
List<SupplierInfoBean> data = supplierAdapter.getData();
start(FoodIngredientsFragment.newInstance(data.get(position).getId(), data.get(position).getSupplierName()));
} }
}); });
} else { } else {
......
...@@ -13,8 +13,8 @@ import android.widget.TextView; ...@@ -13,8 +13,8 @@ import android.widget.TextView;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import com.bigkoo.pickerview.view.TimePickerView; import com.bigkoo.pickerview.view.TimePickerView;
import com.gingersoft.gsa.cloud.common.utils.time.TimePickerUtils;
import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils; import com.gingersoft.gsa.cloud.common.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.ui.utils.TimePickerUtils;
import com.gingersoft.supply_chain.R; import com.gingersoft.supply_chain.R;
import com.gingersoft.supply_chain.R2; import com.gingersoft.supply_chain.R2;
......
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners
android:bottomLeftRadius="@dimen/dp_5"
android:bottomRightRadius="@dimen/dp_5"
android:topLeftRadius="@dimen/dp_0"
android:topRightRadius="@dimen/dp_0" />
<solid android:color="@color/add_deputy_unit_bg"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:showIn="@layout/fragment_order_details">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/dp_16"
android:text="@string/large_text" />
</androidx.core.widget.NestedScrollView>
\ No newline at end of file
...@@ -171,5 +171,7 @@ ...@@ -171,5 +171,7 @@
</FrameLayout> </FrameLayout>
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
\ No newline at end of file
...@@ -76,12 +76,16 @@ ...@@ -76,12 +76,16 @@
<com.qmuiteam.qmui.alpha.QMUIAlphaLinearLayout <com.qmuiteam.qmui.alpha.QMUIAlphaLinearLayout
android:id="@+id/layout_switch_method" android:id="@+id/layout_switch_method"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/dp_50" android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_5" android:layout_marginLeft="@dimen/dp_5"
android:layout_marginRight="@dimen/dp_5" android:layout_marginRight="@dimen/dp_5"
android:background="@drawable/shape_app_btn" android:background="@drawable/shape_app_btn"
android:gravity="center" android:gravity="center"
android:orientation="vertical"> android:orientation="vertical"
android:paddingLeft="@dimen/dp_4"
android:paddingTop="@dimen/dp_5"
android:paddingRight="@dimen/dp_4"
android:paddingBottom="@dimen/dp_5">
<ImageView <ImageView
android:layout_width="wrap_content" android:layout_width="wrap_content"
...@@ -90,10 +94,12 @@ ...@@ -90,10 +94,12 @@
android:src="@drawable/ic_switch_arrow" /> android:src="@drawable/ic_switch_arrow" />
<TextView <TextView
android:id="@+id/tv_switch_food_ingredients_show_type"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_5" android:layout_marginTop="@dimen/dp_5"
android:text="切換種類" android:gravity="center"
android:text="切換供應商"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="@dimen/dp_14" /> android:textSize="@dimen/dp_14" />
</com.qmuiteam.qmui.alpha.QMUIAlphaLinearLayout> </com.qmuiteam.qmui.alpha.QMUIAlphaLinearLayout>
...@@ -112,8 +118,8 @@ ...@@ -112,8 +118,8 @@
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_food_ingredients_second_category" android:id="@+id/rv_food_ingredients_second_category"
android:layout_width="match_parent" android:layout_width="match_parent"
android:visibility="gone"
android:layout_height="match_parent" android:layout_height="match_parent"
android:visibility="gone"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" /> app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
</FrameLayout> </FrameLayout>
</LinearLayout> </LinearLayout>
......
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/color_f5">
<include layout="@layout/supply_chain_top_bar" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@id/tv_food_unit_complete"
android:layout_below="@id/supply_top_bar"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dp_50"
android:background="@color/white"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_15"
android:text="基本單位"
android:textColor="@color/color_3c"
android:textSize="@dimen/dp_16" />
<EditText
android:id="@+id/ed_basic_unit"
style="@style/AppEditTextStyle"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="@dimen/dp_10"
android:layout_marginRight="@dimen/dp_10"
android:background="@null"
android:hint="請輸入基本單位"
android:maxLength="5" />
</LinearLayout>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_20"
android:layout_marginTop="@dimen/dp_5"
android:layout_marginRight="@dimen/dp_20"
android:layout_marginBottom="@dimen/dp_5"
android:gravity="center_horizontal"
android:text="請將最小計量單位設為基本單位,如個、張、卡等"
android:textColor="@color/color_3c"
android:textSize="@dimen/dp_12" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dp_0"
android:layout_marginBottom="@dimen/dp_20"
android:layout_weight="1">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_24"
android:orientation="vertical">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_deputy_unit_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
</LinearLayout>
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id="@+id/tv_add_deputy"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_24"
android:layout_gravity="center_horizontal|bottom"
android:background="@drawable/shape_add_deputy_unit_btn"
android:gravity="center_vertical"
android:paddingLeft="@dimen/dp_10"
android:paddingRight="@dimen/dp_10"
android:text="+添加一個副單位"
android:textColor="@color/white"
android:textSize="@dimen/dp_12" />
</FrameLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_basic_unit_list"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginLeft="@dimen/dp_20"
android:layout_marginRight="@dimen/dp_20"
android:layout_weight="1" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_20"
android:layout_marginTop="@dimen/dp_30"
android:layout_marginRight="@dimen/dp_20"
android:layout_marginBottom="@dimen/dp_5"
android:gravity="center_horizontal"
android:text="副单位为辅助单位,可设置为基本单位的整倍数。例如:基本单位为个,副单位为箱,200个=1箱,则与基本单位的换算倍数填200。"
android:textColor="@color/color_3c"
android:textSize="@dimen/dp_12" />
</LinearLayout>
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id="@+id/tv_food_unit_complete"
style="@style/app_btn_style"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginLeft="@dimen/dp_10"
android:layout_marginRight="@dimen/dp_10"
android:layout_marginBottom="@dimen/dp_10"
android:gravity="center"
android:paddingTop="@dimen/dp_10"
android:paddingBottom="@dimen/dp_10"
android:text="完成" />
</RelativeLayout>
\ No newline at end of file
...@@ -24,9 +24,9 @@ ...@@ -24,9 +24,9 @@
android:id="@+id/rv_new_food_ingredients" android:id="@+id/rv_new_food_ingredients"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="@color/white"
android:layout_above="@id/btn_save_new_food_ingredients" android:layout_above="@id/btn_save_new_food_ingredients"
android:layout_below="@id/topbar_new_food_ingredients" android:layout_below="@id/topbar_new_food_ingredients"
android:background="@color/white"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" /> app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
</RelativeLayout> </RelativeLayout>
\ No newline at end of file
...@@ -122,12 +122,15 @@ ...@@ -122,12 +122,15 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="備註:" android:text="備註:"
android:visibility="gone"
android:textColor="@color/color_3c" android:textColor="@color/color_3c"
android:textSize="@dimen/dp_16" /> android:textSize="@dimen/dp_16" />
<EditText <EditText
android:id="@+id/ed_order_content_remark" android:id="@+id/ed_order_content_remark"
style="@style/Multi_Input_editStyle" style="@style/Multi_Input_editStyle"
android:visibility="gone"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="1"
...@@ -137,17 +140,31 @@ ...@@ -137,17 +140,31 @@
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView <com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id="@+id/tv_order_content_complete" android:id="@+id/tv_order_content_complete"
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center"
android:layout_marginLeft="@dimen/dp_10" android:layout_marginLeft="@dimen/dp_10"
android:background="@drawable/shape_app_btn" style="@style/app_btn_style"
android:paddingLeft="@dimen/dp_35" android:paddingLeft="@dimen/dp_35"
android:paddingTop="@dimen/dp_10" android:paddingTop="@dimen/dp_10"
android:paddingRight="@dimen/dp_35" android:paddingRight="@dimen/dp_35"
android:paddingBottom="@dimen/dp_10" android:paddingBottom="@dimen/dp_10"
android:text="完成" android:text="確定"/>
android:textColor="@color/white"
android:textSize="@dimen/dp_16" /> <com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id="@+id/tv_order_content_cancel"
style="@style/Cancel_Btn_Style"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_marginLeft="@dimen/dp_15"
android:paddingLeft="@dimen/dp_35"
android:paddingTop="@dimen/dp_10"
android:paddingRight="@dimen/dp_35"
android:paddingBottom="@dimen/dp_10"
android:text="取消"/>
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment