NewReceiptDetailActivity.java 4.41 KB
package com.huaheng.mobilewms.refactor;

import android.content.Context;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;

import com.huaheng.mobilewms.R;
import com.huaheng.mobilewms.activity.model.CommonActivity;
import com.huaheng.mobilewms.bean.Receipt;
import com.huaheng.mobilewms.bean.ReceiptBill;
import com.huaheng.mobilewms.bean.ReceiptDetail;
import com.huaheng.mobilewms.bean.ReceiptHeader;
import com.huaheng.mobilewms.https.HttpInterface;
import com.huaheng.mobilewms.https.Subscribers.ProgressSubscriber;
import com.huaheng.mobilewms.https.Subscribers.SubscriberOnNextListener;
import com.huaheng.mobilewms.util.WMSUtils;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;


public class NewReceiptDetailActivity extends CommonActivity implements View.OnClickListener {
    private String receiptCode, label;
    public Context mContext;

    ListView receiptListView;
    ImageView backImage;
    LinearLayout contentLayout;
    TextView receiptNoView;
    EditText containerEdit;

    ReceiptHeader receiptHeader;
    List<ReceiptDetail> receiptDetailList;
    //收货容器
    HashMap<String, List<ReceiptBill>> containerMap = new HashMap<>();
    //当前容器编码
    String currentContainerCode;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_new_receipt_detail);
        Bundle bundle = getIntent().getExtras();
        receiptCode = bundle.getString("receiptCode");
        label = bundle.getString("label");
        mContext = this;

        findReceipt(receiptCode);
        initView();
    }

    private void initView() {
        backImage = findViewById(R.id.backImage);
        backImage.setOnClickListener(this);
        contentLayout = findViewById(R.id.contentLayout);
        receiptListView = findViewById(R.id.receiptListView);
        receiptNoView = findViewById(R.id.receipt_no);
        receiptNoView.setText(receiptCode);
        containerEdit = findViewById(R.id.containerEdit);
        containerEdit.setOnEditorActionListener(new TextView.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView textView, int i, KeyEvent keyEvent) {
                String text = textView.getText().toString();
                text = text.trim().toUpperCase();
                textView.setText(text);
                if (WMSUtils.isNotEmpty(text)) {
                    isContainer(text);
                }
                return false;
            }
        });
    }

    private void initList() {
        ReceiptDetailAdapter adapter = new ReceiptDetailAdapter(mContext, receiptDetailList);
        receiptListView.setAdapter(adapter);
        adapter.notifyDataSetChanged();
    }

    private void findReceipt(String receiptCode) {
        HttpInterface.getInsstance().findReceipt(new ProgressSubscriber<Receipt>(mContext, receiptListener), receiptCode);
    }

    SubscriberOnNextListener receiptListener = new SubscriberOnNextListener<Receipt>() {
        @Override
        public void onNext(Receipt receipt) {
            if (receipt != null) {
                receiptHeader = receipt.getReceiptHeader();
                receiptDetailList = receipt.getReceiptDetails();
                initList();
            } else {
                WMSUtils.showShort(getString(R.string.toast_error));
            }
        }

        @Override
        public void onError(String str) {

        }
    };

    private void isContainer(String containerCode) {
        HttpInterface.getInsstance().isContainer(new ProgressSubscriber<String>(this, isContainerListener), containerCode);
    }

    SubscriberOnNextListener isContainerListener = new SubscriberOnNextListener<String>() {

        @Override
        public void onNext(String str) {
            //添加容器
            List<ReceiptBill> receiptBillList = new ArrayList<>();
            currentContainerCode = str;
            containerMap.put(str, receiptBillList);
        }

        @Override
        public void onError(String str) {
        }
    };

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.backImage:
                finish();
            default:
                break;
        }
    }
}