Jelajahi Sumber

我的发票:收款入账功能

caipin 8 tahun lalu
induk
melakukan
88b79b2c12

+ 1 - 1
protected/config/routes.conf.php

@@ -374,7 +374,7 @@ $route['post']['/invoiceReceivablesDo'] = array('InvoiceController', 'invoiceRec
 $route['post']['/invoiceReceivablesAscription'] = array('InvoiceController', 'invoiceReceivablesAscription');
 $route['get']['/invoiceMyReceivables'] = array('InvoiceController', 'invoiceMyReceivables');
 $route['post']['/invoiceBindReceivables'] = array('InvoiceController', 'invoiceBindReceivables');
-
+$route['post']['/invoiceEnterReceivables'] = array('InvoiceController', 'invoiceEnterReceivables');
 
 $route['post']['/ajaxGetInvoicePostDetail'] = array('InvoiceController', 'ajaxGetInvoicePostDetail');
 $route['post']['/ajaxGetStaffByCategory'] = array('InvoiceController', 'ajaxGetStaffByCategory');

+ 110 - 11
protected/controller/InvoiceController.php

@@ -812,7 +812,7 @@ class InvoiceController extends DooController {
 				'expressCompany' => $expressCompany,
 				'expressNumber' => $expressNumber,
 				'actualItems' => $actualItems,
-				'poster' => $staff [0] ['username'] 
+				'poster' => $this->staff [0] ['username'] 
 		);
 		$invoice->setInvoiceByCondition ( $item );
 		return '/invoicePost';
@@ -991,6 +991,8 @@ class InvoiceController extends DooController {
 		$invoice = new invoice ();
 		Doo::loadModel ( 'invoiceReceivables' );
 		$invoiceReceivables = new invoiceReceivables ();
+		Doo::loadModel ( 'invoiceOperationLog' );
+		$invoiceOperationLog = new invoiceOperationLog ();
 		
 		$detail=$invoice->getInvoiceByIid($invoiceKey);
 		$detailM=$invoiceReceivables->getInvoiceReceivablesByIrid($claimKey);
@@ -1021,10 +1023,94 @@ class InvoiceController extends DooController {
 				'irid' => $iridString
 		);
 		$invoice->setInvoiceByCondition($item);
+		
+		//操作日志
+		$item = array (
+				'date' => date ( "Y-m-d H:i:s" ),
+				'operation' => "收款".$detailM['receivablesSerial']."入账到发票".$detail['invoiceSerial'],
+				'status' => 8,
+				'img' => $this->staff [0] ['avatar'],
+				'username' => $this->staff [0] ['username'],
+				'uid' => $this->staff [0] ['sid'],
+				'category' => $this->staff [0] ['category'],
+				'iid' => $detail['iid']
+		);
+		$invoiceOperationLog->setInvoiceOperationLog ( $item );
+		
 		return "/invoiceMyReceivables";
 	}
 	
 	/**
+	 * 发票收入多个收款数据
+	 */
+	function invoiceEnterReceivables(){
+		$invoiceKey = $this->get_args ( 'key' ) ? $this->get_args ( 'key' ) : "";
+		$invoiceClaim = $this->get_args ( 'invoiceClaim' ) ? $this->get_args ( 'invoiceClaim' ) : "";
+		
+		Doo::loadModel ( 'invoice' );
+		$invoice = new invoice ();
+		Doo::loadModel ( 'invoiceReceivables' );
+		$invoiceReceivables = new invoiceReceivables ();
+		Doo::loadModel ( 'invoiceOperationLog' );
+		$invoiceOperationLog = new invoiceOperationLog ();
+		
+		$detail=$invoice->getInvoiceByIid($invoiceKey);
+		
+		if (empty($detail)||empty($invoiceClaim))
+			die ( 'illegal request' );
+		
+		$receivablesPrice=0;$iridString=$detail['irid'];$iridList=array();
+		foreach ($invoiceClaim as $key=>$value){
+			$detailM=$invoiceReceivables->getInvoiceReceivablesByIrid($value);
+			$receivablesPrice+=$detailM['receivablesPrice'];
+			if (empty($iridString))
+				$iridString=$detailM['irid'];
+			else
+				$iridString.=",".$detailM['irid'];
+			array_push($iridList, $detailM['irid']);
+		}
+			
+		if ($receivablesPrice>=$detail['invoicePrice']){
+			$price=$receivablesPrice-$detail['invoicePrice'];
+			die('<p>收款金额超出开票金额 ¥'.$price.'元,请谨慎操作</p><a href="/invoice">返回</a>');
+		}
+		
+		$item = array (
+			'irid' => $iridString,
+			'bindTime' => date ( "Y-m-d H:i:s" ),
+			'updateTime'=> date ( "Y-m-d H:i:s" ),
+			'iid' => $detail['iid']
+		);
+		$invoice->setInvoiceByCondition($item);
+		
+		//操作日志
+		$item = array (
+				'date' => date ( "Y-m-d H:i:s" ),
+				'operation' => "多个收款入账到发票".$detail['invoiceSerial'],
+				'status' => 8,
+				'img' => $this->staff [0] ['avatar'],
+				'username' => $this->staff [0] ['username'],
+				'uid' => $this->staff [0] ['sid'],
+				'category' => $this->staff [0] ['category'],
+				'iid' => $detail['iid']
+		);
+		$invoiceOperationLog->setInvoiceOperationLog ( $item );
+		
+		foreach ($iridList as $key=>$value){
+			$item = array (
+					'iid' => $detail['iid'],
+					'irid' => $value,
+					'bindDate'=>date ( "Y-m-d H:i:s" ),
+					'bindStatus' => 1
+					
+			);
+			$invoiceReceivables->setInvoiceReceivablesByCondition($item);
+		}
+			
+		return "/invoice";
+	}
+	
+	/**
 	 * 获得与我有关可收款的发票
 	 */
 	function ajaxGetInvoiceByStaff() {
@@ -1097,10 +1183,17 @@ class InvoiceController extends DooController {
 		$invoiceReceivables = new invoiceReceivables ();
 		
 		$detail=$invoice->getInvoiceByIid($invoiceKey);
-		$detailM=$invoiceReceivables->getInvoiceReceivablesByIrid($claimKey);
 		
-		if ($detailM['receivablesPrice']>=$detail['invoicePrice']){
-			$price=$detailM['receivablesPrice']-$detail['invoicePrice'];
+		
+		$keyList=explode(';', $claimKey);$receivablesPrice=0;
+		foreach ($keyList as $key=>$value){
+			$detailM=$invoiceReceivables->getInvoiceReceivablesByIrid($value);
+			$receivablesPrice+=$detailM['receivablesPrice'];
+		}
+		
+		
+		if ($receivablesPrice>=$detail['invoicePrice']){
+			$price=$receivablesPrice-$detail['invoicePrice'];
 			echo json_encode ( array (
 					'status' => 1,
 					'price'=>$price
@@ -1199,19 +1292,25 @@ class InvoiceController extends DooController {
 		
 		$list =$invoiceReceivables->getInvoiceReceivablesByClaim($this->staff [0] ['cid'],$this->staff [0] ['sid']);
 		
-		
 		$html = "";
 		foreach ( $list['myClaim'] as $key => $value ) {
 			$html .= '<tr>
-					<td>' . $value ['receivablesPrice'] . '</td>
-					<td>' . $value ['receivablesMessage'] . '</td>
+					<td>' . $value ['receivablesPrice'] . '</td>
+					<td>' . $value ['receivablesMessage'] . '</td>
 					<td>' . $value ['receivablesBank'] . '</td>
 					<td>' . $value ['receivablesDate'] . '</td>';
-			$html .= '<td><label><input type="radio" node-Claim="true" p-data="'.$value ['iidKey'].'" name="invoiceClaim"> 使用Ta</label></td></tr>
+			$html .= '<td><label><input type="checkbox" node-Claim="true" value="'.$value ['iidKey'].'" name="invoiceClaim[]"> 使用Ta</label></td></tr>
 					<script>
 					$(\'input[node-Claim="true"]\').click(function() {
-						var invoiceKey=  $(this).attr("p-data");
-						var claimKey=$("input[name=\'key\']").val();
+					
+						var result = new Array();
+		                $("[node-Claim=\'true\']:checkbox").each(function () {
+		                    if ($(this).is(":checked")) {
+		                        result.push($(this).attr("value"));
+		                    }
+		                });
+ 
+						var invoiceKey=$("input[name=\'key\']").val();
 						$("p[node-msg=\"true\"]").hide();
 						var url = "/ajaxCompareClaimPrice";
 						$.ajax({
@@ -1220,7 +1319,7 @@ class InvoiceController extends DooController {
 							cache : false,
 							dataType : "json",
 							data : {
-								claimKey : claimKey,
+								claimKey : result.join(";"),
 								invoiceKey:invoiceKey
 							},
 							global : true,

+ 5 - 1
protected/model/invoice.php

@@ -162,6 +162,7 @@ class invoice extends DooModel {
 	public $untreadItems;
 	public $untreadStatus;
 	public $irid;
+	public $bindTime;
 	/**
 	 *
 	 * @var date $date 提交时间
@@ -227,7 +228,8 @@ class invoice extends DooModel {
 			'isDelete',
 			'updateTime',
 			'printTime',
-			'postTime' 
+			'postTime' ,
+			'bindTime'
 	);
 	/**
 	 * 根据发票ID获取一条发票数据
@@ -252,6 +254,8 @@ class invoice extends DooModel {
 		$Detail = array ();
 		if (is_numeric ( $iid ) && ! empty ( $iid ))
 			$Detail = $this->getOne ( $condition );
+		
+		
 		$Detail ['expressCompany'] = '';
 		$Detail ['expressCom'] = '';
 		if (isset ( $Detail ['expressCompany'] ) && ! empty ( $Detail ['expressCompany'] )) {

+ 1 - 1
protected/view/admin/invoice.html

@@ -388,7 +388,7 @@
     <div class="modal-header">
     <h3>发票入账</h3>
     </div>
-    <form action="/ibles" method="post" >
+    <form action="/invoiceEnterReceivables" method="post" >
 		<input type="hidden" name="key" value="">
 		<input type="hidden" name="invoiceKey" value="">
     <div class="modal-body">

+ 122 - 0
protected/view/admin/invoiceMyReceivables.html

@@ -0,0 +1,122 @@
+<!-- include 'header' -->
+<script src="<?= WEB_SITE_GLOBAL ?>js/invoice.js"></script>
+<body>
+	<div class="mainLayout">
+		<div class="mainMenu">
+			<div class="menuItem">
+				<a href="#" class="mLogo">CLD</a>
+				<ul>
+					<!-- include 'menuReceipt' -->
+				</ul>
+			</div>
+			
+		</div>
+		<div class="warpContent">
+			<div class="subMenu fL">
+				<div class="menuItem">
+					<!-- include 'invoiceMenu' -->
+				</div>
+			</div>
+			<div class="adminContent autoHeight">
+				<div class="borad-menu">
+				</div>
+				<div class="borad-news">
+					<div class="saeaList">
+						<div class="clearfix">
+							<table class="table table-bordered table-condensed">
+								<tbody>
+								<tr><th class="taC">本月累计收款</th><td>¥3999.00</td><th class="taC">本月累计入账</th><td>¥3999.00</td></tr>
+								<tr><th class="taC">10月累计收款</th><td>¥838,273.00</td><th class="taC">10月累计入账</th><td>¥838,273.00</td></tr>
+								<tr><th class="taC">今年累计收款</th><td>¥209,484,765.00</td><th class="taC">今年累计入账</th><td>¥209,484,765.00</td></tr>
+								</tbody>
+
+							</table>
+						</div>
+						<div class="clearfix">
+							<!-- if !empty({{list.myClaim}}) -->
+							<legend><div class="fR"></div>待入账</legend>
+							<table class="table table-bordered table-condensed">
+								<tbody>
+								<tr><th class="taC" width="70">收款金额</th><th class="taC">银行到帐信息</th><th class="taC">银行到帐时间</th><th class="taC">收款处理</th><th class="taC" width="120">操作</th></tr>
+								<!-- loop list.myClaim -->
+								<tr>
+									<td><b>¥{{myClaim' value.receivablesPrice}}</b></td>
+									<td>{{myClaim' value.receivablesMessage}}</td>
+									<td>{{myClaim' value.receivablesDate}}</td>
+									<td>
+									<!-- if {{myClaim' value.source}}==0 -->
+									{{myClaim' value.inputStaff}} 转入 {{myClaim' value.date}}
+									<!-- else -->
+									{{myClaim' value.username}} 认领  {{myClaim' value.confirmTime}}
+									<!-- endif -->
+									</td>
+									<td width=""><a class="button btn-green  btn-block" data-key="{{myClaim' value.iidKey}}" node-recording="true" href="#recorded" data-toggle="modal">收款入账</a></td>
+								</tr>
+								<!-- endloop -->
+								
+								</tbody>
+							</table>
+							<!-- else -->
+							<blockquote><p class="colGray">暂时没有需要处理的收款</p></blockquote>
+							<!-- endif -->
+						</div>
+						<div class="clearfix">
+							<!-- if !empty({{list.bindClaim}}) -->
+							<legend><div class="fR"><a href="invoice-billing-all.html">查看更多</a></div>最近入账</legend>
+							<table class="table table-bordered table-condensed">
+								<tbody>
+								<tr><th class="taC">银行到帐信息</th><th class="taC" width="90">收款金额</th><th class="taC">收款流水号</th><th class="taC" width="90">开票金额</th><th class="taC">开票流水号</th><th class="taC">入账时间</th></tr>
+								<!-- loop list.bindClaim -->
+								<tr>
+									<td>{{bindClaim' value.receivablesMessage}}</td>
+									<td><b>¥{{bindClaim' value.receivablesPrice}}</b></td>
+									<td><a href="#" data-toggle="modal">{{bindClaim' value.receivablesSerial}}</a></td>
+									<td><b>¥{{bindClaim' value.invoice.invoicePrice}}</b></td>
+									<td><a href="#invdetail" data-toggle="modal">{{bindClaim' value.invoice.invoiceSerial}}</a></td>
+									<td>{{bindClaim' value.bindDate}}</td>
+								</tr>
+								<!-- endloop -->
+								
+								</tbody>
+							</table>
+							<!-- else -->
+							<blockquote><p class="colGray">暂时没有入账完成的收款</p></blockquote>
+							<!-- endif -->
+						</div>
+					</div>
+				</div>
+			</div>
+		</div>
+	</div>
+	<!--弹出入账-->
+	<div class="modal hide fade" id="recorded">
+		<form action="/invoiceBindReceivables" method="post" >
+		<input type="hidden" name="key" value="">
+		<input type="hidden" name="invoiceKey" value="">
+		<div class="modal-dialog modal-lg">
+			<div class="modal-content">
+				<div class="modal-header">
+					<h3>收款入账</h3>
+				</div>
+				<div class="modal-body">
+					<p class="alert alert-block">收款与发票进行绑定,完成入账;入账后,收款金额将作为您的最终销售收入。</p>
+					<table class="table table-bordered table-condensed">
+						<thead><th>开票内容</th><th>开票金额</th><th>发票类型</th><th>单位/抬头</th><th>入账操作</th></thead>
+						<tbody data-invoice="myClaim">
+						<tr><td>loading</td></tr>
+						
+						</tbody>
+					</table>
+					<p node-msg="true" class="alert alert-erro hide">loading</p>
+				</div>
+				<div class="modal-footer">
+					<input type="submit" class="button" value="确定入账">
+					
+					<a href="#" class="button btn-gray" data-dismiss="modal" aria-hidden="true">关闭</a>
+				</div>
+			</div></div>
+			</form>
+	</div>
+	<!--入账-->
+<script type="text/javascript">autoFlashHeight();</script>	
+</body>