提交 4e50aaed authored 作者: lgd's avatar lgd

1.退货添加报废逻辑

上级 a35c4fa7
......@@ -983,6 +983,42 @@ public class OrderDetail {
String count;// backList的数量
String lot;// 产品批号
private String provideMethod;
private String canScrapInProductSum;
private String canScrapOutProductSum;
private String canScrapUseProductSum;
private String canScrapReturnProductSum;
public String getCanScrapInProductSum() {
return canScrapInProductSum;
}
public void setCanScrapInProductSum(String canScrapInProductSum) {
this.canScrapInProductSum = canScrapInProductSum;
}
public String getCanScrapOutProductSum() {
return canScrapOutProductSum;
}
public void setCanScrapOutProductSum(String canScrapOutProductSum) {
this.canScrapOutProductSum = canScrapOutProductSum;
}
public String getCanScrapUseProductSum() {
return canScrapUseProductSum;
}
public void setCanScrapUseProductSum(String canScrapUseProductSum) {
this.canScrapUseProductSum = canScrapUseProductSum;
}
public String getCanScrapReturnProductSum() {
return canScrapReturnProductSum;
}
public void setCanScrapReturnProductSum(String canScrapReturnProductSum) {
this.canScrapReturnProductSum = canScrapReturnProductSum;
}
public String getProvideMethod() {
return provideMethod;
......
......@@ -77,23 +77,93 @@ public class ReturnAddActivity extends WorkToolBarActivity {
EditText etLot;
@BindView(R.id.ll_lot)
LinearLayout llLot;
@BindView(R.id.tv_action)
TextView tvAction;
@BindView(R.id.ll_action)
LinearLayout llAction;
@BindView(R.id.tv_return_type_desc)
TextView tvReturnTypeDesc;
@BindView(R.id.tv_stock_desc)
TextView tvStockDesc;
@BindView(R.id.tv_remark_desc)
TextView tvRemarkDesc;
private Map<String, Object> param;
private String orderType;
private List<String> typeList = new ArrayList<>();
private List<String> scrappedList = new ArrayList<>();
private String enterStockType;
private QMUIDialog.MenuDialogBuilder typeDialog;
private QMUIDialog.MenuDialogBuilder deptDialog;
private QMUIDialog.MenuDialogBuilder actionDialog;
String[] actionArray = new String[]{"退货", "报废"};
private int chooseType = 0;//1 从现场库退到内库 3 未结算库核 4 现场库退给供应商 (6)从内库退到供应商
private int chooseAction = 1;//action: 1退货 2报废
private JSONArray deptList;
private List<String> deptNameList;
private Integer chooseDep;
private OrderDetail dataBean;
private String isCrucible;
@Override
protected void initView() {
ButterKnife.bind(this);
orderType = getIntent().getStringExtra("orderType");
enterStockType = getIntent().getStringExtra("enterStockType");
isCrucible = getIntent().getStringExtra("isCrucible"); //坩埚销售订单 1 坩埚销售订单
tvAction.setText("退货");
if (TextUtils.equals(orderType, OrderType.SALE.getCode())|| TextUtils.equals(orderType, OrderType.OUT_BUY.getCode())) {
llAction.setVisibility(View.VISIBLE);
} else {
llAction.setVisibility(View.GONE);
}
// if (TextUtils.equals(orderType, OrderType.SALE.getCode())) {
// typeList.add("从现场库退到内库");
// tvReturnType.setText("从现场库退到内库");
// } else if (TextUtils.equals(orderType, OrderType.SUPPLIER.getCode())) {
// tvReturnType.setText("从内库退给供应商");
// } else if (TextUtils.equals(orderType, OrderType.OUT_BUY.getCode())) {
// switch (enterStockType) {
// case "1":
// typeList.add("从现场库退到内库");
// typeList.add("未结算库核销");
// typeList.add("现场库退给供应商");
// break;
// case "2":
// typeList.add("未结算库核销");
// typeList.add("现场库退给供应商");
// break;
// }
// }
typeDialog = DialogUtils.listDialog(this);
actionDialog = DialogUtils.listDialog(this);
actionDialog.addItems(actionArray, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
tvAction.setText(actionArray[which]);
chooseAction = which + 1;
changeDialogData();
dialog.dismiss();
}
});
deptDialog = DialogUtils.listDialog(this);
WorkUtils.addDecimalsListener(etNum);
WorkUtils.addNumListener(etRemark, tvRemarkNum);
changeDialogData();
}
private void changeDialogData() {
typeList.clear();
typeDialog.clear();
tvReturnType.setText("");
chooseType = 0;
chooseDep = null;
if (chooseAction == 1) {//退货
tvBottom.setText("提交退货申请");
tvNum.setText("退货数量");
tvReturnTypeDesc.setText("退货类别");
tvStockDesc.setText("退货到仓库");
tvRemarkDesc.setText("退货原因");
if (TextUtils.equals(orderType, OrderType.SALE.getCode())) {
typeList.add("从现场库退到内库");
tvReturnType.setText("从现场库退到内库");
......@@ -111,8 +181,44 @@ public class ReturnAddActivity extends WorkToolBarActivity {
typeList.add("现场库退给供应商");
break;
}
tvReturnType.setText(typeList.get(0));
}
} else {
tvBottom.setText("提交报废申请");
tvNum.setText("报废数量");
tvReturnTypeDesc.setText("报废类别");
tvStockDesc.setText("报废到仓库");
tvRemarkDesc.setText("报废原因");
/**
* 销售的报废,要区分是否是坩埚,是坩埚销售的话分2种@[@"现场库报废",@"退货库报废"];
* 不是坩埚销售的话分4种@[@"从内库报废",@"现场库报废",@"未结算库报废",@"退货库报废"];
* 外采购的报废分4种 @[@"从内库报废",@"现场库报废",@"未结算库报废",@"退货库报废"];
*/
if (TextUtils.equals(orderType, OrderType.SALE.getCode())) {
// typeList.add("从现场库退到内库");
// tvReturnType.setText("从现场库退到内库");
switch (isCrucible) {
case "1":
typeList.add("从现场库报废");
typeList.add("从退货库报废");
break;
default:
typeList.add("从内库报废");
typeList.add("从现场库报废");
typeList.add("从结算库报废");
typeList.add("从退货库报废");
break;
}
} else if (TextUtils.equals(orderType, OrderType.OUT_BUY.getCode())) {
typeList.add("从内库报废");
typeList.add("从现场库报废");
typeList.add("从未结算库报废");
typeList.add("从退货库报废");
}
tvReturnType.setText(typeList.get(0));
}
typeDialog = DialogUtils.listDialog(this);
typeDialog.addItems(typeList.toArray(new String[typeList.size()]), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
......@@ -121,13 +227,10 @@ public class ReturnAddActivity extends WorkToolBarActivity {
dialog.dismiss();
}
});
deptDialog = DialogUtils.listDialog(this);
WorkUtils.addDecimalsListener(etNum);
WorkUtils.addNumListener(etRemark, tvRemarkNum);
}
private void changeView() {
//1 从现场库退到内库 3 未结算库核 4 现场库退给供应商
if (chooseAction == 1) {//退货
String returnType = tvReturnType.getText().toString();
switch (returnType) {
case "从现场库退到内库":
......@@ -157,6 +260,36 @@ public class ReturnAddActivity extends WorkToolBarActivity {
llMoney.setVisibility(View.GONE);
break;
}
} else {
//7 @[@"从内库报废" 8 "从现场库报废", 9@"从未结算库报废", 10 @"从退货库报废"];
String returnType = tvReturnType.getText().toString();
switch (returnType) {
case "从内库报废":
chooseType = 7;
llChooseStock.setVisibility(View.VISIBLE);
llMoney.setVisibility(View.GONE);
break;
case "从现场库报废":
chooseType = 8;
llChooseStock.setVisibility(View.GONE);
llMoney.setVisibility(View.GONE);
break;
case "从未结算库报废":
chooseType = 9;
llChooseStock.setVisibility(View.GONE);
llMoney.setVisibility(View.GONE);
break;
case "从退货库报废":
chooseType = 10;
llMoney.setVisibility(View.GONE);
llChooseStock.setVisibility(View.GONE);
break;
default:
llChooseStock.setVisibility(View.GONE);
llMoney.setVisibility(View.GONE);
break;
}
}
param.put("returnType", chooseType);
changeNum();
}
......@@ -227,7 +360,8 @@ public class ReturnAddActivity extends WorkToolBarActivity {
return;
}
for (OrderDetail.OrderItemsBean orderItem : dataBean.getOrderItems()) {
if (TextUtils.equals(orderItem.getId(), getIntent().getStringExtra("orderItemId"))) {
if (TextUtils.equals(orderItem.getId(), getIntent().getStringExtra("orderItemId"))) {//匹配订单
if (chooseAction == 1) {//退货
if (!TextUtils.equals(orderType, OrderType.SUPPLIER.getCode())) {// 0805新增 额外判断供应订单 不修改旧逻辑
switch (chooseType) {
case 1:
......@@ -244,7 +378,22 @@ public class ReturnAddActivity extends WorkToolBarActivity {
} else {
tvMaxNum.setText(String.format("*退货最大数量(%s)", MathUtils.converData(orderItem.getCanReturnProductSum(), 3)));
}
} else {//报废
switch (chooseType) {
case 7:
tvMaxNum.setText(String.format("*报废最大数量(%s)", MathUtils.converData(orderItem.getCanScrapInProductSum(), 3)));
break;
case 8:
tvMaxNum.setText(String.format("*报废最大数量(%s)", MathUtils.converData(orderItem.getCanScrapOutProductSum(), 3)));
break;
case 9:
tvMaxNum.setText(String.format("*报废最大数量(%s)", MathUtils.converData(orderItem.getCanScrapUseProductSum(), 3)));
break;
case 10:
tvMaxNum.setText(String.format("*报废最大数量(%s)", MathUtils.converData(orderItem.getCanScrapReturnProductSum(), 3)));
break;
}
}
}
}
}
......@@ -311,6 +460,7 @@ public class ReturnAddActivity extends WorkToolBarActivity {
List<OrderDetail.OrderItemsBean> orderItems = dataBean.getOrderItems();
for (OrderDetail.OrderItemsBean orderItem : orderItems) {
if (TextUtils.equals(orderItem.getId(), getIntent().getStringExtra("orderItemId"))) {
if (chooseAction == 1) {//退货
if (!TextUtils.equals(orderType, OrderType.SUPPLIER.getCode())) {// 0805新增 额外判断供应订单 不修改旧逻辑
switch (chooseType) {
case 1:
......@@ -338,7 +488,35 @@ public class ReturnAddActivity extends WorkToolBarActivity {
return;
}
}
} else {
switch (chooseType) {
case 7:
if (BigDecimal.valueOf(Double.parseDouble(num)).compareTo(BigDecimal.valueOf(Double.parseDouble(orderItem.getCanScrapInProductSum()))) == 1) {
toast(String.format("报废最大数量%s", MathUtils.converData(orderItem.getCanScrapInProductSum(), 3)));
return;
}
break;
case 8:
if (BigDecimal.valueOf(Double.parseDouble(num)).compareTo(BigDecimal.valueOf(Double.parseDouble(orderItem.getCanScrapOutProductSum()))) == 1) {
toast(String.format("报废最大数量%s", MathUtils.converData(orderItem.getCanScrapOutProductSum(), 3)));
return;
}
break;
case 9:
if (BigDecimal.valueOf(Double.parseDouble(num)).compareTo(BigDecimal.valueOf(Double.parseDouble(orderItem.getCanScrapUseProductSum()))) == 1) {
toast(String.format("报废最大数量%s", MathUtils.converData(orderItem.getCanScrapUseProductSum(), 3)));
return;
}
break;
case 10:
tvMaxNum.setText(String.format("*报废最大数量(%s)", MathUtils.converData(orderItem.getCanScrapReturnProductSum(), 3)));
if (BigDecimal.valueOf(Double.parseDouble(num)).compareTo(BigDecimal.valueOf(Double.parseDouble(orderItem.getCanScrapReturnProductSum()))) == 1) {
toast(String.format("报废最大数量%s", MathUtils.converData(orderItem.getCanScrapReturnProductSum(), 3)));
return;
}
break;
}
}
}
}
}
......@@ -350,11 +528,12 @@ public class ReturnAddActivity extends WorkToolBarActivity {
toast("请输入核销金额");
return;
}
param.put("action", chooseAction);
param.put("productAmount", num);
param.put("writeOff", price);
param.put("applyRemark", remark);
param.put("lot", lot);
if (chooseType == 1) {
if (chooseType == 1 || chooseType == 7) {
if (chooseDep == null) {
toast("请选择退货仓库");
return;
......@@ -397,12 +576,15 @@ public class ReturnAddActivity extends WorkToolBarActivity {
}
@OnClick({R.id.tv_bottom, R.id.ll_type, R.id.ll_choose_stock})
@OnClick({R.id.ll_action, R.id.tv_bottom, R.id.ll_type, R.id.ll_choose_stock})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.tv_bottom:
submit();
break;
case R.id.ll_action:
actionDialog.show();
break;
case R.id.ll_type:
typeDialog.show();
break;
......
......@@ -218,6 +218,7 @@ public class ReturnApplyActivity extends WorkToolBarActivity {
"orderItemId", getIntent().getStringExtra("orderItemId"),
"enterStockType", getIntent().getStringExtra("enterStockType"),
"deptId", getIntent().getStringExtra("deptId"),
"isCrucible", getIntent().getStringExtra("isCrucible"),
"id", getIntent().getStringExtra("orderId"));
break;
}
......
......@@ -358,6 +358,7 @@ public class SaleOrderDetailActivity extends WorkToolBarActivity {
"orderId", getIntent().getStringExtra("id"),
"orderItemId", proList.get(position).getId(),
"productId", proList.get(position).getProductId() + "",
"isCrucible", dataBean.getIsCrucible(),
_TITLE,"退货/报废申请列表");
break;
case R.id.tv_flow:
......
......@@ -29,7 +29,37 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/ll_action"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:paddingHorizontal="20mm"
android:paddingVertical="9mm">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="动作"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_action"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="10mm"
android:layout_weight="1"
android:background="@null"
android:gravity="right"
android:padding="3mm"
android:textColor="@color/flexible_text_gray"
android:textSize="14sp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/arrow_right_gray" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
......@@ -116,6 +146,7 @@
android:paddingVertical="9mm">
<TextView
android:id="@+id/tv_return_type_desc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="退货类别"
......@@ -149,6 +180,7 @@
android:paddingVertical="9mm">
<TextView
android:id="@+id/tv_stock_desc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="退货到仓库"
......@@ -204,6 +236,7 @@
</LinearLayout>
<TextView
android:id="@+id/tv_remark_desc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingHorizontal="20mm"
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论