decode ( $_COOKIE ["staff"] );
header ( 'Content-Type:text/html;charset=utf-8' );
$moldList = $invoiceManage->getInvoiceByStaff ( $sid );
if (empty ( $moldList )) {
$flag = false;
$uGroups = 'ordinary';
if (Doo::acl ()->isAllowed ( $uGroups, $resource, $action )) {
$flag = true;
}
} else {
$flag = false;
array_push ( $moldList, array (
'mold' => 'ordinary'
) );
// 删除审批人后-加入权限问题-暂时关闭
// $fileInvoice = file_get_contents ( "protected/config/invoice/invoice.ini" );
// $fiML=json_decode($fileInvoice,true);
// foreach ($fiML as $key=>$value){
// $sidList=explode(',',$value);
// foreach ($sidList as $k=>$v){
// if ($v==$sid){
// array_push ( $moldList, array (
// 'mold' => $key
// ) );
// break;
// }
// }
// }
foreach ( $moldList as $value ) {
if (Doo::acl ()->isAllowed ( $value ['mold'], $resource, $action )) {
$flag = true;
break;
}
}
}
/*
* Doo::acl()->isAllowed($uGroups['groups'], $resource, $action);
*/
// var_dump($flag) ;
if (! $flag)
die ( 'illegal request' );
}
function __construct() {
if (isset ( $_COOKIE ["staff"] )) {
if (! empty ( $_COOKIE ["staff"] )) {
Doo::loadModel ( 'staff' );
$staff = new staff ();
$uriPartsOrig = explode ( '/', $_SERVER ['REQUEST_URI'] );
$this->ACTION = $uriPartsOrig [1];
$this->data ['new'] = $this->isInvoiceNew ();
$this->staff = $staff->getUserByIdList ( $_COOKIE ["staff"] );
return "/";
}
}
Doo::loadCore ( 'uri/DooUriRouter' );
$router = new DooUriRouter ();
$routeRs = $router->execute ( Doo::app ()->route, Doo::conf ()->SUBFOLDER );
if ($routeRs ['1'] != "login") {
header ( 'Content-Type:text/html;charset=utf-8' );
@header ( "Location: /login" );
}
}
function testSend(){
$title2 = '[结果]您的发票333完成打印';
$msg = '';
$url = 'http://m.cld.smartcost.com.cn/invoicePrintDetail/1.html';
$hfreult = $this->msgSend ( $msg, $title2, $url, 'caipin' );
}
function invoice() {
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
Doo::loadModel ( 'express' );
$express = new express ();
$expressList = $express->getExpressByAll ();
$this->data ['expressList'] = $expressList;
// Doo::loadModel ( 'invoiceReceivables' );
// $invoiceReceivables = new invoiceReceivables ();
// $list = $invoiceReceivables->getInvoiceReceivablesByClaim ( $this->staff [0] ['cid'], $this->staff [0] ['sid'] );
Doo::loadModel ( 'invoiceStatistics' );
$invoiceStatistics = new invoiceStatistics ();
$isMonth = $invoiceStatistics->getStatisticsByMonth ();
$year = date ( "Y" );
$tmp_date = date ( "Ym" );
$tmp_year = substr ( $tmp_date, 0, 4 );
$tmp_mon = substr ( $tmp_date, 4, 2 );
$tmp_forwardmonth = mktime ( 0, 0, 0, $tmp_mon - 1, 1, $tmp_year );
$fm_forward_month = date ( "m", $tmp_forwardmonth );
$path = SITE_PATH . $this->INVOICECOLLECTPATH . "invoiceCollect_" . $year . "_" . $fm_forward_month . ".htm";
$htm = $this->showCache ( $path );
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
$sid = $XDeode->decode ( $_COOKIE ["staff"] );
$invoiceList = $invoice->getMyInvoice ( $sid );
$sql = 'status=2 and printStatus=1 and irid!="" and sid=' . $sid;
$list = $invoice->getInvoiceByUntreadStatusPage ( 4, $sql );
// 我的待入账发票 and irid='' and ( (doPost=1 and postStatus=1) or doPost=0 )
$sql = "status=2 and printStatus=1 and untreadStatus=0 and isDelete=0 and sid=" . $sid;
$myInvoiceUnAccount = $invoice->getInvoiceByUntreadStatusPage ( 4, $sql );
// print_r($myInvoiceUnAccount);
$this->data ['isMonth'] = $isMonth;
$this->data ['htm'] = $htm;
$this->data ['invoiceList'] = $invoiceList;
$this->data ['receivablesList'] = $list;
$this->data ['myInvoiceUnAccount'] = $myInvoiceUnAccount;
$this->data ['memu'] = "invoice";
$this->data ['staff'] = $this->staff;
$this->data ['receiptMemu'] = 'invoice';
$this->render ( "/admin/invoice", $this->data );
}
function invoiceAdd() {
Doo::loadModel ( 'L_category' );
$lCategory = new L_category ();
$category = $lCategory->find ( array (
'asArray' => true
) );
$this->data ['category'] = $category;
$this->data ['memu'] = "invoice";
$this->data ['staff'] = $this->staff;
$this->data ['receiptMemu'] = 'invoice';
$this->render ( "/admin/invoiceAdd", $this->data );
}
/**
* 提交一份开票申请,并记录下操作日志
*
* @since 1.0.0
* @var integer cid 办事处ID
* @var integer invoiceType 发票类型
* @var integer doPost 是否邮寄
* @var integer invoicePrice 开票金额
* @var string invoiceElement 开票内容
* @var string invoiceTitle 发票抬头
* @var string invoiceCompany 单位名称
* @var string TIN 纳税人识别码
* @var string address 注册地址
* @var string phone 注册电话
* @var string bank 开户银行
* @var string bankAccount 银行账户
* @var string recipients 收件人
* @var string recipientsPhone 收件人手机/电话
* @var string recipientsAddress 收件地址
* @var string mailItems 邮寄物品
* @var string remark 备注
* @return string 返回跳转开票主页路径
*/
function invoiceAddDo() {
$cid = $this->get_args ( 'cid' ) && is_numeric ( $this->get_args ( 'cid' ) ) ? $this->get_args ( 'cid' ) : 0;
$invoiceType = $this->get_args ( 'invoiceType' ) && is_numeric ( $this->get_args ( 'invoiceType' ) ) ? $this->get_args ( 'invoiceType' ) : 0;
$doPost = $this->get_args ( 'doPost' ) && is_numeric ( $this->get_args ( 'doPost' ) ) ? $this->get_args ( 'doPost' ) : 0;
$invoicePrice = $this->get_args ( 'invoicePrice' ) ? $this->get_args ( 'invoicePrice' ) : "";
$invoiceQuantity = $this->get_args ( 'invoiceQuantity' ) && is_numeric ( $this->get_args ( 'invoiceQuantity' ) ) ? $this->get_args ( 'invoiceQuantity' ) : 0;
$invoiceUnitPrice = $this->get_args ( 'invoiceUnitPrice' ) && is_numeric ( $this->get_args ( 'invoiceUnitPrice' ) ) ? $this->get_args ( 'invoiceUnitPrice' ) : 0;
$invoiceElement = $this->get_args ( 'invoiceElement' ) ? $this->get_args ( 'invoiceElement' ) : "";
$invoiceTitle = $this->get_args ( 'invoiceTitle' ) ? $this->get_args ( 'invoiceTitle' ) : "";
$invoiceCompany = $this->get_args ( 'invoiceCompany' ) ? $this->get_args ( 'invoiceCompany' ) : "";
$TIN = $this->get_args ( 'TIN' ) ? $this->get_args ( 'TIN' ) : "";
$address = $this->get_args ( 'address' ) ? $this->get_args ( 'address' ) : "";
$phone = $this->get_args ( 'phone' ) ? $this->get_args ( 'phone' ) : "";
$bank = $this->get_args ( 'bank' ) ? $this->get_args ( 'bank' ) : "";
$bankAccount = $this->get_args ( 'bankAccount' ) ? $this->get_args ( 'bankAccount' ) : "";
$recipients = $this->get_args ( 'recipients' ) ? $this->get_args ( 'recipients' ) : "";
$recipientsPhone = $this->get_args ( 'recipientsPhone' ) ? $this->get_args ( 'recipientsPhone' ) : "";
$recipientsAddress = $this->get_args ( 'recipientsAddress' ) ? $this->get_args ( 'recipientsAddress' ) : "";
$remark = $this->get_args ( 'remark' ) ? $this->get_args ( 'remark' ) : "";
$TINT = $this->get_args ( 'TINT' ) ? $this->get_args ( 'TINT' ) : "";
$addressT = $this->get_args ( 'addressT' ) ? $this->get_args ( 'addressT' ) : "";
$phoneT = $this->get_args ( 'phoneT' ) ? $this->get_args ( 'phoneT' ) : "";
$bankT = $this->get_args ( 'bankT' ) ? $this->get_args ( 'bankT' ) : "";
$bankAccountT = $this->get_args ( 'bankAccountT' ) ? $this->get_args ( 'bankAccountT' ) : "";
$softLock = $this->get_args ( 'softLock' ) ? $this->get_args ( 'softLock' ) : 0;
$softLockNum = $this->get_args ( 'softLockNum' ) ? $this->get_args ( 'softLockNum' ) : 0;
$contract = $this->get_args ( 'contract' ) ? $this->get_args ( 'contract' ) : 0;
$contractNum = $this->get_args ( 'contractNum' ) ? $this->get_args ( 'contractNum' ) : 0;
$instructions = $this->get_args ( 'instructions' ) ? $this->get_args ( 'instructions' ) : 0;
$instructionsNum = $this->get_args ( 'instructionsNum' ) ? $this->get_args ( 'instructionsNum' ) : 0;
$remittance = $this->get_args ( 'remittance' ) ? $this->get_args ( 'remittance' ) : 0;
$mailItems = $this->get_args ( 'mailItems' ) ? $this->get_args ( 'mailItems' ) : "";
/*
* $mailList=array(); array_push($mailList, array('invoice'=>1)); array_push($mailList, array('mailItems'=>$mailItems)); if (!empty($softLock)) array_push($mailList, array('softLock'=>$softLockNum)); if (!empty($contract)) array_push($mailList, array('contract'=>$contractNum)); if (!empty($instructions)) array_push($mailList, array('instructions'=>$instructionsNum)); if (!empty($remittance)) array_push($mailList, array('remittance'=>$remittance)); echo json_encode($mailList) ; print_r($mailList); die;
*/
if (! empty ( $cid ) && ! empty ( $invoiceQuantity ) && ! empty ( $invoiceUnitPrice ) && ! empty ( $invoiceElement )) {
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
Doo::loadModel ( 'L_category' );
$lCategory = new L_category ();
Doo::loadModel ( 'invoiceManage' );
$invoiceManage = new invoiceManage ();
Doo::loadModel ( 'invoiceOperationLog' );
$invoiceOperationLog = new invoiceOperationLog ();
$categoryDetil = $lCategory->getOne ( array (
'SELECT' => 'title',
'where' => 'cid=' . $cid,
'asArray' => true
) );
$invoicePrice=$invoiceQuantity*$invoiceUnitPrice;
$invoiceManageList = $invoiceManage->getInvoiceByAll ();
$invoiceManageDetail = $invoiceManage->getInvoiceByMold ( "发票审批" );
// print_r(current($invoiceManageDetail ['staffList']));
// die;
$moldManage = array ();
foreach ( $invoiceManageList as $key => $value ) {
if ($value ['mold'] == '发票打印')
$moldManage [$value ['mold']] = $value ['staffList'];
elseif ($value ['mold'] == '发票邮寄')
$moldManage [$value ['mold']] = $value ['staffList'];
elseif ($value ['mold'] == '发票退票')
$moldManage [$value ['mold']] = $value ['staffList'];
}
$item = array (
'cid' => $cid,
'categoryName' => $categoryDetil ['title'],
'invoiceElement' => $invoiceElement,
'invoiceQuantity' => $invoiceQuantity,
'invoiceUnitPrice' => $invoiceUnitPrice,
'invoicePrice' => $invoicePrice,
'invoiceType' => $invoiceType,
'doPost' => $doPost,
'status' => 1,
'invoiceSerial' => "#F" . date ( "Ymd" ) . mt_rand ( 1000, 9999 ),
'date' => date ( "Y-m-d H:i:s" ),
'updateTime' => date ( "Y-m-d H:i:s" ),
'sid' => $this->staff [0] ['sid'],
'userName' => $this->staff [0] ['username'],
'invoiceManage' => $invoiceManageDetail ['staff'],
'pendingApprovals' => current ( $invoiceManageDetail ['staffList'] ) [0],
'moldManage' => json_encode ( $moldManage ),
'remark' => $remark
);
if ($invoiceType == 0)
$item += array (
'invoiceTitle' => $invoiceTitle,
'TIN' => $TINT,
'address' => $addressT,
'phone' => $phoneT,
'bank' => $bankT,
'bankAccount' => $bankAccountT
);
else {
$item += array (
'invoiceCompany' => $invoiceCompany,
'TIN' => $TIN,
'address' => $address,
'phone' => $phone,
'bank' => $bank,
'bankAccount' => $bankAccount
);
}
if ($doPost == 1) {
$mailList = array (
'invoice' => 1,
'mailItems' => $mailItems
);
if (! empty ( $softLock ))
$mailList += array (
'softLock' => $softLockNum
);
else
$mailList += array (
'softLock' => 0
);
if (! empty ( $contract ))
$mailList += array (
'contract' => $contractNum
);
else
$mailList += array (
'contract' => 0
);
if (! empty ( $instructions ))
$mailList += array (
'instructions' => $instructionsNum
);
else
$mailList += array (
'instructions' => 0
);
if (! empty ( $remittance ))
$mailList += array (
'remittance' => $remittance
);
else
$mailList += array (
'remittance' => ''
);
$mailString = '发票x1,备注:' . $mailItems;
if (! empty ( $softLock ))
$mailString .= ',软件锁x' . $softLockNum;
if (! empty ( $contract ))
$mailString .= ',合同x' . $contractNum;
if (! empty ( $instructions ))
$mailString .= ',说明书x' . $instructionsNum;
if (! empty ( $remittance ))
$mailString .= ',汇款账号单';
$item += array (
'recipients' => $recipients,
'recipientsPhone' => $recipientsPhone,
'recipientsAddress' => $recipientsAddress,
'mailItems' => $mailString,
'mailItemsJson' => json_encode ( $mailList )
);
}
$iid = $invoice->addInvoice ( $item );
$item = array (
'date' => date ( "Y-m-d H:i:s" ),
'operation' => "创建",
'status' => 1,
'img' => $this->staff [0] ['avatar'],
'username' => $this->staff [0] ['username'],
'uid' => $this->staff [0] ['sid'],
'category' => $this->staff [0] ['category'],
'iid' => $iid
);
$invoiceOperationLog->setInvoiceOperationLog ( $item );
$item = array (
'date' => date ( "Y-m-d H:i:s" ),
'operation' => "提交审批",
'status' => 1,
'img' => $this->staff [0] ['avatar'],
'username' => $this->staff [0] ['username'],
'uid' => $this->staff [0] ['sid'],
'category' => $this->staff [0] ['category'],
'iid' => $iid
);
$invoiceOperationLog->setInvoiceOperationLog ( $item );
}
return "/invoice";
}
function invoiceEdit() {
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
$iid = isset ( $this->params ['iid'] ) ? $this->params ['iid'] : "";
$iid = $XDeode->decode ( $iid );
if (! is_numeric ( $iid ))
die ( 'illegal request' );
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
Doo::loadModel ( 'invoiceOperationLog' );
$invoiceOperationLog = new invoiceOperationLog ();
$invoiceDetail = $invoice->getInvoiceByIid ( $iid );
$operation = $invoiceOperationLog->getInvoiceOperationByDropped ( $iid );
$invoiceDetail ['mailItemsJson'] = json_decode ( $invoiceDetail ['mailItemsJson'], true );
$this->data ['operation'] = $operation;
$this->data ['invoiceDetail'] = $invoiceDetail;
$this->data ['memu'] = "invoice";
$this->data ['staff'] = $this->staff;
$this->data ['receiptMemu'] = 'invoice';
$this->render ( "/admin/invoiceEdit", $this->data );
}
/**
* 重新编辑退回的发票
* @return string
*/
function invoiceEditDo() {
$iidKey = $this->get_args ( 'iidKey' ) ? $this->get_args ( 'iidKey' ) : '';
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
$iid = $invoice->authcode ( $iidKey );
if (! empty ( $iid ) && ! is_numeric ( $iid ))
die ( 'illegal request' );
$cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : 0;
$invoiceType = $this->get_args ( 'invoiceType' ) && is_numeric ( $this->get_args ( 'invoiceType' ) ) ? $this->get_args ( 'invoiceType' ) : 0;
$doPost = $this->get_args ( 'doPost' ) && is_numeric ( $this->get_args ( 'doPost' ) ) ? $this->get_args ( 'doPost' ) : 0;
$invoicePrice = $this->get_args ( 'invoicePrice' ) ? $this->get_args ( 'invoicePrice' ) : "";
$invoiceElement = $this->get_args ( 'invoiceElement' ) ? $this->get_args ( 'invoiceElement' ) : "";
$invoiceTitle = $this->get_args ( 'invoiceTitle' ) ? $this->get_args ( 'invoiceTitle' ) : "";
$invoiceCompany = $this->get_args ( 'invoiceCompany' ) ? $this->get_args ( 'invoiceCompany' ) : "";
$TIN = $this->get_args ( 'TIN' ) ? $this->get_args ( 'TIN' ) : "";
$address = $this->get_args ( 'address' ) ? $this->get_args ( 'address' ) : "";
$phone = $this->get_args ( 'phone' ) ? $this->get_args ( 'phone' ) : "";
$bank = $this->get_args ( 'bank' ) ? $this->get_args ( 'bank' ) : "";
$bankAccount = $this->get_args ( 'bankAccount' ) ? $this->get_args ( 'bankAccount' ) : "";
$recipients = $this->get_args ( 'recipients' ) ? $this->get_args ( 'recipients' ) : "";
$recipientsPhone = $this->get_args ( 'recipientsPhone' ) ? $this->get_args ( 'recipientsPhone' ) : "";
$recipientsAddress = $this->get_args ( 'recipientsAddress' ) ? $this->get_args ( 'recipientsAddress' ) : "";
$mailItems = $this->get_args ( 'mailItems' ) ? $this->get_args ( 'mailItems' ) : "";
$remark = $this->get_args ( 'remark' ) ? $this->get_args ( 'remark' ) : "";
$TINT = $this->get_args ( 'TINT' ) ? $this->get_args ( 'TINT' ) : "";
$addressT = $this->get_args ( 'addressT' ) ? $this->get_args ( 'addressT' ) : "";
$phoneT = $this->get_args ( 'phoneT' ) ? $this->get_args ( 'phoneT' ) : "";
$bankT = $this->get_args ( 'bankT' ) ? $this->get_args ( 'bankT' ) : "";
$bankAccountT = $this->get_args ( 'bankAccountT' ) ? $this->get_args ( 'bankAccountT' ) : "";
$softLock = $this->get_args ( 'softLock' ) ? $this->get_args ( 'softLock' ) : 0;
$softLockNum = $this->get_args ( 'softLockNum' ) ? $this->get_args ( 'softLockNum' ) : 0;
$contract = $this->get_args ( 'contract' ) ? $this->get_args ( 'contract' ) : 0;
$contractNum = $this->get_args ( 'contractNum' ) ? $this->get_args ( 'contractNum' ) : 0;
$instructions = $this->get_args ( 'instructions' ) ? $this->get_args ( 'instructions' ) : 0;
$instructionsNum = $this->get_args ( 'instructionsNum' ) ? $this->get_args ( 'instructionsNum' ) : 0;
$remittance = $this->get_args ( 'remittance' ) ? $this->get_args ( 'remittance' ) : 0;
if (! empty ( $cid ) && ! empty ( $invoicePrice ) && ! empty ( $invoiceElement ) && ! empty ( $iid )) {
Doo::loadModel ( 'invoiceManage' );
$invoiceManage = new invoiceManage ();
Doo::loadModel ( 'invoiceOperationLog' );
$invoiceOperationLog = new invoiceOperationLog ();
$cid = explode ( ':', $cid );
$invoiceManageList = $invoiceManage->getInvoiceByAll ();
$invoiceManageDetail = $invoiceManage->getInvoiceByMold ( "发票审批" );
$moldManage = array ();
foreach ( $invoiceManageList as $key => $value ) {
if ($value ['mold'] == '发票打印')
$moldManage [$value ['mold']] = $value ['staffList'];
elseif ($value ['mold'] == '发票邮寄')
$moldManage [$value ['mold']] = $value ['staffList'];
elseif ($value ['mold'] == '发票打印')
$moldManage [$value ['mold']] = $value ['staffList'];
}
$item = array (
'iid' => $iid,
'cid' => $cid [0],
'categoryName' => $cid [1],
'invoiceElement' => $invoiceElement,
'invoicePrice' => $invoicePrice,
'invoiceType' => $invoiceType,
'doPost' => $doPost,
'status' => 1,
'updateTime' => date ( "Y-m-d H:i:s" ),
'remark' => $remark
);
if ($invoiceType == 0)
$item += array (
'invoiceTitle' => $invoiceTitle,
'TIN' => $TINT,
'address' => $addressT,
'phone' => $phoneT,
'bank' => $bankT,
'bankAccount' => $bankAccountT
);
else {
$item += array (
'invoiceCompany' => $invoiceCompany,
'TIN' => $TIN,
'address' => $address,
'phone' => $phone,
'bank' => $bank,
'bankAccount' => $bankAccount
);
}
if ($doPost == 1) {
$mailList = array (
'invoice' => 1,
'mailItems' => $mailItems
);
if (! empty ( $softLock ))
$mailList += array (
'softLock' => $softLockNum
);
else
$mailList += array (
'softLock' => '0'
);
if (! empty ( $contract ))
$mailList += array (
'contract' => $contractNum
);
else
$mailList += array (
'contract' => '0'
);
if (! empty ( $instructions ))
$mailList += array (
'instructions' => $instructionsNum
);
else
$mailList += array (
'instructions' => '0'
);
if (! empty ( $remittance ))
$mailList += array (
'remittance' => $remittance
);
else
$mailList += array (
'remittance' => ''
);
$mailString = '发票x1,备注:' . $mailItems;
if (! empty ( $softLock ))
$mailString .= ',软件锁x' . $softLockNum;
if (! empty ( $contract ))
$mailString .= ',合同x' . $contractNum;
if (! empty ( $instructions ))
$mailString .= ',说明书x' . $instructionsNum;
if (! empty ( $remittance ))
$mailString .= ',汇款账号单';
$item += array (
'recipients' => $recipients,
'recipientsPhone' => $recipientsPhone,
'recipientsAddress' => $recipientsAddress,
'mailItems' => $mailString,
'mailItemsJson' => json_encode ( $mailList )
);
}
$invoice->setInvoiceByCondition ( $item );
$item = array (
'date' => date ( "Y-m-d H:i:s" ),
'operation' => "重新提交审批",
'status' => 1,
'img' => $this->staff [0] ['avatar'],
'username' => $this->staff [0] ['username'],
'uid' => $this->staff [0] ['sid'],
'category' => $this->staff [0] ['category'],
'iid' => $iid
);
$invoiceOperationLog->setInvoiceOperationLog ( $item );
}
return "/invoice";
}
/**
* 终止开票
*/
function invoiceDroppedDo() {
$droppedIidKey = $this->get_args ( 'droppedIidKey' ) ? $this->get_args ( 'droppedIidKey' ) : '';
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
Doo::loadModel ( 'invoiceOperationLog' );
$invoiceOperationLog = new invoiceOperationLog ();
$iid = $invoice->authcode ( $droppedIidKey );
if (! empty ( $iid ) && ! is_numeric ( $iid ))
die ( 'illegal request' );
$item = array (
'iid' => $iid,
'status' => 4,
'updateTime' => date ( "Y-m-d H:i:s" )
);
$invoice->setInvoiceByCondition ( $item );
$item = array (
'date' => date ( "Y-m-d H:i:s" ),
'operation' => '终止了开票',
'status' => 4,
'img' => $this->staff [0] ['avatar'],
'username' => $this->staff [0] ['username'],
'uid' => $this->staff [0] ['sid'],
'category' => $this->staff [0] ['category'],
'iid' => $iid
);
$invoiceOperationLog->setInvoiceOperationLog ( $item );
return "/invoice";
}
/**
* 更新退票的邮寄信息
*/
function invoiceUntreadMailDo() {
$untreadIidKey = $this->get_args ( 'untreadIidKey' ) ? $this->get_args ( 'untreadIidKey' ) : '';
$untreadCompany = $this->get_args ( 'untreadCompany' ) ? $this->get_args ( 'untreadCompany' ) : "";
$untreadNumber = $this->get_args ( 'untreadNumber' ) ? $this->get_args ( 'untreadNumber' ) : "";
$untreadItems = $this->get_args ( 'untreadItems' ) ? $this->get_args ( 'untreadItems' ) : "";
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
$iid = $invoice->authcode ( $untreadIidKey );
if (! empty ( $iid ) && ! is_numeric ( $iid ))
die ( 'illegal request' );
$item = array (
'iid' => $iid,
'untreadCompany' => $untreadCompany,
'untreadNumber' => $untreadNumber,
'untreadItems' => $untreadItems
);
$invoice->setInvoiceByCondition ( $item );
return "/invoice";
}
/**
* 申请退票 --
*/
function invoiceUntreadDo() {
$untreadIidKey = $this->get_args ( 'untreadIidKey' ) ? $this->get_args ( 'untreadIidKey' ) : '';
$untreadReason = $this->get_args ( 'untreadReason' ) ? $this->get_args ( 'untreadReason' ) : "";
$untreadPost = $this->get_args ( 'untreadPost' ) ? $this->get_args ( 'untreadPost' ) : "";
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
Doo::loadModel ( 'invoiceOperationLog' );
$invoiceOperationLog = new invoiceOperationLog ();
Doo::loadModel ( 'invoiceReceivables' );
$invoiceReceivables = new invoiceReceivables ();
$iid = $invoice->authcode ( $untreadIidKey );
if (! empty ( $iid ) && ! is_numeric ( $iid ))
die ( 'illegal request' );
/*
* 需求变革 有绑定收款也可以退票 $lt = $invoiceReceivables->getInvoiceReceivablesByIid ( $untreadIidKey ); if (! empty ( $lt )) { header ( 'Content-Type:text/html;charset=utf-8' ); die ( '该发票有收款绑定,请先移除!' ); }
*/
$item = array (
'iid' => $iid,
'untreadStatus' => 1,
'untreadReason' => $untreadReason,
'untreadPost' => $untreadPost,
'updateTime' => date ( "Y-m-d H:i:s" )
);
$invoice->setInvoiceByCondition ( $item );
$item = array (
'date' => date ( "Y-m-d H:i:s" ),
'operation' => '申请退票',
'status' => 7,
'img' => $this->staff [0] ['avatar'],
'username' => $this->staff [0] ['username'],
'uid' => $this->staff [0] ['sid'],
'category' => $this->staff [0] ['category'],
'iid' => $iid
);
$invoiceOperationLog->setInvoiceOperationLog ( $item );
return "/invoice";
}
/**
* 删除已终止的开票
*/
function invoiceDelDo() {
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
Doo::loadModel ( 'invoiceOperationLog' );
$invoiceOperationLog = new invoiceOperationLog ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
$sid = $XDeode->decode ( $_COOKIE ["staff"] );
$iid = isset ( $this->params ['iid'] ) ? $this->params ['iid'] : "";
$iid = $XDeode->decode ( $iid );
if (! is_numeric ( $iid ))
die ( 'illegal request' );
$invoiceDetail = $invoice->getMyInvoice ( $sid, $iid );
if (empty ( $invoiceDetail ))
die ( 'illegal request' );
$item = array (
'iid' => $iid,
'isDelete' => 1,
'updateTime' => date ( "Y-m-d H:i:s" )
);
$invoice->setInvoiceByCondition ( $item );
$item = array (
'date' => date ( "Y-m-d H:i:s" ),
'operation' => '删除了已终止的发票',
'status' => 4,
'img' => $this->staff [0] ['avatar'],
'username' => $this->staff [0] ['username'],
'uid' => $this->staff [0] ['sid'],
'category' => $this->staff [0] ['category'],
'iid' => $iid
);
$invoiceOperationLog->setInvoiceOperationLog ( $item );
return "/invoice";
}
function invoiceApproval() {
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
Doo::loadModel ( 'staff' );
$staff = new staff ();
$invoiceList = $invoice->find ( array (
'where' => 'status=1 and pendingApprovals=' . $this->staff [0] ['sid'],
'desc' => 'iid',
'asArray' => true
) );
foreach ( $invoiceList as $key => $value ) {
$invoiceList [$key] ['iidKey'] = $XDeode->encode ( $value ['iid'] );
$lastApprover = json_decode ( $value ['processApprovals'], true );
if (! empty ( $lastApprover )) {
$lastApproverKey = array_keys ( $lastApprover );
$lastApprover = end ( $lastApprover );
$staffDetail = $staff->getOne ( array (
'where' => 'sid=' . end ( $lastApproverKey ),
'asArray' => true
) );
$lastApprover ['username'] = $staffDetail ['username'];
}
$invoiceList [$key] ['lastApprover'] = $lastApprover;
}
$ilist = $invoice->getInvoiceByProcessStatus ();
// print_r($ilist);
$this->data ['invoiceList'] = $invoiceList;
$this->data ['ilist'] = $ilist;
$this->data ['memu'] = "invoice";
$this->data ['staff'] = $this->staff;
$this->data ['receiptMemu'] = 'invoiceApproval';
$this->render ( "/admin/invoiceApproval", $this->data );
}
function invoiceDetail() {
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
$iid = isset ( $this->params ['iid'] ) ? $this->params ['iid'] : "";
$iid = $XDeode->decode ( $iid );
if (! is_numeric ( $iid ))
die ( 'illegal request' );
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
Doo::loadModel ( 'invoiceOperationLog' );
$invoiceOperationLog = new invoiceOperationLog ();
$invoiceDetail = $invoice->getOne ( array (
'where' => 'status=1 and pendingApprovals=' . $this->staff [0] ['sid'] . ' and iid=' . $iid,
'asArray' => true
) );
if (empty ( $invoiceDetail ))
die ( 'illegal request' );
$invoiceOperationLogList = $invoiceOperationLog->getInvoiceOperationLogByIid ( $iid );
$this->data ['invoiceDetail'] = $invoiceDetail;
$this->data ['invoiceOperationLogList'] = $invoiceOperationLogList;
$this->data ['INVOICEKEY'] = $invoice->authcode ( $invoiceDetail ['iid'], '' );
$this->data ['memu'] = "invoice";
$this->data ['staff'] = $this->staff;
$this->data ['receiptMemu'] = 'invoiceApproval';
$this->render ( "/admin/invoiceApprovalDetail", $this->data );
}
/**
* 对发票进行审批,其中操作有终止,退回,同意动作。操作成功并记录下操作日志
*
* @since 1.0.0
* @var integer iid 开票ID 已加密
* @var integer status 发票审批状态
* @var integer opintion 审批发票的意见
* @return string 如操作成功返回审批首页
*/
function invoiceApprovalDo() {
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
$iid = $this->get_args ( 'invoiceKey' ) ? $this->get_args ( 'invoiceKey' ) : "";
$status = $this->get_args ( 'status' ) && is_numeric ( $this->get_args ( 'status' ) ) ? $this->get_args ( 'status' ) : 0;
$opinion = $this->get_args ( 'opinion' ) ? $this->get_args ( 'opinion' ) : "";
$iid = $invoice->authcode ( $iid );
if (! is_numeric ( $iid ))
die ( 'illegal request' );
// && ! empty ( $opinion )
if (! empty ( $iid ) && ! empty ( $status )) {
if (! ($status == 2 || $status == 3 || $status == 4))
die ( 'illegal request' );
Doo::loadModel ( 'invoiceOperationLog' );
$invoiceOperationLog = new invoiceOperationLog ();
$invoiceDetail = $invoice->getOne ( array (
'where' => 'status=1 and iid=' . $iid . ' and pendingApprovals=' . $this->staff [0] ['sid'],
'asArray' => true
) );
if (empty ( $invoiceDetail ))
die ( 'illegal request' );
$processApprovals = json_decode ( $invoiceDetail ['processApprovals'], true );
$invoiceManage = json_decode ( $invoiceDetail ['invoiceManage'], true );
if ($status == 3) {
$invoice->status = $status;
$item = array (
'operation' => $opinion
);
} else {
if (empty ( $processApprovals )) {
$processApprovals = array (
$this->staff [0] ['sid'] => array (
'date' => date ( "Y-m-d H:i:s" ),
'opinion' => $opinion,
'status' => $status
)
);
// var_dump(next($invoiceManage));
$nextInvoiceManage = next ( $invoiceManage );
// print_r($nextInvoiceManage);
if ($status != 4 && $nextInvoiceManage !== false)
$invoice->pendingApprovals = $nextInvoiceManage [0];
$invoice->processApprovals = json_encode ( $processApprovals );
// var_dump($invoice);
// print_r($invoiceManage);
} else {
$processApprovals [$this->staff [0] ['sid']] = array (
'date' => date ( "Y-m-d H:i:s" ),
'opinion' => $opinion,
'status' => $status
);
$pendingApprovals = 0;
foreach ( $invoiceManage as $key => $value ) {
if ($value [0] == $this->staff [0] ['sid']) {
if (isset ( $invoiceManage [$key + 1] ))
$pendingApprovals = $invoiceManage [$key + 1] [0];
break;
}
}
if ($status != 4 && ! empty ( $pendingApprovals ))
$invoice->pendingApprovals = $pendingApprovals;
$invoice->processApprovals = json_encode ( $processApprovals );
}
$item = array (
'operation' => $opinion
);
if (count ( $processApprovals ) == count ( $invoiceManage ) && $status != 4) {
$invoice->status = $status;
$invoice->pendingApprovals = 0;
} elseif ($status == 4) {
$invoice->status = $status;
$item = array (
'operation' => $opinion
);
}
}
$invoice->updateTime = date ( "Y-m-d H:i:s" );
$invoice->update ( array (
'where' => 'iid=' . $iid
) );
$item += array (
'date' => date ( "Y-m-d H:i:s" ),
'img' => $this->staff [0] ['avatar'],
'username' => $this->staff [0] ['username'],
'uid' => $this->staff [0] ['sid'],
'category' => $this->staff [0] ['category'],
'status' => $status,
'iid' => $iid
);
$invoiceOperationLog->setInvoiceOperationLog ( $item );
return '/invoiceApproval';
}
die ( 'illegal request' );
}
/**
* 展示需要打印的发票数据
*
* @since 1.0.0
*/
function invoicePrint() {
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
Doo::loadModel ( 'staff' );
$staff = new staff ();
$toPrint = $invoice->getPrintInvoiceByManage ( $this->staff [0] ['sid'], 0 );
$printed = $invoice->getPrintInvoiceByManage ( $this->staff [0] ['sid'], 1 );
foreach ( $toPrint as $key => $value ) {
$toPrint [$key] ['iidKey'] = $XDeode->encode ( $value ['iid'] );
$lastApprover = json_decode ( $value ['processApprovals'], true );
if (! empty ( $lastApprover )) {
$lastApproverKey = array_keys ( $lastApprover );
$lastApprover = end ( $lastApprover );
$staffDetail = $staff->getOne ( array (
'where' => 'sid=' . end ( $lastApproverKey ),
'asArray' => true
) );
$lastApprover ['username'] = $staffDetail ['username'];
}
$toPrint [$key] ['lastApprover'] = $lastApprover;
}
foreach ( $printed as $key => $value ) {
$printed [$key] ['iidKey'] = $XDeode->encode ( $value ['iid'] );
$lastApprover = json_decode ( $value ['processApprovals'], true );
if (! empty ( $lastApprover )) {
$lastApproverKey = array_keys ( $lastApprover );
$lastApprover = end ( $lastApprover );
$staffDetail = $staff->getOne ( array (
'where' => 'sid=' . end ( $lastApproverKey ),
'asArray' => true
) );
$lastApprover ['username'] = $staffDetail ['username'];
}
$printed [$key] ['lastApprover'] = $lastApprover;
}
$this->data ['printed'] = $printed;
$this->data ['toPrint'] = $toPrint;
$this->data ['memu'] = "invoice";
$this->data ['staff'] = $this->staff;
$this->data ['receiptMemu'] = 'invoicePrint';
$this->render ( "/admin/invoicePrint", $this->data );
}
/**
* 展示发票打印的详情页面
*
* @since 1.0.0
*/
function invoicePrintDetail() {
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
$iid = isset ( $this->params ['iid'] ) ? $this->params ['iid'] : "";
$iid = $XDeode->decode ( $iid );
if (! is_numeric ( $iid ))
die ( 'illegal request' );
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
Doo::loadModel ( 'invoiceOperationLog' );
$invoiceOperationLog = new invoiceOperationLog ();
$invoiceDetail = $invoice->getPrintInvoiceByManage ( $this->staff [0] ['sid'], 0, $iid );
if (empty ( $invoiceDetail ))
die ( 'illegal request' );
$invoiceOperationLogList = $invoiceOperationLog->getInvoiceOperationLogByIid ( $iid );
$this->data ['invoiceDetail'] = $invoiceDetail;
$this->data ['invoiceOperationLogList'] = $invoiceOperationLogList;
$this->data ['INVOICEKEY'] = $invoice->authcode ( $invoiceDetail ['iid'], '' );
$this->data ['memu'] = "invoice";
$this->data ['staff'] = $this->staff;
$this->data ['receiptMemu'] = 'invoicePrint';
$this->render ( "/admin/invoicePrintDetail", $this->data );
}
/**
* 填写票号并完成打印
* @since 1.0.0
*/
function invoicePrintDo() {
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
$iid = $this->get_args ( 'invoiceKey' ) ? $this->get_args ( 'invoiceKey' ) : "";
$invoiceNo = $this->get_args ( 'invoiceNo' ) ? $this->get_args ( 'invoiceNo' ) : "";
$iid = $invoice->authcode ( $iid );
if (! is_numeric ( $iid ))
die ( 'illegal request' );
if (! empty ( $iid ) && ! empty ( $invoiceNo )) {
Doo::loadModel ( 'invoiceOperationLog' );
$invoiceOperationLog = new invoiceOperationLog ();
Doo::loadModel ( 'invoiceStatistics' );
$invoiceStatistics = new invoiceStatistics ();
// $info=$invoice->getOne(array('where'=>"invoiceNo = '".$invoiceNo."'",'asArray' => TRUE));
$invoicePrintDetail = $invoice->getInvoiceByPrint ( $iid );
if (empty ( $invoicePrintDetail ))
die ( 'illegal request' );
$item = array (
'iid' => $iid,
'printStatus' => 1,
'updateTime' => date ( "Y-m-d H:i:s" ),
'printer' => $this->staff [0] ['username'],
'printTime' => date ( "Y-m-d H:i:s" ),
'invoiceNo' => $invoiceNo
);
$invoice->setInvoiceByCondition ( $item );
$item = array (
'date' => date ( "Y-m-d H:i:s" ),
'operation' => $invoiceNo,
'status' => 5,
'img' => $this->staff [0] ['avatar'],
'username' => $this->staff [0] ['username'],
'uid' => $this->staff [0] ['sid'],
'category' => $this->staff [0] ['category'],
'iid' => $iid
);
$invoiceOperationLog->setInvoiceOperationLog ( $item );
// 去统计--负票不汇总
$item = array (
'date' => date ( "Y-m-d H:i:s" ),
'priceClass' => 1,
'cid' => $invoicePrintDetail ['cid'],
'staff' => $invoicePrintDetail ['sid'],
'invoicePrice' => $invoicePrintDetail ['invoicePrice']
);
$invoiceStatistics->setInvoiceStatisticsByCondition ( $item );
// 发送通知信息到微信-去除
// $this->setWXMsg($iid,'PRINT');
// 申请人获取微信通知
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
$username2 = $staff->getOne ( array (
'select' => 'wxid',
'where' => 'sid=' . $invoicePrintDetail ['sid'],
'asArray' => TRUE
) );
$title2 = '[结果]您的发票' . $invoicePrintDetail ['invoiceSerial'] . '完成打印';
$msg = '';
$url = 'http://m.cld.smartcost.com.cn/invoicePrintDetail/' . $XDeode->encode ( $invoicePrintDetail ['iid'] ) . '.html';
$hfreult = $this->msgSend ( $msg, $title2, $url, $username2 ['wxid'] );
return "/invoicePrint";
}
}
/**
* 需要邮寄的发票
* @since 1.0.0
*/
function invoicePost() {
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
Doo::loadModel ( 'express' );
$express = new express ();
$invoicePost = $invoice->getPostByInvoice ();
$invoicePosted = $invoice->getPostByInvoice ( 1 );
$expressList = $express->getExpressByAll ();
$this->data ['expressList'] = $expressList;
$this->data ['invoicePost'] = $invoicePost;
$this->data ['invoicePosted'] = $invoicePosted;
$this->data ['memu'] = "invoice";
$this->data ['staff'] = $this->staff;
$this->data ['receiptMemu'] = 'invoicePost';
$this->render ( "/admin/invoicePost", $this->data );
}
/**
* 添加发票邮寄信息
*/
function invoiceExpressAddDo() {
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
$iid = $this->get_args ( 'iidKey' ) ? $this->get_args ( 'iidKey' ) : "";
$expressCompany = $this->get_args ( 'express' ) ? $this->get_args ( 'express' ) : "";
$expressNumber = $this->get_args ( 'nu' ) ? $this->get_args ( 'nu' ) : "";
$actualItems = $this->get_args ( 'actualItems' ) ? $this->get_args ( 'actualItems' ) : "";
$iid = $iid = $invoice->authcode ( $iid );
if (! is_numeric ( $iid ) && empty ( $expressCompany ) && empty ( $expressNumber ) && empty ( $actualItems ))
die ( 'illegal request' );
$invoicePrintDetail = $invoice->getInvoiceByIid ( $iid );
$item = array (
'iid' => $iid,
'postStatus' => 1,
'updateTime' => date ( "Y-m-d H:i:s" ),
'postTime' => date ( "Y-m-d H:i:s" ),
'expressCompany' => $expressCompany,
'expressNumber' => $expressNumber,
'actualItems' => $actualItems,
'poster' => $this->staff [0] ['username']
);
$invoice->setInvoiceByCondition ( $item );
// 微信通知-去掉
// $this->setWXMsg ( $iid );
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
$username2 = $staff->getOne ( array (
'select' => 'wxid',
'where' => 'sid=' . $invoicePrintDetail ['sid'],
'asArray' => TRUE
) );
$title2 = '[结果]您的发票' . $invoicePrintDetail ['invoiceSerial'] . '已邮寄';
$expCom = explode ( ":", $invoicePrintDetail ['expressCompany'] );
if (empty ( $expCom ))
$expCom [0] = '';
$msg = $expCom [0] . ':' . $invoicePrintDetail ['expressNumber'] . '';
$url = 'https://m.kuaidi100.com/result.jsp?nu=' . $invoicePrintDetail ['expressNumber'];
$hfreult = $this->msgSend ( $msg, $title2, $url, $username2 ['wxid'] );
return '/invoicePost';
}
function invoiceExpressUpdateDo() {
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
$action = $this->get_args ( 'action' ) ? $this->get_args ( 'action' ) : "";
$iid = $this->get_args ( 'iidKey' ) ? $this->get_args ( 'iidKey' ) : "";
$expressCompany = $this->get_args ( 'express' ) ? $this->get_args ( 'express' ) : "";
$expressNumber = $this->get_args ( 'nu' ) ? $this->get_args ( 'nu' ) : "";
$actualItems = $this->get_args ( 'actualItems' ) ? $this->get_args ( 'actualItems' ) : "";
$iid = $invoice->authcode ( $iid );
if (! is_numeric ( $iid ) && empty ( $expressCompany ) && empty ( $expressNumber ) && empty ( $actualItems ))
die ( 'illegal request' );
$item = array (
'iid' => $iid,
'updateTime' => date ( "Y-m-d H:i:s" ),
'expressCompany' => $expressCompany,
'expressNumber' => $expressNumber,
'actualItems' => $actualItems,
'poster' => $this->staff [0] ['username']
);
$invoice->setInvoiceByCondition ( $item );
return $action;
}
/**
* 可退票管理
*/
function invoiceUntreadIsAchieve() {
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
$MebSea = $this->get_args ( 'MebSea' ) ? $this->get_args ( 'MebSea' ) : "";
$page_size = 18;
$page = isset ( $this->params ['page'] ) && is_numeric ( $this->params ['page'] ) ? $this->params ['page'] : 1;
$date = $this->get_args ( 'date' ) ? $this->get_args ( 'date' ) : "";
$get = "?date=" . urlencode ( $date ) . "&MebSea=" . urlencode ( $MebSea );
$dateArr = explode ( ':', $date );
$D1 = '';
$D2 = '';
if (! empty ( $date )) {
$D1 = $dateArr [0];
$D2 = $dateArr [1];
}
$con = '';
if (! empty ( $D1 ) && ! empty ( $D2 ))
$con = ' and bindTime BETWEEN "' . $D1 . '" AND "' . $D2 . '" ';
// if ($date == 'MONTHO')
// $con = ' and updateTime>DATE_SUB(CURDATE(), INTERVAL 1 MONTH)';
// elseif ($date == 'MONTHT')
// $con = ' and updateTime>DATE_SUB(CURDATE(), INTERVAL 3 MONTH)';
// elseif ($date == 'MONTHY')
// $con = ' and updateTime>DATE_SUB(CURDATE(), INTERVAL 1 YEAR)';
if (! empty ( $MebSea )) {
$con .= ' and ( invoiceTitle like "%' . $MebSea . '%" or invoiceCompany like "%' . $MebSea . '%" or invoicePrice like "%' . $MebSea . '%" )';
}
$pageinfo ['page'] = array (
'previous' => ''
);
// printStatus=1 and
$sql = " untreadStatus=0 and status=2 and sid=" . $this->staff [0] ['sid'] . $con;
$action = "invoiceUntreadIsAchieve";
$pageinfo = $this->get_page ( "CLD_invoice", $sql, $page, $page_size, $action, $get, "" );
$limit = $pageinfo ['lower'] . ',' . $page_size;
$list = $invoice->getInvoiceByUntreadStatusPage ( $limit, $sql );
// print_r($list);
$this->data ['MebSeaEn'] = $MebSea;
// $this->data ['MebSea'] = urlencode ( $MebSea );
$this->data ['get'] = $get;
$this->data ['page'] = $pageinfo;
$this->data ['date'] = $date;
$this->data ['list'] = $list;
$this->data ['memu'] = "invoice";
$this->data ['staff'] = $this->staff;
$this->data ['receiptMemu'] = 'invoice';
$this->render ( "/admin/invoiceUntreadIsAchieve", $this->data );
}
/**
* 退票处理页面
*/
function invoiceUntread() {
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
$untreadInvoice = $invoice->getInvoiceByUntreadStatus ( 1 );
$establishedInvoice = $invoice->getInvoiceByUntreadStatus ( 2 );
foreach ( $establishedInvoice as $key => $value ) {
// months
$lossDate = strtotime ( "+1 month", strtotime ( $value ['OperationLog'] ['date'] ) );
$nowDate = strtotime ( 'now' );
$establishedInvoice [$key] ['lossShow'] = false;
if ($lossDate < $nowDate)
$establishedInvoice [$key] ['lossShow'] = true;
}
$this->data ['untreadInvoice'] = $untreadInvoice;
$this->data ['establishedInvoice'] = $establishedInvoice;
$this->data ['memu'] = "invoice";
$this->data ['staff'] = $this->staff;
$this->data ['receiptMemu'] = 'invoiceUntread';
$this->render ( "/admin/invoiceUntread", $this->data );
}
/**
* 确认收到退回的发票,开票状态为退回 //收款状态解绑,公司统计扣除入账额度
*/
function invoiceUntreadEstablishedDo() {
$untreadIidKey = $this->get_args ( 'untreadIidKey' ) ? $this->get_args ( 'untreadIidKey' ) : '';
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
Doo::loadModel ( 'invoiceOperationLog' );
$invoiceOperationLog = new invoiceOperationLog ();
Doo::loadModel ( 'invoiceReceivables' );
$invoiceReceivables = new invoiceReceivables ();
Doo::loadModel ( 'invoiceStatistics' );
$invoiceStatistics = new invoiceStatistics ();
$iid = $invoice->authcode ( $untreadIidKey );
if (! empty ( $iid ) && ! is_numeric ( $iid ))
die ( 'illegal request' );
$invoiceDetails = $invoice->getInvoiceByIid ( $iid );
if ($invoiceDetails ['untreadStatus'] != 1)
die ( 'illegal request' );
$item = array (
'iid' => $iid,
// 'irid'=>'',
'untreadStatus' => 2,
'updateTime' => date ( "Y-m-d H:i:s" )
);
$invoice->setInvoiceByCondition ( $item );
$item = array (
'date' => date ( "Y-m-d H:i:s" ),
'operation' => '已确认退票',
'status' => 6,
'img' => $this->staff [0] ['avatar'],
'username' => $this->staff [0] ['username'],
'uid' => $this->staff [0] ['sid'],
'category' => $this->staff [0] ['category'],
'iid' => $iid
);
$invoiceOperationLog->setInvoiceOperationLog ( $item );
// 收款解绑以及入账扣除
if (! empty ( $invoiceDetails ['irid'] )) {
$iridList = explode ( ',', $invoiceDetails ['irid'] );
foreach ( $iridList as $value ) {
$irDetails = $invoiceReceivables->getOne ( array (
'where' => " irid=" . $value . ' and bindStatus=1',
'asArray' => TRUE
) );
$item = array (
'irid' => $value,
'bindStatus' => 0,
'untreadStatus' => 1,
'untreadStaff' => $invoiceDetails ['userName'],
'unbundlingTime' => date ( "Y-m-d H:i:s" ),
'iid' => 0
);
$invoiceReceivables->setInvoiceReceivablesByCondition ( $item );
if (! empty ( $irDetails )) {
$item = array (
'date' => date ( 'Y-m-d', strtotime ( $irDetails ['bindDate'] ) ),
'priceClass' => 3,
'cid' => $invoiceDetails ['cid'],
'staff' => $invoiceDetails ['sid'],
'accountPrice' => - $irDetails ['receivablesPrice']
);
$invoiceStatistics->setInvoiceStatisticsByCondition ( $item );
}
}
}
return "/invoiceUntread";
}
/**
* 建立负票,关联原来发票
*/
function invoiceLossDo() {
$iidKey = $this->get_args ( 'iidKey' ) ? $this->get_args ( 'iidKey' ) : "";
if ( ! empty ( $iidKey )) {
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
Doo::loadModel ( 'invoiceOperationLog' );
$invoiceOperationLog = new invoiceOperationLog ();
$iidKey = $XDeode->decode ( $iidKey );
$invoiceDetail = $invoice->getInvoiceByIid ( $iidKey );
//拷贝插入一条发票数据
$iid=$invoice->setInvoiceLoss($iidKey);
//更新负票
$invoiceSerial="#F" . date ( "Ymd" ) . mt_rand ( 1000, 9999 );
$invoice = new invoice ();
$item = array (
'iid' => $iid,
'sid' => $this->staff [0] ['sid'],
'userName' => $this->staff [0] ['username'],
'cid' => $this->staff [0] ['cid'],
'categoryName' => $this->staff [0] ['category'],
'invoicePrice' => -$invoiceDetail['invoicePrice'],
'invoiceSerial' => $invoiceSerial,
'invoiceNo'=>'',
'printStatus' => 0,
'untreadStatus' => 4,
//关联发票号
'lossIid'=>$invoiceDetail['iid'],
);
$invoice->setInvoiceByCondition ( $item );
//更新原发票
$invoice = new invoice ();
$item = array (
'iid' => $invoiceDetail['iid'],
'lossIid'=>$iid,
);
$invoice->setInvoiceByCondition ( $item );
// 操作日志
$item = array (
'date' => date ( "Y-m-d H:i:s" ),
'operation' => "创建负票" . $invoiceSerial ,
'status' => 12,
'img' => $this->staff [0] ['avatar'],
'username' => $this->staff [0] ['username'],
'uid' => $this->staff [0] ['sid'],
'category' => $this->staff [0] ['category'],
'iid' => $iid
);
$invoiceOperationLog->setInvoiceOperationLog ( $item );
//print_r($invoiceDetail);
//echo $iid;die;
}
return '/invoiceUntread';
}
function invoiceReceivables() {
$invoiceTC = $this->get_args ( 'invoiceTC' ) ? $this->get_args ( 'invoiceTC' ) : '';
Doo::loadModel ( 'L_category' );
$lCategory = new L_category ();
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadModel ( 'invoiceReceivables' );
$invoiceReceivables = new invoiceReceivables ();
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
$category = $lCategory->getCategory ();
$staffList = $staff->getStaffByCid ( $this->staff [0] ['cid'] );
$sql = 'bindStatus=1 and iid!=0';
$receivablesList = $invoiceReceivables->getInvoiceReceivablesByNew ( 4, $sql );
// 获取未入账发票
$invoiceUnAccount = $invoice->getInvoiceByUnAccount ();
$invoiceExistAccount = $invoice->getInvoiceByUnAccount ( '', true );
foreach ( $invoiceUnAccount as $key => $value ) {
$invoiceUnAccount [$key] ['iidKey'] = $XDeode->encode ( $value ['iid'] );
$lastApprover = json_decode ( $value ['processApprovals'], true );
if (! empty ( $lastApprover )) {
$lastApproverKey = array_keys ( $lastApprover );
$lastApprover = end ( $lastApprover );
$staffDetail = $staff->getOne ( array (
'where' => 'sid=' . end ( $lastApproverKey ),
'asArray' => true
) );
$lastApprover ['username'] = $staffDetail ['username'];
}
$invoiceUnAccount [$key] ['lastApprover'] = $lastApprover;
}
foreach ( $invoiceExistAccount as $key => $value ) {
$irList = $invoiceReceivables->getInvoiceReceivablesInIridString ( $value ['irid'] );
if (empty ( $irList ))
$irList [0] ['sumPrice'] = 0;
$balance = $value ['invoicePrice'] - $irList [0] ['sumPrice'];
$invoiceExistAccount [$key] ['existAccount'] = $irList [0] ['sumPrice'];
$invoiceExistAccount [$key] ['balance'] = $balance;
}
$receivablesInput = $invoiceReceivables->getInvoiceReceivablesByInput ();
// print_r($receivablesList);
$this->data ['receivablesDate'] = date ( "Y-m-d" );
$this->data ['ieaCount'] = count ( $invoiceExistAccount );
$this->data ['invoiceExistAccount'] = $invoiceExistAccount;
$this->data ['receivablesInput'] = $receivablesInput;
$this->data ['year'] = date ( 'Y' );
$this->data ['invoiceUnAccount'] = $invoiceUnAccount;
$this->data ['receivablesList'] = $receivablesList;
$this->data ['staffList'] = $staffList;
$this->data ['category'] = $category;
$this->data ['memu'] = "invoice";
$this->data ['staff'] = $this->staff;
$this->data ['receiptMemu'] = 'invoiceReceivables';
$this->render ( "/admin/invoiceReceivables", $this->data );
}
/**
* 新添加收款直接入账发票
*/
function invoiceCompareClaimPrice() {
// 收款录入
$iidKey = $this->get_args ( 'iidKey' ) ? $this->get_args ( 'iidKey' ) : "";
$receivablesPrice = $this->get_args ( 'receivablesPrice' ) ? $this->get_args ( 'receivablesPrice' ) : "";
$receivablesMessage = $this->get_args ( 'receivablesMessage' ) ? $this->get_args ( 'receivablesMessage' ) : "";
$receivablesBank = $this->get_args ( 'receivablesBank' ) ? $this->get_args ( 'receivablesBank' ) : "";
$receivablesDate = $this->get_args ( 'receivablesDate' ) ? $this->get_args ( 'receivablesDate' ) : "";
if (! empty ( $receivablesPrice ) && ! empty ( $receivablesMessage ) && ! empty ( $receivablesBank ) && ! empty ( $receivablesDate ) && ! empty ( $iidKey )) {
Doo::loadModel ( 'invoiceReceivables' );
$invoiceReceivables = new invoiceReceivables ();
Doo::loadModel ( 'invoiceROLog' );
$invoiceROLog = new invoiceROLog ();
Doo::loadModel ( 'invoiceStatistics' );
$invoiceStatistics = new invoiceStatistics ();
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
Doo::loadModel ( 'invoiceOperationLog' );
$invoiceOperationLog = new invoiceOperationLog ();
$iidKey = $XDeode->decode ( $iidKey );
$invoiceDetail = $invoice->getInvoiceByIid ( $iidKey );
$receivablesSerial = "#SK" . date ( "Ymd" ) . mt_rand ( 1000, 9999 );
// 收款录入 并绑定发票
Doo::db ()->beginTransaction ();
$item = array (
'bindStatus' => 1,
'iid' => $invoiceDetail ['iid'],
'bindDate' => date ( "Y-m-d H:i:s" ),
'receivablesPrice' => $receivablesPrice,
'receivablesMessage' => $receivablesMessage,
'receivablesSerial' => $receivablesSerial,
'receivablesBank' => $receivablesBank,
'receivablesDate' => $receivablesDate,
'inputStaff' => $this->staff [0] ['username'],
'accountClerk' => $this->staff [0] ['username'],
'date' => date ( "Y-m-d" ),
'receivablesCategory' => $invoiceDetail ['cid'] . ':' . $invoiceDetail ['categoryName'],
'receivablesStaff' => $invoiceDetail ['sid'] . '-' . $invoiceDetail ['userName'],
'confirmTime' => date ( "Y-m-d H:i:s" )
);
$irid = $invoiceReceivables->addInvoiceReceivables ( $item );
$item = array ();
// 收款操作日志
$item = array (
'operation' => $this->staff [0] ['username'] . " 转入 " . $invoiceDetail ['userName']
);
$item += array (
'date' => date ( "Y-m-d" ),
'status' => 1,
'img' => $this->staff [0] ['avatar'],
'username' => $this->staff [0] ['username'],
'uid' => $this->staff [0] ['sid'],
'category' => $this->staff [0] ['category'],
'irid' => $irid
);
$invoiceROLog->setInvoiceROLog ( $item );
// 收款统计
$item = array (
'date' => date ( "Y-m-d H:i:s" ),
'priceClass' => 2,
'irid' => $irid,
'cid' => $invoiceDetail ['cid'],
'staff' => $invoiceDetail ['sid'],
'receivablesPrice' => $receivablesPrice
);
$invoiceStatistics->setInvoiceStatisticsByCondition ( $item );
// 收款 入 发票
$detail = $invoiceDetail;
$iridString = "";
if (empty ( $detail ['irid'] ))
$iridString = $irid;
else
$iridString = $detail ['irid'] . ',' . $irid;
$item = array (
'irid' => $iridString,
'bindTime' => date ( "Y-m-d H:i:s" ),
'updateTime' => date ( "Y-m-d H:i:s" ),
'iid' => $detail ['iid']
);
$invoiceReceivables = new invoiceReceivables ();
$sum = $invoiceReceivables->getSumOfReceivablesPrice ( $iridString );
if ($detail ['invoicePrice'] <= $sum)
$item += array (
'untreadStatus' => 3
);
$invoice->setInvoiceByCondition ( $item );
// 操作日志
$item = array (
'date' => date ( "Y-m-d H:i:s" ),
'operation' => "收款入账" . $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 );
$list = $invoiceReceivables->getInvoiceReceivablesInIridString ( $iridString );
$accountPrice = 0;
foreach ( $list as $key => $value ) {
$accountPrice += $value ['receivablesPrice'];
}
$item = array (
'date' => date ( "Y-m-d H:i:s" ),
'priceClass' => 3,
'cid' => $invoiceDetail ['cid'],
'staff' => $invoiceDetail ['sid'],
'accountPrice' => $accountPrice
);
$invoiceStatistics->setInvoiceStatisticsByCondition ( $item );
Doo::db ()->commit ();
}
return '/invoiceReceivables';
}
/**
* 检索未入账发票数据 function sir() { }
*/
/**
* 录入收款数据
* @return string
*/
function invoiceReceivablesDo() {
$receivablesPrice = $this->get_args ( 'receivablesPrice' ) ? $this->get_args ( 'receivablesPrice' ) : "";
$receivablesMessage = $this->get_args ( 'receivablesMessage' ) ? $this->get_args ( 'receivablesMessage' ) : "";
$receivablesBank = $this->get_args ( 'receivablesBank' ) ? $this->get_args ( 'receivablesBank' ) : "";
$receivablesDate = $this->get_args ( 'receivablesDate' ) ? $this->get_args ( 'receivablesDate' ) : "";
$receivablesCategory = $this->get_args ( 'receivablesCategory' ) ? $this->get_args ( 'receivablesCategory' ) : "";
$receivablesStaff = $receivablesStaff2 = $this->get_args ( 'receivablesStaff' ) ? $this->get_args ( 'receivablesStaff' ) : "";
Doo::loadModel ( 'invoiceReceivables' );
$invoiceReceivables = new invoiceReceivables ();
Doo::loadModel ( 'invoiceROLog' );
$invoiceROLog = new invoiceROLog ();
Doo::loadModel ( 'invoiceStatistics' );
$invoiceStatistics = new invoiceStatistics ();
if (! empty ( $receivablesPrice ) && ! empty ( $receivablesMessage ) && ! empty ( $receivablesBank ) && ! empty ( $receivablesDate ) && ! empty ( $receivablesCategory ) && ! empty ( $receivablesStaff )) {
$item = array (
'receivablesPrice' => $receivablesPrice,
'receivablesMessage' => $receivablesMessage,
'receivablesSerial' => "#SK" . date ( "Ymd" ) . mt_rand ( 1000, 9999 ),
'receivablesBank' => $receivablesBank,
'receivablesDate' => $receivablesDate,
'inputStaff' => $this->staff [0] ['username'],
'date' => date ( "Y-m-d" ),
'receivablesCategory' => $receivablesCategory,
'receivablesStaff' => $receivablesStaff
);
if ($receivablesCategory != 'PUBLIC' && $receivablesStaff != 'PUBLIC') {
$item += array (
'confirmTime' => date ( "Y-m-d H:i:s" ),
'inputType' => 1
);
}
$irid = $invoiceReceivables->addInvoiceReceivables ( $item );
$item = array ();
// 收款操作日志
if ($receivablesCategory == 'PUBLIC' && $receivablesStaff == 'PUBLIC')
$item = array (
'operation' => $this->staff [0] ['username'] . " 转入 公共待认领款项 "
);
elseif ($receivablesCategory != 'PUBLIC' && $receivablesStaff == 'PUBLIC')
$item = array (
'operation' => $this->staff [0] ['username'] . "转入 办事处待认领款项"
);
elseif ($receivablesCategory != 'PUBLIC' && $receivablesStaff != 'PUBLIC') {
$receivablesStaff = explode ( '-', $receivablesStaff );
$item = array (
'operation' => $this->staff [0] ['username'] . " 转入 " . $receivablesStaff [1]
);
}
$item += array (
'date' => date ( "Y-m-d" ),
'status' => 1,
'img' => $this->staff [0] ['avatar'],
'username' => $this->staff [0] ['username'],
'uid' => $this->staff [0] ['sid'],
'category' => $this->staff [0] ['category'],
'irid' => $irid
);
$invoiceROLog->setInvoiceROLog ( $item );
$item = array (
'date' => date ( "Y-m-d H:i:s" ),
'priceClass' => 2,
'irid' => $irid,
'receivablesPrice' => $receivablesPrice
);
if ($receivablesCategory != 'PUBLIC') {
$receivablesCategory = explode ( ":", $receivablesCategory );
$item += array (
'cid' => $receivablesCategory [0]
);
}
if ($receivablesStaff2 != 'PUBLIC') {
$receivablesStaff = explode ( "-", $receivablesStaff2 );
$item += array (
'staff' => $receivablesStaff [0]
);
}
$invoiceStatistics->setInvoiceStatisticsByCondition ( $item );
}
return "/invoiceReceivables";
}
/**
* 收款认领页面-包括公共认领 办事处认领 最近已认领数据
*/
function invoiceReceivablesClaim() {
Doo::loadModel ( 'invoiceReceivables' );
$invoiceReceivables = new invoiceReceivables ();
$receivablesList = $invoiceReceivables->getInvoiceReceivablesByClaim ( $this->staff [0] ['cid'], $this->staff [0] ['sid'] );
$this->data ['receivablesList'] = $receivablesList;
$this->data ['memu'] = "invoice";
$this->data ['staff'] = $this->staff;
$this->data ['receiptMemu'] = 'invoiceReceivablesClaim';
$this->render ( "/admin/invoiceReceivablesClaim", $this->data );
}
/**
* 更新收款相关数据
*/
function invoiceReceivablesUpdateClaim() {
$receivablesPrice = $this->get_args ( 'receivablesPrice' ) ? $this->get_args ( 'receivablesPrice' ) : "";
$receivablesMessage = $this->get_args ( 'receivablesMessage' ) ? $this->get_args ( 'receivablesMessage' ) : "";
$receivablesBank = $this->get_args ( 'receivablesBank' ) ? $this->get_args ( 'receivablesBank' ) : "";
$receivablesDate = $this->get_args ( 'receivablesDate' ) ? $this->get_args ( 'receivablesDate' ) : "";
$receivablesCategory = $this->get_args ( 'receivablesCategory' ) ? $this->get_args ( 'receivablesCategory' ) : "";
$receivablesStaff = $receivablesStaff2 = $this->get_args ( 'receivablesStaff' ) ? $this->get_args ( 'receivablesStaff' ) : "";
$claimKey = $this->get_args ( 'claimKey' ) ? $this->get_args ( 'claimKey' ) : "";
if (empty ( $claimKey ))
die ( 'illegal request' );
Doo::loadModel ( 'invoiceReceivables' );
$invoiceReceivables = new invoiceReceivables ();
Doo::loadModel ( 'invoiceROLog' );
$invoiceROLog = new invoiceROLog ();
$con = ' and iid=0 and bindStatus=0'; // and receivablesCategory!="PUBLIC" and receivablesStaff!="PUBLIC"
$detail = $invoiceReceivables->getInvoiceReceivablesByIrid ( $claimKey, $con );
if (empty ( $detail ))
die ( 'illegal request' );
$invoiceReceivables = new invoiceReceivables ();
$item = array (
'irid' => $detail ['irid']
);
if ($receivablesCategory != 'PUBLIC' && $receivablesStaff != 'PUBLIC') {
$item += array (
'confirmTime' => date ( "Y-m-d H:i:s" )
);
}
if (! empty ( $receivablesCategory ))
$item += array (
'receivablesCategory' => $receivablesCategory
);
if (! empty ( $receivablesStaff ))
$item += array (
'receivablesStaff' => $receivablesStaff
);
if (! empty ( $receivablesPrice ))
$item += array (
'receivablesPrice' => $receivablesPrice
);
if (! empty ( $receivablesMessage ))
$item += array (
'receivablesMessage' => $receivablesMessage
);
if (! empty ( $receivablesBank ))
$item += array (
'receivablesBank' => $receivablesBank
);
if (! empty ( $receivablesDate ))
$item += array (
'receivablesDate' => $receivablesDate
);
$invoiceReceivables->setInvoiceReceivablesByCondition ( $item );
// 收款操作日志
$item = array ();
if ($receivablesCategory == 'PUBLIC' && $receivablesStaff == 'PUBLIC')
$item = array (
'operation' => $this->staff [0] ['username'] . " 转入 公共待认领款项 "
);
elseif ($receivablesCategory != 'PUBLIC' && $receivablesStaff == 'PUBLIC')
$item = array (
'operation' => $this->staff [0] ['username'] . "转入 办事处待认领款项"
);
elseif ($receivablesCategory != 'PUBLIC' && $receivablesStaff != 'PUBLIC') {
$receivablesStaff = explode ( '-', $receivablesStaff );
$item = array (
'operation' => $this->staff [0] ['username'] . " 转入 " . $receivablesStaff [1]
);
}
$item += array (
'date' => date ( "Y-m-d" ),
'status' => 1,
'img' => $this->staff [0] ['avatar'],
'username' => $this->staff [0] ['username'],
'uid' => $this->staff [0] ['sid'],
'category' => $this->staff [0] ['category'],
'irid' => $detail ['irid']
);
$invoiceROLog->setInvoiceROLog ( $item );
return '/invoiceReceivablesAS';
}
function invoiceReceivablesDelete() {
$claimKey = $this->get_args ( 'claimKey' ) ? $this->get_args ( 'claimKey' ) : "";
if (empty ( $claimKey ))
die ( 'illegal request' );
Doo::loadModel ( 'invoiceReceivables' );
$invoiceReceivables = new invoiceReceivables ();
$con = ' and iid=0 and bindStatus=0 and receivablesStaff="PUBLIC"';
$detail = $invoiceReceivables->getInvoiceReceivablesByIrid ( $claimKey, $con );
if (empty ( $detail ))
die ( 'illegal request' );
$invoiceReceivables->delInvoiceReceivablesByIrid ( $detail ['irid'] );
return '/invoiceReceivablesAS';
}
/**
* 管理员录入的收款 ,确认认领到谁的名下.统计收款金额
*/
function invoiceReceivablesAscription() {
$irid = $this->get_args ( 'key' ) ? $this->get_args ( 'key' ) : "";
$recepitTitleMark = $this->get_args ( 'recepitTitleMark' ) ? $this->get_args ( 'recepitTitleMark' ) : "";
Doo::loadModel ( 'invoiceReceivables' );
$invoiceReceivables = new invoiceReceivables ();
Doo::loadModel ( 'invoiceROLog' );
$invoiceROLog = new invoiceROLog ();
Doo::loadModel ( 'invoiceStatistics' );
$invoiceStatistics = new invoiceStatistics ();
$detail = $invoiceReceivables->getInvoiceReceivablesByIrid ( $irid );
if (! empty ( $detail ) && $detail ['receivablesStaff'] == 'PUBLIC' && ! empty ( $recepitTitleMark )) {
$item = array (
'irid' => $detail ['irid'],
'receivablesCategory' => $this->staff [0] ['cid'] . ":" . $this->staff [0] ['category'],
'receivablesStaff' => $this->staff [0] ['sid'] . "-" . $this->staff [0] ['username'],
'confirmTime' => date ( "Y-m-d H:i:s" ),
'recepitTitleMark' => $recepitTitleMark,
'source' => 1
);
$invoiceReceivables->setInvoiceReceivablesByCondition ( $item );
$item = array (
'date' => date ( "Y-m-d" ),
'operation' => $this->staff [0] ['username'] . " 认领 ",
'status' => 2,
'img' => $this->staff [0] ['avatar'],
'username' => $this->staff [0] ['username'],
'uid' => $this->staff [0] ['sid'],
'category' => $this->staff [0] ['category'],
'irid' => $irid
);
$invoiceROLog->setInvoiceROLog ( $item );
$item = array (
'cid' => $this->staff [0] ['cid'],
'staff' => $this->staff [0] ['sid']
);
$invoiceStatistics->updateInvoiceStatisticsByIrid ( $item, $detail ['irid'] );
}
return "/invoiceReceivablesClaim";
}
/**
*/
function invoiceMyReceivables() {
Doo::loadModel ( 'invoiceReceivables' );
$invoiceReceivables = new invoiceReceivables ();
Doo::loadModel ( 'invoiceStatistics' );
$invoiceStatistics = new invoiceStatistics ();
$isMonth = $invoiceStatistics->getStatisticsByMonth ();
$year = date ( "Y" );
$tmp_date = date ( "Ym" );
$tmp_year = substr ( $tmp_date, 0, 4 );
$tmp_mon = substr ( $tmp_date, 4, 2 );
$tmp_forwardmonth = mktime ( 0, 0, 0, $tmp_mon - 1, 1, $tmp_year );
$fm_forward_month = date ( "m", $tmp_forwardmonth );
$path = SITE_PATH . $this->INVOICECOLLECTPATH . "invoiceCollect_" . $year . "_" . $fm_forward_month . ".htm";
$htm = $this->showCache ( $path );
$list = $invoiceReceivables->getInvoiceReceivablesByClaim ( $this->staff [0] ['cid'], $this->staff [0] ['sid'] );
$this->data ['isMonth'] = $isMonth;
$this->data ['htm'] = $htm;
$this->data ['list'] = $list;
$this->data ['memu'] = "invoice";
$this->data ['staff'] = $this->staff;
$this->data ['receiptMemu'] = 'invoiceMyReceivables';
$this->render ( "/admin/invoiceMyReceivables", $this->data );
}
/**
* 收款绑定发票 ,一个收款只能绑定一个发票
*/
function invoiceBindReceivables() {
$claimKey = $this->get_args ( 'key' ) ? $this->get_args ( 'key' ) : "";
$invoiceKey = $this->get_args ( 'invoiceKey' ) ? $this->get_args ( 'invoiceKey' ) : "";
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
Doo::loadModel ( 'invoiceReceivables' );
$invoiceReceivables = new invoiceReceivables ();
Doo::loadModel ( 'invoiceOperationLog' );
$invoiceOperationLog = new invoiceOperationLog ();
if (empty ( $invoiceKey ) || empty ( $claimKey ))
die ( 'illegal request' );
$detail = $invoice->getInvoiceByIid ( $invoiceKey );
$detailM = $invoiceReceivables->getInvoiceReceivablesByIrid ( $claimKey );
if (empty ( $detail ) && empty ( $detailM ))
die ( 'illegal request' );
if ($detail ['untreadStatus'] == 3)
die ( 'illegal request' );
// if ($detailM ['receivablesPrice'] >= $detail ['invoicePrice']) {
// $price = $detailM ['receivablesPrice'] - $detail ['invoicePrice'];
// die ( '
收款金额超出开票金额 ¥' . $price . '元,请谨慎操作
返回' );
// }
$item = array (
'irid' => $detailM ['irid'],
'bindStatus' => 1,
'iid' => $detail ['iid'],
'accountClerk' => $this->staff [0] ['username'],
'bindDate' => date ( "Y-m-d H:i:s" )
);
$invoiceReceivables->setInvoiceReceivablesByCondition ( $item );
$iridString = "";
if (empty ( $detail ['irid'] ))
$iridString = $detailM ['irid'];
else
$iridString = $detail ['irid'] . ',' . $detailM ['irid'];
$item = array (
'iid' => $detail ['iid'],
'irid' => $iridString
);
$sum = $invoiceReceivables->getSumOfReceivablesPrice ( $iridString );
if ($detail ['invoicePrice'] <= $sum)
$item += array (
'untreadStatus' => 3
);
$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 );
Doo::loadModel ( 'invoiceStatistics' );
$invoiceStatistics = new invoiceStatistics ();
$list = $invoiceReceivables->getInvoiceReceivablesInIridString ( $iridString );
$accountPrice = 0;
foreach ( $list as $key => $value ) {
$accountPrice += $value ['receivablesPrice'];
}
$item = array (
'date' => date ( "Y-m-d H:i:s" ),
'priceClass' => 3,
'cid' => $detail ['cid'],
'staff' => $detail ['sid'],
'accountPrice' => $accountPrice
);
$invoiceStatistics->setInvoiceStatisticsByCondition ( $item );
return "/invoiceReceivables";
}
/**
* 核销 动作,确认入账统计 发票收款完成--需求更变 废弃 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 ( 'invoiceOperationLog' ); $invoiceOperationLog = new invoiceOperationLog (); Doo::loadModel ( 'invoiceStatistics' ); $invoiceStatistics = new invoiceStatistics (); Doo::loadModel ( 'invoiceReceivables' ); $invoiceReceivables = new invoiceReceivables (); $detail = $invoice->getInvoiceByIid ( $invoiceKey ); if (empty ( $detail )) die ( 'illegal request' ); if (empty ( $detail ['irid'] )) die ( 'illegal request' ); $item = array ( 'untreadStatus' => 3, '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' => 9, '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 ); $list = $invoiceReceivables->getInvoiceReceivablesInIridString ( $detail ['irid'] ); $accountPrice = 0; foreach ( $list as $key => $value ) { $accountPrice += $value ['receivablesPrice']; } $item = array ( 'date' => date ( "Y-m-d H:i:s" ), 'priceClass' => 3, 'cid' => $this->staff [0] ['cid'], 'staff' => $this->staff [0] ['sid'], 'accountPrice' => $accountPrice ); $invoiceStatistics->setInvoiceStatisticsByCondition ( $item ); return "/invoice"; }
*/
function invoiceAggregate() {
$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" );
Doo::loadModel ( 'invoiceStatistics' );
$invoiceStatistics = new invoiceStatistics ();
Doo::loadModel ( 'L_category' );
$Lcategory = new L_category ();
$isList = $invoiceStatistics->getInvoiceStatisticsByYear ( $year );
$LcategoryList = $Lcategory->getCategory ();
// print_r($isList);
$html = ""; // $invoicePriceCategory=0;$receivablesPriceCategory=0;$accountPriceCategory=0;
foreach ( $LcategoryList as $key => $value ) {
$html .= '' . $value ['title'] . ' | ';
$month = 1;
$invoicePriceYear = 0;
$receivablesPriceYear = 0;
$accountPriceYear = 0;
for(; $month <= 12; $month ++) {
$flag = true;
foreach ( $isList ['statisticsMonthCid'] as $k => $v ) {
if ($value ['cid'] == $v ['cid'] && $month == $v ['month']) {
$html .= '¥' . $v ['invoicePrice'] . ' |
¥' . $v ['receivablesPrice'] . ' |
¥' . $v ['accountPrice'] . ' |
';
$invoicePriceYear += $v ['invoicePrice'];
$receivablesPriceYear += $v ['receivablesPrice'];
$accountPriceYear += $v ['accountPrice'];
$flag = false;
break;
}
}
if ($flag)
$html .= ' |
|
|
';
}
$html .= '' . $invoicePriceYear . ' |
' . $receivablesPriceYear . ' |
' . $accountPriceYear . ' |
';
$html .= '
';
}
$html .= '月合计 | ';
$invoicePriceYear = 0;
$receivablesPriceYear = 0;
$accountPriceYear = 0;
for($month = 1; $month <= 12; $month ++) {
$flag = true;
foreach ( $isList ['statisticsMonth'] as $k => $v ) {
if ($month == $v ['month']) {
$html .= '¥' . $v ['invoicePrice'] . ' |
¥' . $v ['receivablesPrice'] . ' |
¥' . $v ['accountPrice'] . ' |
';
$invoicePriceYear += $v ['invoicePrice'];
$receivablesPriceYear += $v ['receivablesPrice'];
$accountPriceYear += $v ['accountPrice'];
$flag = false;
break;
}
}
if ($flag) {
$html .= ' |
|
|
';
}
}
$html .= '' . $invoicePriceYear . ' |
' . $receivablesPriceYear . ' |
' . $accountPriceYear . ' |
';
$html .= '
';
// print_r($isList);
$this->data ['html'] = $html;
$this->data ['LcategoryList'] = $LcategoryList;
$this->data ['isList'] = $isList;
$this->data ['year'] = $year;
$this->data ['memu'] = "invoice";
$this->data ['staff'] = $this->staff;
$this->data ['receiptMemu'] = 'invoiceAggregate';
$this->render ( "/admin/invoiceAggregate", $this->data );
}
function invoiceAggregateStaff() {
$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" );
Doo::loadModel ( 'invoiceStatistics' );
$invoiceStatistics = new invoiceStatistics ();
Doo::loadModel ( 'L_category' );
$Lcategory = new L_category ();
$toteList = $invoiceStatistics->getInvoiceStatisticsByTote ( $year );
$staffList = $invoiceStatistics->getInvoiceStatisticsByStaff ( $year );
$cStaff = $Lcategory->getCategoryStaff ();
$html = '';
foreach ( $cStaff as $key => $value ) {
$categoryFir = true;
foreach ( $value ['staff'] as $k => $v ) {
if ($categoryFir) {
$width = count ( $value ['staff'] ) + 1;
$html .= '' . $value ['title'] . ' | ';
$categoryFir = false;
} else
$html .= '
---|
';
$html .= '' . $v ['username'] . ' | ';
$invoicePriceStaffYear = 0;
$receivablesPriceStaffYear = 0;
$accountPriceStaffYear = 0;
for($month = 1; $month <= 12; $month ++) {
$flag = true;
foreach ( $staffList ['statisticsMonthStaff'] as $sl => $slv ) {
if ($v ['sid'] == $slv ['staff'] && $month == $slv ['month']) {
$html .= '¥' . $slv ['invoicePrice'] . ' |
¥' . $slv ['receivablesPrice'] . ' |
¥' . $slv ['accountPrice'] . ' |
';
$invoicePriceStaffYear += $slv ['invoicePrice'];
$receivablesPriceStaffYear += $slv ['receivablesPrice'];
$accountPriceStaffYear += $slv ['accountPrice'];
$flag = false;
break;
}
}
if ($flag)
$html .= ' |
|
|
';
}
$html .= '' . $invoicePriceStaffYear . ' |
' . $receivablesPriceStaffYear . ' |
' . $accountPriceStaffYear . ' |
';
}
$html .= '
';
// 小计
if (! empty ( $value ['staff'] )) {
$html .= '小计 | ';
$invoicePriceStaffYear = 0;
$receivablesPriceStaffYear = 0;
$accountPriceStaffYear = 0;
for($month = 1; $month <= 12; $month ++) {
$flag = true;
foreach ( $staffList ['statisticsMonthCid'] as $smc => $smcv ) {
if ($value ['cid'] == $smcv ['cid'] && $month == $slv ['month']) {
$html .= '¥' . $smcv ['invoicePrice'] . ' |
¥' . $smcv ['receivablesPrice'] . ' |
¥' . $smcv ['accountPrice'] . ' |
';
$invoicePriceStaffYear += $slv ['invoicePrice'];
$receivablesPriceStaffYear += $slv ['receivablesPrice'];
$accountPriceStaffYear += $slv ['accountPrice'];
$flag = false;
break;
}
}
if ($flag)
$html .= ' |
|
|
';
}
$html .= '' . $invoicePriceStaffYear . ' |
' . $receivablesPriceStaffYear . ' |
' . $accountPriceStaffYear . ' |
';
$html .= '
';
}
}
$html .= '月合计 | ';
$invoicePriceYear = 0;
$receivablesPriceYear = 0;
$accountPriceYear = 0;
for($month = 1; $month <= 12; $month ++) {
$flag = true;
foreach ( $staffList ['statisticsMonth'] as $k => $v ) {
if ($month == $v ['month']) {
$html .= '¥' . $v ['invoicePrice'] . ' |
¥' . $v ['receivablesPrice'] . ' |
¥' . $v ['accountPrice'] . ' |
';
$invoicePriceYear += $v ['invoicePrice'];
$receivablesPriceYear += $v ['receivablesPrice'];
$accountPriceYear += $v ['accountPrice'];
$flag = false;
break;
}
}
if ($flag)
$html .= ' |
|
|
';
}
$html .= '' . $invoicePriceYear . ' |
' . $receivablesPriceYear . ' |
' . $accountPriceYear . ' |
';
$html .= '
';
$this->data ['html'] = $html;
$this->data ['isList'] = $toteList;
$this->data ['year'] = $year;
$this->data ['memu'] = "invoice";
$this->data ['staff'] = $this->staff;
$this->data ['receiptMemu'] = 'invoiceAggregate';
$this->render ( "/admin/invoiceAggregateStaff", $this->data );
}
function invoiceAggregateCategory() {
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
$cid = $cidKey = isset ( $this->params ['cid'] ) ? $this->params ['cid'] : "";
$cid = $XDeode->decode ( $cid );
if (! is_numeric ( $cid ))
die ( 'illegal request' );
$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" );
Doo::loadModel ( 'invoiceStatistics' );
$invoiceStatistics = new invoiceStatistics ();
Doo::loadModel ( 'staff' );
$staff = new staff ();
$list = $staff->getStaffByCid ( $cid );
$isCategory = $invoiceStatistics->getInvoiceStatisticsByStaff ( $year, $cid );
$toteList = $invoiceStatistics->getInvoiceStatisticsByTote ( $year, $cid );
if (empty ( $list ))
die ( '该办事处没有成员' );
$htmlA = $htmlB = $htmlC = $html = '';
foreach ( $list as $key => $value ) {
$htmlA = '' . $value ['username'] . ' | 开票 | ';
$htmlB = '
---|
收款 | ';
$htmlC = '
---|
入账 | ';
$invoicePriceStaffYear = 0;
$receivablesPriceStaffYear = 0;
$accountPriceStaffYear = 0;
for($month = 1; $month <= 12; $month ++) {
$flag = true;
foreach ( $isCategory ['statisticsMonthStaff'] as $k => $v ) {
if ($value ['sid'] == $v ['staff'] && $month == $v ['month']) {
$htmlA .= '¥' . $v ['invoicePrice'] . ' | ';
$htmlB .= '¥' . $v ['receivablesPrice'] . ' | ';
$htmlC .= '¥' . $v ['accountPrice'] . ' | ';
$invoicePriceStaffYear += $v ['invoicePrice'];
$receivablesPriceStaffYear += $v ['receivablesPrice'];
$accountPriceStaffYear += $v ['accountPrice'];
$flag = false;
break;
}
}
if ($flag) {
$htmlA .= '- | ';
$htmlB .= '- | ';
$htmlC .= '- | ';
}
}
$htmlA .= '' . $invoicePriceStaffYear . ' | ';
$htmlB .= '' . $receivablesPriceStaffYear . ' | ';
$htmlC .= '' . $accountPriceStaffYear . ' | ';
$htmlA .= '
';
$htmlB .= '';
$htmlC .= '';
$html .= $htmlA . $htmlB . $htmlC;
}
$htmlA = $htmlB = $htmlC = "";
$htmlA = '月合计 | 开票 | ';
$htmlB = '
---|
收款 | ';
$htmlC = '
---|
入账 | ';
$invoicePriceStaffYear = 0;
$receivablesPriceStaffYear = 0;
$accountPriceStaffYear = 0;
for($month = 1; $month <= 12; $month ++) {
$flag = true;
foreach ( $isCategory ['statisticsMonth'] as $k => $v ) {
if ($month == $v ['month']) {
$htmlA .= '¥' . $v ['invoicePrice'] . ' | ';
$htmlB .= '¥' . $v ['receivablesPrice'] . ' | ';
$htmlC .= '¥' . $v ['accountPrice'] . ' | ';
$invoicePriceStaffYear += $v ['invoicePrice'];
$receivablesPriceStaffYear += $v ['receivablesPrice'];
$accountPriceStaffYear += $v ['accountPrice'];
$flag = false;
break;
}
}
if ($flag) {
$htmlA .= '- | ';
$htmlB .= '- | ';
$htmlC .= '- | ';
}
}
$htmlA .= '' . $invoicePriceStaffYear . ' | ';
$htmlB .= '' . $receivablesPriceStaffYear . ' | ';
$htmlC .= '' . $accountPriceStaffYear . ' | ';
$htmlA .= '
';
$htmlB .= '';
$htmlC .= '';
$html .= $htmlA . $htmlB . $htmlC;
$this->data ['html'] = $html;
$this->data ['cidKey'] = $cidKey;
$this->data ['slist'] = $list;
$this->data ['isList'] = $toteList;
$this->data ['year'] = $year;
$this->data ['memu'] = "invoice";
$this->data ['staff'] = $this->staff;
$this->data ['receiptMemu'] = 'invoiceAggregate';
$this->render ( "/admin/invoiceAggregateCategory", $this->data );
}
function invoiceAchieve() {
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
$sid = $XDeode->decode ( $_COOKIE ["staff"] );
$MebSea = isset ( $this->params ['MebSea'] ) ? urldecode ( $this->params ['MebSea'] ) : '';
$page_size = 18;
$page = isset ( $this->params ['page'] ) && is_numeric ( $this->params ['page'] ) ? $this->params ['page'] : 1;
$date = isset ( $this->params ['date'] ) ? $this->params ['date'] : 'MONTHO';
$get = "/" . $date;
$con = '';
if ($date == 'MONTHO')
$con = ' and updateTime>DATE_SUB(CURDATE(), INTERVAL 1 MONTH)';
elseif ($date == 'MONTHT')
$con = ' and updateTime>DATE_SUB(CURDATE(), INTERVAL 3 MONTH)';
elseif ($date == 'MONTHY')
$con = ' and updateTime>DATE_SUB(CURDATE(), INTERVAL 1 YEAR)';
if (! empty ( $MebSea )) {
$con .= ' and ( invoiceTitle like "%' . $MebSea . '%" or invoiceCompany like "%' . $MebSea . '%" or invoicePrice like "%' . $MebSea . '%" )';
$get .= "/" . $MebSea;
}
$pageinfo ['page'] = array (
'previous' => ''
);
$sql = 'status=2 and printStatus=1 and ( untreadStatus=3 or untreadStatus=0 ) and sid=' . $sid . $con;
$pageinfo = $this->get_page ( "CLD_invoice", $sql, $page, $page_size, "invoiceAchieve", $get, "" );
$limit = $pageinfo ['lower'] . ',' . $page_size;
$list = $invoice->getInvoiceByUntreadStatusPage ( $limit, $sql );
// print_r($pageinfo);
$this->data ['MebSeaEn'] = $MebSea;
$this->data ['MebSea'] = urlencode ( $MebSea );
$this->data ['get'] = $get;
$this->data ['page'] = $pageinfo;
$this->data ['list'] = $list;
$this->data ['date'] = $date;
$this->data ['memu'] = "invoice";
$this->data ['staff'] = $this->staff;
$this->data ['receiptMemu'] = 'invoice';
$this->render ( "/admin/invoiceAchieve", $this->data );
}
function invoiceMyUnAccountAchieve() {
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
Doo::loadModel ( 'staff' );
$staff = new staff ();
$sid = $XDeode->decode ( $_COOKIE ["staff"] );
$MebSea = $this->get_args ( 'MebSea' ) ? $this->get_args ( 'MebSea' ) : "";
$page_size = 18;
$page = isset ( $this->params ['page'] ) && is_numeric ( $this->params ['page'] ) ? $this->params ['page'] : 1;
$date = $this->get_args ( 'date' ) ? $this->get_args ( 'date' ) : "";
$get = "?date=" . urlencode ( $date ) . "&MebSea=" . urlencode ( $MebSea );
$dateArr = explode ( ':', $date );
$D1 = '';
$D2 = '';
if (! empty ( $date )) {
$D1 = $dateArr [0];
$D2 = $dateArr [1];
}
$con = '';
if (! empty ( $D1 ) && ! empty ( $D2 ))
$con = ' and printTime BETWEEN "' . $D1 . '" AND "' . $D2 . '" ';
if (! empty ( $MebSea )) {
$con .= ' and ( invoiceTitle like "%' . $MebSea . '%" or invoiceCompany like "%' . $MebSea . '%" or invoicePrice like "%' . $MebSea . '%" )';
}
$pageinfo ['page'] = array (
'previous' => ''
);
// and irid='' and ( (doPost=1 and postStatus=1) or doPost=0 )
$sql = " status=2 and printStatus=1 and untreadStatus=0 and isDelete=0 and sid= " . $sid . $con;
$action = "invoiceMyUnAccountAchieve";
$pageinfo = $this->get_page ( "CLD_invoice", $sql, $page, $page_size, $action, $get, "" );
$limit = $pageinfo ['lower'] . ',' . $page_size;
$list = $invoice->getInvoiceByUntreadStatusPage ( $limit, $sql );
Doo::loadModel ( 'express' );
$express = new express ();
$expressList = $express->getExpressByAll ();
$this->data ['expressList'] = $expressList;
// print_r($list);
$this->data ['MebSeaEn'] = $MebSea;
$this->data ['get'] = $get;
$this->data ['page'] = $pageinfo;
$this->data ['date'] = $date;
$this->data ['list'] = $list;
$this->data ['memu'] = "invoice";
$this->data ['staff'] = $this->staff;
$this->data ['receiptMemu'] = 'invoice';
$this->render ( "/admin/invoiceMyUnAccountAchieve", $this->data );
}
function invoiceReceivablesAchieve() {
Doo::loadModel ( 'invoiceReceivables' );
$invoiceReceivables = new invoiceReceivables ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
$sid = $XDeode->decode ( $_COOKIE ["staff"] );
$MebSea = isset ( $this->params ['MebSea'] ) ? urldecode ( $this->params ['MebSea'] ) : '';
$page_size = 1;
$page = isset ( $this->params ['page'] ) && is_numeric ( $this->params ['page'] ) ? $this->params ['page'] : 1;
$date = isset ( $this->params ['date'] ) ? $this->params ['date'] : 'MONTHO';
$get = "/" . $date;
$con = '';
if ($date == 'MONTHO')
$con = ' and bindDate>DATE_SUB(CURDATE(), INTERVAL 1 MONTH)';
elseif ($date == 'MONTHT')
$con = ' and bindDate>DATE_SUB(CURDATE(), INTERVAL 3 MONTH)';
elseif ($date == 'MONTHY')
$con = ' and bindDate>DATE_SUB(CURDATE(), INTERVAL 1 YEAR)';
if (! empty ( $MebSea )) {
$con .= ' and ( receivablesMessage like "%' . $MebSea . '%" or receivablesPrice like "%' . $MebSea . '%" )';
$get .= "/" . $MebSea;
}
$pageinfo ['page'] = array (
'previous' => ''
);
$sql = " bindStatus=1 and receivablesStaff like '" . $sid . "_%' " . $con;
$pageinfo = $this->get_page ( "CLD_invoiceReceivables", $sql, $page, $page_size, "invoiceReceivablesAchieve", $get, "" );
$limit = $pageinfo ['lower'] . ',' . $page_size;
$list = $invoiceReceivables->getReceivablesByUntreadStatusPage ( $limit, $sql );
// print_r($pageinfo);
$this->data ['MebSeaEn'] = $MebSea;
$this->data ['MebSea'] = urlencode ( $MebSea );
$this->data ['get'] = $get;
$this->data ['page'] = $pageinfo;
$this->data ['list'] = $list;
$this->data ['date'] = $date;
$this->data ['memu'] = "invoice";
$this->data ['staff'] = $this->staff;
$this->data ['receiptMemu'] = 'invoiceMyReceivables';
$this->render ( "/admin/invoiceReceivablesAchieve", $this->data );
}
/**
* 收款解绑
*/
function invoiceUnBundLing() {
$unBundKey = $this->get_args ( 'unBundKey' ) ? $this->get_args ( 'unBundKey' ) : '';
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
Doo::loadModel ( 'invoiceReceivables' );
$invoiceReceivables = new invoiceReceivables ();
Doo::loadModel ( 'invoiceOperationLog' );
$invoiceOperationLog = new invoiceOperationLog ();
Doo::loadModel ( 'invoiceROLog' );
$invoiceROLog = new invoiceROLog ();
Doo::loadModel ( 'invoiceStatistics' );
$invoiceStatistics = new invoiceStatistics ();
$irid = $invoice->authcode ( $unBundKey );
if (! empty ( $irid ) && ! is_numeric ( $irid ))
die ( 'illegal request' );
$irDetails = $invoiceReceivables->getInvoiceReceivablesByIrid ( $irid );
$invoiceDetails = $invoice->getInvoiceByIid ( $irDetails ['iid'] );
if (empty ( $irDetails ) || $irDetails ['bindStatus'] == 0 || $invoiceDetails ['untreadStatus'] == 2)
die ( 'illegal request' );
// 收款
$item = array (
'irid' => $irDetails ['irid'],
'bindStatus' => 0,
'iid' => 0
);
$invoiceReceivables->setInvoiceReceivablesByCondition ( $item );
// 收款操作日志
$item = array (
'operation' => $this->staff [0] ['username'] . " 解绑 " . $irDetails ['receivablesSerial'],
'date' => date ( "Y-m-d" ),
'status' => 3,
'img' => $this->staff [0] ['avatar'],
'username' => $this->staff [0] ['username'],
'uid' => $this->staff [0] ['sid'],
'category' => $this->staff [0] ['category'],
'irid' => $irid
);
$invoiceROLog->setInvoiceROLog ( $item );
// 扣除入账统计金额
$item = array (
'date' => date ( 'Y-m-d', strtotime ( $irDetails ['bindDate'] ) ),
'priceClass' => 3,
'cid' => $invoiceDetails ['cid'],
'staff' => $invoiceDetails ['sid'],
'accountPrice' => - $irDetails ['receivablesPrice']
);
$invoiceStatistics->setInvoiceStatisticsByCondition ( $item );
// 发票解绑去收款ID
$iridString = $invoiceDetails ['irid'];
if (! empty ( $invoiceDetails ['irid'] )) {
$list = explode ( ',', $invoiceDetails ['irid'] );
foreach ( $list as $key => $value ) {
if ($value == $irDetails ['irid']) {
unset ( $list [$key] );
break;
}
}
$iridString = implode ( ",", $list );
}
$item = array (
'iid' => $invoiceDetails ['iid'],
'irid' => $iridString,
'updateTime' => date ( "Y-m-d H:i:s" )
);
if ($invoiceDetails ['untreadStatus'] == 3)
$item += array (
'untreadStatus' => 0
);
$invoice->setInvoiceByCondition ( $item );
$item = array (
'date' => date ( "Y-m-d H:i:s" ),
'operation' => '解绑 收款 ' . $irDetails ['receivablesSerial'],
'status' => 11,
'img' => $this->staff [0] ['avatar'],
'username' => $this->staff [0] ['username'],
'uid' => $this->staff [0] ['sid'],
'category' => $this->staff [0] ['category'],
'iid' => $invoiceDetails ['iid']
);
$invoiceOperationLog->setInvoiceOperationLog ( $item );
return "/invoiceReceivablesAS";
}
/**
* 发票管理
*/
function invoiceAS() {
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
Doo::loadModel ( 'invoiceReceivables' );
$invoiceReceivables = new invoiceReceivables ();
$MebSea = $this->get_args ( 'MebSea' ) ? $this->get_args ( 'MebSea' ) : "";
$page_size = 18;
$page = isset ( $this->params ['page'] ) && is_numeric ( $this->params ['page'] ) ? $this->params ['page'] : 1;
$status = isset ( $this->params ['status'] ) ? $this->params ['status'] : 'All';
$date = $this->get_args ( 'date' ) ? $this->get_args ( 'date' ) : "";
$dateArr = explode ( ':', $date );
$D1 = '';
$D2 = '';
if (! empty ( $date )) {
$D1 = $dateArr [0];
$D2 = $dateArr [1];
}
$con = '1';
if (! empty ( $D1 ) && ! empty ( $D2 ))
$con .= ' and date BETWEEN "' . $D1 . '" AND "' . $D2 . '" ';
if ($status == 'UNRECORD')
$con .= ' and untreadStatus=0';
elseif ($status == 'RECORD')
$con .= ' and untreadStatus=3';
elseif ($status == 'BOUNCED')
$con .= ' and untreadStatus=2';
$get = "/" . $status . "?date=" . urlencode ( $date ) . "&MebSea=" . urlencode ( $MebSea );
if (! empty ( $MebSea )) {
$con .= ' and ( invoiceTitle like "%' . $MebSea . '%" or invoiceCompany like "%' . $MebSea . '%" )';
}
$pageinfo ['page'] = array (
'previous' => ''
);
$pageinfo = $this->get_page ( "CLD_invoice", $con, $page, $page_size, "invoiceAS", $get, "" );
$limit = $pageinfo ['lower'] . ',' . $page_size;
$list = $invoice->getInvoiceByUntreadStatusPage ( $limit, $con );
// print_r($list);
// foreach ($list as $key=>$value){
// $list[$key]['rpSum']=0;
// if (!empty($value['irid']))
// $list[$key]['rpSum']=$invoiceReceivables->getSumOfReceivablesPrice($value['irid']);
// }
$this->data ['MebSeaEn'] = $MebSea;
$this->data ['MebSea'] = urlencode ( $MebSea );
$this->data ['date'] = $date;
$this->data ['page'] = $pageinfo;
$this->data ['get'] = $get;
$this->data ['list'] = $list;
$this->data ['status'] = $status;
$this->data ['memu'] = "invoice";
$this->data ['staff'] = $this->staff;
$this->data ['receiptMemu'] = 'invoiceReceivables';
$this->render ( "/admin/invoiceAS", $this->data );
}
/**
* 收款管理
*/
function invoiceReceivablesAS() {
Doo::loadModel ( 'invoiceReceivables' );
$invoiceReceivables = new invoiceReceivables ();
$MebSea = $this->get_args ( 'MebSea' ) ? $this->get_args ( 'MebSea' ) : "";
$timeType = $this->get_args ( 'timeType' ) ? $this->get_args ( 'timeType' ) : "CREATE";
$page_size = 6;
$page = isset ( $this->params ['page'] ) && is_numeric ( $this->params ['page'] ) ? $this->params ['page'] : 1;
$status = isset ( $this->params ['status'] ) ? $this->params ['status'] : 'All';
$date = $this->get_args ( 'date' ) ? $this->get_args ( 'date' ) : "";
$dateArr = explode ( ':', $date );
$D1 = '';
$D2 = '';
if (! empty ( $date )) {
$D1 = $dateArr [0];
$D2 = $dateArr [1];
}
$con = '1';
if (! empty ( $D1 ) && ! empty ( $D2 ))
$con .= ' and date BETWEEN "' . $D1 . '" AND "' . $D2 . '" ';
$descField = 'bindDate';
if ($timeType == 'CREATE')
$descField = 'date';
if ($status == 'Unclaimed')
$con .= ' and bindStatus=0';
elseif ($status == 'Credited')
$con .= ' and bindStatus=1';
elseif ($status == 'Claim')
$con .= ' and bindStatus=0 and receivablesStaff="PUBLIC"';
$get = "/" . $status . "?date=" . urlencode ( $date ) . "&MebSea=" . urlencode ( $MebSea );
if (! empty ( $MebSea )) {
$con .= ' and ( receivablesMessage like "%' . $MebSea . '%" or receivablesPrice like "%' . $MebSea . '%" )';
}
$pageinfo ['page'] = array (
'previous' => ''
);
$pageinfo = $this->get_page ( "CLD_invoiceReceivables", $con, $page, $page_size, "invoiceReceivablesAS", $get, "" );
$limit = $pageinfo ['lower'] . ',' . $page_size;
$list = $invoiceReceivables->getReceivablesByUntreadStatusPage ( $limit, $con, 'desc', $descField );
// print_r($list);
$this->data ['timeType'] = $timeType;
$this->data ['MebSeaEn'] = $MebSea;
$this->data ['MebSea'] = urlencode ( $MebSea );
$this->data ['date'] = $date;
$this->data ['page'] = $pageinfo;
$this->data ['get'] = $get;
$this->data ['list'] = $list;
$this->data ['status'] = $status;
$this->data ['memu'] = "invoice";
$this->data ['staff'] = $this->staff;
$this->data ['receiptMemu'] = 'invoiceReceivables';
$this->render ( "/admin/invoiceReceivablesAS", $this->data );
}
function invoiceApprovalAchieve() {
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
$MebSea = isset ( $this->params ['MebSea'] ) ? urldecode ( $this->params ['MebSea'] ) : '';
$page_size = 12;
$page = isset ( $this->params ['page'] ) && is_numeric ( $this->params ['page'] ) ? $this->params ['page'] : 1;
$date = isset ( $this->params ['date'] ) ? $this->params ['date'] : 'MONTHO';
$get = "/" . $date;
$con = '';
if ($date == 'MONTHO')
$con = ' and updateTime>DATE_SUB(CURDATE(), INTERVAL 1 MONTH)';
elseif ($date == 'MONTHT')
$con = ' and updateTime>DATE_SUB(CURDATE(), INTERVAL 3 MONTH)';
elseif ($date == 'MONTHY')
$con = ' and updateTime>DATE_SUB(CURDATE(), INTERVAL 1 YEAR)';
if (! empty ( $MebSea )) {
$con .= ' and ( invoiceTitle like "%' . $MebSea . '%" or invoiceCompany like "%' . $MebSea . '%" or invoicePrice like "%' . $MebSea . '%" )';
$get .= "/" . $MebSea;
}
$pageinfo ['page'] = array (
'previous' => ''
);
$sql = '(status=1 or status=3 or status=4) and processApprovals!=""' . $con;
$pageinfo = $this->get_page ( "CLD_invoice", $sql, $page, $page_size, "invoiceApprovalAchieve", $get, "" );
$limit = $pageinfo ['lower'] . ',' . $page_size;
$list = $invoice->getInvoiceByUntreadStatusPage ( $limit, $sql );
// print_r($list);
$this->data ['MebSeaEn'] = $MebSea;
$this->data ['MebSea'] = urlencode ( $MebSea );
$this->data ['get'] = $get;
$this->data ['page'] = $pageinfo;
$this->data ['list'] = $list;
$this->data ['date'] = $date;
$this->data ['memu'] = "invoice";
$this->data ['staff'] = $this->staff;
$this->data ['receiptMemu'] = 'invoiceApproval';
$this->render ( "/admin/invoiceApprovalAchieve", $this->data );
}
function invoiceTAchieve() {
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
Doo::loadModel ( 'staff' );
$staff = new staff ();
$MebSea = isset ( $this->params ['MebSea'] ) ? urldecode ( $this->params ['MebSea'] ) : '';
$page_size = 2;
$page = isset ( $this->params ['page'] ) && is_numeric ( $this->params ['page'] ) ? $this->params ['page'] : 1;
$date = isset ( $this->params ['date'] ) ? $this->params ['date'] : 'MONTHO';
$get = "/" . $date;
$con = '';
if ($date == 'MONTHO')
$con = ' and updateTime>DATE_SUB(CURDATE(), INTERVAL 1 MONTH)';
elseif ($date == 'MONTHT')
$con = ' and updateTime>DATE_SUB(CURDATE(), INTERVAL 3 MONTH)';
elseif ($date == 'MONTHY')
$con = ' and updateTime>DATE_SUB(CURDATE(), INTERVAL 1 YEAR)';
if (! empty ( $MebSea )) {
$con .= ' and ( invoiceTitle like "%' . $MebSea . '%" or invoiceCompany like "%' . $MebSea . '%" or invoicePrice like "%' . $MebSea . '%" )';
$get .= "/" . $MebSea;
}
$pageinfo ['page'] = array (
'previous' => ''
);
$sql = "";
$action = "";
if ($this->ACTION == 'invoicePrintAchieve') {
$sql = "status=2 and printStatus=1 and moldManage like '%[\"" . $this->staff [0] ['sid'] . "\",%'" . $con;
$action = "invoicePrintAchieve";
} elseif ($this->ACTION == 'invoicePostAchieve') {
// and untreadStatus=0
$sql = "postStatus=1 and doPost=1 and status=2 and isDelete=0" . $con;
$action = "invoicePostAchieve";
} elseif ($this->ACTION == 'invoiceUntreadAchieve') {
$sql = " printStatus=1 and untreadStatus=2 and status=2 " . $con;
$action = "invoiceUntreadAchieve";
}
$pageinfo = $this->get_page ( "CLD_invoice", $sql, $page, $page_size, $action, $get, "" );
$limit = $pageinfo ['lower'] . ',' . $page_size;
$list = $invoice->getInvoiceByUntreadStatusPage ( $limit, $sql );
$this->data ['MebSeaEn'] = $MebSea;
$this->data ['MebSea'] = urlencode ( $MebSea );
$this->data ['get'] = $get;
$this->data ['page'] = $pageinfo;
$this->data ['date'] = $date;
$this->data ['memu'] = "invoice";
$this->data ['staff'] = $this->staff;
if ($this->ACTION == 'invoicePrintAchieve') {
foreach ( $list as $key => $value ) {
$list [$key] ['iidKey'] = $XDeode->encode ( $value ['iid'] );
$lastApprover = json_decode ( $value ['processApprovals'], true );
if (! empty ( $lastApprover )) {
$lastApproverKey = array_keys ( $lastApprover );
$lastApprover = end ( $lastApprover );
$staffDetail = $staff->getOne ( array (
'where' => 'sid=' . end ( $lastApproverKey ),
'asArray' => true
) );
$lastApprover ['username'] = $staffDetail ['username'];
}
$list [$key] ['lastApprover'] = $lastApprover;
}
$this->data ['receiptMemu'] = 'invoicePrint';
$this->data ['list'] = $list;
$this->render ( "/admin/invoicePrintAchieve", $this->data );
} elseif ($this->ACTION == 'invoicePostAchieve') {
Doo::loadModel ( 'express' );
$express = new express ();
$expressList = $express->getExpressByAll ();
$this->data ['expressList'] = $expressList;
$this->data ['receiptMemu'] = 'invoicePost';
$this->data ['list'] = $list;
$this->render ( "/admin/invoicePostAchieve", $this->data );
} elseif ($this->ACTION == 'invoiceUntreadAchieve') {
$this->data ['receiptMemu'] = 'invoiceUntread';
$this->data ['list'] = $list;
$this->render ( "/admin/invoiceUntreadAchieve", $this->data );
}
}
/**
*
* @deprecated 获得与我有关可收款的发票 废弃 function ajaxGetInvoiceByStaff() { $irid = $this->get_args ( 'key' ) ? $this->get_args ( 'key' ) : ""; Doo::loadModel ( 'invoice' ); $invoice = new invoice (); $list = $invoice->getInvoiceByReceivables ( $this->staff [0] ['sid'] ); $html = ""; $i = 1; foreach ( $list as $key => $value ) { $html .= ' ' . $value ['invoiceElement'] . ' | ¥' . $value ['invoicePrice'] . ' | '; if (! empty ( $value ['invoiceType'] )) { $html .= '增值税专用发票 | ' . $value ['invoiceCompany'] . ' | '; } else { $html .= '增值税普通发票 | ' . $value ['invoiceTitle'] . ' | '; } $html .= ' |
'; $i ++; } echo json_encode ( array ( 'status' => 1, 'html' => $html ) ); }
*/
/**
* 获取一条收款信息
*/
function ajaxGetInvoiceReceivables() {
$irid = $this->get_args ( 'key' ) ? $this->get_args ( 'key' ) : "";
Doo::loadModel ( 'invoiceReceivables' );
$invoiceReceivables = new invoiceReceivables ();
$detail = $invoiceReceivables->getInvoiceReceivablesByIrid ( $irid );
echo json_encode ( array (
'status' => 1,
'detail' => $detail
) );
}
/**
* 异步获取办事处用户
*/
function ajaxGetStaffByCategory() {
$cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : "";
Doo::loadModel ( 'staff' );
$staff = new staff ();
if ($cid == "PUBLIC") {
echo json_encode ( array (
'status' => 1,
'html' => ''
) );
die ();
}
if (! is_numeric ( $cid )) {
echo json_encode ( array (
'status' => 0,
'msg' => 'illegal request'
) );
die ();
}
$staffList = $staff->getStaffByCid ( $cid );
$html = '';
foreach ( $staffList as $key => $value ) {
$html .= '';
}
echo json_encode ( array (
'status' => 1,
'html' => $html
) );
}
/**
* 异步获取一条发票的邮寄信息
*/
function ajaxGetInvoicePostDetail() {
$iid = $this->get_args ( 'iidKey' ) ? $this->get_args ( 'iidKey' ) : "";
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
$iid = $invoice->authcode ( $iid );
Doo::loadModel ( 'express' );
$express = new express ();
$expressList = $express->getExpressByAll ();
if (! is_numeric ( $iid )) {
echo json_encode ( array (
'status' => 0,
'msg' => 'illegal request'
) );
die ();
}
$select = "iid,recipients,recipientsPhone,recipientsAddress,mailItems,expressCompany,expressNumber,actualItems";
$invoiceDetail = $invoice->getInvoiceByIid ( $iid, $select );
$html = "";
foreach ( $expressList as $key => $value ) {
if ($value ['company'] == $invoiceDetail ['expressCompany'])
$html .= '';
else
$html .= '';
}
$invoiceDetail ['eaHtml'] = $html;
echo json_encode ( array (
'status' => 1,
'invoiceDetail' => $invoiceDetail
) );
}
/**
*
* @deprecated --需求变更 废弃 function ajaxCompareClaimPrice() { $irid = $this->get_args ( 'irid' ) ? $this->get_args ( 'irid' ) : ""; $invoiceKey = $this->get_args ( 'invoiceKey' ) ? $this->get_args ( 'invoiceKey' ) : ""; Doo::loadModel ( 'invoice' ); $invoice = new invoice (); Doo::loadModel ( 'invoiceReceivables' ); $invoiceReceivables = new invoiceReceivables (); Doo::loadModel ( 'invoiceOperationLog' ); $invoiceOperationLog = new invoiceOperationLog (); $detail = $invoice->getInvoiceByIid ( $invoiceKey ); $detailM = $invoiceReceivables->getInvoiceReceivablesByIrid ( $irid ); if (empty ( $detail ) || empty ( $detailM )) { echo json_encode ( array ( 'status' => 2, 'msg' => '非法请求,请重新登录' ) ); die (); } $iridString = ""; if (empty ( $detail ['irid'] )) $iridString = $detailM ['irid']; else $iridString = $detail ['irid'] . ',' . $detailM ['irid']; $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' => "收款入账" . $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 ); $item = array ( 'iid' => $detail ['iid'], 'irid' => $detailM ['irid'], 'bindDate' => date ( "Y-m-d H:i:s" ), 'bindStatus' => 1 ); $invoiceReceivables->setInvoiceReceivablesByCondition ( $item ); $price = 0; $priceStatus = 0; $isReceivables = 0; $invoiceReceivables = new invoiceReceivables (); $list = $invoiceReceivables->getInvoiceReceivablesInIridString ( $iridString ); if (! empty ( $list )) $isReceivables = 1; $receivablesPrice = 0; foreach ( $list as $key => $value ) { $receivablesPrice += $value ['receivablesPrice']; } if ($receivablesPrice > $detail ['invoicePrice']) { $price = $receivablesPrice - $detail ['invoicePrice']; $priceStatus = 1; } elseif ($receivablesPrice < $detail ['invoicePrice']) { $price = $detail ['invoicePrice'] - $receivablesPrice; $priceStatus = 2; } echo json_encode ( array ( 'status' => 1, 'html' => '¥' . $detailM ['receivablesPrice'] . ' | ' . $detailM ['receivablesMessage'] . ' | ' . $detailM ['receivablesBank'] . ' | ' . $detailM ['receivablesDate'] . ' | 移除 |
', 'price' => $price, 'priceStatus' => $priceStatus, 'isReceivables' => $isReceivables ) ); }
*/
/**
*
* @deprecated 从发票中移除已经入账的收款 --需求变更 废弃 function ajaxReceivablesRemove() { $iridKey = $this->get_args ( 'key' ) ? $this->get_args ( 'key' ) : ""; $invoiceKey = $this->get_args ( 'invoiceKey' ) ? $this->get_args ( 'invoiceKey' ) : ""; Doo::loadModel ( 'invoice' ); $invoice = new invoice (); Doo::loadModel ( 'invoiceReceivables' ); $invoiceReceivables = new invoiceReceivables (); Doo::loadModel ( 'invoiceOperationLog' ); $invoiceOperationLog = new invoiceOperationLog (); $detail = $invoice->getInvoiceByIid ( $invoiceKey ); $detailM = $invoiceReceivables->getInvoiceReceivablesByIrid ( $iridKey ); // echo $detail['irid']."
"; $invoiceIrid = explode ( ",", $detail ['irid'] ); foreach ( $invoiceIrid as $key => $value ) { if ($value == $detailM ['irid']) unset ( $invoiceIrid [$key] ); } $invoiceIrid = implode ( ",", $invoiceIrid ); // echo $invoiceIrid."ddd"; // print_r($invoiceIrid); $item = array ( 'irid' => $invoiceIrid, 'iid' => $detail ['iid'] ); $invoice->setInvoiceByCondition ( $item ); $item = array ( 'iid' => 0, 'irid' => $detailM ['irid'], 'bindDate' => '', 'bindStatus' => 0 ); $invoiceReceivables->setInvoiceReceivablesByCondition ( $item ); // 操作日志 $item = array ( 'date' => date ( "Y-m-d H:i:s" ), 'operation' => "收款移除" . $detailM ['receivablesSerial'], 'status' => 10, '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 ); $price = 0; $priceStatus = 0; $isReceivables = 0; $invoiceReceivables = new invoiceReceivables (); $list = $invoiceReceivables->getInvoiceReceivablesInIridString ( $invoiceIrid ); if (! empty ( $list )) $isReceivables = 1; $receivablesPrice = 0; foreach ( $list as $key => $value ) { $receivablesPrice += $value ['receivablesPrice']; } if ($receivablesPrice > $detail ['invoicePrice']) { $price = $receivablesPrice - $detail ['invoicePrice']; $priceStatus = 1; } elseif ($receivablesPrice < $detail ['invoicePrice']) { $price = $detail ['invoicePrice'] - $receivablesPrice; $priceStatus = 2; } echo json_encode ( array ( 'status' => 1, 'html' => ' ¥' . $detailM ['receivablesPrice'] . ' | ' . $detailM ['receivablesMessage'] . ' | ' . $detailM ['receivablesBank'] . ' | ' . $detailM ['receivablesDate'] . ' | 入账 |
', 'price' => $price, 'priceStatus' => $priceStatus, 'isReceivables' => $isReceivables ) ); }
*/
/**
* 我的收款中 选择哪个发票入账,进行金额判断
*/
function ajaxCompareInvoicePrice() {
$claimKey = $this->get_args ( 'claimKey' ) ? $this->get_args ( 'claimKey' ) : "";
$invoiceKey = $this->get_args ( 'invoiceKey' ) ? $this->get_args ( 'invoiceKey' ) : "";
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
Doo::loadModel ( 'invoiceReceivables' );
$invoiceReceivables = new invoiceReceivables ();
$detail = $invoice->getInvoiceByIid ( $invoiceKey );
$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
) );
} else
echo json_encode ( array (
'status' => 2
) );
}
/**
* @ 获得与我有关收款数据 --需求变更 废弃 function ajaxGetReceivalblesByStaff() { $iid = $this->get_args ( 'key' ) ? $this->get_args ( 'key' ) : ""; Doo::loadModel ( 'invoiceReceivables' ); $invoiceReceivables = new invoiceReceivables (); Doo::loadModel ( 'invoice' ); $invoice = new invoice (); $detail = $invoice->getInvoiceByIid ( $iid ); $list = $invoiceReceivables->getInvoiceReceivablesByClaim ( $this->staff [0] ['cid'], $this->staff [0] ['sid'] ); $html = ""; $i = 1; foreach ( $list ['myClaim'] as $key => $value ) { $html .= ' ¥' . $value ['receivablesPrice'] . ' | ' . $value ['receivablesMessage'] . ' | ' . $value ['receivablesBank'] . ' | ' . $value ['receivablesDate'] . ' | '; $html .= ' 入账 |
'; $i ++; } $html2 = ""; $list2 = $invoiceReceivables->getInvoiceReceivablesByIid ( $iid, 1 ); foreach ( $list2 as $key => $value ) { $html2 .= ' ¥' . $value ['receivablesPrice'] . ' | ' . $value ['receivablesMessage'] . ' | ' . $value ['receivablesBank'] . ' | ' . $value ['receivablesDate'] . ' | '; $html2 .= ' 移除 |
'; $i ++; } $price = 0; $priceStatus = 0; $isReceivables = 0; $list = $invoiceReceivables->getInvoiceReceivablesInIridString ( $detail ['irid'] ); if (! empty ( $list )) $isReceivables = 1; $receivablesPrice = 0; foreach ( $list as $key => $value ) { $receivablesPrice += $value ['receivablesPrice']; } if ($receivablesPrice > $detail ['invoicePrice']) { $price = $receivablesPrice - $detail ['invoicePrice']; $priceStatus = 1; } elseif ($receivablesPrice < $detail ['invoicePrice']) { $price = $detail ['invoicePrice'] - $receivablesPrice; $priceStatus = 2; } echo json_encode ( array ( 'status' => 1, 'html' => $html, 'html2' => $html2, 'price' => $price, 'priceStatus' => $priceStatus, 'isReceivables' => $isReceivables ) ); }
*/
function ajaxGetInvoiceInfoByType() {
$type = $this->get_args ( 'type' ) ? $this->get_args ( 'type' ) : "";
$serial = $this->get_args ( 'serial' ) ? $this->get_args ( 'serial' ) : "";
$loss = $this->get_args ( 'loss' ) ? $this->get_args ( 'loss' ) : false;
if (empty ( $serial )) {
echo json_encode ( array (
'status' => 2,
'msg' => 'illegal request'
) );
die ();
}
if ($type == 'INVOICE') {
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
Doo::loadModel ( 'invoiceOperationLog' );
$invoiceOperationLog = new invoiceOperationLog ();
$detail = $invoice->getInvoiceByIsid ( $serial, $this->staff [0] ['sid'] );
$invoiceOperationLogList = $invoiceOperationLog->getInvoiceOperationLogByIid ( $detail ['iid'] );
if (empty ( $detail ))
$html = '';
else {
$html = '
开票流水号 | ' . $detail ['invoiceSerial'] . ' |
提交时间 | ' . $detail ['date'] . ' |
所在办事处 | ' . $detail ['categoryName'] . '(' . $detail ['userName'] . ') |
开票内容 | ' . $detail ['invoiceElement'] . ' |
发票备注 | ' . $detail ['remark'] . '
|
数量 | ' . $detail ['invoiceQuantity'] . ' |
单价 | ¥' . $detail ['invoiceUnitPrice'] . ' |
开票金额 | ¥' . $detail ['invoicePrice'] . ' |
';
if ($detail ['invoiceType'] == 0)
$html .= '
增值税普通发票 |
---|
发票抬头 | ' . $detail ['invoiceTitle'] . ' |
纳税人识别码 | ' . $detail ['TIN'] . ' |
';
else
$html .= '
增值税专用发票 |
---|
单位名称 | ' . $detail ['invoiceCompany'] . ' |
纳税人识别码 | ' . $detail ['TIN'] . ' |
';
$html .= '
注册地址 | ' . $detail ['address'] . ' |
注册电话 | ' . $detail ['phone'] . ' |
开户银行 | ' . $detail ['bankAccount'] . ' |
银行账户 | ' . $detail ['bank'] . ' |
';
if ($detail ['doPost'] == 1)
$html .= '邮寄信息 |
---|
收件人 | ' . $detail ['recipients'] . ' |
收件人手机/电话 | ' . $detail ['recipientsPhone'] . ' |
收件地址 | ' . $detail ['recipientsAddress'] . ' |
邮寄物品 | ' . $detail ['mailItems'] . ' |
';
if (! empty ( $invoiceOperationLogList )) {
$html .= '审批流程 |
---|
';
foreach ( $invoiceOperationLogList as $key => $value ) {
if ($value ['status'] == 1 || $value ['status'] == 2 || $value ['status'] == 3 || $value ['status'] == 4) {
$html .= '' . $value ['date'] . '
' . $value ['category'] . '-' . $value ['username'] . ' ';
if ($value ['status'] == 2) {
$html .= '同意';
} elseif ($value ['status'] == 3) {
$html .= '退回';
} elseif ($value ['status'] == 5) {
$html .= '打印';
} elseif ($value ['status'] == 4) {
$html .= '终止';
}
$html .= $value ['operation'] . ' ';
}
}
$html .= ' |
';
}
$html .= '';
}
echo json_encode ( array (
'status' => 1,
'html' => $html
) );
die ();
} elseif ($type == 'RECEIVABLES') {
Doo::loadModel ( 'invoiceReceivables' );
$invoiceReceivables = new invoiceReceivables ();
//
$detail = $invoiceReceivables->getInvoiceReceivablesByIrsid ( $serial );
if (empty ( $detail ))
$html = '';
else {
$html = '
收款流水号 | ' . $detail ['receivablesSerial'] . ' |
录入收款 | ' . $detail ['inputStaff'] . ' ' . $detail ['date'] . ' |
收款金额 | ¥' . $detail ['receivablesPrice'] . ' |
收款信息 | ' . $detail ['receivablesMessage'] . ' |
收款银行 | ' . $detail ['receivablesBank'] . ' |
银行到帐 | ' . $detail ['receivablesDate'] . ' |
认领收款 | ' . $detail ['inputStaff'] . ' 转入 ' . $detail ['username'] . ' ' . $detail ['bindDate'] . ' |
';
}
echo json_encode ( array (
'status' => 1,
'html' => $html
) );
die ();
} elseif ($type == 'IRTC') {
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
Doo::loadModel ( 'invoiceOperationLog' );
$invoiceOperationLog = new invoiceOperationLog ();
Doo::loadModel ( 'invoiceReceivables' );
$invoiceReceivables = new invoiceReceivables ();
$detail = $invoice->getInvoiceByIsid ( $serial, $this->staff [0] ['sid'] );
$invoiceOperationLogList = $invoiceOperationLog->getInvoiceOperationLogByIid ( $detail ['iid'] );
if (empty ( $detail ))
$html = '';
else {
$receivablesPriceedHtml = '';
$receivablesPrice = $detail ['invoicePrice'];
if (! empty ( $detail ['irid'] )) {
$irList = $invoiceReceivables->getInvoiceReceivablesInIridString ( $detail ['irid'] );
if (empty ( $irList ))
$irList [0] ['sumPrice'] = 0;
$balance = $detail ['invoicePrice'] - $irList [0] ['sumPrice'];
$receivablesPriceedHtml = '
已入账金额 | ¥' . $irList [0] ['sumPrice'] . ' |
剩余入账金额 | ¥' . $balance . ' |
';
$receivablesPrice = $balance;
}
if ($loss)
$detail ['invoicePrice'] = - $detail ['invoicePrice'];
$html = $receivablesPriceedHtml . '
开票流水号 | ' . $detail ['invoiceSerial'] . ' |
提交时间 | ' . $detail ['date'] . ' |
所在办事处 | ' . $detail ['categoryName'] . '(' . $detail ['userName'] . ') |
开票内容 | ' . $detail ['invoiceElement'] . ' |
发票备注 | ' . $detail ['remark'] . ' |
数量 | ' . $detail ['invoiceQuantity'] . ' |
单价 | ¥' . $detail ['invoiceUnitPrice'] . ' |
开票金额 | ¥' . $detail ['invoicePrice'] . ' |
';
if ($detail ['invoiceType'] == 0) {
$html .= '
增值税普通发票 |
---|
发票抬头 | ' . $detail ['invoiceTitle'] . ' |
纳税人识别码 | ' . $detail ['TIN'] . ' |
';
$receivablesMessage = $detail ['invoiceTitle'];
} else {
$html .= '
增值税专用发票 |
---|
单位名称 | ' . $detail ['invoiceCompany'] . ' |
纳税人识别码 | ' . $detail ['TIN'] . ' |
';
$receivablesMessage = $detail ['invoiceCompany'];
}
$html .= '
注册地址 | ' . $detail ['address'] . ' |
注册电话 | ' . $detail ['phone'] . ' |
开户银行 | ' . $detail ['bankAccount'] . ' |
银行账户 | ' . $detail ['bank'] . ' |
';
if ($detail ['doPost'] == 1)
$html .= '邮寄信息 |
---|
收件人 | ' . $detail ['recipients'] . ' |
收件人手机/电话 | ' . $detail ['recipientsPhone'] . ' |
收件地址 | ' . $detail ['recipientsAddress'] . ' |
邮寄物品 | ' . $detail ['mailItems'] . ' |
';
if (! empty ( $invoiceOperationLogList )) {
$html .= '审批流程 |
---|
';
foreach ( $invoiceOperationLogList as $key => $value ) {
if ($value ['status'] == 1 || $value ['status'] == 2 || $value ['status'] == 3 || $value ['status'] == 4) {
$html .= '' . $value ['date'] . '
' . $value ['category'] . '-' . $value ['username'] . ' ';
if ($value ['status'] == 2) {
$html .= '同意';
} elseif ($value ['status'] == 3) {
$html .= '退回';
} elseif ($value ['status'] == 5) {
$html .= '打印';
}
$html .= $value ['operation'] . ' ';
}
}
$html .= ' |
';
}
}
echo json_encode ( array (
'status' => 1,
'html' => $html,
'receivablesPrice' => $receivablesPrice,
'receivablesMessage' => $receivablesMessage,
'receivablesDate' => date ( "Y-m-d" ),
'iidKey' => $serial
) );
die ();
}
}
function ajaxGetInvoiceReceivablesByStaff() {
$postData = $this->get_args ( 'postData' ) ? $this->get_args ( 'postData' ) : "";
if (empty ( $postData )) {
echo json_encode ( array (
'status' => 2,
'msg' => 'illegal request'
) );
die ();
}
Doo::loadModel ( 'invoiceReceivables' );
$invoiceReceivables = new invoiceReceivables ();
$detail = $invoiceReceivables->getInvoiceReceivablesByIrid ( $postData );
if (empty ( $detail )) {
echo json_encode ( array (
'status' => 2,
'msg' => 'illegal request'
) );
die ();
}
Doo::loadModel ( 'L_category' );
$lCategory = new L_category ();
Doo::loadModel ( 'staff' );
$staff = new staff ();
$staffList = $staff->getStaffByCid ( $detail ['cid'] );
$category = $lCategory->getCategory ();
$categoryHtml = '';
$staffHtml = '';
foreach ( $category as $key => $value ) {
$categoryHtml .= '';
if ($value ['cid'] == $detail ['cid'])
$categoryHtml .= '';
}
foreach ( $staffList as $key => $value ) {
$staffHtml .= '';
if ($value ['sid'] == $detail ['sid'])
$staffHtml .= '';
}
$rbankHtml = '';
echo json_encode ( array (
'status' => 1,
'categoryHtml' => $categoryHtml,
'staffHtml' => $staffHtml,
'rbankHtml' => $rbankHtml,
'detail' => $detail
) );
}
function ajaxGetInvoiceReceivablesByIrid() {
$irid = $this->get_args ( 'irid' ) ? $this->get_args ( 'irid' ) : "";
if (empty ( $irid )) {
echo json_encode ( array (
'status' => 2,
'msg' => 'illegal request'
) );
die ();
}
Doo::loadModel ( 'invoiceReceivables' );
$invoiceReceivables = new invoiceReceivables ();
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
$detail = $invoiceReceivables->getInvoiceReceivablesByIrid ( $irid ); // 入账完成 待定 and postStatus=1
$invoiceDetail = $invoice->getInvoiceByTitle ( $detail ['recepitTitleMark'], 'EXACTLY', " and status=2 and printStatus=1 and untreadStatus=0 " ); //
$receivablesHtml = '收款金额 | 银行到帐信息 | 银行/到帐时间 | 收款认领 | 开票单位 |
¥' . $detail ['receivablesPrice'] . ' |
' . $detail ['receivablesMessage'] . ' |
' . $detail ['receivablesBank'] . ' ' . $detail ['receivablesDate'] . ' |
' . $detail ['title'] . '-' . $detail ['username'] . ' ' . $detail ['confirmTime'] . ' |
' . $detail ['recepitTitleMark'] . ' |
';
$isInvoice = false;
$invoiceHtml = '';
if (empty ( $invoiceDetail )) {
$isInvoice = true;
} else {
$invoiceHtml = '
开票单位(抬头) | 开票金额 | 提交开票 | 出票 | 开票流水号 | 入账 |
---|
';
if (! empty ( $invoiceDetail ['invoiceType'] )) {
$invoiceHtml .= '' . $invoiceDetail ['invoiceCompany'] . ' | ';
} else {
$invoiceHtml .= '' . $invoiceDetail ['invoiceTitle'] . ' | ';
}
if (! empty ( $invoiceDetail ['invoiceType'] )) {
$invoiceHtml .= '' . $invoiceDetail ['invoicePrice'] . '专 | ';
} else {
$invoiceHtml .= '' . $invoiceDetail ['invoicePrice'] . ' | ';
}
$invoiceHtml .= '
' . $invoiceDetail ['categoryName'] . $invoiceDetail ['userName'] . ' ' . $invoiceDetail ['date'] . ' |
' . $invoiceDetail ['printer'] . ' ' . $invoiceDetail ['printTime'] . ' |
' . $invoiceDetail ['invoiceSerial'] . ' | 入账 |
';
$irList = $invoiceReceivables->getInvoiceReceivablesInIridString ( $invoiceDetail ['irid'] );
$balance = $invoiceDetail ['invoicePrice'] - $irList [0] ['sumPrice'];
$priceString = '';
if ($balance < $detail ['receivablesPrice']) {
$priceString = '收款金额超过开票金额,';
}
if ($balance > $detail ['receivablesPrice']) {
$priceString = '收款金额低于开票金额,';
}
$invoiceHtml .= '
';
}
echo json_encode ( array (
'status' => 1,
'irkey' => $detail ['iridEn'],
'receivablesHtml' => $receivablesHtml,
'isInvoice' => $isInvoice,
'invoiceHtml' => $invoiceHtml
) );
}
function ajaxGetInvoiceReceivablesByTitle() {
$title = $this->get_args ( 'title' ) ? $this->get_args ( 'title' ) : "";
if (empty ( $title )) {
echo json_encode ( array (
'status' => 2,
'msg' => 'illegal request'
) );
die ();
}
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
$invoiceDetail = $invoice->getInvoiceByTitle ( $title, 'EXACTLY', " and status=2 and printStatus=1 and untreadStatus=0 " );
$invoiceHtml = '';
if (! empty ( $invoiceDetail )) {
$invoiceHtml = '
开票单位(抬头) | 开票金额 | 提交开票 | 出票 | 开票流水号 | 入账 |
---|
';
if (! empty ( $invoiceDetail ['invoiceType'] )) {
$invoiceHtml .= '' . $invoiceDetail ['invoiceCompany'] . ' | ';
} else {
$invoiceHtml .= '' . $invoiceDetail ['invoiceTitle'] . ' | ';
}
if (! empty ( $invoiceDetail ['invoiceType'] )) {
$invoiceHtml .= '' . $invoiceDetail ['invoicePrice'] . '专 | ';
} else {
$invoiceHtml .= '' . $invoiceDetail ['invoicePrice'] . ' | ';
}
$invoiceHtml .= '
' . $invoiceDetail ['categoryName'] . $invoiceDetail ['userName'] . ' ' . $invoiceDetail ['date'] . ' |
' . $invoiceDetail ['printer'] . ' ' . $invoiceDetail ['printTime'] . ' |
' . $invoiceDetail ['invoiceSerial'] . ' | 入账 |
';
$invoiceHtml .= '
';
}
echo json_encode ( array (
'status' => 1,
'invoiceHtml' => $invoiceHtml
) );
}
function ajaxInvoicePushNotice() {
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
$approval = $invoice->getOne ( array (
'where' => 'status=1 and pendingApprovals=' . $this->staff [0] ['sid'],
'desc' => 'iid',
'asArray' => true
) );
$isNotice = false;
if (! empty ( $approval ))
$isNotice = true;
$response = array (
'error' => 0,
'isNotice' => $isNotice
);
echo json_encode ( $response );
exit ();
}
public function ajaxCheckInvoiceNoUniqueness() {
$invoiceNo = $this->get_args ( 'invoiceNo' ) ? $this->get_args ( 'invoiceNo' ) : "";
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
if (! empty ( $invoiceNo )) {
$info = $invoice->getOne ( array (
'where' => "invoiceNo = '" . $invoiceNo . "'",
'asArray' => TRUE
) );
if (! empty ( $info )) {
echo json_encode ( array (
'error' => '发票号已存在'
) );
die ();
} else
echo json_encode ( array (
'ok' => '可以使用!'
) );
die ();
}
}
function ajaxCheckInvoicePrice() {
$receivablesPrice = $this->get_args ( 'receivablesPrice' ) && is_numeric ( $this->get_args ( 'receivablesPrice' ) ) ? $this->get_args ( 'receivablesPrice' ) : "";
$iidKey = $this->get_args ( 'iidKey' ) ? $this->get_args ( 'iidKey' ) : "";
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
Doo::loadModel ( 'invoiceReceivables' );
$invoiceReceivables = new invoiceReceivables ();
Doo::loadClass ( 'XDeode' );
$XDeode = new XDeode ( 5 );
if (! empty ( $receivablesPrice ) && ! empty ( $iidKey )) {
$iidKey = $XDeode->decode ( $iidKey );
$info = $invoice->getInvoiceByIid ( $iidKey );
$irList = $invoiceReceivables->getInvoiceReceivablesInIridString ( $info ['irid'] );
if (empty ( $irList ))
$irList [0] ['sumPrice'] = 0;
$balance = $info ['invoicePrice'] - $irList [0] ['sumPrice'];
if ($balance < $receivablesPrice) {
echo json_encode ( array (
'error' => '收款金额超过开票金额。'
) );
die ();
}
if ($balance > $receivablesPrice) {
echo json_encode ( array (
'error' => '收款金额低于开票金额。'
) );
die ();
}
}
}
/**
* 旧输入导入
*/
function importInvoice() {
$emsg = isset ( $this->params ['emsg'] ) ? $this->params ['emsg'] : "";
$data ['emsg'] = "";
if ($emsg != "")
$data ['emsg'] = "请填写完整的数据";
$data ['time'] = time ();
$this->render ( "/admin/invoiceImport", $data );
}
function uploadInvoice() {
// move_uploaded_file($_FILES['Filedata']['tmp_name'], "/upload/".$_FILES['Filedata']['name']);
if (isset ( $_FILES ['Filedata'] ['name'] )) {
$file = $_FILES ['Filedata'] ['tmp_name'];
$error = false;
if (! is_uploaded_file ( $file )) {
$error = '400 Bad Request';
}
if ($error) {
header ( 'HTTP/1.0 ' . $error );
die ( 'Error ' . $error );
} else {
include (DOO::conf ()->SITE_PATH . 'protected/plugin/io.han.php');
$this->IoHandler = new IoHandler ();
$pics = explode ( '.', $_FILES ['Filedata'] ['name'] );
// $filedir=$_POST['time'];
// 调用定义物理路径
$t = DOO::conf ()->SITE_PATH . "upload/invoice/";
$this->IoHandler->MakeDir ( $t );
$filename = $this->_GetFileEXT ( $_FILES ['Filedata'] ['name'] );
if ($filename != 'xlsx')
return "";
// $upload_dir = $t."/".time().rand(10,100).".".$filename;
$upload_file = iconv ( "UTF-8", "GB2312", $_FILES ["Filedata"] ["name"] );
$upload_dir = $t . "/" . $upload_file;
$k = move_uploaded_file ( $file, $upload_dir );
if ($k) {
$m = round ( $_FILES ['Filedata'] ['size'] / 1024 / 1024, 2 );
echo $pics [0] . "." . $filename . "#" . $m . "#" . $_FILES ['Filedata'] ['size'];
}
}
}
}
function importInvoiceDo() {
$path = $this->get_args ( 'path' ) ? $this->get_args ( 'path' ) : "";
if ($path != "") {
Doo::loadModel ( 'invoice' );
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadModel ( 'invoiceStatistics' );
echo DOO::conf ()->SITE_PATH . "upload/invoice/" . iconv ( "UTF-8", "GB2312", $path );
$exlArray = $this->_format_excel_to_array ( DOO::conf ()->SITE_PATH . "upload/invoice/" . $path );
// print_r ( $exlArray );
// die ();
// echo json_encode($exlArray);die;
foreach ( $exlArray as $key => $value ) {
// 开票
$invoice = new invoice ();
$invoice->invoiceNo = $value ['invoiceNo'];
$invoice->invoiceType = 0;
if ($value ['invoiceNo'] == '专')
$invoice->invoiceType = 1;
$invoice->invoicePrice = $value ['invoicePrice'];
$invoice->invoiceTitle = $value ['invoiceTitle'];
if ($value ['invoiceNo'] == '专')
$invoice->invoiceCompany = $value ['invoiceTitle'];
$invoice->userName = $value ['userName'];
$sDetail = $staff->getStaffByName ( $value ['userName'] );
$invoice->sid = $sDetail ['sid'];
$invoice->cid = $sDetail ['cid'];
$invoice->categoryName = $sDetail ['category'];
$invoice->invoiceElement = $value ['invoiceElement'];
$invoice->remark = $value ['remark'];
$invoice->date = $value ['date'];
$invoice->printStatus = 1;
$invoice->status = 2;
$invoice->postStatus = 1;
$invoice->untreadStatus = 0;
$invoice->invoiceSerial = "#F" . date ( "Ymd" ) . mt_rand ( 1000, 9999 );
$invoice->insert ();
// 汇总
$invoiceStatistics = new invoiceStatistics ();
// 扣除入账统计金额
$item = array (
'date' => $value ['date'],
'priceClass' => 1,
'cid' => $sDetail ['cid'],
'staff' => $sDetail ['sid'],
'invoicePrice' => $value ['invoicePrice']
);
$invoiceStatistics->setInvoiceStatisticsByCondition ( $item );
}
return '/importInvoice?count=' . count ( $exlArray );
// return "/keyonline";
}
echo 'no file';
}
function importInvoiceReceivables() {
$emsg = isset ( $this->params ['emsg'] ) ? $this->params ['emsg'] : "";
$data ['emsg'] = "";
if ($emsg != "")
$data ['emsg'] = "请填写完整的数据";
$data ['time'] = time ();
$this->render ( "/admin/invoiceReceivablesImport", $data );
}
// 导入入账数据
function importInvoiceReceivablesDo() {
$path = $this->get_args ( 'path' ) ? $this->get_args ( 'path' ) : "";
include Doo::conf ()->BASE_PATH . 'diagnostic/debug.php';
if ($path != "") {
Doo::loadModel ( 'invoiceReceivables' );
Doo::loadModel ( 'invoice' );
Doo::loadModel ( 'staff' );
$staff = new staff ();
Doo::loadModel ( 'invoiceStatistics' );
// echo DOO::conf ()->SITE_PATH . "upload/invoice/" . iconv ( "UTF-8", "GB2312", $path );
$exlArray = $this->_format_excel_to_array ( DOO::conf ()->SITE_PATH . "upload/invoice/" . iconv ( "UTF-8", "GB2312", $path ), 'invoiceReceivables' );
// print_r ( $exlArray );
// die ();
// echo json_encode($exlArray);die;
foreach ( $exlArray as $key => $value ) {
// 收款
$invoiceReceivables = new invoiceReceivables ();
$invoice = new invoice ();
$invoiceReceivables->bindStatus = 1;
$invoiceReceivables->receivablesPrice = $value ['receivablesPrice'];
$invoiceReceivables->receivablesMessage = $value ['receivablesMessage'];
$invoiceReceivables->receivablesBank = $value ['receivablesBank'];
$invoiceReceivables->receivablesDate = $value ['receivablesDate'];
$sDetail = $staff->getStaffByName ( $value ['receivablesStaff'] );
$invoiceReceivables->receivablesCategory = $sDetail ['cid'] . ':' . $sDetail ['category'];
$invoiceReceivables->receivablesStaff = $sDetail ['sid'] . '-' . $sDetail ['username'];
$invoiceReceivables->receivablesSerial = "#SK" . date ( "Ymd" ) . mt_rand ( 1000, 9999 );
$invoiceReceivables->sourcePrice = $value ['sourcePrice'];
$iDetail = $invoice->getInvoiceByInvoiceNo ( $value ['invoiceNo'] );
$invoiceReceivables->iid = $iDetail ['iid'];
$irid = $invoiceReceivables->insert ();
// 发票绑定收款
$detail = $iDetail;
$iridString = "";
if (empty ( $detail ['irid'] ))
$iridString = $irid;
else
$iridString = $detail ['irid'] . ',' . $irid;
$item = array (
'irid' => $iridString,
'iid' => $detail ['iid']
);
$invoice->setInvoiceByCondition ( $item );
// 汇总
$invoiceStatistics = new invoiceStatistics ();
// 扣除入账统计金额
$item = array (
'date' => $value ['receivablesDate'],
'priceClass' => 3,
'cid' => $sDetail ['cid'],
'staff' => $sDetail ['sid'],
'irid' => $irid,
'accountPrice' => $value ['receivablesPrice']
);
$invoiceStatistics->setInvoiceStatisticsByCondition ( $item );
}
return '/importInvoiceReceivables?count=' . count ( $exlArray );
echo 'data count ' . count ( $exlArray );
die ();
// return "/keyonline";
}
echo 'no file';
}
/**
* 格式化excel文件为数组
* @param unknown_type $file_url
* @param unknown_type $mcid
*/
function _format_excel_to_array($file_url = "", $sType = "") {
if (! file_exists ( $file_url )) {
return array ();
}
Doo::loadClass ( 'PHPExcel' );
$PHPExcel = new PHPExcel ();
$PHPReader = new PHPExcel_Reader_Excel2007 ();
if (! $PHPReader->canRead ( $file_url )) {
$PHPReader = new PHPExcel_Reader_Excel5 ();
if (! $PHPReader->canRead ( $file_url )) {
echo 'no Excel';
return;
}
}
$PHPExcel = $PHPReader->load ( $file_url );
/* * 读取excel文件中的第一个工作表 */
$currentSheet = $PHPExcel->getSheet ( 0 );
/* * 取得最大的列号 */
$allColumn = $currentSheet->getHighestColumn ();
/* * 取得一共有多少行 */
$allRow = $currentSheet->getHighestRow ();
$excel_array = array ();
$conk = 2;
for($currentRow = $conk; $currentRow <= $allRow; $currentRow ++) {
$excel_column = array ();
// 后期改进
if ($allColumn == 'AM')
$allColumn = 'Z';
/* * 从第A列开始输出 */
for($currentColumn = 'A'; $currentColumn <= $allColumn; $currentColumn ++) {
$val = $currentSheet->getCellByColumnAndRow ( ord ( $currentColumn ) - 65, $currentRow )->getValue ();
if ($val instanceof PHPExcel_RichText)
$val = $val->__toString ();
/* * ord()将字符转为十进制数 iconv ( 'utf-8', 'gb2312', */
// $val = "'" . addslashes ( $val ) . "'";
if ($sType == 'invoiceReceivables') {
if ($currentColumn == 'A')
$excel_column ['invoiceNo'] = $val;
elseif ($currentColumn == 'B')
$excel_column ['receivablesPrice'] = $val;
elseif ($currentColumn == 'C') {
$excel_column ['receivablesMessage'] = $val;
} elseif ($currentColumn == 'D') {
$excel_column ['receivablesBank'] = $val;
} elseif ($currentColumn == 'E') {
$excel_column ['receivablesDate'] = $this->excelTime ( $val );
} elseif ($currentColumn == 'F') {
$excel_column ['receivablesStaff'] = $val;
} elseif ($currentColumn == 'G') {
$excel_column ['sourcePrice'] = $val;
}
} else {
if ($currentColumn == 'A')
$excel_column ['invoiceNo'] = $val;
elseif ($currentColumn == 'B')
$excel_column ['invoiceType'] = $val;
elseif ($currentColumn == 'C') {
$excel_column ['invoicePrice'] = $val;
} elseif ($currentColumn == 'D') {
$excel_column ['invoiceTitle'] = $val;
} elseif ($currentColumn == 'E') {
$excel_column ['userName'] = $val;
} elseif ($currentColumn == 'F') {
$excel_column ['categoryName'] = $val;
} elseif ($currentColumn == 'G') {
$excel_column ['invoiceElement'] = $val;
} elseif ($currentColumn == 'H') {
$excel_column ['remark'] = $val;
} elseif ($currentColumn == 'I') {
$excel_column ['date'] = $this->excelTime ( $val );
}
}
}
array_push ( $excel_array, $excel_column );
}
return $excel_array;
}
function excelTime($date, $time = false) {
if (function_exists ( 'GregorianToJD' )) {
if (is_numeric ( $date )) {
$jd = GregorianToJD ( 1, 1, 1970 );
$gregorian = JDToGregorian ( $jd + intval ( $date ) - 25569 );
$date = explode ( '/', $gregorian );
$date_str = str_pad ( $date [2], 4, '0', STR_PAD_LEFT ) . "-" . str_pad ( $date [0], 2, '0', STR_PAD_LEFT ) . "-" . str_pad ( $date [1], 2, '0', STR_PAD_LEFT ) . ($time ? " 00:00:00" : '');
return $date_str;
}
} else {
$date = $date > 25568 ? $date + 1 : 25569;
/* There was a bug if Converting date before 1-1-1970 (tstamp 0) */
$ofs = (70 * 365 + 17 + 2) * 86400;
$date = date ( "Y-m-d", ($date * 86400) - $ofs ) . ($time ? " 00:00:00" : '');
}
return $date;
}
/**
* 旧输入导入
*/
function _GetFileEXT($filename) {
$pics = explode ( '.', $filename );
$num = count ( $pics );
return $pics [$num - 1];
}
function showCache($path = "") {
// if (file_exists ( $path )) {
// $htm = file_get_contents ( $path );
// } else {
Doo::loadModel ( 'invoiceStatistics' );
$invoiceStatistics = new invoiceStatistics ();
$isBriefly = $invoiceStatistics->getBrieflyStatistics ();
$htm = '' . $isBriefly ['statisticsMonth'] [0] ['month'] . '月累计开票 |
¥' . $isBriefly ['statisticsMonth'] [0] ['invoicePrice'] . ' |
' . $isBriefly ['statisticsMonth'] [0] ['month'] . '月累计入账 |
¥' . $isBriefly ['statisticsMonth'] [0] ['accountPrice'] . ' |
';
/*
* '今年累计开票 | ¥' . $isBriefly ['statisticsYear'] [0] ['invoicePrice'] . ' | 今年累计入账 | ¥' . $isBriefly ['statisticsYear'] [0] ['accountPrice'] . ' |
';
*/
file_put_contents ( $path, $htm, FILE_APPEND );
// }
return $htm;
}
/**
* 获取get或者POST值
*
* @param string $name 属性名称
* @return fixed 值
*/
function get_args($name) {
if (isset ( $_GET [$name] )) {
if (is_array ( $_GET [$name] ))
return $_GET [$name];
else
return addslashes ( $_GET [$name] );
} elseif (isset ( $_POST [$name] )) {
if (is_array ( $_POST [$name] ))
return $_POST [$name];
else
return addslashes ( $_POST [$name] );
} else
return false;
}
function SafeFilter(&$arr) {
$ra = Array (
'/([\x00-\x08,\x0b-\x0c,\x0e-\x19])/',
'/script/',
'/javascript/',
'/vbscript/',
'/expression/',
'/applet/',
'/meta/',
'/xml/',
'/blink/',
'/link/',
'/style/',
'/embed/',
'/object/',
'/frame/',
'/layer/',
'/title/',
'/bgsound/',
'/base/',
'/onload/',
'/onunload/',
'/onchange/',
'/onsubmit/',
'/onreset/',
'/onselect/',
'/onblur/',
'/onfocus/',
'/onabort/',
'/onkeydown/',
'/onkeypress/',
'/onkeyup/',
'/onclick/',
'/ondblclick/',
'/onmousedown/',
'/onmousemove/',
'/onmouseout/',
'/onmouseover/',
'/onmouseup/',
'/onunload/'
);
if (is_array ( $arr )) {
foreach ( $arr as $key => $value ) {
if (! is_array ( $value )) {
if (! get_magic_quotes_gpc ()) // 不对magic_quotes_gpc转义过的字符使用addslashes(),避免双重转义。
{
$value = addslashes ( $value ); // 给单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)加上反斜线转义
}
$value = preg_replace ( $ra, '', $value ); // 删除非打印字符,粗暴式过滤xss可疑字符串
$arr [$key] = htmlentities ( strip_tags ( $value ) ); // 去除 HTML 和 PHP 标记并转换为 HTML 实体
} else {
SafeFilter ( $arr [$key] );
}
}
}
}
/**
* Escape String
*
* @access public
* @param string
* @param bool whether or not the string will be used in a LIKE condition
* @return string
*/
function escape_str($str, $like = FALSE) {
if (is_array ( $str )) {
foreach ( $str as $key => $val ) {
$str [$key] = $this->escape_str ( $val, $like );
}
return $str;
}
var_dump ( Doo::db ()->getDbObject () );
die ();
if (function_exists ( 'mysql_real_escape_string' ) and is_resource ( Doo::db ()->getDbObject () )) { // Doo::db ()->getDbObject()
$str = mysql_real_escape_string ( $str, Doo::db ()->getDbObject () );
} elseif (function_exists ( 'mysql_escape_string' )) {
$str = mysql_escape_string ( $str );
} else {
$str = addslashes ( $str );
}
// escape LIKE condition wildcards
if ($like === TRUE) {
$str = str_replace ( array (
'%',
'_'
), array (
'\\%',
'\\_'
), $str );
}
return $str;
}
/**
* 获得分页数据
* @param unknown_type $table
* @param unknown_type $condition
* @param unknown_type $on_page
* @param unknown_type $page_size
*/
function get_page($table = "", $condition = "", $on_page = 1, $page_size = 20, $action = "", $get = "", $other = "page") {
$page_c = "";
$page ['previous'] = $this->get_previous ( $on_page );
$page ['on_page'] = $on_page;
$total_count = $this->get_table_count ( $table, $condition );
$total = intval ( $total_count / $page_size );
$page ['total_page'] = ($total_count % $page_size) == 0 ? $total : $total + 1;
$page ['total_data'] = $total_count;
$page ['next'] = $on_page == $page ['total_page'] ? $page ['total_page'] : $on_page + 1;
$i = 1;
$page_max = 1;
$page_width = 3;
if ($on_page >= $page_width) {
$page_max = intval ( $on_page / $page_width ) + 1;
$i = intval ( $on_page / $page_width ) * $page_width - 1;
}
for(; $i <= $page ['total_page']; $i ++) {
if ($i == $on_page)
$page_c .= '' . $i . '';
else
$page_c .= '' . $i . '';
if ($i == ($page_width * $page_max))
break;
}
$page ['page'] = $page_c;
$page ['lower'] = (-- $on_page) * $page_size;
return $page;
}
/**
* 获取上一页
* @param unknown_type $on_page
*/
function get_previous($on_page = 1) {
return $on_page != 0 ? $on_page - 1 : $on_page;
}
/**
* 获取总页数
* @param unknown_type $table
* @param unknown_type $condition
*/
public function get_table_count($table = "", $condition = "") {
// $sql = "select count(*) as count from " . $table . " where 1 " . $condition;
$sql = "select count(*) as count from " . $table . " where " . $condition;
// echo $sql;die;
$query = Doo::db ()->query ( $sql );
$result = $query->fetch ();
return $result ['count'];
}
function isInvoiceNew($type = "GLOBAL") {
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
Doo::loadModel ( 'invoiceReceivables' );
$invoiceReceivables = new invoiceReceivables ();
Doo::loadModel ( 'staff' );
$staff = new staff ();
$st = $staff->getUserByIdList ( $_COOKIE ["staff"] );
// 我的发票待处理
$pendingInvoice = $invoice->getOne ( array ( // or (status=2 and printStatus=1 and untreadStatus=0 ) or (status=2 and printStatus=1 and untreadStatus=2 )
'where' => "(status=3 or status=4) and isDelete=0 and sid=" . $st [0] ['sid'],
'desc' => 'iid',
'asArray' => TRUE
) );
// 我的收款待入账
/*
* $myClaim = $invoiceReceivables->getOne ( array ( 'where' => " receivablesStaff like '" . $st [0] ['sid'] . "-%' and receivablesCategory like '" . $st [0] ['cid'] . ":%' and bindStatus=0", 'desc' => 'irid', 'asArray' => TRUE ) );
*/
// 发票审批
$approval = $invoice->getOne ( array (
'where' => 'status=1 and pendingApprovals=' . $st [0] ['sid'],
'desc' => 'iid',
'asArray' => true
) );
// 发票邮寄
$post = $invoice->getOne ( array (
'where' => "postStatus=0 and doPost=1 and status=2",
'asArray' => TRUE
) );
// 发票打印
$print = $invoice->getOne ( array (
'where' => "status=2 and printStatus=0 and moldManage like '%[\"" . $st [0] ['sid'] . "\",%'",
'desc' => 'iid',
'asArray' => TRUE
) );
// 发票退票
$untread = $invoice->getOne ( array (
'where' => " printStatus=1 and untreadStatus=1 and status=2 ",
'asArray' => TRUE
) );
$new = array (
'GLOBAL' => FALSE,
'pendingInvoice' => FALSE,
// 'myClaim' => FALSE,
'approval' => FALSE,
'post' => FALSE,
'print' => FALSE,
'untread' => FALSE
);
// || ! empty ( $myClaim )
if (! empty ( $pendingInvoice ) || ! empty ( $approval ) || ! empty ( $post ) || ! empty ( $print ) || ! empty ( $untread ))
$new ['GLOBAL'] = TRUE;
if (! empty ( $pendingInvoice ))
$new ['pendingInvoice'] = TRUE;
// if (! empty ( $myClaim ))
// $new ['myClaim'] = TRUE;
if (! empty ( $approval ))
$new ['approval'] = TRUE;
if (! empty ( $post ))
$new ['post'] = TRUE;
if (! empty ( $print ))
$new ['print'] = TRUE;
if (! empty ( $untread ))
$new ['untread'] = TRUE;
return $new;
}
function setWXMsg($rid, $typeMsg = '') {
Doo::loadModel ( 'invoice' );
$invoice = new invoice ();
$invoiceDetail = $invoice->getOne ( array (
'where' => 'iid=' . $rid,
'asArray' => true
) );
if (! empty ( $invoiceDetail )) {
Doo::loadModel ( 'staff' );
$staff = new staff ();
$staffmsg = $staff->getOne ( array (
'where' => "sid='" . $invoiceDetail ['sid'] . "'",
'asArray' => TRUE
) );
if (! empty ( $staffmsg ['wxid'] )) {
require_once (SITE_PATH . '/protected/class/client.php');
$client = new client ( 'http://m.cld.smartcost.com.cn/' );
$user = $staffmsg ['wxid'];
$expCom = explode ( ":", $invoiceDetail ['expressCompany'] );
if (empty ( $expCom ))
$expCom [0] = '';
$msg = "";
if (empty ( $typeMsg ))
$msg = '太好了,您的发票' . $invoiceDetail ['invoiceSerial'] . ' 已邮寄 ' . $expCom [0] . ' ,快递号: ' . $invoiceDetail ['expressNumber'] . '';
elseif ($typeMsg == "PRINT")
$msg = '太好了,您的发票已打印完成。';
$result = $client->SendMsg ( $user, $msg, 'text' );
}
}
}
private function msgSend($msg, $title, $url, $user, $text = '') {
$token = $this->getAccessToken ();
if ($text == 'text') {
$data = '{
"touser": "' . $user . '",
"toparty": "",
"totag": "",
"msgtype": "text",
"agentid": 1000002,
"text": {
"content": "' . $msg . '"
},
"safe":0
}';
} else {
$data = '{
"touser": "' . $user . '",
"toparty": "",
"totag": "",
"msgtype": "news",
"agentid": 1000002,
"news": {
"articles":[
{
"title": "' . $title . '",
"description": "' . $msg . '",
"url": "' . $url . '",
"picurl": ""
}
]
}
}';
}
$result = json_decode ( $this->httpPOST ( "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={$token}", $data ) );
if ($result->errmsg != 'ok') {
return 0;
} else {
return 1;
}
}
private function getAccessToken() {
// access_token 应该全局存储与更新,以下代码以写入到文件中做示例
//$file = './access_token.txt';
//$data = json_decode ( file_get_contents ( $file ) );
//if ($data->expire_time < time () or ! $data->expire_time) {
// 如果是企业号用以下URL获取access_token
$url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$this->appId&corpsecret=$this->appSecret";
// $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$this->appId&secret=$this->appSecret";
$res = json_decode ( $this->httpGet ( $url ) );
$access_token = $res->access_token;
//echo $access_token;
// if ($access_token) {
// $data->expire_time = time () + 7000;
// $data->access_token = $access_token;
// $fp = fopen ( $file, "w" );
// fwrite ( $fp, json_encode ( $data ) );
// fclose ( $fp );
// }
// } else {
// $access_token = $data->access_token;
// }
return $access_token;
}
private function httpGet($url) {
$curl = curl_init ();
curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, true );
curl_setopt ( $curl, CURLOPT_TIMEOUT, 500 );
// 为保证第三方服务器与微信服务器之间数据传输的安全性,所有微信接口采用https方式调用,必须使用下面2行代码打开ssl安全校验。
// 如果在部署过程中代码在此处验证失败,请到 http://curl.haxx.se/ca/cacert.pem 下载新的证书判别文件。
curl_setopt ( $curl, CURLOPT_SSL_VERIFYPEER, true );
curl_setopt ( $curl, CURLOPT_SSL_VERIFYHOST, false );
curl_setopt ( $curl, CURLOPT_URL, $url );
$res = curl_exec ( $curl );
curl_close ( $curl );
return $res;
}
private function httpPost($url, $data) {
$curl = curl_init ();
curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, true );
curl_setopt ( $curl, CURLOPT_TIMEOUT, 500 );
// 为保证第三方服务器与微信服务器之间数据传输的安全性,所有微信接口采用https方式调用,必须使用下面2行代码打开ssl安全校验。
// 如果在部署过程中代码在此处验证失败,请到 http://curl.haxx.se/ca/cacert.pem 下载新的证书判别文件。
curl_setopt ( $curl, CURLOPT_SSL_VERIFYPEER, true );
curl_setopt ( $curl, CURLOPT_SSL_VERIFYHOST, false );
curl_setopt ( $curl, CURLOPT_URL, $url );
curl_setopt ( $curl, CURLOPT_POST, 1 );
curl_setopt ( $curl, CURLOPT_POSTFIELDS, $data );
$res = curl_exec ( $curl );
curl_close ( $curl );
return $res;
}
}
?>