Browse Source

财务成本支付审核

mentoswzq 4 years ago
parent
commit
3964defc91

+ 14 - 10
js/component/manageCenter/components/checkProject/index.jsx

@@ -299,15 +299,17 @@ class CheckProject extends Component {
     )
   }
 
+
+  //0审核 1待支付 2驳回 3已支付 4取消
   operationJudgmentName(id) {
     if(this.props.isAuditPayment){          //财务
-      return id === 0 ? '查看详情' :
-          id === 1 ? '修改申请' :
+      return id === 0 ? '待审核' :
+          id === 1 ? '待支付' :
               id === 2 ? '查看详情' : '查看详情'
     }else{
       return id === 0 ? '待审核' :
-          id === 1 ? '查看详情' :
-              id === 2 ? '待支付' : '查看详情'
+          id === 1 ? '待支付' :
+              id === 2 ? '查看详情' : '查看详情'
     }
   }
 
@@ -489,12 +491,12 @@ class CheckProject extends Component {
                   申请支付金额(万元)
                 </div>
               </Col>
-              <Col className="gutter-row" span={6}>
+              <Col className="gutter-row" span={5}>
                 <div className="gutter-box">
                   申请时间
                 </div>
               </Col>
-              <Col className="gutter-row" span={4}>
+              <Col className="gutter-row" span={5}>
                 <div className="gutter-box">
                   状态
                 </div>
@@ -526,17 +528,18 @@ class CheckProject extends Component {
                           {value.applicationAmount}
                         </div>
                       </Col>
-                      <Col className="gutter-row" span={6}>
+                      <Col className="gutter-row" span={5}>
                         <div className="gutter-box">
                           {value.createTimes}
                         </div>
                       </Col>
-                      <Col className="operationItem" span={4}>
+                      <Col className="operationItem" span={5}>
                         <div className="operation">
                           {
                             value.status === 0 ? '审核中' :
-                                value.status === 1 ? '已驳回' :
-                                    value.status === 2 ? '待支付' : '支付完成'
+                                value.status === 1 ? '审核通过' :
+                                    value.status === 2 ? '已驳回' :
+                                        value.status === 3 ? '支付完成' : '已取消'
                           }
                         </div>
                         <Button type="primary" size='small' onClick={()=>{
@@ -589,6 +592,7 @@ class CheckProject extends Component {
                     this.getSelectOrderPayment();
                 }}
                 changeVisible={()=>{
+                    this.getSelectOrderPayment();
                     this.setState({
                         payRecordVisible: false,
                     })

+ 0 - 3
js/component/manageCenter/components/checkProject/index.less

@@ -54,15 +54,12 @@
 }
 
 .payStateList{
-  display: flex;
-  flex-flow: row nowrap;
   border-top: 1px #000 dashed;
   .listTitle{
     font-weight: bolder;
     padding-bottom: 20px;
   }
   .payList{
-    padding-left: 20px;
     .payitem{
       padding-bottom: 10px;
     }

+ 202 - 71
js/component/manageCenter/components/checkProject/payRecord.js

@@ -1,6 +1,7 @@
 import React,{Component} from 'react';
-import {Button, Form, Input, message, Modal, Spin} from "antd";
+import {Button, DatePicker, Form, Input, message, Modal, Spin} from "antd";
 import $ from "jquery/src/ajax";
+import moment from "moment";
 
 const layout = {
     labelCol: {
@@ -138,6 +139,7 @@ class PayRecord extends Component{
     }
 
     handleSubmit(e,status = 0){
+        //0审核 1待支付 2驳回 3已支付 4取消(0重新发起,1通过审核,2驳回)
         e.preventDefault();
         this.props.form.validateFieldsAndScroll((err, values) => {
             if (err) {
@@ -150,7 +152,7 @@ class PayRecord extends Component{
             let data = {
                 id: this.props.payId,
                 paymentAmount: paymentDetails.paymentAmount,
-                paymentStatus: paymentDetails.paymentStatus,
+                // paymentStatus: paymentDetails.paymentStatus,   //支付状态 0半款 1全款
                 status: status,//0 发起 1通过 2驳回(0重新发起,1通过审核,2驳回)
             }
             Object.assign(data,values)
@@ -163,7 +165,14 @@ class PayRecord extends Component{
                 if (res.error && res.error.length) {
                     message.error(res.error[0].message);
                 } else {
-                    message.success("重新申请成功");
+                    message.success(
+                        status === 0 ? "重新申请成功" :
+                                    status === 1 ? "通过审核操作成功" :
+                                        status === 2 ? "驳回操作成功" :
+                                            status === 3 ? "支付操作成功" :
+                                                status === 4 ? "取消操作成功" :''
+                    );
+                    this.props.changeVisible();
                 }
             }).always(() => {
                 this.setState({
@@ -174,47 +183,102 @@ class PayRecord extends Component{
     }
 
     //新增财务付款
-    addfinancialPayment(e) {
+    addfinancialPayment(e,index) {
         e.preventDefault();
-        this.props.form.validateFieldsAndScroll((err, values) => {
-            if (err) {
-                return;
+        let financialPaymentList = this.state.financialPaymentList.concat();
+        if(!financialPaymentList[index].partyAmount){
+            message.error('请填写正确的付款金额 ');
+            return;
+        }
+        if(!financialPaymentList[index].paymentTimes){
+            message.error('请选择时间 ');
+            return;
+        }
+        let time = moment(financialPaymentList[index].paymentTimes).format('YYYY-MM-DD HH:mm:ss');
+        this.setState({
+            loading: true
+        })
+        let data = {
+            pid: this.props.payId,
+            partyAmount: financialPaymentList[index]['partyAmount'],
+            paymentTimes: time,
+        }
+        $.ajax({
+            type: 'post',
+            url: globalConfig.context + "/api/admin/company/addfinancialPayment",
+            dataType: "json",
+            data: data,
+        }).done((res) => {
+            if (res.error && res.error.length) {
+                message.error(res.error[0].message);
+            } else {
+                message.success("新增成功");
+                let arr = this.state.financialPaymentList.concat();
+                arr[index].isSave= true;
+                arr[index].id= res.data;
+                this.setState({
+                    financialPaymentList: arr
+                });
+                // this.getSelectfinancialPayment();
             }
-            const { paymentDetails } = this.state;
+        }).always(() => {
             this.setState({
-                loading: true
+                loading: false
             })
-            let data = {
-                pid: this.props.payId,
-                partyAmount: values.partyAmount,
-                paymentTimes: values.paymentTimes
-            }
-            $.ajax({
-                type: 'post',
-                url: globalConfig.context + "/api/admin/company/addfinancialPayment",
-                dataType: "json",
-                data: data,
-            }).done((res) => {
-                if (res.error && res.error.length) {
-                    message.error(res.error[0].message);
-                } else {
-                    message.success("新增成功");
-                }
-            }).always(() => {
-                this.setState({
-                    loading: false
-                })
+        });
+    }
+
+    //删除财务付款
+    deleteFinancialPayment(e,index){
+        e.preventDefault();
+        if(!this.state.financialPaymentList[index]['id']){
+            let arr = this.state.financialPaymentList.concat();
+            arr.splice(index,1);
+            this.setState({
+                financialPaymentList: arr
             });
+            return;
+        }
+        this.setState({
+            loading: true
         })
+        $.ajax({
+            type: 'post',
+            url: globalConfig.context + "/api/admin/company/deleteFinancialPayment",
+            dataType: "json",
+            data: {
+                id: this.state.financialPaymentList[index]['id']
+            },
+        }).done((res) => {
+            if (res.error && res.error.length) {
+                message.error(res.error[0].message);
+            } else {
+                let arr = this.state.financialPaymentList.concat();
+                arr.splice(index,1);
+                this.setState({
+                    financialPaymentList: arr
+                });
+                message.success("删除成功");
+            }
+        }).always(() => {
+            this.setState({
+                loading: false
+            })
+        });
     }
 
     //0审核 1驳回 2待支付 3已支付 4取消
     noExamineOperation(){
         return (
-            this.state.paymentDetails.status === 1 ? <Form.Item>
+            this.state.paymentDetails.status === 2 ? <Form.Item>
                 <Button type="primary" htmlType="submit">
                     重新发起申请
                 </Button>
+                <Button type="danger" style={{float:'right'}} onClick={(e)=>{
+                    this.handleSubmit(e,4);
+                }}>
+                    删除
+                </Button>
             </Form.Item> : <div/>
         )
     }
@@ -223,45 +287,71 @@ class PayRecord extends Component{
         const { getFieldDecorator } = this.props.form;
         return (
             this.state.paymentDetails.status === 0 ? <Form.Item>
-                {getFieldDecorator('remarks', {
+                {getFieldDecorator('auditNotes', {
                     rules: [{ required: true, message: '请输入备注!' }],
                 })(
                     <Input style={{ width: '200px' }} placeholder="请输入备注" type={'textarea'}/>
                 )}
-                <Button type="primary" onClick={(e)=>{
+                <Button type="primary" style={{marginLeft:'15px'}} onClick={(e)=>{
                     this.handleSubmit(e,2);
                 }}>
                     驳回
                 </Button>
-                <Button type="primary" onClick={(e)=>{
+                <Button type="primary" style={{marginLeft:'15px'}} onClick={(e)=>{
                     this.handleSubmit(e,1);
                 }}>
                     通过
                 </Button>
-            </Form.Item> : this.state.paymentDetails.status === 2 ?
-                <div>
-                    <Form.Item label="付款时间:">
-                        {getFieldDecorator('remarks', {
-                            rules: [{ required: true, message: '请输入付款时间!' }],
-                        })(
-                            <Input style={{ width: '100px' }} placeholder="请输入付款时间" type={'number'}/>
-                        )}
-
-                    </Form.Item>
-                    <Form.Item label="付款金额(万元):">
-                        {getFieldDecorator('remarks', {
-                            rules: [{ required: true, message: '请输入付款金额!' }],
-                        })(
-                            <Input style={{ width: '100px' }} placeholder="请输入付款金额" type={'time'}/>
-                        )}
-
-                    </Form.Item>
-                    <Button type="primary" onClick={(e)=>{
-                        this.addfinancialPayment(e)
-                    }}>
-                        保存
-                    </Button>
-                </div> : <div/>
+            </Form.Item> : this.state.paymentDetails.status === 1 ?
+                this.state.financialPaymentList.map((value,index)=>(
+                    <div key={index} style={{display:'flex',flexFlow:'row nowrap',alignItems:'center',paddingTop:'15px'}}>
+                        <Form.Item label="付款时间:" style={{marginBottom:'0px !important',display:'flex',flexFlow:'row nowrap',alignItems:'center'}}>
+                            <DatePicker
+                                showTime
+                                disabled={value.isSave || value.id}
+                                format="YYYY-MM-DD HH:mm:ss"
+                                style={{ width: '200px' }}
+                                placeholder="请选择付款时间"
+                                value={value.paymentTimes && moment(value.paymentTimes, 'YYYY-MM-DD HH:mm:ss')}
+                                defaultValue={value.paymentTimes && moment(value.paymentTimes, 'YYYY-MM-DD HH:mm:ss')}
+                                onChange={(value)=>{
+                                    let arr = this.state.financialPaymentList.concat();
+                                    arr[index].paymentTimes = value;
+                                    this.setState({
+                                        financialPaymentList:arr
+                                    })
+                                }}
+                            />
+                        </Form.Item>
+                        <Form.Item label="付款金额(万元):" style={{paddingLeft:'20px',marginBottom:'0px !important',display:'flex',flexFlow:'row nowrap',alignItems:'center'}}>
+                            <Input
+                                disabled={value.isSave || value.id}
+                                style={{ width: '100px' }}
+                                placeholder="请输入付款金额"
+                                type={'number'}
+                                value={value.partyAmount && value.partyAmount}
+                                defaultValue={value.partyAmount && value.partyAmount}
+                                onChange={(e)=>{
+                                    let arr = this.state.financialPaymentList.concat();
+                                    arr[index].partyAmount = e.target.value;
+                                    this.setState({
+                                        financialPaymentList:arr
+                                    })
+                                }}
+                            />
+                        </Form.Item>
+                        {value.id ? false : !value.isSave ? <Button style={{marginLeft:'20px',}} type="primary" onClick={(e)=>{
+                            this.addfinancialPayment(e,index)
+                        }}>
+                            保存
+                        </Button> : <div/>}
+                        <Button type="primary" style={{marginLeft:'20px',}} onClick={(e)=>{
+                            this.deleteFinancialPayment(e,index);
+                        }}>
+                            删除
+                        </Button>
+                    </div>
+                )) : <div/>
         )
     }
 
@@ -270,6 +360,7 @@ class PayRecord extends Component{
         const { paymentLogs,paymentDetails,financialPaymentList } = this.state;
         return(
             <Modal
+                width={700}
                 maskClosable={false}
                 footer={null}
                 visible={this.props.visible}
@@ -319,7 +410,7 @@ class PayRecord extends Component{
                                     initialValue: parseInt(paymentDetails.quantity),
                                     rules: [{ required: false, message: '请输入數量!' }],
                                 })(
-                                    <Input disabled={paymentDetails.quantity <= 1 || this.state.paymentDetails.status > 1} style={{ width: '200px' }} placeholder="请输入數量" type={'number'}/>
+                                    <Input disabled={true} style={{ width: '200px' }} placeholder="请输入數量" type={'number'}/>
                                 )}
                             </Form.Item>
                             <Form.Item
@@ -351,7 +442,11 @@ class PayRecord extends Component{
                                     initialValue: paymentDetails.applicationAmount,
                                     rules: [{ required: true, message: '请输入本次申请支付金额!' }],
                                 })(
-                                    <Input disabled={this.state.paymentDetails.status > 1} style={{ width: '200px' }} placeholder="请输入本次申请支付金额" type={'number'}/>
+                                    <Input
+                                        type={'number'}
+                                        style={{ width: '200px' }}
+                                        disabled={ this.props.isAuditPayment ? this.state.paymentDetails.status !== 0 : this.state.paymentDetails.status !== 2}
+                                        placeholder="请输入本次申请支付金额"/>
                                 )}
                             </Form.Item>
                             <Form.Item
@@ -361,21 +456,41 @@ class PayRecord extends Component{
                                 }}
                                 label="备注:"
                             >
-                                <div>{paymentDetails.remarks}</div>
+                                {
+                                    (!this.props.isAuditPayment && this.state.paymentDetails.status === 2) ?
+                                        getFieldDecorator('remarks', {
+                                            initialValue: paymentDetails.remarks,
+                                            rules: [{ required: true, message: '请输入备注!' }],
+                                        })(
+                                            <Input style={{ width: '200px' }} placeholder="请输入备注" type={'textarea'}/>
+                                        ) : <div>{paymentDetails.remarks}</div>
+                                }
                             </Form.Item>
                             <div className='payStateList'>
-                                <div className='listTitle'>
-                                    支付状态
+                                <div className='listTitle' style={{color:'#F00'}}>
+                                    支付状态:
+                                    <span style={{paddingLeft:'20px'}}>
+                                        {
+                                            //0审核 1待支付 2驳回 3已支付 4取消
+                                            paymentDetails.status === 0 ? '待'+paymentDetails.financeName+'审核' :
+                                                paymentDetails.status === 1 ? '待'+paymentDetails.financeName+'支付' :
+                                                    paymentDetails.status === 2 ? '待重新提交' :
+                                                        paymentDetails.status === 3 ? '待'+paymentDetails.financeName+'审核' : '已取消'
+                                        }
+                                    </span>
                                 </div>
                                 <div className='payList'>
                                     {
                                         paymentLogs.map((value,key)=>(
-                                            <div key={key} className='payitem' style={{color:key === 0 ? '#f00' : '#000'}}>
+                                            <div key={key} className='payitem'>
                                                 {value.aname+':'}
-                                                {
-                                                    value.status === 0 ? '(发起)'+value.remarks :
-                                                        value.status === 1 ? '(通过)'+value.remarks : '(驳回)'+value.remarks
-                                                }
+                                                <span style={{paddingLeft:'15px',paddingRight:'15px'}}>
+                                                    {
+                                                        value.status === 0 ? '(发起)' :
+                                                            value.status === 1 ? '(通过)': '(驳回)'
+                                                    }
+                                                    {value.remarks}
+                                                </span>
                                                 {
                                                     value.createTimes
                                                 }
@@ -384,25 +499,41 @@ class PayRecord extends Component{
                                     }
                                 </div>
                             </div>
-                            {paymentDetails.status === 2 ||  paymentDetails.status === 3 ||  paymentDetails.status === 4 ?<div className='payStateList'>
+                            {paymentDetails.status === 1 ||  paymentDetails.status === 3 ||  paymentDetails.status === 4 ?<div style={{ borderTop: '1px #000 dashed'}}>
                                 <div className='listTitle' style={{display:'block',fontSize:'15px'}}>
                                     上传付费凭证-财务
                                     <span style={{fontSize:'10px',paddingLeft:'10px'}}>实际付款(万元): {paymentDetails.paymentAmount}</span>
+                                    {paymentDetails.status === 1 && this.props.isAuditPayment ?
+                                        <Button style={{marginLeft:'20px'}} type="primary" onClick={()=>{
+                                            let arr = this.state.financialPaymentList.concat();
+                                            arr.push({});
+                                            this.setState({
+                                                financialPaymentList: arr
+                                            })
+                                        }}>
+                                            增加付款凭证
+                                        </Button> : <div/>
+                                    }
                                 </div>
-                                <div className='payList'>
+                                {!(paymentDetails.status === 1 && this.props.isAuditPayment) ? <div className='payList'>
                                     {
                                         financialPaymentList.map((value,key)=>(
-                                            <div key={key} className='payitem' style={{color:key === 0 ? '#f00' : '#000'}}>
+                                            <div key={key} className='payitem'>
                                                 付款时间: {value.paymentTimes}
                                                 <span style={{paddingLeft:'25px'}}>付款金额(万元): {value.partyAmount}</span>
                                             </div>
                                         ))
                                     }
-                                </div>
+                                </div> : <div/>}
                             </div> : <div/>}
                             {
                                 this.props.isAuditPayment ? this.examineOperation() : this.noExamineOperation()
                             }
+                            {this.props.isAuditPayment && paymentDetails.status === 1 ? <Button style={{marginLeft:'20px'}} type="primary" onClick={(e)=>{
+                                this.handleSubmit(e,3);
+                            }}>
+                                确定提交
+                            </Button> : <div/>}
                         </Form>
                     </div>
                 </Spin>

+ 1 - 1
js/component/manageCenter/order/orderNew/costAuditList/detailsModal/index.js

@@ -223,7 +223,7 @@ class DetailsModal extends Component{
                     }}
                 >
                     <TabPane tab="项目概况" key="1">
-                        <ProjectOverview/>
+                        <ProjectOverview projectStatus={this.props.projectStatus} tid={this.props.tid}/>
                     </TabPane>
                     <TabPane tab="外包/供应商信息" key="2">
                         <CheckProject

File diff suppressed because it is too large
+ 1248 - 4
js/component/manageCenter/order/orderNew/costAuditList/detailsModal/projectOverview.js


+ 1 - 1
js/component/manageCenter/project/task/myTask.jsx

@@ -1214,7 +1214,7 @@ const Task = React.createClass({
     }
     window.location.href =
       globalConfig.context +
-      '/api/admin/orderProject/exportMyTaskList?' +
+      '/api/admin/orderProject/exporProjectList?' +
       $.param(data)
   },
   //关闭详情

+ 1 - 1
js/component/manageCenter/project/task/myTaskOutsource.jsx

@@ -1049,7 +1049,7 @@ const MyTaskOutsource = React.createClass({
     };
     window.location.href =
       globalConfig.context +
-      "/api/admin/orderProject/exportMyTaskList?" +
+      "/api/admin/orderProject/exporProjectList?" +
       $.param(data);
   },
   //关闭详情