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' ) ); foreach ( $moldList as $value ) { // echo $value['mold']; // echo $action; 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 invoice() { Doo::loadModel ( 'invoice' ); $invoice = new invoice (); Doo::loadModel ( 'express' ); $express = new express (); 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 ); Doo::loadClass ( 'XDeode' ); $XDeode = new XDeode ( 5 ); $sid = $XDeode->decode ( $_COOKIE ["staff"] ); //$expressList = $express->getExpressByAll (); $invoiceList = $invoice->getMyInvoice ( $sid ); // $list = $invoiceReceivables->getInvoiceReceivablesByClaim ( $this->staff [0] ['cid'], $this->staff [0] ['sid'] ); $sql = 'status=2 and printStatus=1 and irid!="" and sid=' . $sid; $list = $invoice->getInvoiceByUntreadStatusPage ( 4, $sql ); // print_r($list); $this->data ['isMonth'] = $isMonth; $this->data ['htm'] = $htm; //$this->data ['expressList'] = $expressList; $this->data ['invoiceList'] = $invoiceList; $this->data ['receivablesList'] = $list; $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' ) : ""; $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' ) : ""; // echo $softLock;die; /* * $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 ( $invoicePrice ) && ! 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 (); Doo::loadModel ( 'invoiceStatistics' ); $invoiceStatistics = new invoiceStatistics (); $categoryDetil = $lCategory->getOne ( array ( 'SELECT' => 'title', 'where' => 'cid=' . $cid, 'asArray' => true ) ); $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 ( 'cid' => $cid, 'categoryName' => $categoryDetil ['title'], 'invoiceElement' => $invoiceElement, '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' => $invoiceManageDetail ['staffList'] [0] [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 ); $item = array ( 'date' => date ( "Y-m-d H:i:s" ), 'priceClass' => 1, 'cid' => $this->staff [0] ['cid'], 'staff' => $this->staff [0] ['sid'], 'invoicePrice' => $invoicePrice ); $invoiceStatistics->setInvoiceStatisticsByCondition ( $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"; } /** * @deprecated * 申请退票 --需求变更 废弃 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' ) : ""; $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 (); 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" ) ); if ($untreadPost == 1) { $item += array ( 'untreadCompany' => $untreadCompany, 'untreadNumber' => $untreadNumber, 'untreadItems' => $untreadItems ); } $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 ) ); $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' ); if (! empty ( $iid ) && ! empty ( $status ) && ! empty ( $opinion )) { 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 ) ); if ($status != 4 && isset ( $invoiceManage [1] )) $invoice->pendingApprovals = $invoiceManage [1] [0]; $invoice->processApprovals = json_encode ( $processApprovals ); } 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 (); $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 ); 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' ); $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, 41 ); 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 invoiceUntread() { Doo::loadModel ( 'invoice' ); $invoice = new invoice (); $untreadInvoice = $invoice->getInvoiceByUntreadStatus ( 1 ); $establishedInvoice = $invoice->getInvoiceByUntreadStatus ( 2 ); $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 (); $iid = $invoice->authcode ( $untreadIidKey ); if (! empty ( $iid ) && ! is_numeric ( $iid )) die ( 'illegal request' ); $item = array ( 'iid' => $iid, '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 ); 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 ( $invoiceTC ); 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; } $receivablesInput=$invoiceReceivables->getInvoiceReceivablesByInput(); //print_r($receivablesInput); $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'], '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'] ); $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 ); 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 ); } /** * @deprecated * 收款绑定发票 ,一个收款只能绑定一个发票 --废弃 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(!empty($detail['irid'])) 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'], '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 ); $invoice->setInvoiceByCondition ( $item ); // 操作日志 $item = array ( 'date' => date ( "Y-m-d H:i:s" ), 'operation' => "收款" . $detailM ['receivablesSerial'] . "入账到发票" . $detail ['invoiceSerial'], 'status' => 8, 'img' => $this->staff [0] ['avatar'], 'username' => $this->staff [0] ['username'], 'uid' => $this->staff [0] ['sid'], 'category' => $this->staff [0] ['category'], 'iid' => $detail ['iid'] ); $invoiceOperationLog->setInvoiceOperationLog ( $item ); return "/invoiceReceivables"; } */ /** * @deprecated * 发票收款完成--需求更变 废弃 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 .= ''; $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 untreadStatus=3 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 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 invoiceReceivablesAS() { Doo::loadModel ( 'invoiceReceivables' ); $invoiceReceivables = new invoiceReceivables (); $MebSea = isset ( $this->params ['MebSea'] ) ? addslashes ( urldecode ( $this->params ['MebSea'] ) ) : ''; $page_size = 12; $page = isset ( $this->params ['page'] ) && is_numeric ( $this->params ['page'] ) ? $this->params ['page'] : 1; $status = isset ( $this->params ['status'] ) ? $this->params ['status'] : 'All'; $year = isset ( $this->params ['year'] ) && is_numeric ( $this->params ['year'] ) ? $this->params ['year'] : date ( 'Y' ); $month = isset ( $this->params ['month'] ) && is_numeric ( $this->params ['month'] ) ? $this->params ['month'] : "All"; $con = "Year(date) =" . $year; if ($month != "All") $con = "Year(date) =" . $year . " and Month(date) = " . $month; if ($status == 'Unclaimed') $con .= ' and bindStatus=0'; elseif ($status == 'Credited') $con .= ' and bindStatus=1'; $get = "/" . $status . "/" . $year . "/" . $month; if (! empty ( $MebSea )) { $con .= ' and ( receivablesMessage like "%' . $MebSea . '%" or receivablesPrice like "%' . $MebSea . '%" )'; $get .= "/" . $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 ); // print_r($pageinfo); $mothHtml = ""; for($i = 1; $i <= 12; $i ++) { if ($month == $i) $mothHtml .= ''; else $mothHtml .= ''; } $this->data ['MebSeaEn'] = $MebSea; $this->data ['MebSea'] = urlencode ( $MebSea ); $this->data ['mothHtml'] = $mothHtml; $this->data ['year'] = $year; $this->data ['month'] = $month; $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 = 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 = '(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 ) ); } /** * @deprecated * 获得与我有关收款数据 --需求变更 废弃 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' ) : ""; 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 = ' '; } echo json_encode ( array ( 'status' => 1, 'html' => $html ) ); die (); } elseif ($type == 'RECEIVABLES') { Doo::loadModel ( 'invoiceReceivables' ); $invoiceReceivables = new invoiceReceivables (); $detail = $invoiceReceivables->getInvoiceReceivablesByIrsid ( $serial, $this->staff [0] ['sid'] ); if (empty ( $detail )) $html = ''; else { $html = ''; } echo json_encode ( array ( 'status' => 1, 'html' => $html ) ); die (); } elseif ($type == 'IRTC') { 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 ['remark'] . '
开票金额¥' . $detail ['invoicePrice'] . ' 开票内容' . $detail ['invoiceElement'] . '
'; if ($detail ['invoiceType'] == 0) $html .= ''; else $html .= '
增值税普通发票
发票抬头' . $detail ['invoiceTitle'] . ' 纳税人识别码' . $detail ['TIN'] . '
'; $html .= '
增值税专用发票
单位名称' . $detail ['invoiceCompany'] . ' 纳税人识别码' . $detail ['TIN'] . '
注册地址' . $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, '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); $invoiceDetail=$invoice->getInvoiceByTitle($detail['recepitTitleMark'],'EXACTLY'," and status=2 and printStatus=1 and irid='' ");// $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 .= ''; } else { $invoiceHtml .= ''; } if (! empty ( $invoiceDetail ['invoiceType'] )) { $invoiceHtml .= ''; } else { $invoiceHtml .= ''; } $invoiceHtml.=' '; $invoiceHtml.='
开票单位(抬头)开票金额提交开票出票开票流水号入账
' . $invoiceDetail ['invoiceCompany'] . '' . $invoiceDetail ['invoiceTitle'] . '' . $invoiceDetail ['invoicePrice'] . '专' . $invoiceDetail ['invoicePrice'] . '' . $invoiceDetail ['categoryName'].$invoiceDetail ['userName'] . ' ' . $invoiceDetail ['date']. ' ' . $invoiceDetail ['printer']. ' ' . $invoiceDetail ['printTime']. ' ' . $invoiceDetail ['invoiceSerial']. '入账
'; } 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 irid='' "); $invoiceHtml=''; if(!empty($invoiceDetail)){ $invoiceHtml=''; if (! empty ( $invoiceDetail ['invoiceType'] )) { $invoiceHtml .= ''; } else { $invoiceHtml .= ''; } if (! empty ( $invoiceDetail ['invoiceType'] )) { $invoiceHtml .= ''; } else { $invoiceHtml .= ''; } $invoiceHtml.=' '; $invoiceHtml.='
开票单位(抬头)开票金额提交开票出票开票流水号入账
' . $invoiceDetail ['invoiceCompany'] . '' . $invoiceDetail ['invoiceTitle'] . '' . $invoiceDetail ['invoicePrice'] . '专' . $invoiceDetail ['invoicePrice'] . '' . $invoiceDetail ['categoryName'].$invoiceDetail ['userName'] . ' ' . $invoiceDetail ['date']. ' ' . $invoiceDetail ['printer']. ' ' . $invoiceDetail ['printTime']. ' ' . $invoiceDetail ['invoiceSerial']. '入账
'; } echo json_encode ( array ( 'status' => 1, 'invoiceHtml' => $invoiceHtml ) ); } 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 ( 'where' => "(status=3 or status=4 or (status=2 and printStatus=1 and untreadStatus=0 ) or (status=2 and printStatus=1 and untreadStatus=2 ) ) 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, $uid) { Doo::loadModel ( 'invoice' ); $invoice = new invoice (); $receiptDetail = $invoice->getOne ( array ( 'where' => 'iid=' . $rid, 'asArray' => true ) ); if (! empty ( $receiptDetail )) { Doo::loadModel ( 'staff' ); $staff = new staff (); $staffmsg = $staff->getOne ( array ( 'where' => "sid='" . $uid . "'", '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']; $receiptName = '费用'; $msg = ''; // switch ($receiptDetail ['Rtype']) { // case 0 : // $receiptName = '报销'; // break; // case 1 : // $receiptName = '借款'; // break; // case 2 : // $receiptName = '对公汇款'; // break; // } // 单位名称 金额 开票内容 已邮寄,顺丰 123123213 switch (2) { case 1 : $msg = '太好了,您的' . $receiptName . ' ' . $receiptDetail ['invoiceElement'] . ',¥' . $receiptDetail ['invoicePrice'] . ',已同意支付。'; break; case 2 : $msg = '注意,您的' . $receiptName . ' ' . $receiptDetail ['invoiceElement'] . ',¥' . $receiptDetail ['invoicePrice'] . ',已被撤回,请及时处理。'; break; case 3 : $msg = '很遗憾,您的' . $receiptName . ' ' . $receiptDetail ['receiptOrder'] . ',¥' . $receiptDetail ['sum'] . ',已被终止。'; break; } $result = $client->SendMsg ( $user, $msg, 'text' ); } } } } ?>