123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794 |
- <?php
- class fee_service {
- private $accountItem;
- private $verify;
- private $receipt;
- private $XDeode;
- private $category;
- private $staff;
- function __construct() {
- Doo::loadModel ( 'cld/account_item_cld' );
- $this->accountItem = new account_item_cld ();
- Doo::loadModel ( 'cld/verify_cld' );
- $this->verify = new verify_cld ();
- Doo::loadModel ( 'cld/receipt_cld' );
- $this->receipt = new receipt_cld ();
- Doo::loadClass ( 'XDeode' );
- $this->XDeode = new XDeode ( 9 );
- Doo::loadModel ( 'receiptDetail' );
- Doo::loadModel ( 'cld/category_cld' );
- $this->category = new category_cld ();
- Doo::loadModel ( 'cld/traveDate_cld' );
- $this->traveDate_cld = new traveDate_cld ();
- Doo::loadModel ( 'cld/staff_cld' );
- $this->staff = new staff_cld ();
- }
-
- // 费用 报销单-创建-参数校验
- public function ValidRuleReceiptCreate($data = array()) {
- if (empty ( $data ['verifyId'] )) {
- die ( 'illegal request-请选择审批组' );
- }
- $data ['verifyId'] = $this->XDeode->decode ( $data ['verifyId'] );
- if (! is_numeric ( $data ['verifyId'] )) {
- die ( 'illegal request-请选择审批组' );
- }
-
- if (empty ( $data ['officeId'] )) {
- die ( 'illegal request-请选择办事处' );
- }
- $data ['officeId'] = $this->XDeode->decode ( $data ['officeId'] );
- if (! is_numeric ( $data ['officeId'] )) {
- die ( 'illegal request-请选择办事处' );
- }
-
- if ($data ['traveData'] == "" && $data ['officeData'] == "" && $data ['trainData'] == "") {
- die ( 'illegal request-请选择费用类型' );
- }
-
- // 字符串转换Json
- $hasType = 0;
- if ($data ['traveData'] != "") {
- $data ['traveJson'] = json_decode ( $data ['traveData'], true );
- if ($data ['traveJson'] ['show']) {
- $hasType ++;
- // 日期合法性检查
-
- //print_r($data ['traveJson']);die;
- }
- }
- if ($data ['officeData'] != "") {
- $data ['officeJson'] = json_decode ( $data ['officeData'], true );
- if ($data ['officeJson'] ['show']) {
- $hasType ++;
- }
- }
- if ($data ['trainData'] != "") {
- $data ['trainJson'] = json_decode ( $data ['trainData'], true );
- if ($data ['trainJson'] ['show']) {
- $hasType ++;
- }
- }
- if ($hasType == 0) {
- die ( 'illegal request-请选择费用类型' );
- }
-
- return $data;
- }
-
- // 获得费用的细则
- public function GetAccountItem() {
- $data = $this->accountItem->GetAll ();
- $list = array (
- 'daily' => array (),
- 'other' => array (),
- 'trave' => array (),
- 'train' => array ()
- );
- foreach ( $data as $value ) {
- $value ['price'] = 0;
- if ($value ['category'] == "日常相关费用") {
- array_push ( $list ['daily'], $value );
- }
- if ($value ['category'] == "其他") {
- array_push ( $list ['other'], $value );
- }
- if ($value ['category'] == "内部培训费用") {
- array_push ( $list ['train'], $value );
- }
- if ($value ['category'] == "差旅相关费用") {
- $value ['remark'] = "";
- array_push ( $list ['trave'], $value );
- }
- }
- return $list;
- }
-
- // 审批组
- public function GetVerifyType($subordinate="",$subordinate2="") {
- $list = $this->verify->getVerifyBySubordinate($subordinate,$subordinate2);
- return $list;
- }
-
- // 获得报销单
- public function GetReceipt($receiptId) {
- $detail = $this->receipt->Get ( $receiptId );
- $detail ['verify'] = $this->XDeode->encode ( $detail ['verify'] );
- $detail ['cid'] = $this->XDeode->encode ( $detail ['cid'] );
- $detail ['receiptId'] = $this->XDeode->encode ( $detail ['rid'] );
-
- //费用结算-用于流水
- $relust = bcsub ( $detail ['sum'], $detail ['loanSum'], 2 );
- $detail ['relust'] = $relust;
- $detail ['relustABS'] = abs ( $relust );
-
-
-
- return $detail;
- }
-
- // 创建报销单
- public function ReceiptCreate($data, $staff) {
- $receipt = new receipt_cld ();
-
- // 1.办事处相关费用
- $total = 0;
- if (! empty ( $data ['officeData'] )) {
- if ($data ['officeJson'] ['show']) {
- foreach ( $data ['officeJson'] ['daily'] as $value ) {
- $total = bcadd ( $total, $value ['price'], 2 );
- }
- foreach ( $data ['officeJson'] ['other'] as $value ) {
- $total = bcadd ( $total, $value ['price'], 2 );
- }
- }
- }
- // 差旅相关费用
- if (! empty ( $data ['traveData'] )) {
- if ($data ['traveJson'] ['show']) {
- foreach ( $data ['traveJson'] ['trave'] as $value ) {
- $total = bcadd ( $total, $value ['price'], 2 );
- }
- }
- }
- // 内部培训费用
- if (! empty ( $data ['trainData'] )) {
- if ($data ['trainJson'] ['show']) {
- foreach ( $data ['trainJson'] ['train'] as $value ) {
- $total = bcadd ( $total, $value ['price'], 2 );
- }
- }
- }
-
- $receipt->officeJson = $data ['officeData'];
- $receipt->traveJson = $data ['traveData'];
- $receipt->trainJson = $data ['trainData'];
-
- $receipt->remittanceName = $data ['remittanceName'];
- $receipt->bankName = $data ['bankName'];
- $receipt->bankNumber = $data ['bankNumber'];
- $receipt->remittanceBankType = $data ['remittanceBankType'];
- if ($data ['remittanceBankType'] == 1) {
- $receipt->coupletNumber = $data ['coupletNumber'];
- }
-
- $receipt->status = 5;
- $receipt->date = date ( "Y-m-d" );
- $receipt->staff = $staff ['sid'];
- $receipt->cid = $data ['officeId'];
- $receipt->verify = $data ['verifyId'];
- $receipt->sum = $total;
- $receipt->receiptOrder = "#B" . date ( "Ymd" ) . mt_rand ( 1000, 9999 );
-
- Doo::loadModel ( 'execute' );
- $execute = new execute ();
- $executeDetail = $execute->getOne ( array (
- 'where' => 'mold="报销单执行人"',
- 'asArray' => true
- ) );
- $receipt->executeCopy = $executeDetail ['staff'];
- $receipt->version = 1;
- $rid = $receipt->insert ();
-
- // 附件
- if (! empty ( $data ['enclosurFiles'] )) {
- Doo::loadModel ( 'enclosur' );
- $data ['enclosurFiles'] = json_decode ( $data ['enclosurFiles'], true );
- foreach ( $data ['enclosurFiles'] as $value ) {
- $enclosur = new enclosur ();
- $enclosur->name = $value ['path'];
- $enclosur->rid = $rid;
- $enclosur->insert ();
- }
- }
-
- // 创建报销单详情
- $this->makeReceiptDetailCreate ( $data, $staff, $rid );
-
- return "";
- }
-
- // 编辑报销单
- public function ReceiptEdi($data, $staff) {
- $receiptId = $this->XDeode->decode ( $data ['receiptId'] );
- if (! is_numeric ( $receiptId )) {
- die ( 'illegal request-找不到该报销单-参数不正确' );
- }
- $detail = $this->receipt->Get ( $receiptId );
- if (empty ( $detail )) {
- die ( 'illegal request-找不到该报销单' );
- }
-
- $receipt = new receipt_cld ();
- // 1.办事处相关费用
- $total = 0;
- if (! empty ( $data ['officeData'] )) {
- if ($data ['officeJson'] ['show']) {
- foreach ( $data ['officeJson'] ['daily'] as $value ) {
- $total = bcadd ( $total, $value ['price'], 2 );
- }
- foreach ( $data ['officeJson'] ['other'] as $value ) {
- $total = bcadd ( $total, $value ['price'], 2 );
- }
- }
- }
- // 差旅相关费用
- if (! empty ( $data ['traveData'] )) {
- if ($data ['traveJson'] ['show']) {
- foreach ( $data ['traveJson'] ['trave'] as $value ) {
- $total = bcadd ( $total, $value ['price'], 2 );
- }
- }
- }
- // 内部培训费用
- if (! empty ( $data ['trainData'] )) {
- if ($data ['trainJson'] ['show']) {
- foreach ( $data ['trainJson'] ['train'] as $value ) {
- $total = bcadd ( $total, $value ['price'], 2 );
- }
- }
- }
-
- $receipt->officeJson = $data ['officeData'];
- $receipt->traveJson = $data ['traveData'];
- $receipt->trainJson = $data ['trainData'];
-
- $receipt->remittanceName = $data ['remittanceName'];
- $receipt->bankName = $data ['bankName'];
- $receipt->bankNumber = $data ['bankNumber'];
- $receipt->remittanceBankType = $data ['remittanceBankType'];
- if ($data ['remittanceBankType'] == 1) {
- $receipt->coupletNumber = $data ['coupletNumber'];
- }
-
- $receipt->cid = $data ['officeId'];
- if($data ['status']!=4){
- $receipt->verify = $data ['verifyId'];
- }
-
- $receipt->sum = $total;
-
- Doo::loadModel ( 'execute' );
- $execute = new execute ();
- $executeDetail = $execute->getOne ( array (
- 'where' => 'mold="报销单执行人"',
- 'asArray' => true
- ) );
- $receipt->executeCopy = $executeDetail ['staff'];
- $receipt->rid = $receiptId;
- $receipt->update ();
-
- // 先删除
- $receiptDetail = new receiptDetail ();
- $receiptDetail->delete ( array (
- 'where' => 'rid=' . $receiptId
- ) );
- // 新增报销单详情
- $this->makeReceiptDetailCreate ( $data, $staff, $receiptId );
-
- // 附件
- if (! empty ( $data ['enclosurFiles'] )) {
- Doo::loadModel ( 'enclosur' );
- $data ['enclosurFiles'] = json_decode ( $data ['enclosurFiles'], true );
- foreach ( $data ['enclosurFiles'] as $value ) {
- $enclosur = new enclosur ();
- $enclosur->name = $value ['path'];
- $enclosur->rid = $receiptId;
- $enclosur->insert ();
- }
- }
- return "";
- }
-
- //更新借款报销单数据
- public function LoanReceiptEdi($receiptId){
- $receiptId = $this->XDeode->decode ( $receiptId );
- if (! is_numeric ( $receiptId )) {
- die ( 'illegal request-找不到该报销单-参数不正确' );
- }
- $detail = $this->receipt->Get ( $receiptId );
- if (empty ( $detail )) {
- die ( 'illegal request-找不到该报销单' );
- }
-
- $receipt = new receipt_cld ();
- if ($detail['status']!=7){
- $receipt->loanSum = $detail ['sum'];
- }
- $receipt->date = date ( "Y-m-d" );
- $receipt->pastDate = '0000-00-00';
- $receipt->verifyStaff = '';
- $receipt->executeStaff = '';
- $receipt->status = 7;
- $receipt->version = 1;
- $receipt->rid = $receiptId;
- $receipt->update ();
-
- }
-
- // 获得借款报销单
- public function GetLoanReceipt($loanReceiptId,$staff) {
- Doo::loadModel ( 'loanReceipt' );
- $loanReceipt = new loanReceipt ();
- $loan = $loanReceipt->getOne ( array (
- 'where' => 'rid=' . $loanReceiptId,
- 'desc' => 'rid',
- 'asArray' => true
- ) );
-
- $categoryDetil = $this->category->getOne ( array (
- 'where' => 'cid=' . $loan ['cid'],
- 'asArray' => true
- ) );
- $loan ['category'] = $categoryDetil ['title'];
- $loan ['accountItem'] = json_decode ( $loan ['accountItem'], true );
- $loan ['loanItem'] = json_decode ( $loan ['loanItem'], true );
- $loan ['BIGsum'] = $this->num_to_rmb ( $loan ['sum'] );
-
- $loan ['verifyList'] = $this->makeVerifyProcess ( $loan ['verify'], $loan ['verifyStaff'],$staff );
-
- return $loan;
- }
-
- // 获得差旅日期
- public function GetTraveDateAll($sid){
- $traveData=$this->traveDate_cld->GetAllBySid($sid);
- $data=array();
-
- foreach ($traveData as $key=>$value){
- if(!empty($value['start'])&&!empty($value['end'])){
- array_push($data, array(strtotime($value['start']),strtotime($value['end'])));
- }
- }
- return $data;
- }
-
- //费用分页
- public function GetFeePage($data=array()){
- if (!empty($data['categoryId'])){
- $data['categoryId']=$this->XDeode->decode($data['categoryId']);
- }
- if (!empty($data['staffId'])){
- $data['staffId']=$this->XDeode->decode($data['staffId']);
- }
- if(empty($data['year'])){
- $data['year']=date ( "Y" );
- }
- if(!is_numeric($data['pSize'])){
- $data['pSize']=20;
- }
- if(!is_numeric($data['cPage'])){
- $data['cPage']=0;
- }else{
- $data['cPage']=( $data['cPage']-1) * $data['pSize'];
- }
-
- $data=$this->receipt->GetPage($data);
- //获得办事处信息
- $office=$this->category->GetAll();
- //获得员工信息
- $staffList=$this->staff->find(array('asArray' => TRUE));
-
- foreach ($data['list'] as $key=>$value){
- $data['list'][$key]['ridOld']=$value['rid'];
- $data['list'][$key]['rid']=$this->XDeode->encode($value['rid']);
- $data['list'][$key]['cid']=$this->XDeode->encode($value['cid']);
- $data['list'][$key]['staff']=$this->XDeode->encode($value['staff']);
- $data['list'][$key]['categoryValue']="";
- $data['list'][$key]['statusValue']=$this->feeStatusValue[$value['status']];
- foreach ($office as $k=>$v){
- if($v['cid']==$data['list'][$key]['cid']){
- $data['list'][$key]['categoryValue']=$v['title'];
- }
- }
- $data['list'][$key]['staffName']="";
- foreach ($staffList as $k=>$v){
- if($v['sid']==$value['staff']){
- $data['list'][$key]['staffName']=$v['username'];
- }
- }
- $data['list'][$key]['Rtype']=$this->feeTypeValue[$value['Rtype']];
- if($this->getFeeLoanType($value)){
- $data['list'][$key]['Rtype'].="报销单";
- }
-
- if($value['pastDate']=="0000-00-00"){
- $data['list'][$key]['pastDate']="";
- }
-
- if($value['version']==1){
- $data['list'][$key]['explanation']=$this->getReceiptVerson1Explanation($value);
- }
- }
-
- return $data;
- }
-
- private $feeTypeValue=array(
- 0=>"报销单",
- 1=>"借款",
- 2=>"对公汇款",
- 3=>"培训班费用",
- );
-
- private $feeStatusValue=array(
- 1=>"待执行",
- 2=>"审批中",
- 3=>"终止",
- 4=>"撤回",
- 5=>"待提交",
- 6=>"待执行",
- 7=>"待提交",
- 8=>"执行完成",
- 9=>"执行完成",
- 10=>"已锁定",
- );
-
- //获得借款-报销单类型 0借款 1借款报销单
- private function getFeeLoanType($value){
- $type=0;
- if($value['Rtype']==1){
- if($value['version']==1){
- $type=1;
- }else{
- if(!empty($value['accountItem'])){
- $type=1;
- }
- }
- }
- return $type;
- }
-
- //获得新版报销单费用说明
- private function getReceiptVerson1Explanation($value){
- $version_1_explanation="";
- if($value['version']==1){
- if(!empty($value['officeJson'])){
- $officeJson=json_decode($value['officeJson'],true);
- $version_1_explanation.=$officeJson['officeExplain'][0]['officeExplain']."\n";
- }
- if(!empty($value['traveJson'])){
- $traveJson=json_decode($value['traveJson'],true);
- $version_1_explanation.=$traveJson['traveExplain'][0]['traveExplain']."\n";
- }
- if(!empty($value['trainJson'])){
- $trainJson=json_decode($value['trainJson'],true);
- $version_1_explanation.=$trainJson['trainExplain'][0]['trainExplain']."\n";
- }
- }
- return $version_1_explanation;
- }
-
- // 获得审批流程
- private function makeVerifyProcess($verifyId, $verifyStaff,$staffMy) {
- // 检测编辑状态
- $verifyList = $this->verify->getOne ( array (
- 'where' => 'vid=' . $verifyId,
- 'asArray' => true
- ) );
- $verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion
- $verifyStaff = json_decode ( $verifyStaff, true );
-
-
-
- Doo::loadModel ( 'role' );
- $role = new role ();
- Doo::loadModel ( 'staff' );
- $staff = new staff ();
-
- $flag = true;
- $roleKey = 0;
- $endStaffArray = array ();
- $roleArrayCopy = array ();
- foreach ( $verifyList as $k => $v ) {
- // init verifyStaff
-
- if ($v [1] == 'ROLE') {
-
- if (! empty ( $verifyStaff )) {
- $endStaffArray = end ( $verifyStaff );
- // if ($v[0]==$endStaffArray['nextStaff']){
- // $roleId=$v[0];
- // }
- }
-
- $roleVerify = json_decode ( $v [3], true );
- $roleKey = $k;
- $roleArray = array ();
- $rolename = $role->getOne ( array (
- 'where' => 'rid=' . $v [0],
- 'asArray' => true
- ) );
-
- foreach ( $roleVerify as $o => $p ) {
- $staffID = explode ( '_', $p );
- $staffInfo = $staff->getOne ( array (
- 'where' => 'sid=' . $staffID [0],
- 'asArray' => true
- ) );
- // print_r($staffID);
- $exp = array (
- 0 => $staffInfo ['sid'],
- 1 => $staffID [1],
- 2 => $staffInfo ['avatar'],
- 'date' => '',
- 'date' => '',
- 'opinion' => '',
- 'status' => '',
- 'rolename' => $rolename ['name']
- );
- array_push ( $roleArray, $exp );
- }
- $roleArrayCopy [$v [0]] = $roleArray;
- // $verifyList[$k]['roleArray']=$roleArray;
- }
-
- $verifyList [$k] ['date'] = "";
- $verifyList [$k] ['opinion'] = "";
- $verifyList [$k] ['status'] = "";
- if (empty ( $verifyStaff )) {
- $verifyList [$k] ['date'] = "";
- $verifyList [$k] ['opinion'] = "";
- if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {
- $verifyList [$k] ['status'] = 4;
- $flag = false;
- }
- } else {
-
- foreach ( $verifyStaff as $m => $u ) {
- if ($v [0] == $m) {
- $verifyList [$k] ['date'] = $u ['date'];
- $verifyList [$k] ['opinion'] = $u ['opinion'];
- $verifyList [$k] ['status'] = $u ['status'];
- $flag = false;
- break;
- }
- }
-
- $endStaffArray = end ( $verifyStaff );
- if (isset ( $endStaffArray ['ROLE'] )) {
- } else {
- }
- }
- }
-
- $rolename ['name'] = '';
-
- if (! empty ( $verifyStaff ))
- $endStaffArray = end ( $verifyStaff );
-
- $KOP = false;
- foreach ( $roleArrayCopy as $P => $A ) {
-
- foreach ( $A as $MKI => $AVL ) {
- if (! empty ( $verifyStaff )) {
- // FIXME
- // print_r($this->staff);
- // die;
- // &&$rolename['rid']==$endStaffArray['nextStaff']
- if ($staffMy ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {
-
- $button = 4;
- $roleArrayCopy [$P] [$MKI] ['status'] = 4;
- }
-
- foreach ( $verifyStaff as $m => $u ) {
- $AVLFK = $AVL [0] . '_R';
- // echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '<br/>';
-
- if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1
- $roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];
- $roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];
- $roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];
-
- break;
- }
- }
-
- } else {
-
- if ($staffMy ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {
- $button = 4;
- $roleArrayCopy [$P] [$MKI] ['status'] = 4;
- }
-
- }
- // $roleArray[$MKI]['rolename']=$rolename['name'];
- $KOP = true;
- }
-
- }
-
- foreach ( $roleArrayCopy as $k => $v ) {
- foreach ( $verifyList as $m => $n ) {
- if ($n [0] == $k) {
- array_splice ( $verifyList, $m, 1, $v );
- }
- }
- }
-
- return $verifyList;
- }
- private function makeReceiptDetailCreate($data, $staff, $rid) {
-
- // 报销单详情
- if (! empty ( $data ['officeData'] )) {
- if ($data ['officeJson'] ['show']) {
- foreach ( $data ['officeJson'] ['daily'] as $value ) {
- if ($value ['price'] != 0) {
- $itemData = array (
- "staff" => $staff ['sid'],
- "itemCategory" => $value ['category'],
- "item" => $value ['name'],
- "price" => $value ['price'],
- "date" => date ( "Y-m-d" ),
- "cid" => $data ['officeId'],
- "rid" => $rid,
- "status" => 4
- );
- $this->ReceiptDetailCreate ( $itemData );
- }
- }
- foreach ( $data ['officeJson'] ['other'] as $value ) {
- if ($value ['price'] != 0) {
- $itemData = array (
- "staff" => $staff ['sid'],
- "itemCategory" => $value ['category'],
- "item" => $value ['name'],
- "price" => $value ['price'],
- "date" => date ( "Y-m-d" ),
- "cid" => $data ['officeId'],
- "rid" => $rid,
- "status" => 4
- );
- $this->ReceiptDetailCreate ( $itemData );
- }
- }
- }
- }
- // 差旅相关费用
- if (! empty ( $data ['traveData'] )) {
- if ($data ['traveJson'] ['show']) {
- foreach ( $data ['traveJson'] ['trave'] as $value ) {
- if ($value ['price'] != 0) {
- $itemData = array (
- "staff" => $staff ['sid'],
- "itemCategory" => $value ['category'],
- "item" => $value ['name'],
- "price" => $value ['price'],
- "date" => date ( "Y-m-d" ),
- "cid" => $data ['officeId'],
- "rid" => $rid,
- "status" => 4
- );
- $this->ReceiptDetailCreate ( $itemData );
- }
- }
- }
- }
- // 内部培训费用
- if (! empty ( $data ['trainData'] )) {
- if ($data ['trainJson'] ['show']) {
- foreach ( $data ['trainJson'] ['train'] as $value ) {
- if ($value ['price'] != 0) {
- $itemData = array (
- "staff" => $staff ['sid'],
- "itemCategory" => $value ['category'],
- "item" => $value ['name'],
- "price" => $value ['price'],
- "date" => date ( "Y-m-d" ),
- "cid" => $data ['officeId'],
- "rid" => $rid,
- "status" => 4
- );
- $this->ReceiptDetailCreate ( $itemData );
- }
- }
- }
- }
- }
-
- // 新增报销单详情
- public function ReceiptDetailCreate($data = array()) {
- $receiptDetail = new receiptDetail ();
- $receiptDetail->staff = $data ['staff'];
- $receiptDetail->item = $data ['item'];
- $receiptDetail->itemCategory = $data ['itemCategory'];
- $receiptDetail->price = $data ['price'];
- $receiptDetail->date = $data ['date'];
- $receiptDetail->cid = $data ['cid'];
- $receiptDetail->rid = $data ['rid'];
- $receiptDetail->status = $data ['status'];
- $receiptDetail->insert ();
- }
- public function num_to_rmb($num) {
- $c1 = "零壹贰叁肆伍陆柒捌玖";
- $c2 = "分角元拾佰仟万拾佰仟亿";
- // 精确到分后面就不要了,所以只留两个小数位
- $num = round ( $num, 2 );
- // 将数字转化为整数
- $num = $num * 100;
- if (strlen ( $num ) > 10) {
- return "金额太大,请检查";
- }
- $i = 0;
- $c = "";
- while ( 1 ) {
- if ($i == 0) {
- // 获取最后一位数字
- $n = substr ( $num, strlen ( $num ) - 1, 1 );
- } else {
- $n = $num % 10;
- }
- // 每次将最后一位数字转化为中文
- $p1 = substr ( $c1, 3 * $n, 3 );
- $p2 = substr ( $c2, 3 * $i, 3 );
-
- if ($n != '0' || ($n == '0' && ($p2 == '亿' || $p2 == '万' || $p2 == '元'))) {
- $c = $p1 . $p2 . $c;
- } else {
- $c = $p1 . $c;
- }
- $i = $i + 1;
- // 去掉数字最后一位了
-
- $num = $num / 10;
- // echo $num.'</br>';
- $num = ( int ) $num;
- // $num =floor($num);
- // $num = round ( $num, 0, PHP_ROUND_HALF_DOWN );
- // echo $num.'</br>';
- // 结束循环
- if ($num == 0) {
- break;
- }
- }
- // echo $c.'</br>';
- $j = 0;
- $slen = strlen ( $c );
- while ( $j < $slen ) {
- // utf8一个汉字相当3个字符
- $m = substr ( $c, $j, 6 );
- // 处理数字中很多0的情况,每次循环去掉一个汉字“零”
- if ($m == '零元' || $m == '零万' || $m == '零亿' || $m == '零零') {
- $left = substr ( $c, 0, $j );
- $right = substr ( $c, $j + 3 );
- $c = $left . $right;
- $j = $j - 3;
- $slen = $slen - 3;
- }
- $j = $j + 3;
- }
- // 这个是为了去掉类似23.0中最后一个“零”字
- if (substr ( $c, strlen ( $c ) - 3, 3 ) == '零') {
- $c = substr ( $c, 0, strlen ( $c ) - 3 );
- }
- // 将处理的汉字加上“整”
- if (empty ( $c )) {
- return "零元整";
- } else {
- return $c . "整";
- }
- }
- }
- ?>
|