Browse Source

bug 犹存,

FANGLH 8 years ago
parent
commit
cc017ea9b7

+ 125 - 24
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/ExpenseReimbursementActivity.java

@@ -9,6 +9,8 @@ import android.content.Intent;
 import android.net.Uri;
 import android.net.Uri;
 import android.os.Build;
 import android.os.Build;
 import android.os.Bundle;
 import android.os.Bundle;
+import android.text.Editable;
+import android.text.TextWatcher;
 import android.util.Log;
 import android.util.Log;
 import android.view.Gravity;
 import android.view.Gravity;
 import android.view.LayoutInflater;
 import android.view.LayoutInflater;
@@ -70,7 +72,7 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
     private static final int SELECT_CURRENCY = 4;
     private static final int SELECT_CURRENCY = 4;
     private PopupWindow setWindow = null;//
     private PopupWindow setWindow = null;//
     private List<String> detailsData;  // 要展示的消费明细
     private List<String> detailsData;  // 要展示的消费明细
-    private List<String> selected_detailsData; //点击后返回的消费明细
+    private List<String> selected_detailsData; //点击后返回的消费明细
     private GridDataAdapter gAdapter;
     private GridDataAdapter gAdapter;
     private String[] TypeDatas =  {"类型1","类型2","类型3","类型4","类型5"};
     private String[] TypeDatas =  {"类型1","类型2","类型3","类型4","类型5"};
     private String[] CurrencyDatas =  {"币种1","币种2","币种3","币种4","币种5"};
     private String[] CurrencyDatas =  {"币种1","币种2","币种3","币种4","币种5"};
@@ -82,6 +84,9 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
     private int VERSION_CODES;
     private int VERSION_CODES;
     @ViewInject(R.id.table_details_list)
     @ViewInject(R.id.table_details_list)
     private MyListView table_details_list;
     private MyListView table_details_list;
+    private DetailsTableAdapter dtAdapter;
+    private List<String> table_list_type;
+    private List<Double> table_list_money;
 
 
     @Override
     @Override
     protected void onCreate(Bundle savedInstanceState) {
     protected void onCreate(Bundle savedInstanceState) {
@@ -160,12 +165,12 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
         });
         });
         gv_details_list = (NScrollerGridView) viewContext.findViewById(R.id.gv_details_list);
         gv_details_list = (NScrollerGridView) viewContext.findViewById(R.id.gv_details_list);
         btn_sure = (Button) viewContext.findViewById(R.id.btn_sure);
         btn_sure = (Button) viewContext.findViewById(R.id.btn_sure);
-        initDetailsView();
-        initDetailDatas();
-        initDetailsEvent();
+        initAddView();
+        initAddDatas();
+        initAddEvent();
     }
     }
 
 
-    private void initDetailsEvent() {
+    private void initAddEvent() {
         gv_details_list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
         gv_details_list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
             @Override
             @Override
             public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
             public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
@@ -190,16 +195,23 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
                 if (ListUtils.isEmpty(selected_detailsData)) return;
                 if (ListUtils.isEmpty(selected_detailsData)) return;
                 details_data_tv.setText(selected_detailsData.toString());
                 details_data_tv.setText(selected_detailsData.toString());
                 for (int i = 0; i < selected_detailsData.size(); i++) {
                 for (int i = 0; i < selected_detailsData.size(); i++) {
+                    table_list_type.add(selected_detailsData.get(i));
                     detailsData.remove(selected_detailsData.get(i));
                     detailsData.remove(selected_detailsData.get(i));
+                    if (i == (selected_detailsData.size()-1)){
+                        dtAdapter.setTable_list_type(table_list_type);
+                        dtAdapter.setTable_list_money(table_list_money);
+                        dtAdapter.notifyDataSetChanged();
+                        Log.i("selected_detailsData",selected_detailsData.toString()+"se");
+                        Log.i("detailsData",detailsData.toString()+"de");
+                        Log.i("table_list_type",table_list_type.toString()+"tlt");
+                    }
                 }
                 }
-                Log.i("selected_detailsData",selected_detailsData.toString()+"se");
-                Log.i("detailsData",detailsData.toString()+"de");
                 closePopupWindow();
                 closePopupWindow();
             }
             }
         });
         });
     }
     }
 
 
-    private void initDetailDatas() {
+    private void initAddDatas() {
         if (!ListUtils.isEmpty(selected_detailsData)) selected_detailsData.clear();
         if (!ListUtils.isEmpty(selected_detailsData)) selected_detailsData.clear();
         if (initDetailDatas_initialization) return;
         if (initDetailDatas_initialization) return;
         for (int i = 0; i < 22; i++) {
         for (int i = 0; i < 22; i++) {
@@ -209,11 +221,16 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
         }
         }
         Log.i("initDetailDatas","initDetailDatas_initialization");
         Log.i("initDetailDatas","initDetailDatas_initialization");
     }
     }
-    private void initDetailsView() {
+    private void initAddView() {
         detailsData = new ArrayList<>();
         detailsData = new ArrayList<>();
         selected_detailsData = new ArrayList<>();
         selected_detailsData = new ArrayList<>();
         gAdapter = new GridDataAdapter(mContext, detailsData);
         gAdapter = new GridDataAdapter(mContext, detailsData);
         gv_details_list.setAdapter(gAdapter);
         gv_details_list.setAdapter(gAdapter);
+
+        dtAdapter = new DetailsTableAdapter();
+        table_list_type = new ArrayList<>();
+        table_list_money = new ArrayList<>();
+        table_details_list.setAdapter(dtAdapter);
     }
     }
 
 
 
 
@@ -262,10 +279,106 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
     }
     }
 
 
 
 
+    private class DetailsTableAdapter extends BaseAdapter{
+        private Context context;
+        private List<String> table_list_type;
+        private List<Double> table_list_money;
+
+        public List<String> getTable_list_type() {
+            return table_list_type;
+        }
+
+        public void setTable_list_type(List<String> table_list_type) {
+            this.table_list_type = table_list_type;
+        }
+
+        public List<Double> getTable_list_money() {
+            return table_list_money;
+        }
+        public void setTable_list_money(List<Double> table_list_money) {
+            this.table_list_money = table_list_money;
+        }
+
+        @Override
+        public int getCount() {
+            return ListUtils.isEmpty(table_list_type) ? 0 : table_list_type.size();
+        }
+
+        @Override
+        public Object getItem(int position) {
+            return ListUtils.isEmpty(table_list_type) ? 0 : table_list_type.get(position);
+        }
 
 
+        @Override
+        public long getItemId(int position) {
+            return position;
+        }
+
+        @Override
+        public View getView(final int position, View convertView, ViewGroup parent) {
+            ViewHolder viewHolder = null;
+            if (convertView == null){
+                viewHolder = new ViewHolder();
+                convertView = View.inflate(ExpenseReimbursementActivity.this, R.layout.expense_details_table_item,null);
+                viewHolder.details_type = (TextView) convertView.findViewById(R.id.details_type_tv);
+                viewHolder.details_money = (FormEditText) convertView.findViewById(R.id.details_money_tv);
+                viewHolder.details_delete = (ImageView) convertView.findViewById(R.id.details_delete_im);
+                convertView.setTag(viewHolder);
+            }else {
+                viewHolder = (ViewHolder) convertView.getTag();
+            }
+            viewHolder.details_type.setText(getTable_list_type().get(position) + "");
+//            viewHolder.details_money.setText(getTable_list_money().get(position)+"");
+
+            viewHolder.details_delete.setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    new android.support.v7.app.AlertDialog
+                            .Builder(mContext)
+                            .setTitle(mContext.getString(R.string.common_notice))
+                            .setMessage("确定删除该条消费明细?")
+                            .setNegativeButton(mContext.getString(R.string.common_cancel), null)
+                            .setPositiveButton(mContext.getString(R.string.common_sure), new DialogInterface.OnClickListener() {
+                                @Override
+                                public void onClick(DialogInterface dialog, int which) {
+                                   table_list_type.remove(position);
+                                   if (!ListUtils.isEmpty(table_list_money) && table_list_money.get(position) != null){
+                                       table_list_money.remove(position);
+                                   }
+                                   notifyDataSetChanged();
+                                }
+                            }).show();
+                }
+            });
+            viewHolder.details_money.addTextChangedListener(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) {
+                    double numberstrChche =  Double.parseDouble(s.toString());
+                    table_list_money.add(numberstrChche);
+                }
+            });
+            return convertView;
+        }
+        class ViewHolder{
+            TextView details_type;
+            FormEditText details_money;
+            ImageView details_delete;
+
+        }
+    }
 
 
     /**
     /**
-     *表格适配器
+     *新增弹出PopupWindow表格适配器
      */
      */
     private class GridDataAdapter extends BaseAdapter {
     private class GridDataAdapter extends BaseAdapter {
         private Context ct;
         private Context ct;
@@ -318,21 +431,13 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
             modle.tv_text.setSelected(false);
             modle.tv_text.setSelected(false);
             modle.tv_text.setTextColor(mContext.getResources().getColor(R.color.black));
             modle.tv_text.setTextColor(mContext.getResources().getColor(R.color.black));
             if (!ListUtils.isEmpty(selected_data)){
             if (!ListUtils.isEmpty(selected_data)){
-                    for (int i = 0;i < selected_data.size();i++){
-                        if (selected_data.get(i).equals(mData.get(position))){
+                    for (int i = 0;i < getSelected_data().size();i++){
+                        if (getSelected_data().get(i).equals(mData.get(position))){
                             modle.tv_text.setSelected(true);
                             modle.tv_text.setSelected(true);
                             modle.tv_text.setTextColor(mContext.getResources().getColor(R.color.white));
                             modle.tv_text.setTextColor(mContext.getResources().getColor(R.color.white));
                         }
                         }
                     }
                     }
             }
             }
-
-//            if (selected_data.get()) {
-//                modle.tv_text.setSelected(true);
-//                modle.tv_text.setTextColor(mContext.getResources().getColor(R.color.white));
-//            } else {
-//                modle.tv_text.setSelected(false);
-//                modle.tv_text.setTextColor(mContext.getResources().getColor(R.color.black));
-//            }
             return convertView;
             return convertView;
         }
         }
 
 
@@ -341,10 +446,6 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
         }
         }
     }
     }
 
 
-
-
-
-
     /**
     /**
      * 图片适配器
      * 图片适配器
      */
      */

+ 51 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/model/oa/CostFormModel.java

@@ -0,0 +1,51 @@
+package com.xzjmyk.pm.activity.ui.erp.model.oa;
+
+import java.util.List;
+
+/**
+ * Created by FANGlh on 2017/6/10.
+ * function:费用报销单消费明细Model
+ */
+
+public class CostFormModel {
+    private String cost_type;
+    private double cost_money;
+    List<CostFormModel> cfMpdel_list;
+
+    public List<CostFormModel> getCfMpdel_list() {
+        return cfMpdel_list;
+    }
+
+    public void setCfMpdel_list(List<CostFormModel> cfMpdel_list) {
+        this.cfMpdel_list = cfMpdel_list;
+    }
+
+    public CostFormModel(String cost_type, double cost_money) {
+        this.cost_type = cost_type;
+        this.cost_money = cost_money;
+    }
+
+    public String getCost_type() {
+        return cost_type;
+    }
+
+    public void setCost_type(String cost_type) {
+        this.cost_type = cost_type;
+    }
+
+    public double getCost_money() {
+        return cost_money;
+    }
+
+    public void setCost_money(double cost_money) {
+        this.cost_money = cost_money;
+    }
+
+    public static double costCalculation(List<CostFormModel> cfMpdel_list){
+        double sumCost = 0.00;
+        for (int i = 0; i < cfMpdel_list.size(); i++) {
+            sumCost = cfMpdel_list.get(i).getCost_money() + sumCost;
+        }
+            return sumCost;
+    }
+}

+ 13 - 2
WeiChat/src/main/res/layout/activity_expense_reimbursement.xml

@@ -229,7 +229,9 @@
                     <com.xzjmyk.pm.activity.view.MyListView
                     <com.xzjmyk.pm.activity.view.MyListView
                         android:id="@+id/table_details_list"
                         android:id="@+id/table_details_list"
                         android:layout_width="match_parent"
                         android:layout_width="match_parent"
-                        android:layout_height="wrap_content">
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="10dp"
+                        android:layout_marginRight="10dp">
                     </com.xzjmyk.pm.activity.view.MyListView>
                     </com.xzjmyk.pm.activity.view.MyListView>
                     <LinearLayout
                     <LinearLayout
                         android:id="@+id/detail_table_bottom_ll"
                         android:id="@+id/detail_table_bottom_ll"
@@ -243,12 +245,22 @@
                             android:layout_height="wrap_content">
                             android:layout_height="wrap_content">
 
 
                             <View
                             <View
+                                android:id="@+id/left_view_v"
                                 style="@style/expense_table_v_1dp"/>
                                 style="@style/expense_table_v_1dp"/>
 
 
                             <View
                             <View
                                 android:id="@+id/right_view_v"
                                 android:id="@+id/right_view_v"
                                 android:layout_alignParentRight="true"
                                 android:layout_alignParentRight="true"
                                 style="@style/expense_table_v_1dp"/>
                                 style="@style/expense_table_v_1dp"/>
+                            <TextView
+                                android:id="@+id/automatic_calculation_tv"
+                                android:layout_toRightOf="@id/left_view_v"
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:text="自动计算"
+                                android:layout_centerVertical="true"
+                                android:layout_marginLeft="10dp"
+                                android:textColor="@color/blue"/>
                             <TextView
                             <TextView
                                 android:id="@+id/sum_money_tv"
                                 android:id="@+id/sum_money_tv"
                                 android:layout_width="wrap_content"
                                 android:layout_width="wrap_content"
@@ -266,7 +278,6 @@
                                 android:layout_toLeftOf="@+id/sum_money_tv"
                                 android:layout_toLeftOf="@+id/sum_money_tv"
                                 android:layout_centerVertical="true"
                                 android:layout_centerVertical="true"
                                 android:layout_marginRight="10dp"/>
                                 android:layout_marginRight="10dp"/>
-                            />
                         </RelativeLayout>
                         </RelativeLayout>
                         <View
                         <View
                             style="@style/expense_table_h_1dp"/>
                             style="@style/expense_table_h_1dp"/>

+ 59 - 0
WeiChat/src/main/res/layout/expense_details_table_item.xml

@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:whatever="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="vertical"
+    android:layout_marginLeft="10dp"
+    android:layout_marginRight="10dp"
+    >
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal">
+        <View
+            style="@style/expense_table_v_1dp"/>
+        <TextView
+            android:id="@+id/details_type_tv"
+            android:hint="请输入明细金额"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:paddingLeft="10dp"
+            android:layout_gravity="center_vertical"/>
+        <View
+            style="@style/expense_table_v_1dp"/>
+
+        <com.andreabaccega.widget.FormEditText
+            android:id="@+id/details_money_tv"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:background="@null"
+            android:hint="请输入明细金额"
+            android:layout_gravity="center_vertical"
+            android:textColor="@color/dark_dark_grey"
+            android:textSize="14sp"
+            android:maxLength="10"
+            android:inputType="number"
+            android:paddingLeft="10dp"/>
+
+        <View
+            style="@style/expense_table_v_1dp"/>
+        <ImageView
+            android:id="@+id/details_delete_im"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:paddingLeft="10dp"
+            android:layout_gravity="center_vertical"
+            android:src="@drawable/delete"/>
+        <View
+            style="@style/expense_table_v_1dp"
+            />
+    </LinearLayout>
+
+    <View
+        style="@style/expense_table_h_1dp"/>
+</LinearLayout>

+ 1 - 1
WeiChat/src/main/res/values/styles.xml

@@ -958,7 +958,7 @@
     <!--竖线-->
     <!--竖线-->
     <style name="expense_table_v_1dp">
     <style name="expense_table_v_1dp">
         <item name="android:layout_width">1dp</item>
         <item name="android:layout_width">1dp</item>
-        <item name="android:layout_height">25dp</item>
+        <item name="android:layout_height">30dp</item>
         <item name="android:background">@color/black</item>
         <item name="android:background">@color/black</item>
     </style>
     </style>
     <style name="AppTheme.NoActionBar">
     <style name="AppTheme.NoActionBar">