|
@@ -4836,12 +4836,30 @@ class ReceiptController extends DooController {
|
|
|
$button = 0;
|
|
|
if ($ap == 4)
|
|
|
$status = 4;
|
|
|
+
|
|
|
+ Doo::loadClass ( 'XDeode' );
|
|
|
+ $XDeode = new XDeode ( 5 );
|
|
|
foreach ( $receiptList as $key => $value ) {
|
|
|
+
|
|
|
+ $receiptList[$key]['ridKey']=$XDeode->encode ( $value ['rid'] );
|
|
|
+
|
|
|
$receiptList [$key] ['Locate'] = $Locate;
|
|
|
$Locate ++;
|
|
|
$receiptList [$key] ['reviseDetail'] = array ();
|
|
|
- if (! empty ( $value ['reviseDetail'] ))
|
|
|
- $receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );
|
|
|
+ //调整金额 代码调整
|
|
|
+ if (! empty ( $value ['reviseDetail'] )){
|
|
|
+
|
|
|
+ $reviseDetail=json_decode ( $value ['reviseDetail'], true );
|
|
|
+ foreach ($reviseDetail as $ry=>$re){
|
|
|
+
|
|
|
+ $reviseDetail[$ry]['sidKey']=$XDeode->encode ( $re ['sid'] );
|
|
|
+ $reviseDetail[$ry]['reviseKey']=$XDeode->encode ($ry);
|
|
|
+ }
|
|
|
+
|
|
|
+ $receiptList [$key] ['reviseDetail'] = $reviseDetail;
|
|
|
+ //print_r($reviseDetail);
|
|
|
+ }
|
|
|
+
|
|
|
$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );
|
|
|
$receiptList [$key] ['loanItem'] = json_decode ( $value ['loanItem'], true );
|
|
|
$categoryDetil = $Lcategory->getOne ( array (
|
|
@@ -7758,43 +7776,61 @@ class ReceiptController extends DooController {
|
|
|
$data ['executeId'] = $this->executeId;
|
|
|
$this->render ( "/admin/saeaReportListPay", $data );
|
|
|
}
|
|
|
+ /**
|
|
|
+ * 金额调整,提高稳定性
|
|
|
+ * @return string
|
|
|
+ */
|
|
|
function revocationAdjustment() {
|
|
|
- $sid = isset ( $this->params ['sid'] ) && is_numeric ( $this->params ['sid'] ) ? $this->params ['sid'] : 0;
|
|
|
+ $sidKey = isset ( $this->params ['sidKey'] ) ? $this->params ['sidKey'] : '';
|
|
|
$price = isset ( $this->params ['price'] ) && is_numeric ( $this->params ['price'] ) ? $this->params ['price'] : - 99999;
|
|
|
- $rid = isset ( $this->params ['rid'] ) && is_numeric ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;
|
|
|
+ $ridKey = isset ( $this->params ['ridKey'] ) ? $this->params ['ridKey'] : '';
|
|
|
+ $reviseKey = isset ( $this->params ['reviseKey'] ) ? $this->params ['reviseKey'] : '';
|
|
|
|
|
|
- // echo $price;die;
|
|
|
-
|
|
|
- if ((! empty ( $sid )) && ($price != - 99999) && (! empty ( $rid ))) {
|
|
|
+ if ((! empty ( $sidKey )) && ($price != - 99999) && (! empty ( $ridKey )&&(!empty($reviseKey)))) {
|
|
|
+
|
|
|
+ Doo::loadClass ( 'XDeode' );
|
|
|
+ $XDeode = new XDeode ( 5 );
|
|
|
Doo::loadModel ( 'receipt' );
|
|
|
$receipt = new receipt ();
|
|
|
|
|
|
+ $sid = $XDeode->decode ( $sidKey );
|
|
|
+ $rid = $XDeode->decode ( $ridKey );
|
|
|
+ $reviseKey = $XDeode->decode ( $reviseKey );
|
|
|
+ if(!is_numeric($sid)&&!is_numeric($rid)&&!is_numeric($reviseKey))
|
|
|
+ die ( 'illegal request' );
|
|
|
+
|
|
|
$receiptDetail = $receipt->getOne ( array (
|
|
|
'where' => 'rid=' . $rid,
|
|
|
'asArray' => true
|
|
|
) );
|
|
|
- if (empty ( $receiptDetail ['reviseDetail'] ))
|
|
|
- return "/approval";
|
|
|
+
|
|
|
+ if (empty($receiptDetail)||empty ( $receiptDetail ['reviseDetail'] ))
|
|
|
+ die ( 'illegal request' );
|
|
|
|
|
|
$reviseDetail = json_decode ( $receiptDetail ['reviseDetail'], true );
|
|
|
|
|
|
+ if (!isset($reviseDetail[$reviseKey]))
|
|
|
+ die ( 'illegal request' );
|
|
|
+ if($reviseDetail[$reviseKey]['sid']==$sid&&$reviseDetail[$reviseKey]['price']==$price)
|
|
|
+ unset($reviseDetail[$reviseKey]);
|
|
|
+
|
|
|
+ $revisePrice=0;
|
|
|
foreach ( $reviseDetail as $key => $value ) {
|
|
|
- if ($value ['price'] == $price && $value ['sid'] == $sid){
|
|
|
- unset($reviseDetail[$key]);
|
|
|
- break;
|
|
|
- }
|
|
|
+ $revisePrice+=$value['price'];
|
|
|
}
|
|
|
|
|
|
$reviseDetailString = json_encode ( $reviseDetail );
|
|
|
$receipt->reviseDetail = $reviseDetailString;
|
|
|
$receipt->sum = $receiptDetail ['sum'] - $price;
|
|
|
- $receipt->revisePrice = $receiptDetail ['revisePrice'] - $price;
|
|
|
+ $receipt->revisePrice = $revisePrice;
|
|
|
$receipt->update ( array (
|
|
|
'where' => 'rid=' . $rid
|
|
|
) );
|
|
|
- }
|
|
|
+ return '/receiptburEdi/' . $rid;
|
|
|
+ }else
|
|
|
+ die ( 'illegal request2' );
|
|
|
+
|
|
|
|
|
|
- return '/receiptburEdi/' . $rid;
|
|
|
}
|
|
|
function updateApprovalReceipt() {
|
|
|
$opinion = $this->get_args ( 'opinion' ) ? $this->get_args ( 'opinion' ) : "";
|